summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermenu.cpp
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-05-23 09:58:33 -0700
committerGraham Linden <graham@lindenlab.com>2019-05-23 09:58:33 -0700
commitd0a0eede63fdbd4ba597b86cbfbeb5b394ed2395 (patch)
treeb84761e659eb528695b781cd973192c4b43634f1 /indra/newview/llviewermenu.cpp
parent360b3230bbfbda7988eee84a8ed04fa1696ca70a (diff)
Add render debug controls for forcing disable of ambient, sun, and local light contributions
(engages AMBIENT_KILL, SUNLIGHT_KILL, and LOCAL_LIGHT_KILL defines in shaders to accomplish those tasks as required by each render mode).
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
-rw-r--r--indra/newview/llviewermenu.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index d791c927a4..2f9cc3acff 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -7389,6 +7389,8 @@ void handle_dump_attachments(void*)
// these are used in the gl menus to set control values, generically.
class LLToggleControl : public view_listener_t
{
+protected:
+
bool handleEvent(const LLSD& userdata)
{
std::string control_name = userdata.asString();
@@ -7465,6 +7467,24 @@ class LLAdvancedClickRenderBenchmark: public view_listener_t
}
};
+// these are used in the gl menus to set control values that require shader recompilation
+class LLToggleShaderControl : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string control_name = userdata.asString();
+ BOOL checked = gSavedSettings.getBOOL( control_name );
+ gSavedSettings.setBOOL( control_name, !checked );
+ LLPipeline::refreshCachedSettings();
+ //gPipeline.updateRenderDeferred();
+ //gPipeline.releaseGLBuffers();
+ //gPipeline.createGLBuffers();
+ //gPipeline.resetVertexBuffers();
+ LLViewerShaderMgr::instance()->setShaders();
+ return !checked;
+ }
+};
+
void menu_toggle_attached_lights(void* user_data)
{
LLPipeline::sRenderAttachedLights = gSavedSettings.getBOOL("RenderAttachedLights");
@@ -9268,6 +9288,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLShowAgentProfile(), "ShowAgentProfile");
view_listener_t::addMenu(new LLToggleAgentProfile(), "ToggleAgentProfile");
view_listener_t::addMenu(new LLToggleControl(), "ToggleControl");
+ view_listener_t::addMenu(new LLToggleShaderControl(), "ToggleShaderControl");
view_listener_t::addMenu(new LLCheckControl(), "CheckControl");
view_listener_t::addMenu(new LLGoToObject(), "GoToObject");
commit.add("PayObject", boost::bind(&handle_give_money_dialog));