windows: Fix compiling of XInput code on newer MinGW installs. Fixes Bugzilla #3609.
diff --git a/src/core/windows/SDL_xinput.h b/src/core/windows/SDL_xinput.h
index 1f651d7..527bd35 100644
--- a/src/core/windows/SDL_xinput.h
+++ b/src/core/windows/SDL_xinput.h
@@ -100,6 +100,14 @@
#endif
/* typedef's for XInput structs we use */
+
+/* Don't redeclare these on MinGW with gcc >= 5.0.2 */
+#if defined(__MINGW32__) && (((__GNUC__ * 10000) + (__GNUC_MINOR__ * 100) + __GNUC_PATCHLEVEL__) >= 50002)
+#define HAS_XINPUT_GAMEPAD_EX
+#define HAS_XINPUT_STATE_EX
+#endif
+
+#ifndef HAS_XINPUT_GAMEPAD_EX
typedef struct
{
WORD wButtons;
@@ -111,12 +119,15 @@ typedef struct
SHORT sThumbRY;
DWORD dwPaddingReserved;
} XINPUT_GAMEPAD_EX;
+#endif
+#ifndef HAS_XINPUT_STATE_EX
typedef struct
{
DWORD dwPacketNumber;
XINPUT_GAMEPAD_EX Gamepad;
} XINPUT_STATE_EX;
+#endif
typedef struct
{