From 0defb4ddfc29c7201c57d5dc8cceb07e29e07f62 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 13 May 2026 10:01:50 -0700 Subject: [PATCH] Added controller sensor support for GameInput v3 Verified working with the DualSense controller --- src/joystick/gdk/SDL_gameinputjoystick.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/joystick/gdk/SDL_gameinputjoystick.cpp b/src/joystick/gdk/SDL_gameinputjoystick.cpp index c1c57a43b3..5f41f2864f 100644 --- a/src/joystick/gdk/SDL_gameinputjoystick.cpp +++ b/src/joystick/gdk/SDL_gameinputjoystick.cpp @@ -34,11 +34,6 @@ #define SDL_GAMEINPUT_DEFAULT false #endif -// Enable sensor support in GameInput 2.0, once we have a device that can be used for testing -#if GAMEINPUT_API_VERSION >= 2 -//#define GAMEINPUT_SENSOR_SUPPORT -#endif - enum { SDL_GAMEPAD_BUTTON_GAMEINPUT_SHARE = 11 @@ -651,17 +646,17 @@ static bool GAMEINPUT_JoystickOpen(SDL_Joystick *joystick, int device_index) SDL_SetBooleanProperty(SDL_GetJoystickProperties(joystick), SDL_PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN, true); } -#ifdef GAMEINPUT_SENSOR_SUPPORT +#if GAMEINPUT_API_VERSION >= 3 if (info->supportedInput & GameInputKindSensors) { - // FIXME: What's the sensor update rate? if (info->sensorsInfo->supportedSensors & GameInputSensorsGyrometer) { - SDL_PrivateJoystickAddSensor(joystick, SDL_SENSOR_GYRO, 250.0f); + SDL_PrivateJoystickAddSensor(joystick, SDL_SENSOR_GYRO, 60.0f); } if (info->sensorsInfo->supportedSensors & GameInputSensorsAccelerometer) { - SDL_PrivateJoystickAddSensor(joystick, SDL_SENSOR_ACCEL, 250.0f); + SDL_PrivateJoystickAddSensor(joystick, SDL_SENSOR_ACCEL, 60.0f); } } -#endif +#endif // GAMEINPUT_API_VERSION >= 3 + return true; } @@ -907,7 +902,7 @@ static void GAMEINPUT_JoystickUpdate(SDL_Joystick *joystick) GAMEINPUT_ControllerUpdate(joystick, reading, timestamp); } -#ifdef GAMEINPUT_SENSOR_SUPPORT +#if GAMEINPUT_API_VERSION >= 3 if (hwdata->report_sensors) { GameInputSensorsState sensor_state; @@ -930,7 +925,7 @@ static void GAMEINPUT_JoystickUpdate(SDL_Joystick *joystick) } } } -#endif // GAMEINPUT_SENSOR_SUPPORT +#endif // GAMEINPUT_API_VERSION >= 3 reading->Release();