فهرست منبع

WinRT: fixed build error in latest XInput code

This change has also been tested as buildable + runnable on Win32 + MSVC 2015,
2013, 2012, and 2010.  It may fix similar build errors (in XInput code) that
are appearing in MingW builds (on buildbot).
David Ludwig 10 سال پیش
والد
کامیت
dc804c0e1a
2فایلهای تغییر یافته به همراه9 افزوده شده و 9 حذف شده
  1. 5 5
      src/core/windows/SDL_xinput.h
  2. 4 4
      src/joystick/windows/SDL_xinputjoystick.c

+ 5 - 5
src/core/windows/SDL_xinput.h

@@ -118,11 +118,11 @@ typedef struct
     XINPUT_GAMEPAD_EX Gamepad;
 } XINPUT_STATE_EX;
 
-typedef struct _XINPUT_BATTERY_INFORMATION
+typedef struct
 {
     BYTE BatteryType;
     BYTE BatteryLevel;
-} XINPUT_BATTERY_INFORMATION, *PXINPUT_BATTERY_INFORMATION;
+} XINPUT_BATTERY_INFORMATION_EX;
 
 /* Forward decl's for XInput API's we load dynamically and use if available */
 typedef DWORD (WINAPI *XInputGetState_t)
@@ -146,9 +146,9 @@ typedef DWORD (WINAPI *XInputGetCapabilities_t)
 
 typedef DWORD (WINAPI *XInputGetBatteryInformation_t)
     (
-    _In_  DWORD                      dwUserIndex,
-    _In_  BYTE                       devType,
-    _Out_ XINPUT_BATTERY_INFORMATION *pBatteryInformation
+    _In_  DWORD                         dwUserIndex,
+    _In_  BYTE                          devType,
+    _Out_ XINPUT_BATTERY_INFORMATION_EX *pBatteryInformation
     );
 
 extern int WIN_LoadXInputDLL(void);

+ 4 - 4
src/joystick/windows/SDL_xinputjoystick.c

@@ -222,7 +222,7 @@ SDL_XINPUT_JoystickOpen(SDL_Joystick * joystick, JoyStick_DeviceData *joystickde
 }
 
 static void 
-UpdateXInputJoystickBatteryInformation(SDL_Joystick * joystick, XINPUT_BATTERY_INFORMATION *pBatteryInformation)
+UpdateXInputJoystickBatteryInformation(SDL_Joystick * joystick, XINPUT_BATTERY_INFORMATION_EX *pBatteryInformation)
 {
     if ( pBatteryInformation->BatteryType != BATTERY_TYPE_UNKNOWN )
     {
@@ -253,7 +253,7 @@ UpdateXInputJoystickBatteryInformation(SDL_Joystick * joystick, XINPUT_BATTERY_I
 }
 
 static void
-UpdateXInputJoystickState_OLD(SDL_Joystick * joystick, XINPUT_STATE_EX *pXInputState, XINPUT_BATTERY_INFORMATION *pBatteryInformation)
+UpdateXInputJoystickState_OLD(SDL_Joystick * joystick, XINPUT_STATE_EX *pXInputState, XINPUT_BATTERY_INFORMATION_EX *pBatteryInformation)
 {
     static WORD s_XInputButtons[] = {
         XINPUT_GAMEPAD_DPAD_UP, XINPUT_GAMEPAD_DPAD_DOWN, XINPUT_GAMEPAD_DPAD_LEFT, XINPUT_GAMEPAD_DPAD_RIGHT,
@@ -280,7 +280,7 @@ UpdateXInputJoystickState_OLD(SDL_Joystick * joystick, XINPUT_STATE_EX *pXInputS
 }
 
 static void
-UpdateXInputJoystickState(SDL_Joystick * joystick, XINPUT_STATE_EX *pXInputState, XINPUT_BATTERY_INFORMATION *pBatteryInformation)
+UpdateXInputJoystickState(SDL_Joystick * joystick, XINPUT_STATE_EX *pXInputState, XINPUT_BATTERY_INFORMATION_EX *pBatteryInformation)
 {
     static WORD s_XInputButtons[] = {
         XINPUT_GAMEPAD_A, XINPUT_GAMEPAD_B, XINPUT_GAMEPAD_X, XINPUT_GAMEPAD_Y,
@@ -325,7 +325,7 @@ SDL_XINPUT_JoystickUpdate(SDL_Joystick * joystick)
 {
     HRESULT result;
     XINPUT_STATE_EX XInputState;
-    XINPUT_BATTERY_INFORMATION XBatteryInformation;
+    XINPUT_BATTERY_INFORMATION_EX XBatteryInformation;
 
     if (!XINPUTGETSTATE)
         return;