diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 5c1554d4bb84dfee97e5c54177dfb09039fae8f2..12739856b820d672e6c49065ecab9400d3adf22a 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -487,8 +487,14 @@ static bool handleRenderDebugPipelineChanged(const LLSD& newvalue) return true; } -static bool handleRenderResolutionDivisorChanged(const LLSD&) +static bool validateRenderResolutionDivisor(const LLSD& newvalue) { + return (newvalue.asReal() > 0.01f); +} + +static bool handleRenderResolutionDivisorChanged(const LLSD& newvalue) +{ + LLPipeline::RenderResolutionMultiplier = llmin((F32)newvalue.asReal(), 0.01f); gResizeScreenTexture = TRUE; return true; } @@ -692,6 +698,7 @@ void settings_setup_listeners() gSavedSettings.getControl("RenderDeferredNoise")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2)); gSavedSettings.getControl("RenderDebugGL")->getSignal()->connect(boost::bind(&handleRenderDebugGLChanged, _2)); gSavedSettings.getControl("RenderDebugPipeline")->getSignal()->connect(boost::bind(&handleRenderDebugPipelineChanged, _2)); + gSavedSettings.getControl("RenderResolutionDivisor")->getValidateSignal()->connect(boost::bind(&validateRenderResolutionDivisor, _2)); gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _2)); // [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4 gSavedSettings.getControl("RenderResolutionMultiplier")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _2));