Kaynağa Gözat

Emscripten: call emscripten_sample_gamepad_data

Charlie Birks 6 yıl önce
ebeveyn
işleme
aacb1091df
1 değiştirilmiş dosya ile 7 ekleme ve 2 silme
  1. 7 2
      src/joystick/emscripten/SDL_sysjoystick.c

+ 7 - 2
src/joystick/emscripten/SDL_sysjoystick.c

@@ -189,13 +189,16 @@ EMSCRIPTEN_JoystickInit(void)
     EmscriptenGamepadEvent gamepadState;
 
     numjoysticks = 0;
-    numjs = emscripten_get_num_gamepads();
+
+    retval = emscripten_sample_gamepad_data();
 
     /* Check if gamepad is supported by browser */
-    if (numjs == EMSCRIPTEN_RESULT_NOT_SUPPORTED) {
+    if (retval == EMSCRIPTEN_RESULT_NOT_SUPPORTED) {
         return SDL_SetError("Gamepads not supported");
     }
 
+    numjs = emscripten_get_num_gamepads();
+
     /* handle already connected gamepads */
     if (numjs > 0) {
         for(i = 0; i < numjs; i++) {
@@ -335,6 +338,8 @@ EMSCRIPTEN_JoystickUpdate(SDL_Joystick * joystick)
     SDL_joylist_item *item = (SDL_joylist_item *) joystick->hwdata;
     int i, result, buttonState;
 
+    emscripten_sample_gamepad_data();
+
     if (item) {
         result = emscripten_get_gamepad_status(item->index, &gamepadState);
         if( result == EMSCRIPTEN_RESULT_SUCCESS) {