瀏覽代碼

Don't filter out controllers when launched by Steam under Proton

Fixes https://github.com/libsdl-org/SDL/issues/11579
Sam Lantinga 1 年之前
父節點
當前提交
3060105cfa
共有 1 個文件被更改,包括 11 次插入0 次删除
  1. 11 0
      src/joystick/SDL_gamepad.c

+ 11 - 0
src/joystick/SDL_gamepad.c

@@ -2620,6 +2620,17 @@ bool SDL_ShouldIgnoreGamepad(Uint16 vendor_id, Uint16 product_id, Uint16 version
         return true;
     }
 
+#ifdef SDL_PLATFORM_WIN32
+    if (SDL_GetHintBoolean("SDL_GAMECONTROLLER_ALLOW_STEAM_VIRTUAL_GAMEPAD", false) &&
+        SDL_GetHintBoolean("STEAM_COMPAT_PROTON", false)) {
+        // We are launched by Steam and running under Proton
+        // We can't tell whether this controller is a Steam Virtual Gamepad,
+        // so assume that Proton is doing the appropriate filtering of controllers
+        // and anything we see here is fine to use.
+        return false;
+    }
+#endif // SDL_PLATFORM_WIN32
+
     if (SDL_IsJoystickSteamVirtualGamepad(vendor_id, product_id, version)) {
         return !SDL_GetHintBoolean("SDL_GAMECONTROLLER_ALLOW_STEAM_VIRTUAL_GAMEPAD", false);
     }