summaryrefslogtreecommitdiff
path: root/indra/newview/llviewercontrol.cpp
diff options
context:
space:
mode:
authorMaxim Nikolenko <maximnproductengine@lindenlab.com>2025-09-17 15:56:08 +0300
committerGitHub <noreply@github.com>2025-09-17 15:56:08 +0300
commite33b5c5e6c8db1759e34db43ea9defc5455ab6c7 (patch)
tree0e10649acf066d00aad96e0aa3717fa31c4628a0 /indra/newview/llviewercontrol.cpp
parent892fb2d6e2ffc92636f381d3e817f9c5a71657dc (diff)
#4432 Change graphics quality via a debug setting
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
-rw-r--r--indra/newview/llviewercontrol.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index d39805f4c7..75cc76fee6 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -68,6 +68,8 @@
#include "llrender.h"
#include "llnavigationbar.h"
#include "llnotificationsutil.h"
+#include "llfloaterpreference.h"
+#include "llfloaterreg.h"
#include "llfloatertools.h"
#include "llpaneloutfitsinventory.h"
#include "llpanellogin.h"
@@ -149,6 +151,21 @@ static bool handleDebugAvatarJointsChanged(const LLSD& newvalue)
return true;
}
+static bool handleDebugQualityPerformanceChanged(const LLSD& newvalue)
+{
+ // control was set directly or after adjusting Preference setting, no need to update
+ if (gSavedSettings.getU32("RenderQualityPerformance") != gSavedSettings.getU32("DebugQualityPerformance"))
+ {
+ LLFloaterPreference* instance = LLFloaterReg::getTypedInstance<LLFloaterPreference>("preferences");
+ if (instance)
+ {
+ gSavedSettings.setU32("RenderQualityPerformance", newvalue.asInteger());
+ instance->onChangeQuality(newvalue);
+ }
+ }
+ return true;
+}
+
static bool handleAvatarHoverOffsetChanged(const LLSD& newvalue)
{
if (isAgentAvatarValid())
@@ -946,6 +963,7 @@ void settings_setup_listeners()
setting_setup_signal_listener(gSavedSettings, "SpellCheckDictionary", handleSpellCheckChanged);
setting_setup_signal_listener(gSavedSettings, "LoginLocation", handleLoginLocationChanged);
setting_setup_signal_listener(gSavedSettings, "DebugAvatarJoints", handleDebugAvatarJointsChanged);
+ setting_setup_signal_listener(gSavedSettings, "DebugQualityPerformance", handleDebugQualityPerformanceChanged);
setting_setup_signal_listener(gSavedSettings, "TargetFPS", handleTargetFPSChanged);
setting_setup_signal_listener(gSavedSettings, "AutoTuneFPS", handleAutoTuneFPSChanged);