diff options
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
-rw-r--r-- | indra/newview/llviewercontrol.cpp | 54 |
1 files changed, 48 insertions, 6 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index c1bf31ff9a..9043a5a89e 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -76,6 +76,11 @@ #include "llslurl.h" #include "llstartup.h" #include "llperfstats.h" +#include "rlvcommon.h" + +#if LL_DARWIN +#include "llwindowmacosx.h" +#endif // Third party library includes #include <boost/algorithm/string.hpp> @@ -243,6 +248,25 @@ static bool handleReleaseGLBufferChanged(const LLSD& newvalue) return true; } +static bool handleEnableEmissiveChanged(const LLSD& newvalue) +{ + return handleReleaseGLBufferChanged(newvalue) && handleSetShaderChanged(newvalue); +} + +static bool handleDisableVintageMode(const LLSD& newvalue) +{ + gSavedSettings.setBOOL("RenderEnableEmissiveBuffer", newvalue.asBoolean()); + gSavedSettings.setBOOL("RenderHDREnabled", newvalue.asBoolean()); + return true; +} + +static bool handleEnableHDR(const LLSD& newvalue) +{ + gPipeline.mReflectionMapManager.reset(); + gPipeline.mHeroProbeManager.reset(); + return handleReleaseGLBufferChanged(newvalue) && handleSetShaderChanged(newvalue); +} + static bool handleLUTBufferChanged(const LLSD& newvalue) { if (gPipeline.isInit()) @@ -427,15 +451,26 @@ static bool handleReflectionProbeDetailChanged(const LLSD& newvalue) if (gPipeline.isInit()) { LLPipeline::refreshCachedSettings(); + gPipeline.mReflectionMapManager.reset(); + gPipeline.mHeroProbeManager.reset(); gPipeline.releaseGLBuffers(); gPipeline.createGLBuffers(); LLViewerShaderMgr::instance()->setShaders(); - gPipeline.mReflectionMapManager.reset(); - gPipeline.mHeroProbeManager.reset(); } return true; } +#if LL_DARWIN +static bool handleAppleUseMultGLChanged(const LLSD& newvalue) +{ + if (gGLManager.mInited) + { + LLWindowMacOSX::setUseMultGL(newvalue.asBoolean()); + } + return true; +} +#endif + static bool handleHeroProbeResolutionChanged(const LLSD &newvalue) { if (gPipeline.isInit()) @@ -730,9 +765,9 @@ LLPointer<LLControlVariable> setting_get_control(LLControlGroup& group, const st LLPointer<LLControlVariable> cntrl_ptr = group.getControl(setting); if (cntrl_ptr.isNull()) { + LLError::LLUserWarningMsg::showMissingFiles(); LL_ERRS() << "Unable to set up setting listener for " << setting - << ". Please reinstall viewer from https ://secondlife.com/support/downloads/ and contact https://support.secondlife.com if issue persists after reinstall." - << LL_ENDL; + << "." << LL_ENDL; } return cntrl_ptr; } @@ -770,8 +805,7 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderMaxTextureIndex", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderUIBuffer", handleWindowResized); setting_setup_signal_listener(gSavedSettings, "RenderDepthOfField", handleReleaseGLBufferChanged); - setting_setup_signal_listener(gSavedSettings, "RenderFSAASamples", handleReleaseGLBufferChanged); - setting_setup_signal_listener(gSavedSettings, "RenderPostProcessingHDR", handleReleaseGLBufferChanged); + setting_setup_signal_listener(gSavedSettings, "RenderFSAAType", handleReleaseGLBufferChanged); setting_setup_signal_listener(gSavedSettings, "RenderSpecularResX", handleLUTBufferChanged); setting_setup_signal_listener(gSavedSettings, "RenderSpecularResY", handleLUTBufferChanged); setting_setup_signal_listener(gSavedSettings, "RenderSpecularExponent", handleLUTBufferChanged); @@ -781,6 +815,9 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderGlow", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderGlowResolutionPow", handleReleaseGLBufferChanged); setting_setup_signal_listener(gSavedSettings, "RenderGlowHDR", handleReleaseGLBufferChanged); + setting_setup_signal_listener(gSavedSettings, "RenderEnableEmissiveBuffer", handleEnableEmissiveChanged); + setting_setup_signal_listener(gSavedSettings, "RenderDisableVintageMode", handleDisableVintageMode); + setting_setup_signal_listener(gSavedSettings, "RenderHDREnabled", handleEnableHDR); setting_setup_signal_listener(gSavedSettings, "RenderGlowNoise", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderGammaFull", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderVolumeLODFactor", handleVolumeLODChanged); @@ -801,6 +838,9 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeLevel", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeDetail", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderReflectionsEnabled", handleReflectionProbeDetailChanged); +#if LL_DARWIN + setting_setup_signal_listener(gSavedSettings, "RenderAppleUseMultGL", handleAppleUseMultGLChanged); +#endif setting_setup_signal_listener(gSavedSettings, "RenderScreenSpaceReflections", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderMirrors", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderHeroProbeResolution", handleHeroProbeResolutionChanged); @@ -933,6 +973,8 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "TerrainPaintBitDepth", handleSetShaderChanged); setting_setup_signal_listener(gSavedPerAccountSettings, "AvatarHoverOffsetZ", handleAvatarHoverOffsetChanged); + + setting_setup_signal_listener(gSavedSettings, Rlv::Settings::TopLevelMenu, Rlv::Util::menuToggleVisible); } #if TEST_CACHED_CONTROL |