Added Steam Input API support for game controllers

Added support for getting the real controller info, as well as the function SDL_GetGamepadSteamHandle() to get the Steam Input API handle, from the virtual gamepads provided by Steam.

Also added an event SDL_EVENT_GAMEPAD_STEAM_HANDLE_UPDATED which is triggered when a controller's API handle changes, e.g. the controllers were reassigned slots in the Steam UI.
This commit is contained in:
Sam Lantinga 2023-12-09 23:05:34 -08:00
parent a8f4f40d08
commit c981a597dc
42 changed files with 779 additions and 40 deletions

View file

@ -965,6 +965,7 @@ SDL3_0.0.0 {
SDL_SyncWindow;
SDL_SetSurfaceScaleMode;
SDL_GetSurfaceScaleMode;
SDL_GetGamepadSteamHandle;
# extra symbols go here (don't modify this line)
local: *;
};

View file

@ -990,3 +990,4 @@
#define SDL_SyncWindow SDL_SyncWindow_REAL
#define SDL_SetSurfaceScaleMode SDL_SetSurfaceScaleMode_REAL
#define SDL_GetSurfaceScaleMode SDL_GetSurfaceScaleMode_REAL
#define SDL_GetGamepadSteamHandle SDL_GetGamepadSteamHandle_REAL

View file

@ -1015,3 +1015,4 @@ SDL_DYNAPI_PROC(wchar_t*,SDL_wcsnstr,(const wchar_t *a, const wchar_t *b, size_t
SDL_DYNAPI_PROC(int,SDL_SyncWindow,(SDL_Window *a),(a),return)
SDL_DYNAPI_PROC(int,SDL_SetSurfaceScaleMode,(SDL_Surface *a, SDL_ScaleMode b),(a,b),return)
SDL_DYNAPI_PROC(int,SDL_GetSurfaceScaleMode,(SDL_Surface *a, SDL_ScaleMode *b),(a,b),return)
SDL_DYNAPI_PROC(Uint64,SDL_GetGamepadSteamHandle,(SDL_Gamepad *a),(a),return)