Skip to content

Commit e33b5c5

Browse files
#4432 Change graphics quality via a debug setting
1 parent 892fb2d commit e33b5c5

File tree

4 files changed

+33
-2
lines changed

4 files changed

+33
-2
lines changed

indra/newview/app_settings/settings.xml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9111,15 +9111,26 @@
91119111
<key>RenderQualityPerformance</key>
91129112
<map>
91139113
<key>Comment</key>
9114-
<string>Which graphics settings you've chosen</string>
9114+
<string>Which graphics settings you've chosen. Don't use this setting to change quality directly from debug settings.</string>
91159115
<key>Persist</key>
91169116
<integer>1</integer>
91179117
<key>Type</key>
91189118
<string>U32</string>
91199119
<key>Value</key>
91209120
<integer>1</integer>
91219121
</map>
9122-
9122+
<key>DebugQualityPerformance</key>
9123+
<map>
9124+
<key>Comment</key>
9125+
<string>Allows to change performance quality directly from debug settings.</string>
9126+
<key>Persist</key>
9127+
<integer>1</integer>
9128+
<key>Type</key>
9129+
<string>U32</string>
9130+
<key>Value</key>
9131+
<integer>1</integer>
9132+
</map>
9133+
91239134
<key>RenderReflectionDetail</key>
91249135
<map>
91259136
<key>Comment</key>

indra/newview/llappviewer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,6 +1263,7 @@ bool LLAppViewer::init()
12631263
LLViewerCamera::createInstance();
12641264
LL::GLTFSceneManager::createInstance();
12651265

1266+
gSavedSettings.setU32("DebugQualityPerformance", gSavedSettings.getU32("RenderQualityPerformance"));
12661267

12671268
#if LL_WINDOWS
12681269
if (!mSecondInstance)

indra/newview/llfloaterpreference.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,6 +1367,7 @@ void LLFloaterPreference::onChangeQuality(const LLSD& data)
13671367
}
13681368
mLastQualityLevel = level;
13691369
LLFeatureManager::getInstance()->setGraphicsLevel(level, true);
1370+
gSavedSettings.setU32("DebugQualityPerformance", level);
13701371
refreshEnabledGraphics();
13711372
refresh();
13721373
}

indra/newview/llviewercontrol.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@
6868
#include "llrender.h"
6969
#include "llnavigationbar.h"
7070
#include "llnotificationsutil.h"
71+
#include "llfloaterpreference.h"
72+
#include "llfloaterreg.h"
7173
#include "llfloatertools.h"
7274
#include "llpaneloutfitsinventory.h"
7375
#include "llpanellogin.h"
@@ -149,6 +151,21 @@ static bool handleDebugAvatarJointsChanged(const LLSD& newvalue)
149151
return true;
150152
}
151153

154+
static bool handleDebugQualityPerformanceChanged(const LLSD& newvalue)
155+
{
156+
// control was set directly or after adjusting Preference setting, no need to update
157+
if (gSavedSettings.getU32("RenderQualityPerformance") != gSavedSettings.getU32("DebugQualityPerformance"))
158+
{
159+
LLFloaterPreference* instance = LLFloaterReg::getTypedInstance<LLFloaterPreference>("preferences");
160+
if (instance)
161+
{
162+
gSavedSettings.setU32("RenderQualityPerformance", newvalue.asInteger());
163+
instance->onChangeQuality(newvalue);
164+
}
165+
}
166+
return true;
167+
}
168+
152169
static bool handleAvatarHoverOffsetChanged(const LLSD& newvalue)
153170
{
154171
if (isAgentAvatarValid())
@@ -946,6 +963,7 @@ void settings_setup_listeners()
946963
setting_setup_signal_listener(gSavedSettings, "SpellCheckDictionary", handleSpellCheckChanged);
947964
setting_setup_signal_listener(gSavedSettings, "LoginLocation", handleLoginLocationChanged);
948965
setting_setup_signal_listener(gSavedSettings, "DebugAvatarJoints", handleDebugAvatarJointsChanged);
966+
setting_setup_signal_listener(gSavedSettings, "DebugQualityPerformance", handleDebugQualityPerformanceChanged);
949967

950968
setting_setup_signal_listener(gSavedSettings, "TargetFPS", handleTargetFPSChanged);
951969
setting_setup_signal_listener(gSavedSettings, "AutoTuneFPS", handleAutoTuneFPSChanged);

0 commit comments

Comments
 (0)