1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-06-27 02:41:34 +00:00

Disable controller gyro with older SDL

This commit is contained in:
uramer 2022-01-19 21:32:46 +01:00
parent 4021d23cff
commit 15e9c6615c

View file

@ -406,6 +406,7 @@ namespace MWInput
void ControllerManager::enableGyroSensor() void ControllerManager::enableGyroSensor()
{ {
mGyroAvailable = false; mGyroAvailable = false;
#if SDL_VERSION_ATLEAST(2, 0, 14)
SDL_GameController* cntrl = mBindingsManager->getControllerOrNull(); SDL_GameController* cntrl = mBindingsManager->getControllerOrNull();
if (!cntrl) if (!cntrl)
return; return;
@ -414,6 +415,7 @@ namespace MWInput
if (SDL_GameControllerSetSensorEnabled(cntrl, SDL_SENSOR_GYRO, SDL_TRUE) < 0) if (SDL_GameControllerSetSensorEnabled(cntrl, SDL_SENSOR_GYRO, SDL_TRUE) < 0)
return; return;
mGyroAvailable = true; mGyroAvailable = true;
#endif
} }
bool ControllerManager::isGyroAvailable() const bool ControllerManager::isGyroAvailable() const
@ -424,9 +426,11 @@ namespace MWInput
std::array<float, 3> ControllerManager::getGyroValues() const std::array<float, 3> ControllerManager::getGyroValues() const
{ {
float gyro[3] = { 0.f }; float gyro[3] = { 0.f };
#if SDL_VERSION_ATLEAST(2, 0, 14)
SDL_GameController* cntrl = mBindingsManager->getControllerOrNull(); SDL_GameController* cntrl = mBindingsManager->getControllerOrNull();
if (cntrl && mGyroAvailable) if (cntrl && mGyroAvailable)
SDL_GameControllerGetSensorData(cntrl, SDL_SENSOR_GYRO, gyro, 3); SDL_GameControllerGetSensorData(cntrl, SDL_SENSOR_GYRO, gyro, 3);
#endif
return std::array<float, 3>({gyro[0], gyro[1], gyro[2]}); return std::array<float, 3>({gyro[0], gyro[1], gyro[2]});
} }
} }