Poll DirectInput devices to get their initial state

Fixes https://github.com/libsdl-org/SDL/issues/3816
main
Sam Lantinga 2022-08-01 10:38:31 -07:00
parent 3a6cb7e7c5
commit aeb275149a
1 changed files with 9 additions and 0 deletions

View File

@ -855,6 +855,15 @@ SDL_DINPUT_JoystickOpen(SDL_Joystick * joystick, JoyStick_DeviceData *joystickde
} else if (FAILED(result)) {
return SetDIerror("IDirectInputDevice8::SetProperty", result);
}
/* Poll and wait for initial device state to be populated */
result = IDirectInputDevice8_Poll(joystick->hwdata->InputDevice);
if (result == DIERR_INPUTLOST || result == DIERR_NOTACQUIRED) {
IDirectInputDevice8_Acquire(joystick->hwdata->InputDevice);
IDirectInputDevice8_Poll(joystick->hwdata->InputDevice);
}
SDL_Delay(50);
return 0;
}