summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llappviewer.cpp9
-rw-r--r--indra/newview/pipeline.cpp11
2 files changed, 20 insertions, 0 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 891722e1bd..6ff9b2b2eb 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1557,6 +1557,15 @@ bool LLAppViewer::doFrame()
ms_sleep(yield_time);
}
+ static LLCachedControl<bool> s_non_interactive(gSavedSettings, "NonInteractive", false);
+ if (s_non_interactive)
+ {
+ S32 non_interactive_ms_sleep_time = 1000;
+ LLAppViewer::getTextureCache()->pause();
+ LLAppViewer::getImageDecodeThread()->pause();
+ ms_sleep(non_interactive_ms_sleep_time);
+ }
+
// yield cooperatively when not running as foreground window
// and when not quiting (causes trouble at mac's cleanup stage)
if (!LLApp::isExiting()
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index cd1b9c7c69..6d2eafd7c0 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -487,6 +487,10 @@ void LLPipeline::init()
{
clearAllRenderTypes();
}
+ else if (gSavedSettings.getBOOL("NonInteractive"))
+ {
+ clearAllRenderTypes();
+ }
else
{
setAllRenderTypes(); // By default, all rendering types start enabled
@@ -1153,6 +1157,13 @@ void LLPipeline::refreshCachedSettings()
RenderAutoHideSurfaceAreaLimit = gSavedSettings.getF32("RenderAutoHideSurfaceAreaLimit");
RenderSpotLight = nullptr;
updateRenderDeferred();
+
+ bool non_interactive = gSavedSettings.getBOOL("NonInteractive");
+ if (non_interactive)
+ {
+ LLVOAvatar::sMaxNonImpostors = 1;
+ LLVOAvatar::updateImpostorRendering(LLVOAvatar::sMaxNonImpostors);
+ }
}
void LLPipeline::releaseGLBuffers()