Browse Source

Disable SDL_HINT_JOYSTICK_RAWINPUT by default

Windows can get in a state when it stops reporting raw input events for game controllers until reboot.

The downside of this change is that we lose support for trigger rumble and are limited to 4 controllers again, but if that's important for your application you can use SDL_SetHint(SDL_HINT_JOYSTICK_RAWINPUT, true) to enable this functionality.

Fixes https://github.com/libsdl-org/SDL/issues/13047
Sam Lantinga 2 months ago
parent
commit
aa870d511e
2 changed files with 3 additions and 3 deletions
  1. 2 2
      include/SDL3/SDL_hints.h
  2. 1 1
      src/joystick/windows/SDL_rawinputjoystick.c

+ 2 - 2
include/SDL3/SDL_hints.h

@@ -2096,8 +2096,8 @@ extern "C" {
  *
  * The variable can be set to the following values:
  *
- * - "0": RAWINPUT drivers are not used.
- * - "1": RAWINPUT drivers are used. (default)
+ * - "0": RAWINPUT drivers are not used. (default)
+ * - "1": RAWINPUT drivers are used.
  *
  * This hint should be set before SDL is initialized.
  *

+ 1 - 1
src/joystick/windows/SDL_rawinputjoystick.c

@@ -1030,7 +1030,7 @@ static bool RAWINPUT_JoystickInit(void)
 {
     SDL_assert(!SDL_RAWINPUT_inited);
 
-    if (!SDL_GetHintBoolean(SDL_HINT_JOYSTICK_RAWINPUT, true)) {
+    if (!SDL_GetHintBoolean(SDL_HINT_JOYSTICK_RAWINPUT, false)) {
         return true;
     }