INtroduce range check for int value against the several enums we exposed through the js api for REnder and PErformance settings

This commit is contained in:
Sam Gateau 2019-06-05 17:56:14 -07:00
parent 34bae25d0e
commit 9bc6c3bfcd
6 changed files with 10 additions and 5 deletions

View file

@ -41,7 +41,7 @@ void PerformanceManager::setupPerformancePresetSettings(bool evaluatePlatformTie
} }
void PerformanceManager::setPerformancePreset(PerformanceManager::PerformancePreset preset) { void PerformanceManager::setPerformancePreset(PerformanceManager::PerformancePreset preset) {
if (getPerformancePreset() != preset) { if (isValidPerformancePreset(preset) && (getPerformancePreset() != preset)) {
_performancePresetSettingLock.withWriteLock([&] { _performancePresetSettingLock.withWriteLock([&] {
_performancePresetSetting.set((int)preset); _performancePresetSetting.set((int)preset);
}); });

View file

@ -26,6 +26,7 @@ public:
HIGH, HIGH,
PROFILE_COUNT PROFILE_COUNT
}; };
static bool isValidPerformancePreset(int value) { return (value >= PerformancePreset::UNKNOWN && value <= PerformancePreset::HIGH); }
PerformanceManager(); PerformanceManager();
~PerformanceManager() = default; ~PerformanceManager() = default;

View file

@ -94,7 +94,7 @@ void RefreshRateManager::toggleInactive() {
} }
void RefreshRateManager::setRefreshRateProfile(RefreshRateManager::RefreshRateProfile refreshRateProfile) { void RefreshRateManager::setRefreshRateProfile(RefreshRateManager::RefreshRateProfile refreshRateProfile) {
if (_refreshRateProfile != refreshRateProfile) { if (isValidRefreshRateProfile(refreshRateProfile) && (_refreshRateProfile != refreshRateProfile)) {
_refreshRateProfileSettingLock.withWriteLock([&] { _refreshRateProfileSettingLock.withWriteLock([&] {
_refreshRateProfile = refreshRateProfile; _refreshRateProfile = refreshRateProfile;
_refreshRateProfileSetting.set((int) refreshRateProfile); _refreshRateProfileSetting.set((int) refreshRateProfile);
@ -124,7 +124,7 @@ RefreshRateManager::RefreshRateRegime RefreshRateManager::getRefreshRateRegime()
} }
void RefreshRateManager::setRefreshRateRegime(RefreshRateManager::RefreshRateRegime refreshRateRegime) { void RefreshRateManager::setRefreshRateRegime(RefreshRateManager::RefreshRateRegime refreshRateRegime) {
if (_refreshRateRegime != refreshRateRegime) { if (isValidRefreshRateRegime(refreshRateRegime) && (_refreshRateRegime != refreshRateRegime)) {
_refreshRateRegime = refreshRateRegime; _refreshRateRegime = refreshRateRegime;
updateRefreshRateController(); updateRefreshRateController();
} }
@ -132,7 +132,7 @@ void RefreshRateManager::setRefreshRateRegime(RefreshRateManager::RefreshRateReg
} }
void RefreshRateManager::setUXMode(RefreshRateManager::UXMode uxMode) { void RefreshRateManager::setUXMode(RefreshRateManager::UXMode uxMode) {
if (_uxMode != uxMode) { if (isValidUXMode(uxMode) && (_uxMode != uxMode)) {
_uxMode = uxMode; _uxMode = uxMode;
updateRefreshRateController(); updateRefreshRateController();
} }

View file

@ -29,6 +29,7 @@ public:
REALTIME, REALTIME,
PROFILE_NUM PROFILE_NUM
}; };
static bool isValidRefreshRateProfile(RefreshRateProfile value) { return (value >= RefreshRateProfile::ECO && value <= RefreshRateProfile::REALTIME); }
enum RefreshRateRegime { enum RefreshRateRegime {
FOCUS_ACTIVE = 0, FOCUS_ACTIVE = 0,
@ -39,12 +40,14 @@ public:
SHUTDOWN, SHUTDOWN,
REGIME_NUM REGIME_NUM
}; };
static bool isValidRefreshRateRegime(RefreshRateRegime value) { return (value >= RefreshRateRegime::FOCUS_ACTIVE && value <= RefreshRateRegime::SHUTDOWN); }
enum UXMode { enum UXMode {
DESKTOP = 0, DESKTOP = 0,
VR, VR,
UX_NUM UX_NUM
}; };
static bool isValidUXMode(UXMode value) { return (value >= UXMode::DESKTOP && value <= UXMode::VR); }
RefreshRateManager(); RefreshRateManager();
~RefreshRateManager() = default; ~RefreshRateManager() = default;

View file

@ -42,7 +42,7 @@ RenderScriptingInterface::RenderMethod RenderScriptingInterface::getRenderMethod
} }
void RenderScriptingInterface::setRenderMethod(RenderMethod renderMethod) { void RenderScriptingInterface::setRenderMethod(RenderMethod renderMethod) {
if (_renderMethod != (int) renderMethod) { if (isValidRenderMethod(renderMethod) && (_renderMethod != (int) renderMethod)) {
forceRenderMethod(renderMethod); forceRenderMethod(renderMethod);
emit settingsChanged(); emit settingsChanged();
} }

View file

@ -41,6 +41,7 @@ public:
FORWARD = render::Args::RenderMethod::FORWARD, FORWARD = render::Args::RenderMethod::FORWARD,
}; };
Q_ENUM(RenderMethod) Q_ENUM(RenderMethod)
static bool isValidRenderMethod(RenderMethod value) { return (value >= RenderMethod::DEFERRED && value <= RenderMethod::FORWARD); }
// Load Settings // Load Settings