Don't fail the sensor init if we couldn't create a sensor manager (i.e. we're running on Wine)

Fixes https://github.com/libsdl-org/SDL/issues/5031
This commit is contained in:
Sam Lantinga 2021-11-28 21:14:02 -08:00
parent 6872cb12e6
commit 3ba9276aff
1 changed files with 3 additions and 1 deletions

View File

@ -352,12 +352,14 @@ SDL_WINDOWS_SensorInit(void)
hr = CoCreateInstance(&SDL_CLSID_SensorManager, NULL, CLSCTX_INPROC_SERVER, &SDL_IID_SensorManager, (LPVOID *) &SDL_sensor_manager); hr = CoCreateInstance(&SDL_CLSID_SensorManager, NULL, CLSCTX_INPROC_SERVER, &SDL_IID_SensorManager, (LPVOID *) &SDL_sensor_manager);
if (FAILED(hr)) { if (FAILED(hr)) {
return WIN_SetErrorFromHRESULT("Couldn't create the sensor manager", hr); /* If we can't create a sensor manager (i.e. on Wine), we won't have any sensors, but don't fail the init */
return 0; /* WIN_SetErrorFromHRESULT("Couldn't create the sensor manager", hr); */
} }
hr = ISensorManager_SetEventSink(SDL_sensor_manager, &sensor_manager_events); hr = ISensorManager_SetEventSink(SDL_sensor_manager, &sensor_manager_events);
if (FAILED(hr)) { if (FAILED(hr)) {
ISensorManager_Release(SDL_sensor_manager); ISensorManager_Release(SDL_sensor_manager);
SDL_sensor_manager = NULL;
return WIN_SetErrorFromHRESULT("Couldn't set the sensor manager event sink", hr); return WIN_SetErrorFromHRESULT("Couldn't set the sensor manager event sink", hr);
} }