diff options
| -rw-r--r-- | indra/newview/pipeline.cpp | 176 | ||||
| -rw-r--r-- | indra/newview/pipeline.h | 1 | 
2 files changed, 94 insertions, 83 deletions
| diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 0a4cf63205..2e9112ed81 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -439,6 +439,19 @@ LLPipeline::LLPipeline() :  	mLightFunc = 0;  } +void LLPipeline::connectRefreshCachedSettingsSafe(const std::string name) +{ +	LLPointer<LLControlVariable> cntrl_ptr = gSavedSettings.getControl(name); +	if ( cntrl_ptr.isNull() ) +	{ +		llwarns << "Global setting name not found:" << name << llendl; +	} +	else +	{ +		cntrl_ptr->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); +	} +} +  void LLPipeline::init()  {  	LLMemType mt(LLMemType::MTYPE_PIPELINE_INIT); @@ -523,89 +536,86 @@ void LLPipeline::init()  	//  	// Update all settings to trigger a cached settings refresh  	// - -	gSavedSettings.getControl("RenderAutoMaskAlphaDeferred")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderAutoMaskAlphaNonDeferred")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderUseFarClip")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderAvatarMaxVisible")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderDelayVBUpdate")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	 -	gSavedSettings.getControl("UseOcclusion")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	 -	gSavedSettings.getControl("VertexShaderEnable")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderAvatarVP")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("WindLightUseAtmosShaders")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderDeferred")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderDeferredSunWash")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderFSAASamples")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderResolutionDivisor")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderUIBuffer")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowDetail")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderDeferredSSAO")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowResolutionScale")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderLocalLights")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderDelayCreation")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderAnimateRes")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("FreezeTime")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("DebugBeaconLineWidth")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderHighlightBrightness")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderHighlightColor")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderHighlightThickness")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderSpotLightsInNondeferred")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewAmbientColor")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewDiffuse0")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewSpecular0")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewDiffuse1")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewSpecular1")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewDiffuse2")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewSpecular2")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewDirection0")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewDirection1")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("PreviewDirection2")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowMinLuminance")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowMaxExtractAlpha")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowWarmthAmount")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowLumWeights")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowWarmthWeights")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowResolutionPow")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowIterations")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowWidth")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderGlowStrength")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderDepthOfField")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("CameraFocusTransitionTime")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("CameraFNumber")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("CameraFocalLength")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("CameraFieldOfView")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowNoise")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowBlurSize")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderSSAOScale")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderSSAOMaxScale")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderSSAOFactor")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderSSAOEffect")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowOffsetError")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowBiasError")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowOffset")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowBias")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderSpotShadowOffset")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderSpotShadowBias")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderEdgeDepthCutoff")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderEdgeNormCutoff")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowGaussian")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowBlurDistFactor")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderDeferredAtmospheric")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderReflectionDetail")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderHighlightFadeTime")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowClipPlanes")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowOrthoClipPlanes")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowNearDist")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderFarClip")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowSplitExponent")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowErrorCutoff")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderShadowFOVCutoff")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("CameraOffset")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("CameraMaxCoF")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("CameraDoFResScale")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); -	gSavedSettings.getControl("RenderAutoHideSurfaceAreaLimit")->getCommitSignal()->connect(boost::bind(&LLPipeline::refreshCachedSettings)); +	connectRefreshCachedSettingsSafe("RenderAutoMaskAlphaDeferred"); +	connectRefreshCachedSettingsSafe("RenderAutoMaskAlphaNonDeferred"); +	connectRefreshCachedSettingsSafe("RenderUseFarClip"); +	connectRefreshCachedSettingsSafe("RenderAvatarMaxVisible"); +	connectRefreshCachedSettingsSafe("RenderDelayVBUpdate"); +	connectRefreshCachedSettingsSafe("UseOcclusion"); +	connectRefreshCachedSettingsSafe("VertexShaderEnable"); +	connectRefreshCachedSettingsSafe("RenderAvatarVP"); +	connectRefreshCachedSettingsSafe("WindLightUseAtmosShaders"); +	connectRefreshCachedSettingsSafe("RenderDeferred"); +	connectRefreshCachedSettingsSafe("RenderDeferredSunWash"); +	connectRefreshCachedSettingsSafe("RenderFSAASamples"); +	connectRefreshCachedSettingsSafe("RenderResolutionDivisor"); +	connectRefreshCachedSettingsSafe("RenderUIBuffer"); +	connectRefreshCachedSettingsSafe("RenderShadowDetail"); +	connectRefreshCachedSettingsSafe("RenderDeferredSSAO"); +	connectRefreshCachedSettingsSafe("RenderShadowResolutionScale"); +	connectRefreshCachedSettingsSafe("RenderLocalLights"); +	connectRefreshCachedSettingsSafe("RenderDelayCreation"); +	connectRefreshCachedSettingsSafe("RenderAnimateRes"); +	connectRefreshCachedSettingsSafe("FreezeTime"); +	connectRefreshCachedSettingsSafe("DebugBeaconLineWidth"); +	connectRefreshCachedSettingsSafe("RenderHighlightBrightness"); +	connectRefreshCachedSettingsSafe("RenderHighlightColor"); +	connectRefreshCachedSettingsSafe("RenderHighlightThickness"); +	connectRefreshCachedSettingsSafe("RenderSpotLightsInNondeferred"); +	connectRefreshCachedSettingsSafe("PreviewAmbientColor"); +	connectRefreshCachedSettingsSafe("PreviewDiffuse0"); +	connectRefreshCachedSettingsSafe("PreviewSpecular0"); +	connectRefreshCachedSettingsSafe("PreviewDiffuse1"); +	connectRefreshCachedSettingsSafe("PreviewSpecular1"); +	connectRefreshCachedSettingsSafe("PreviewDiffuse2"); +	connectRefreshCachedSettingsSafe("PreviewSpecular2"); +	connectRefreshCachedSettingsSafe("PreviewDirection0"); +	connectRefreshCachedSettingsSafe("PreviewDirection1"); +	connectRefreshCachedSettingsSafe("PreviewDirection2"); +	connectRefreshCachedSettingsSafe("RenderGlowMinLuminance"); +	connectRefreshCachedSettingsSafe("RenderGlowMaxExtractAlpha"); +	connectRefreshCachedSettingsSafe("RenderGlowWarmthAmount"); +	connectRefreshCachedSettingsSafe("RenderGlowLumWeights"); +	connectRefreshCachedSettingsSafe("RenderGlowWarmthWeights"); +	connectRefreshCachedSettingsSafe("RenderGlowResolutionPow"); +	connectRefreshCachedSettingsSafe("RenderGlowIterations"); +	connectRefreshCachedSettingsSafe("RenderGlowWidth"); +	connectRefreshCachedSettingsSafe("RenderGlowStrength"); +	connectRefreshCachedSettingsSafe("RenderDepthOfField"); +	connectRefreshCachedSettingsSafe("CameraFocusTransitionTime"); +	connectRefreshCachedSettingsSafe("CameraFNumber"); +	connectRefreshCachedSettingsSafe("CameraFocalLength"); +	connectRefreshCachedSettingsSafe("CameraFieldOfView"); +	connectRefreshCachedSettingsSafe("RenderShadowNoise"); +	connectRefreshCachedSettingsSafe("RenderShadowBlurSize"); +	connectRefreshCachedSettingsSafe("RenderSSAOScale"); +	connectRefreshCachedSettingsSafe("RenderSSAOMaxScale"); +	connectRefreshCachedSettingsSafe("RenderSSAOFactor"); +	connectRefreshCachedSettingsSafe("RenderSSAOEffect"); +	connectRefreshCachedSettingsSafe("RenderShadowOffsetError"); +	connectRefreshCachedSettingsSafe("RenderShadowBiasError"); +	connectRefreshCachedSettingsSafe("RenderShadowOffset"); +	connectRefreshCachedSettingsSafe("RenderShadowBias"); +	connectRefreshCachedSettingsSafe("RenderSpotShadowOffset"); +	connectRefreshCachedSettingsSafe("RenderSpotShadowBias"); +	connectRefreshCachedSettingsSafe("RenderEdgeDepthCutoff"); +	connectRefreshCachedSettingsSafe("RenderEdgeNormCutoff"); +	connectRefreshCachedSettingsSafe("RenderShadowGaussian"); +	connectRefreshCachedSettingsSafe("RenderShadowBlurDistFactor"); +	connectRefreshCachedSettingsSafe("RenderDeferredAtmospheric"); +	connectRefreshCachedSettingsSafe("RenderReflectionDetail"); +	connectRefreshCachedSettingsSafe("RenderHighlightFadeTime"); +	connectRefreshCachedSettingsSafe("RenderShadowClipPlanes"); +	connectRefreshCachedSettingsSafe("RenderShadowOrthoClipPlanes"); +	connectRefreshCachedSettingsSafe("RenderShadowNearDist"); +	connectRefreshCachedSettingsSafe("RenderFarClip"); +	connectRefreshCachedSettingsSafe("RenderShadowSplitExponent"); +	connectRefreshCachedSettingsSafe("RenderShadowErrorCutoff"); +	connectRefreshCachedSettingsSafe("RenderShadowFOVCutoff"); +	connectRefreshCachedSettingsSafe("CameraOffset"); +	connectRefreshCachedSettingsSafe("CameraMaxCoF"); +	connectRefreshCachedSettingsSafe("CameraDoFResScale"); +	connectRefreshCachedSettingsSafe("RenderAutoHideSurfaceAreaLimit");  }  LLPipeline::~LLPipeline() diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 9d56077c55..edcaf1cdc9 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -374,6 +374,7 @@ private:  	BOOL updateDrawableGeom(LLDrawable* drawable, BOOL priority);  	void assertInitializedDoError();  	bool assertInitialized() { const bool is_init = isInit(); if (!is_init) assertInitializedDoError(); return is_init; }; +	void connectRefreshCachedSettingsSafe(const std::string name);  public:  	enum {GPU_CLASS_MAX = 3 }; | 
