Pārlūkot izejas kodu

Fixed reading input from the Razer Atrox Arcade Stick using Windows Gaming Input

(cherry picked from commit 172cfca51332a845abf9c141ae56aa121fe4ada5)
Sam Lantinga 1 gadu atpakaļ
vecāks
revīzija
1cdd6dc829
1 mainītis faili ar 9 papildinājumiem un 6 dzēšanām
  1. 9 6
      src/joystick/windows/SDL_windows_gaming_input.c

+ 9 - 6
src/joystick/windows/SDL_windows_gaming_input.c

@@ -837,15 +837,18 @@ static void WGI_JoystickUpdate(SDL_Joystick *joystick)
     }
 
     hr = __x_ABI_CWindows_CGaming_CInput_CIRawGameController_GetCurrentReading(hwdata->controller, nbuttons, buttons, nhats, hats, naxes, axes, &timestamp);
-    if (SUCCEEDED(hr) && timestamp != hwdata->timestamp) {
+    if (SUCCEEDED(hr) && (!timestamp || timestamp != hwdata->timestamp)) {
         UINT32 i;
-        SDL_bool all_zero = SDL_TRUE;
+        SDL_bool all_zero = SDL_FALSE;
 
         /* The axes are all zero when the application loses focus */
-        for (i = 0; i < naxes; ++i) {
-            if (axes[i] != 0.0f) {
-                all_zero = SDL_FALSE;
-                break;
+        if (naxes > 0) {
+            all_zero = SDL_TRUE;
+            for (i = 0; i < naxes; ++i) {
+                if (axes[i] != 0.0f) {
+                    all_zero = SDL_FALSE;
+                    break;
+                }
             }
         }
         if (all_zero) {