diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index fe7540a15bb247c582abe30563e3a264169cf387..6c71d3069a75f883366559eb7fa97a5a5014f3e6 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -94,7 +94,7 @@ S32 LLDrawPoolAlpha::getNumPostDeferredPasses() { //skip depth buffer filling pass when rendering impostors return 1; } - else if (gSavedSettings.getBOOL("RenderDepthOfField")) + else if (LLPipeline::RenderDepthOfField) { return 2; } @@ -606,8 +606,8 @@ void LLDrawPoolAlpha::renderEmissives(U32 mask, std::vector<LLDrawInfo*>& emissi void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass) { - BOOL batch_fullbrights = gSavedSettings.getBOOL("RenderAlphaBatchFullbrights"); - BOOL batch_emissives = gSavedSettings.getBOOL("RenderAlphaBatchEmissives"); + static const LLCachedControl<bool> batch_fullbrights(gSavedSettings, "RenderAlphaBatchFullbrights"); + static const LLCachedControl<bool> batch_emissives(gSavedSettings, "RenderAlphaBatchEmissives"); BOOL initialized_lighting = FALSE; BOOL light_enabled = TRUE; diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp index d68a4dba10da9df943bb52d130b7c4914ab99613..25b4b03af67b86f6ca5d2e55c756ffb5e17bfcd4 100644 --- a/indra/newview/lldrawpoolterrain.cpp +++ b/indra/newview/lldrawpoolterrain.cpp @@ -213,7 +213,8 @@ void LLDrawPoolTerrain::render(S32 pass) } // Special-case for land ownership feedback - if (gSavedSettings.getBOOL("ShowParcelOwners")) + static const LLCachedControl<bool> show_parcel_owners(gSavedSettings, "ShowParcelOwners"); + if (show_parcel_owners) { hilightParcelOwners(false); } @@ -249,7 +250,8 @@ void LLDrawPoolTerrain::renderDeferred(S32 pass) renderFullShader(); // Special-case for land ownership feedback - if (gSavedSettings.getBOOL("ShowParcelOwners")) + static const LLCachedControl<bool> show_parcel_owners(gSavedSettings, "ShowParcelOwners"); + if (show_parcel_owners) { hilightParcelOwners(true); } diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp index 073adfb627ae16cc3e7d73f60d8f33fce330a29c..dc1a1cc91fbef22aea9de69b246cd7679c5b3a65 100644 --- a/indra/newview/lldrawpoolwater.cpp +++ b/indra/newview/lldrawpoolwater.cpp @@ -767,9 +767,11 @@ void LLDrawPoolWater::shade() edge_shader = &gWaterEdgeProgram; } + static const LLCachedControl<bool> render_water_mip_normal(gSavedSettings, "RenderWaterMipNormal"); + if (mWaterNormp[0]) { - if (gSavedSettings.getBOOL("RenderWaterMipNormal")) + if (render_water_mip_normal) { mWaterNormp[0]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC); } @@ -781,7 +783,7 @@ void LLDrawPoolWater::shade() if (mWaterNormp[1]) { - if (gSavedSettings.getBOOL("RenderWaterMipNormal")) + if (render_water_mip_normal) { mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC); } diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp index a292cbb0de523cbfbbe13099f766ab75481e0bc1..107b65b7db3f0293043142ee483c75d1fc20b5c0 100644 --- a/indra/newview/llsettingsvo.cpp +++ b/indra/newview/llsettingsvo.cpp @@ -650,7 +650,8 @@ void LLSettingsVOSky::updateSettings() // After some A/B comparison of relesae vs EEP, tweak to allow strength to fall below 2 // at night, for better match. (mSceneLightStrength is a divisor, so lower value means brighter // local lights) - F32 sun_dynamic_range = llmax(gSavedSettings.getF32("RenderSunDynamicRange"), 0.0001f); + static LLCachedControl<F32> render_sun_dyn_range(gSavedSettings, "RenderSunDynamicRange"); + F32 sun_dynamic_range = llmax(render_sun_dyn_range(), 0.0001f); mSceneLightStrength = 2.0f * (0.75f + sun_dynamic_range * dp); gSky.setSunAndMoonDirectionsCFR(sun_direction, moon_direction); diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 9d1d12cf9e453ff1854a79b441f4b9fc94be081d..aedf03219e2af939688e22acbee6ec1b15d61cc1 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -952,7 +952,8 @@ static bool needs_tooltip(LLSelectNode* nodep) BOOL LLToolPie::handleTooltipLand(std::string line, std::string tooltip_msg) { // Do not show hover for land unless prefs are set to allow it. - if (!gSavedSettings.getBOOL("ShowLandHoverTip")) return TRUE; + static const LLCachedControl<bool> show_land_hover_tips(gSavedSettings, "ShowLandHoverTip"); + if (!show_land_hover_tips) return TRUE; LLViewerParcelMgr::getInstance()->setHoverParcel( mHoverPick.mPosGlobal ); @@ -1322,7 +1323,8 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask) { - if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("ShowHoverTips")) return TRUE; + static const LLCachedControl<bool> show_hover_tips(gSavedSettings, "ShowHoverTips"); + if (!show_hover_tips) return TRUE; if (!mHoverPick.isValid()) return TRUE; LLViewerObject* hover_object = mHoverPick.getObject(); diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp index 6cd998e40812224c1634a0b9aa714b107a26d72e..7e5b8797a7aafdc1d0788fc27e3e8d7ab82e627d 100644 --- a/indra/newview/lltracker.cpp +++ b/indra/newview/lltracker.cpp @@ -110,7 +110,8 @@ void LLTracker::stopTracking(bool clear_ui) // static virtual void LLTracker::drawHUDArrow() { - if (!gSavedSettings.getBOOL("RenderTrackerBeacon")) return; + static const LLCachedControl<bool> render_tracker_beacon(gSavedSettings, "RenderTrackerBeacon"); + if (!render_tracker_beacon) return; if (gViewerWindow->getProgressView()->getVisible()) return; @@ -160,7 +161,8 @@ void LLTracker::drawHUDArrow() // static void LLTracker::render3D() { - if (!gFloaterWorldMap || !gSavedSettings.getBOOL("RenderTrackerBeacon")) + static const LLCachedControl<bool> render_tracker_beacon(gSavedSettings, "RenderTrackerBeacon"); + if (!gFloaterWorldMap || !render_tracker_beacon) { return; } diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index bed15f15afa45e162af9452d8f0c3433e830baef..d7911aa53bd576d056db785744c05225be91674d 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -208,7 +208,7 @@ void display_update_camera() // Write some stats to LL_INFOS() void display_stats() { - F32 fps_log_freq = gSavedSettings.getF32("FPSLogFrequency"); + static const LLCachedControl<F32> fps_log_freq(gSavedSettings, "FPSLogFrequency"); if (fps_log_freq > 0.f && gRecentFPSTime.getElapsedTimeF32() >= fps_log_freq) { F32 fps = gRecentFrameCount / fps_log_freq; @@ -216,7 +216,7 @@ void display_stats() gRecentFrameCount = 0; gRecentFPSTime.reset(); } - F32 mem_log_freq = gSavedSettings.getF32("MemoryLogFrequency"); + static const LLCachedControl<F32> mem_log_freq(gSavedSettings, "MemoryLogFrequency"); if (mem_log_freq > 0.f && gRecentMemoryTime.getElapsedTimeF32() >= mem_log_freq) { gMemoryAllocated = U64Bytes(LLMemory::getCurrentRSS()); @@ -225,7 +225,7 @@ void display_stats() LLMemory::logMemoryInfo(TRUE) ; gRecentMemoryTime.reset(); } - F32 asset_storage_log_freq = gSavedSettings.getF32("AssetStorageLogFrequency"); + static const LLCachedControl<F32> asset_storage_log_freq(gSavedSettings, "AssetStorageLogFrequency"); if (asset_storage_log_freq > 0.f && gAssetStorageLogTime.getElapsedTimeF32() >= asset_storage_log_freq) { gAssetStorageLogTime.reset(); @@ -388,8 +388,11 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) LLImageGL::updateStats(gFrameTimeSeconds); - LLVOAvatar::sRenderName = gSavedSettings.getS32("AvatarNameTagMode"); - LLVOAvatar::sRenderGroupTitles = (gSavedSettings.getBOOL("NameTagShowGroupTitles") && gSavedSettings.getS32("AvatarNameTagMode")); + static const LLCachedControl<S32> av_name_tag_mode(gSavedSettings, "AvatarNameTagMode"); + static const LLCachedControl<bool> name_tag_show_grp_title(gSavedSettings, "NameTagShowGroupTitles"); + + LLVOAvatar::sRenderName = av_name_tag_mode; + LLVOAvatar::sRenderGroupTitles = (name_tag_show_grp_title && av_name_tag_mode); gPipeline.mBackfaceCull = TRUE; gFrameCount++; @@ -952,7 +955,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) { LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; - if (gSavedSettings.getBOOL("RenderDepthPrePass") && LLGLSLShader::sNoFixedFunction) + static LLCachedControl<bool> renderDepthPrePass(gSavedSettings, "RenderDepthPrePass"); + if (renderDepthPrePass && LLGLSLShader::sNoFixedFunction) { gGL.setColorMask(false, false); @@ -1113,7 +1117,8 @@ void render_hud_attachments() hud_cam.setAxes(LLVector3(1,0,0), LLVector3(0,1,0), LLVector3(0,0,1)); LLViewerCamera::updateFrustumPlanes(hud_cam, TRUE); - bool render_particles = gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_PARTICLES) && gSavedSettings.getBOOL("RenderHUDParticles"); + static LLCachedControl<bool> renderHUDParticles(gSavedSettings, "RenderHUDParticles"); + bool render_particles = (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_PARTICLES) && renderHUDParticles); //only render hud objects gPipeline.pushRenderTypeMask(); @@ -1478,7 +1483,8 @@ void render_ui_3d() } // Coordinate axes - if (gSavedSettings.getBOOL("ShowAxes")) + static LLCachedControl<bool> showAxes(gSavedSettings, "ShowAxes"); + if (showAxes) { draw_axes(); } @@ -1534,7 +1540,7 @@ void render_ui_2d() } - if (gSavedSettings.getBOOL("RenderUIBuffer")) + if (LLPipeline::RenderUIBuffer) { LLUI* ui_inst = LLUI::getInstance(); if (ui_inst->mDirty) diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index c36e6960b01b92c6f7659cead1cc3a97464ca3ef..cda676efac9fd987cfa1679609c8974b77e5a2a5 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -653,7 +653,8 @@ void LLViewerMedia::updateMedia(void *dummy_arg) LL_RECORD_BLOCK_TIME(FTM_MEDIA_UPDATE); // Enable/disable the plugin read thread - LLPluginProcessParent::setUseReadThread(gSavedSettings.getBOOL("PluginUseReadThread")); + static LLCachedControl<bool> pluginUseReadThread(gSavedSettings, "PluginUseReadThread"); + LLPluginProcessParent::setUseReadThread(pluginUseReadThread); // HACK: we always try to keep a spare running webkit plugin around to improve launch times. // 2017-04-19 Removed CP - this doesn't appear to buy us much and consumes a lot of resources so @@ -702,10 +703,10 @@ void LLViewerMedia::updateMedia(void *dummy_arg) static LLCachedControl<bool> inworld_media_enabled(gSavedSettings, "AudioStreamingMedia", true); static LLCachedControl<bool> inworld_audio_enabled(gSavedSettings, "AudioStreamingMusic", true); - U32 max_instances = gSavedSettings.getU32("PluginInstancesTotal"); - U32 max_normal = gSavedSettings.getU32("PluginInstancesNormal"); - U32 max_low = gSavedSettings.getU32("PluginInstancesLow"); - F32 max_cpu = gSavedSettings.getF32("PluginInstancesCPULimit"); + static LLCachedControl<U32> max_instances(gSavedSettings, "PluginInstancesTotal"); + static LLCachedControl<U32> max_normal(gSavedSettings, "PluginInstancesNormal"); + static LLCachedControl<U32> max_low(gSavedSettings, "PluginInstancesLow"); + static LLCachedControl<F32> max_cpu(gSavedSettings, "PluginInstancesCPULimit"); // Setting max_cpu to 0.0 disables CPU usage checking. bool check_cpu_usage = (max_cpu != 0.0f); @@ -894,7 +895,8 @@ void LLViewerMedia::updateMedia(void *dummy_arg) } } - if(gSavedSettings.getBOOL("MediaPerformanceManagerDebug")) + static LLCachedControl<bool> mediaPerformanceManager(gSavedSettings, "MediaPerformanceManagerDebug"); + if(mediaPerformanceManager) { // Give impls the same ordering as the priority list // they're already in the right order for this. @@ -2080,16 +2082,19 @@ void LLViewerMediaImpl::updateVolume() if (mProximityCamera > 0) { - if (mProximityCamera > gSavedSettings.getF32("MediaRollOffMax")) + static LLCachedControl<F32> sMediaRollOffMax(gSavedSettings, "MediaRollOffMax", 30.f); + static LLCachedControl<F32> sMediaRollOffMin(gSavedSettings, "MediaRollOffMin", 5.f); + static LLCachedControl<F32> sMediaRollOffRate(gSavedSettings, "MediaRollOffRate", 0.125f); + if (mProximityCamera > sMediaRollOffMax) { volume = 0; } - else if (mProximityCamera > gSavedSettings.getF32("MediaRollOffMin")) + else if (mProximityCamera > sMediaRollOffMin) { // attenuated_volume = 1 / (roll_off_rate * (d - min))^2 // the +1 is there so that for distance 0 the volume stays the same - F64 adjusted_distance = mProximityCamera - gSavedSettings.getF32("MediaRollOffMin"); - F64 attenuation = 1.0 + (gSavedSettings.getF32("MediaRollOffRate") * adjusted_distance); + F64 adjusted_distance = mProximityCamera - sMediaRollOffMin; + F64 attenuation = 1.0 + (sMediaRollOffRate * adjusted_distance); attenuation = 1.0 / (attenuation * attenuation); // the attenuation multiplier should never be more than one since that would increase volume volume = volume * llmin(1.0, attenuation); @@ -2337,7 +2342,7 @@ void LLViewerMediaImpl::updateJavascriptObject() if ( mMediaSource ) { // flag to expose this information to internal browser or not. - bool enable = gSavedSettings.getBOOL("BrowserEnableJSObject"); + static LLCachedControl<bool> enable(gSavedSettings, "BrowserEnableJSObject", false); if(!enable) { diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 37617c8687f08023995574b0b3ff90b3f4636eb6..76565031e8f89d4da2a211b21165394b1af8dd01 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -871,15 +871,22 @@ static LLTrace::BlockTimerStatHandle FTM_IDLE_COPY("Idle Copy"); void LLViewerObjectList::update(LLAgent &agent) { + static LLCachedControl<bool> cc_velocity_interpolate(gSavedSettings, "VelocityInterpolate"); + static LLCachedControl<bool> cc_ping_interpolate(gSavedSettings, "PingInterpolate"); + static LLCachedControl<F32> cc_interpolation_time(gSavedSettings, "InterpolationTime"); + static LLCachedControl<F32> cc_ping_region_cross_interp(gSavedSettings, "RegionCrossingInterpolationTime"); + static LLCachedControl<F32> cc_interpolation_phase_out(gSavedSettings, "InterpolationPhaseOut"); + static LLCachedControl<bool> cc_animate_textures(gSavedSettings, "AnimateTextures"); + // Update globals - LLViewerObject::setVelocityInterpolate( gSavedSettings.getBOOL("VelocityInterpolate") ); - LLViewerObject::setPingInterpolate( gSavedSettings.getBOOL("PingInterpolate") ); + LLViewerObject::setVelocityInterpolate( cc_velocity_interpolate ); + LLViewerObject::setPingInterpolate( cc_ping_interpolate ); - F32 interp_time = gSavedSettings.getF32("InterpolationTime"); - F32 phase_out_time = gSavedSettings.getF32("InterpolationPhaseOut"); - F32 region_interp_time = llclamp(gSavedSettings.getF32("RegionCrossingInterpolationTime"), 0.5f, 5.f); - if (interp_time < 0.0 || - phase_out_time < 0.0 || + F32 interp_time = cc_interpolation_time; + F32 phase_out_time = cc_interpolation_phase_out; + F32 region_interp_time = llclamp(cc_ping_region_cross_interp(), 0.5f, 5.f); + if (interp_time < 0.0f || + phase_out_time < 0.0f || phase_out_time > interp_time) { LL_WARNS() << "Invalid values for InterpolationTime or InterpolationPhaseOut, resetting to defaults" << LL_ENDL; @@ -890,7 +897,7 @@ void LLViewerObjectList::update(LLAgent &agent) LLViewerObject::setMaxUpdateInterpolationTime( phase_out_time ); LLViewerObject::setMaxRegionCrossingInterpolationTime(region_interp_time); - gAnimateTextures = gSavedSettings.getBOOL("AnimateTextures"); + gAnimateTextures = cc_animate_textures; // update global timer F32 last_time = gFrameTimeSeconds; @@ -950,7 +957,8 @@ void LLViewerObjectList::update(LLAgent &agent) std::vector<LLViewerObject*>::iterator idle_end = idle_list.begin()+idle_count; - if (gSavedSettings.getBOOL("FreezeTime")) + static const LLCachedControl<bool> freezeTime(gSavedSettings, "FreezeTime"); + if (freezeTime) { for (std::vector<LLViewerObject*>::iterator iter = idle_list.begin(); diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp index 7c3dd00e1a1ad88bf5b830461e8b4950f479a8bd..89124ff207faaf53069556f783ba813668f941fc 100644 --- a/indra/newview/llviewerparceloverlay.cpp +++ b/indra/newview/llviewerparceloverlay.cpp @@ -437,7 +437,8 @@ void LLViewerParcelOverlay::uncompressLandOverlay(S32 chunk, U8 *packed_overlay) void LLViewerParcelOverlay::updatePropertyLines() { - if (!gSavedSettings.getBOOL("ShowPropertyLines")) + static LLCachedControl<bool> show_property_lines(gSavedSettings, "ShowPropertyLines"); + if (!show_property_lines) return; S32 row, col; @@ -876,7 +877,8 @@ void LLViewerParcelOverlay::idleUpdate(bool force_update) S32 LLViewerParcelOverlay::renderPropertyLines () { - if (!gSavedSettings.getBOOL("ShowPropertyLines")) + static LLCachedControl<bool> show_property_lines(gSavedSettings, "ShowPropertyLines"); + if (!show_property_lines) { return 0; } diff --git a/indra/newview/llviewertexlayer.cpp b/indra/newview/llviewertexlayer.cpp index 7f7d190b92f7f773d39c48055dbd833eb174619a..2a611abd6c910268f56c1ad291a454d187200001 100644 --- a/indra/newview/llviewertexlayer.cpp +++ b/indra/newview/llviewertexlayer.cpp @@ -188,7 +188,7 @@ BOOL LLViewerTexLayerSetBuffer::isReadyToUpdate() const // Update if we've hit a timeout. Unlike for uploads, we can make this timeout fairly small // since render unnecessarily doesn't cost much. - const U32 texture_timeout = gSavedSettings.getU32("AvatarBakedLocalTextureUpdateTimeout"); + static const LLCachedControl<U32> texture_timeout(gSavedSettings, "AvatarBakedLocalTextureUpdateTimeout"); if (texture_timeout != 0) { // If we hit our timeout and have textures available at even lower resolution, then update. diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 058f177fa3fa3e311717b7b9aa5a30490a7b8db9..4152e269b712ab1d829d2f4ed0b1b08163cbd43f 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -2207,7 +2207,7 @@ bool LLViewerFetchedTexture::updateFetch() c = mComponents; } - const U32 override_tex_discard_level = gSavedSettings.getU32("TextureDiscardLevel"); + static const LLCachedControl<U32> override_tex_discard_level(gSavedSettings, "TextureDiscardLevel"); if (override_tex_discard_level != 0) { desired_discard = override_tex_discard_level; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index c20a12186482a3dbc425eff3fe2c8a00ba965d0f..f1bf07d0d8973e8b99760fa6513c2bd615cc45ef 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -380,7 +380,8 @@ class LLDebugText clearText(); - if (gSavedSettings.getBOOL("DebugShowTime")) + static LLCachedControl<bool> debugShowTime(gSavedSettings, "DebugShowTime"); + if (debugShowTime) { { const U32 y_inc2 = 15; @@ -401,7 +402,8 @@ class LLDebugText } } - if (gSavedSettings.getBOOL("DebugShowMemory")) + static LLCachedControl<bool> debugShowMemory(gSavedSettings, "DebugShowMemory"); + if (debugShowMemory) { addText(xpos, ypos, STRINGIZE("Memory: " << (LLMemory::getCurrentRSS() / 1024) << " (KB)")); @@ -494,7 +496,8 @@ class LLDebugText ypos += y_inc; }*/ - if (gSavedSettings.getBOOL("DebugShowRenderInfo")) + static LLCachedControl<bool> debugShowRenderInfo(gSavedSettings, "DebugShowRenderInfo"); + if (debugShowRenderInfo) { LLTrace::Recording& last_frame_recording = LLTrace::get_frame_recording().getLastRecording(); @@ -676,7 +679,8 @@ class LLDebugText LLVertexBuffer::sSetCount = LLImageGL::sUniqueCount = gPipeline.mNumVisibleNodes = LLPipeline::sVisibleLightCount = 0; } - if (gSavedSettings.getBOOL("DebugShowAvatarRenderInfo")) + static LLCachedControl<bool> debugShowAvatarRenderInfo(gSavedSettings, "DebugShowAvatarRenderInfo"); + if (debugShowAvatarRenderInfo) { std::map<std::string, LLVOAvatar*> sorted_avs; @@ -711,7 +715,8 @@ class LLDebugText av_iter++; } } - if (gSavedSettings.getBOOL("DebugShowRenderMatrices")) + static LLCachedControl<bool> debugShowRenderMatrices(gSavedSettings, "DebugShowRenderMatrices"); + if (debugShowRenderMatrices) { addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLProjection[12], gGLProjection[13], gGLProjection[14], gGLProjection[15])); ypos += y_inc; @@ -744,8 +749,8 @@ class LLDebugText addText(xpos, ypos, "View Matrix"); ypos += y_inc; } - // disable use of glReadPixels which messes up nVidia nSight graphics debugging - if (gSavedSettings.getBOOL("DebugShowColor") && !LLRender::sNsightDebugSupport) + static LLCachedControl<bool> debugShowColor(gSavedSettings, "DebugShowColor"); + if (debugShowColor && !LLRender::sNsightDebugSupport) { U8 color[4]; LLCoordGL coord = gViewerWindow->getCurrentMouse(); @@ -832,7 +837,8 @@ class LLDebugText } } - if (gSavedSettings.getBOOL("DebugShowTextureInfo")) + static LLCachedControl<bool> debugShowTextureInfo(gSavedSettings, "DebugShowTextureInfo"); + if (debugShowTextureInfo) { LLViewerObject* objectp = NULL ; @@ -2546,13 +2552,14 @@ void LLViewerWindow::draw() //S32 screen_x, screen_y; - if (!gSavedSettings.getBOOL("RenderUIBuffer")) + if (!LLPipeline::RenderUIBuffer) { LLUI::getInstance()->mDirtyRect = getWindowRectScaled(); } // HACK for timecode debugging - if (gSavedSettings.getBOOL("DisplayTimecode")) + static const LLCachedControl<bool> display_timecode(gSavedSettings, "DisplayTimecode"); + if (display_timecode) { // draw timecode block std::string text; @@ -3127,11 +3134,13 @@ void LLViewerWindow::updateUI() if (gLoggedInTime.getStarted()) { - if (gLoggedInTime.getElapsedTimeF32() > gSavedSettings.getF32("DestinationGuideHintTimeout")) + static const LLCachedControl<F32> dest_hint_timeout(gSavedSettings, "DestinationGuideHintTimeout"); + if (gLoggedInTime.getElapsedTimeF32() > dest_hint_timeout) { LLFirstUse::notUsingDestinationGuide(); } - if (gLoggedInTime.getElapsedTimeF32() > gSavedSettings.getF32("SidePanelHintTimeout")) + static const LLCachedControl<F32> sidepanel_hint_timeout(gSavedSettings, "SidePanelHintTimeout"); + if (gLoggedInTime.getElapsedTimeF32() > sidepanel_hint_timeout) { LLFirstUse::notUsingSidePanel(); } @@ -3520,7 +3529,7 @@ void LLViewerWindow::updateLayout() && tool != gToolNull && tool != LLToolCompInspect::getInstance() && tool != LLToolDragAndDrop::getInstance() - && !gSavedSettings.getBOOL("FreezeTime")) + && !LLPipeline::FreezeTime) { // Suppress the toolbox view if our source tool was the pie tool, // and we've overridden to something else. @@ -3587,7 +3596,8 @@ void LLViewerWindow::updateMouseDelta() LLVector2 mouse_vel; - if (gSavedSettings.getBOOL("MouseSmooth")) + static const LLCachedControl<bool> mouseSmooth(gSavedSettings, "MouseSmooth"); + if (mouseSmooth) { static F32 fdx = 0.f; static F32 fdy = 0.f; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index a3a86e2232619e8514047ebd13d30846be229584..8eaaa08a2e8d1c1b32be778c56771398690118e5 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2562,7 +2562,8 @@ void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled) // Don't render the user's own voice visualizer when in mouselook, or when opening the mic is disabled. if(isSelf()) { - if(gAgentCamera.cameraMouselook() || gSavedSettings.getBOOL("VoiceDisableMic")) + static const LLCachedControl<bool> voice_disable_mic(gSavedSettings, "VoiceDisableMic"); + if(gAgentCamera.cameraMouselook() || voice_disable_mic) { render_visualizer = false; } @@ -3048,10 +3049,10 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) // draw if we're specifically hiding our own name. if (isSelf()) { + static const LLCachedControl<bool> render_name_show_self(gSavedSettings, "RenderNameShowSelf"); render_name = render_name && !gAgentCamera.cameraMouselook() - && (visible_chat || (gSavedSettings.getBOOL("RenderNameShowSelf") - && gSavedSettings.getS32("AvatarNameTagMode") )); + && (visible_chat || (render_name_show_self && sRenderName)); } if ( !render_name ) @@ -5781,7 +5782,7 @@ void LLVOAvatar::resetAnimations() // animations. LLUUID LLVOAvatar::remapMotionID(const LLUUID& id) { - BOOL use_new_walk_run = gSavedSettings.getBOOL("UseNewWalkRun"); + static const LLCachedControl<bool> use_new_walk_run(gSavedSettings, "UseNewWalkRun"); LLUUID result = id; // start special case female walk for female avatars @@ -7988,8 +7989,9 @@ BOOL LLVOAvatar::isFullyLoaded() const bool LLVOAvatar::isTooComplex() const { + static const LLCachedControl<bool> always_render_friends(gSavedSettings, "AlwaysRenderFriends", false); bool too_complex; - bool render_friend = (LLAvatarTracker::instance().isBuddy(getID()) && gSavedSettings.getBOOL("AlwaysRenderFriends")); + bool render_friend = (always_render_friends && LLAvatarTracker::instance().isBuddy(getID())); if (isSelf() || render_friend || mVisuallyMuteSetting == AV_ALWAYS_RENDER) { diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 49e6c48a075cbde3a132bf5b262b6bf56baf87ee..61ad196f3ba76ad2abbb01e891a3fd339157901c 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -1532,7 +1532,7 @@ BOOL LLVOAvatarSelf::isLocalTextureDataAvailable(const LLViewerTexLayerSet* laye //----------------------------------------------------------------------------- BOOL LLVOAvatarSelf::isLocalTextureDataFinal(const LLViewerTexLayerSet* layerset) const { - const U32 desired_tex_discard_level = gSavedSettings.getU32("TextureDiscardLevel"); + static const LLCachedControl<U32> desired_tex_discard_level(gSavedSettings, "TextureDiscardLevel"); // const U32 desired_tex_discard_level = 0; // hack to not bake textures on lower discard levels. for (U32 i = 0; i < mBakedTextureDatas.size(); i++) @@ -1567,7 +1567,7 @@ BOOL LLVOAvatarSelf::isLocalTextureDataFinal(const LLViewerTexLayerSet* layerset BOOL LLVOAvatarSelf::isAllLocalTextureDataFinal() const { - const U32 desired_tex_discard_level = gSavedSettings.getU32("TextureDiscardLevel"); + static const LLCachedControl<U32> desired_tex_discard_level(gSavedSettings, "TextureDiscardLevel"); // const U32 desired_tex_discard_level = 0; // hack to not bake textures on lower discard levels for (U32 i = 0; i < mBakedTextureDatas.size(); i++) @@ -2257,7 +2257,7 @@ const std::string LLVOAvatarSelf::debugDumpLocalTextureDataInfo(const LLViewerTe const std::string LLVOAvatarSelf::debugDumpAllLocalTextureDataInfo() const { std::string text; - const U32 override_tex_discard_level = gSavedSettings.getU32("TextureDiscardLevel"); + static const LLCachedControl<U32> override_tex_discard_level(gSavedSettings, "TextureDiscardLevel"); for (U32 i = 0; i < mBakedTextureDatas.size(); i++) {