mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 14:37:46 +02:00
Merge pull request #15686 from samcake/nut
BUGZ-442: Adding extra check when setting Performance & render api enums
This commit is contained in:
commit
73ac38a6a6
13 changed files with 18 additions and 22 deletions
|
@ -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);
|
||||||
});
|
});
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -14,12 +14,6 @@ PropItem {
|
||||||
Global { id: global }
|
Global { id: global }
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
property alias valueVar : checkboxControl.checked
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
valueVar = root.valueVarGetter();
|
|
||||||
}
|
|
||||||
|
|
||||||
PropCheckBox {
|
PropCheckBox {
|
||||||
id: checkboxControl
|
id: checkboxControl
|
||||||
|
|
||||||
|
@ -27,6 +21,7 @@ PropItem {
|
||||||
anchors.verticalCenter: root.verticalCenter
|
anchors.verticalCenter: root.verticalCenter
|
||||||
width: root.width * global.valueAreaWidthScale
|
width: root.width * global.valueAreaWidthScale
|
||||||
|
|
||||||
|
checked: root.valueVarGetter();
|
||||||
onCheckedChanged: { root.valueVarSetter(checked); }
|
onCheckedChanged: { root.valueVarSetter(checked); }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,13 +15,8 @@ PropItem {
|
||||||
Global { id: global }
|
Global { id: global }
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
property alias valueVar : valueCombo.currentIndex
|
|
||||||
property alias enums : valueCombo.model
|
property alias enums : valueCombo.model
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
valueVar = root.valueVarGetter();
|
|
||||||
}
|
|
||||||
|
|
||||||
PropComboBox {
|
PropComboBox {
|
||||||
id: valueCombo
|
id: valueCombo
|
||||||
|
|
||||||
|
@ -33,6 +28,6 @@ PropItem {
|
||||||
height: global.slimHeight
|
height: global.slimHeight
|
||||||
|
|
||||||
currentIndex: root.valueVarGetter()
|
currentIndex: root.valueVarGetter()
|
||||||
onCurrentIndexChanged: { root.valueVarSetter(currentIndex); }
|
onCurrentIndexChanged: root.valueVarSetter(currentIndex)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ Item {
|
||||||
// value is accessed through the "valueVarSetter" and "valueVarGetter"
|
// value is accessed through the "valueVarSetter" and "valueVarGetter"
|
||||||
// By default, these just go get or set the value from the object[property]
|
// By default, these just go get or set the value from the object[property]
|
||||||
//
|
//
|
||||||
function defaultGet() { return root.object[root.property]; }
|
function defaultGet() { var v = root.object[root.property]; return v; }
|
||||||
function defaultSet(value) { root.object[root.property] = value; }
|
function defaultSet(value) { root.object[root.property] = value; }
|
||||||
// function defaultSetReadOnly(value) { log ( "read only " + property + ", NOT setting to " + value); }
|
// function defaultSetReadOnly(value) { log ( "read only " + property + ", NOT setting to " + value); }
|
||||||
// function defaultSetReadOnly(value) {}
|
// function defaultSetReadOnly(value) {}
|
||||||
|
|
|
@ -30,7 +30,7 @@ PropItem {
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
valueVar = root.valueVarGetter();
|
valueVar = root.valueVarGetter();
|
||||||
}
|
}
|
||||||
|
|
||||||
PropLabel {
|
PropLabel {
|
||||||
id: valueLabel
|
id: valueLabel
|
||||||
|
|
|
@ -29,7 +29,7 @@ Column {
|
||||||
label: "Debug Buffer"
|
label: "Debug Buffer"
|
||||||
object: config
|
object: config
|
||||||
property: "mode"
|
property: "mode"
|
||||||
valueVar: 0
|
// valueVar: 0
|
||||||
enums: [
|
enums: [
|
||||||
"Off",
|
"Off",
|
||||||
"Depth",
|
"Depth",
|
||||||
|
|
|
@ -32,6 +32,7 @@ Column {
|
||||||
}
|
}
|
||||||
|
|
||||||
Prop.PropEnum {
|
Prop.PropEnum {
|
||||||
|
id: refreshrateProfileControl
|
||||||
label: "Refresh Rate Profile"
|
label: "Refresh Rate Profile"
|
||||||
object: Performance
|
object: Performance
|
||||||
property: "refreshRateProfile"
|
property: "refreshRateProfile"
|
||||||
|
|
|
@ -50,7 +50,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Prop.PropFolderPanel {
|
Prop.PropFolderPanel {
|
||||||
label: "Platform"
|
label: "Platform"
|
||||||
panelFrameData: Component {
|
panelFrameData: Component {
|
||||||
Platform {
|
Platform {
|
||||||
|
@ -58,7 +58,7 @@ Rectangle {
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue