diff options
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
| -rw-r--r-- | indra/newview/llviewercontrol.cpp | 494 | 
1 files changed, 245 insertions, 249 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 410d6a9d55..efed045b91 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -1,4 +1,4 @@ -/**  +/**   * @file llviewercontrol.cpp   * @brief Viewer configuration   * @author Richard Nelson @@ -6,21 +6,21 @@   * $LicenseInfo:firstyear=2001&license=viewerlgpl$   * Second Life Viewer Source Code   * Copyright (C) 2010, Linden Research, Inc. - *  + *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public   * License as published by the Free Software Foundation;   * version 2.1 of the License only. - *  + *   * This library is distributed in the hope that it will be useful,   * but WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   * Lesser General Public License for more details. - *  + *   * You should have received a copy of the GNU Lesser General Public   * License along with this library; if not, write to the Free Software   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  + *   * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA   * $/LicenseInfo$   */ @@ -30,7 +30,7 @@  #include "llviewercontrol.h"  // Library includes -#include "llwindow.h"	// getGamma() +#include "llwindow.h"   // getGamma()  // For Listeners  #include "llaudioengine.h" @@ -81,15 +81,15 @@  #include <boost/algorithm/string.hpp>  #ifdef TOGGLE_HACKED_GODLIKE_VIEWER -bool 				gHackGodmode = false; +bool                gHackGodmode = false;  #endif  // Should you contemplate changing the name "Global", please first grep for  // that string literal. There are at least a couple other places in the C++  // code that assume the LLControlGroup named "Global" is gSavedSettings. -LLControlGroup gSavedSettings("Global");	// saved at end of session +LLControlGroup gSavedSettings("Global");    // saved at end of session  LLControlGroup gSavedPerAccountSettings("PerAccount"); // saved at end of session -LLControlGroup gCrashSettings("CrashSettings");	// saved at end of session +LLControlGroup gCrashSettings("CrashSettings"); // saved at end of session  LLControlGroup gWarningSettings("Warnings"); // persists ignored dialogs/warnings  std::string gLastRunVersion; @@ -102,8 +102,8 @@ extern bool gDebugGL;  static bool handleRenderAvatarMouselookChanged(const LLSD& newvalue)  { -	LLVOAvatar::sVisibleInFirstPerson = newvalue.asBoolean(); -	return true; +    LLVOAvatar::sVisibleInFirstPerson = newvalue.asBoolean(); +    return true;  }  static bool handleRenderFarClipChanged(const LLSD& newvalue) @@ -111,9 +111,9 @@ static bool handleRenderFarClipChanged(const LLSD& newvalue)      if (LLStartUp::getStartupState() >= STATE_STARTED)      {          F32 draw_distance = (F32)newvalue.asReal(); -	gAgentCamera.mDrawDistance = draw_distance; -	LLWorld::getInstance()->setLandFarClip(draw_distance); -	return true; +    gAgentCamera.mDrawDistance = draw_distance; +    LLWorld::getInstance()->setLandFarClip(draw_distance); +    return true;      }      return false;  } @@ -125,7 +125,7 @@ static bool handleTerrainScaleChanged(const LLSD& newvalue)      {          LLDrawPoolTerrain::sDetailScale = F32(1.0 / scale);      } -	return true; +    return true;  }  static bool handlePBRTerrainScaleChanged(const LLSD& newvalue) @@ -135,7 +135,7 @@ static bool handlePBRTerrainScaleChanged(const LLSD& newvalue)      {          LLDrawPoolTerrain::sPBRDetailScale = F32(1.0 / scale);      } -	return true; +    return true;  }  static bool handleDebugAvatarJointsChanged(const LLSD& newvalue) @@ -147,19 +147,19 @@ static bool handleDebugAvatarJointsChanged(const LLSD& newvalue)  static bool handleAvatarHoverOffsetChanged(const LLSD& newvalue)  { -	if (isAgentAvatarValid()) -	{ -		gAgentAvatarp->setHoverIfRegionEnabled(); -	} -	return true; +    if (isAgentAvatarValid()) +    { +        gAgentAvatarp->setHoverIfRegionEnabled(); +    } +    return true;  }  static bool handleSetShaderChanged(const LLSD& newvalue)  { -	// changing shader level may invalidate existing cached bump maps, as the shader type determines the format of the bump map it expects - clear and repopulate the bump cache -	gBumpImageList.destroyGL(); -	gBumpImageList.restoreGL(); +    // changing shader level may invalidate existing cached bump maps, as the shader type determines the format of the bump map it expects - clear and repopulate the bump cache +    gBumpImageList.destroyGL(); +    gBumpImageList.restoreGL();      if (gPipeline.isInit())      { @@ -167,9 +167,9 @@ static bool handleSetShaderChanged(const LLSD& newvalue)          LLPipeline::refreshCachedSettings();      } -	// else, leave terrain detail as is -	LLViewerShaderMgr::instance()->setShaders(); -	return true; +    // else, leave terrain detail as is +    LLViewerShaderMgr::instance()->setShaders(); +    return true;  }  static bool handleRenderPerfTestChanged(const LLSD& newvalue) @@ -186,10 +186,10 @@ static bool handleRenderPerfTestChanged(const LLSD& newvalue)                                                                           LLPipeline::RENDER_TYPE_HUD,                                                                           LLPipeline::RENDER_TYPE_CLOUDS,                                                                           LLPipeline::RENDER_TYPE_HUD_PARTICLES, -                                                                         LLPipeline::END_RENDER_TYPES);  +                                                                         LLPipeline::END_RENDER_TYPES);                 gPipeline.setRenderDebugFeatureControl(LLPipeline::RENDER_DEBUG_FEATURE_UI, false);         } -       else  +       else         {                 gPipeline.setRenderTypeMask(LLPipeline::RENDER_TYPE_WL_SKY,                                                                           LLPipeline::RENDER_TYPE_TERRAIN, @@ -209,55 +209,55 @@ static bool handleRenderPerfTestChanged(const LLSD& newvalue)  bool handleRenderTransparentWaterChanged(const LLSD& newvalue)  { -	if (gPipeline.isInit()) -	{ -		gPipeline.updateRenderTransparentWater(); -		gPipeline.releaseGLBuffers(); -		gPipeline.createGLBuffers(); -		LLViewerShaderMgr::instance()->setShaders(); -	} -	LLWorld::getInstance()->updateWaterObjects(); -	return true; +    if (gPipeline.isInit()) +    { +        gPipeline.updateRenderTransparentWater(); +        gPipeline.releaseGLBuffers(); +        gPipeline.createGLBuffers(); +        LLViewerShaderMgr::instance()->setShaders(); +    } +    LLWorld::getInstance()->updateWaterObjects(); +    return true;  }  static bool handleShadowsResized(const LLSD& newvalue)  { -	gPipeline.requestResizeShadowTexture(); -	return true; +    gPipeline.requestResizeShadowTexture(); +    return true;  }  static bool handleWindowResized(const LLSD& newvalue)  { -	gPipeline.requestResizeScreenTexture(); -	return true; +    gPipeline.requestResizeScreenTexture(); +    return true;  }  static bool handleReleaseGLBufferChanged(const LLSD& newvalue)  { -	if (gPipeline.isInit()) -	{ -		gPipeline.releaseGLBuffers(); -		gPipeline.createGLBuffers(); -	} -	return true; +    if (gPipeline.isInit()) +    { +        gPipeline.releaseGLBuffers(); +        gPipeline.createGLBuffers(); +    } +    return true;  }  static bool handleLUTBufferChanged(const LLSD& newvalue)  { -	if (gPipeline.isInit()) -	{ -		gPipeline.releaseLUTBuffers(); -		gPipeline.createLUTBuffers(); -	} -	return true; +    if (gPipeline.isInit()) +    { +        gPipeline.releaseLUTBuffers(); +        gPipeline.createLUTBuffers(); +    } +    return true;  }  static bool handleAnisotropicChanged(const LLSD& newvalue)  { -	LLImageGL::sGlobalUseAnisotropic = newvalue.asBoolean(); -	LLImageGL::dirtyTexOptions(); -	return true; +    LLImageGL::sGlobalUseAnisotropic = newvalue.asBoolean(); +    LLImageGL::dirtyTexOptions(); +    return true;  }  static bool handleVSyncChanged(const LLSD& newvalue) @@ -276,62 +276,62 @@ static bool handleVSyncChanged(const LLSD& newvalue)  static bool handleVolumeLODChanged(const LLSD& newvalue)  { -	LLVOVolume::sLODFactor = llclamp((F32) newvalue.asReal(), 0.01f, MAX_LOD_FACTOR); -	LLVOVolume::sDistanceFactor = 1.f-LLVOVolume::sLODFactor * 0.1f; -	return true; +    LLVOVolume::sLODFactor = llclamp((F32) newvalue.asReal(), 0.01f, MAX_LOD_FACTOR); +    LLVOVolume::sDistanceFactor = 1.f-LLVOVolume::sLODFactor * 0.1f; +    return true;  }  static bool handleAvatarLODChanged(const LLSD& newvalue)  { -	LLVOAvatar::sLODFactor = llclamp((F32) newvalue.asReal(), 0.f, MAX_AVATAR_LOD_FACTOR); -	return true; +    LLVOAvatar::sLODFactor = llclamp((F32) newvalue.asReal(), 0.f, MAX_AVATAR_LOD_FACTOR); +    return true;  }  static bool handleAvatarPhysicsLODChanged(const LLSD& newvalue)  { -	LLVOAvatar::sPhysicsLODFactor = llclamp((F32) newvalue.asReal(), 0.f, MAX_AVATAR_LOD_FACTOR); -	return true; +    LLVOAvatar::sPhysicsLODFactor = llclamp((F32) newvalue.asReal(), 0.f, MAX_AVATAR_LOD_FACTOR); +    return true;  }  static bool handleTerrainLODChanged(const LLSD& newvalue)  { -	LLVOSurfacePatch::sLODFactor = (F32)newvalue.asReal(); -	//sqaure lod factor to get exponential range of [0,4] and keep -	//a value of 1 in the middle of the detail slider for consistency -	//with other detail sliders (see panel_preferences_graphics1.xml) -	LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; -	return true; +    LLVOSurfacePatch::sLODFactor = (F32)newvalue.asReal(); +    //sqaure lod factor to get exponential range of [0,4] and keep +    //a value of 1 in the middle of the detail slider for consistency +    //with other detail sliders (see panel_preferences_graphics1.xml) +    LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; +    return true;  }  static bool handleTreeLODChanged(const LLSD& newvalue)  { -	LLVOTree::sTreeFactor = (F32) newvalue.asReal(); -	return true; +    LLVOTree::sTreeFactor = (F32) newvalue.asReal(); +    return true;  }  static bool handleFlexLODChanged(const LLSD& newvalue)  { -	LLVolumeImplFlexible::sUpdateFactor = (F32) newvalue.asReal(); -	return true; +    LLVolumeImplFlexible::sUpdateFactor = (F32) newvalue.asReal(); +    return true;  }  static bool handleGammaChanged(const LLSD& newvalue)  { -	F32 gamma = (F32) newvalue.asReal(); -	if (gamma == 0.0f) -	{ -		gamma = 1.0f; // restore normal gamma -	} -	if (gViewerWindow && gViewerWindow->getWindow() && gamma != gViewerWindow->getWindow()->getGamma()) -	{ -		// Only save it if it's changed -		if (!gViewerWindow->getWindow()->setGamma(gamma)) -		{ -			LL_WARNS() << "setGamma failed!" << LL_ENDL; -		} -	} +    F32 gamma = (F32) newvalue.asReal(); +    if (gamma == 0.0f) +    { +        gamma = 1.0f; // restore normal gamma +    } +    if (gViewerWindow && gViewerWindow->getWindow() && gamma != gViewerWindow->getWindow()->getGamma()) +    { +        // Only save it if it's changed +        if (!gViewerWindow->getWindow()->setGamma(gamma)) +        { +            LL_WARNS() << "setGamma failed!" << LL_ENDL; +        } +    } -	return true; +    return true;  }  const F32 MAX_USER_FOG_RATIO = 10.f; @@ -339,93 +339,84 @@ const F32 MIN_USER_FOG_RATIO = 0.5f;  static bool handleFogRatioChanged(const LLSD& newvalue)  { -	F32 fog_ratio = llmax(MIN_USER_FOG_RATIO, llmin((F32) newvalue.asReal(), MAX_USER_FOG_RATIO)); -	gSky.setFogRatio(fog_ratio); -	return true; +    F32 fog_ratio = llmax(MIN_USER_FOG_RATIO, llmin((F32) newvalue.asReal(), MAX_USER_FOG_RATIO)); +    gSky.setFogRatio(fog_ratio); +    return true;  }  static bool handleMaxPartCountChanged(const LLSD& newvalue)  { -	LLViewerPartSim::setMaxPartCount(newvalue.asInteger()); -	return true; +    LLViewerPartSim::setMaxPartCount(newvalue.asInteger()); +    return true;  }  static bool handleChatFontSizeChanged(const LLSD& newvalue)  { -	if(gConsole) -	{ -		gConsole->setFontSize(newvalue.asInteger()); -	} -	return true; -} - -static bool handleChatPersistTimeChanged(const LLSD& newvalue) -{ -	if(gConsole) -	{ -		gConsole->setLinePersistTime((F32) newvalue.asReal()); -	} -	return true; +    if(gConsole) +    { +        gConsole->setFontSize(newvalue.asInteger()); +    } +    return true;  }  static bool handleConsoleMaxLinesChanged(const LLSD& newvalue)  { -	if(gConsole) -	{ -		gConsole->setMaxLines(newvalue.asInteger()); -	} -	return true; +    if(gConsole) +    { +        gConsole->setMaxLines(newvalue.asInteger()); +    } +    return true;  }  static void handleAudioVolumeChanged(const LLSD& newvalue)  { -	audio_update_volume(true); +    audio_update_volume(true);  }  static bool handleJoystickChanged(const LLSD& newvalue)  { -	LLViewerJoystick::getInstance()->setCameraNeedsUpdate(true); -	return true; +    LLViewerJoystick::getInstance()->setCameraNeedsUpdate(true); +    return true;  }  static bool handleUseOcclusionChanged(const LLSD& newvalue)  { -	LLPipeline::sUseOcclusion = (newvalue.asBoolean() -		&& LLFeatureManager::getInstance()->isFeatureAvailable("UseOcclusion") && !gUseWireframe) ? 2 : 0; -	return true; +    LLPipeline::sUseOcclusion = (newvalue.asBoolean() +        && LLFeatureManager::getInstance()->isFeatureAvailable("UseOcclusion") && !gUseWireframe) ? 2 : 0; +    return true;  }  static bool handleUploadBakedTexOldChanged(const LLSD& newvalue)  { -	LLPipeline::sForceOldBakedUpload = newvalue.asBoolean(); -	return true; +    LLPipeline::sForceOldBakedUpload = newvalue.asBoolean(); +    return true;  }  static bool handleWLSkyDetailChanged(const LLSD&)  { -	if (gSky.mVOWLSkyp.notNull()) -	{ -		gSky.mVOWLSkyp->updateGeometry(gSky.mVOWLSkyp->mDrawable); -	} -	return true; +    if (gSky.mVOWLSkyp.notNull()) +    { +        gSky.mVOWLSkyp->updateGeometry(gSky.mVOWLSkyp->mDrawable); +    } +    return true;  }  static bool handleRepartition(const LLSD&)  { -	if (gPipeline.isInit()) -	{ -		gOctreeMaxCapacity = gSavedSettings.getU32("OctreeMaxNodeCapacity"); -		gOctreeMinSize = gSavedSettings.getF32("OctreeMinimumNodeSize"); -		gObjectList.repartitionObjects(); -	} -	return true; +    if (gPipeline.isInit()) +    { +        gOctreeMaxCapacity = gSavedSettings.getU32("OctreeMaxNodeCapacity"); +        gOctreeMinSize = gSavedSettings.getF32("OctreeMinimumNodeSize"); +        gObjectList.repartitionObjects(); +    } +    return true;  }  static bool handleRenderDynamicLODChanged(const LLSD& newvalue)  { -	LLPipeline::sDynamicLOD = newvalue.asBoolean(); -	return true; +    LLPipeline::sDynamicLOD = newvalue.asBoolean(); +    return true;  }  static bool handleReflectionProbeDetailChanged(const LLSD& newvalue) @@ -456,162 +447,162 @@ static bool handleHeroProbeResolutionChanged(const LLSD &newvalue)  static bool handleRenderDebugPipelineChanged(const LLSD& newvalue)  { -	gDebugPipeline = newvalue.asBoolean(); -	return true; +    gDebugPipeline = newvalue.asBoolean(); +    return true;  }  static bool handleRenderResolutionDivisorChanged(const LLSD&)  { -	gResizeScreenTexture = true; -	return true; +    gResizeScreenTexture = true; +    return true;  }  static bool handleDebugViewsChanged(const LLSD& newvalue)  { -	LLView::sDebugRects = newvalue.asBoolean(); -	return true; +    LLView::sDebugRects = newvalue.asBoolean(); +    return true;  }  static bool handleLogFileChanged(const LLSD& newvalue)  { -	std::string log_filename = newvalue.asString(); -	LLFile::remove(log_filename); -	LLError::logToFile(log_filename); +    std::string log_filename = newvalue.asString(); +    LLFile::remove(log_filename); +    LLError::logToFile(log_filename);      LL_INFOS() << "Logging switched to " << log_filename << LL_ENDL; -	return true; +    return true;  }  bool handleHideGroupTitleChanged(const LLSD& newvalue)  { -	gAgent.setHideGroupTitle(newvalue); -	return true; +    gAgent.setHideGroupTitle(newvalue); +    return true;  }  bool handleEffectColorChanged(const LLSD& newvalue)  { -	gAgent.setEffectColor(LLColor4(newvalue)); -	return true; +    gAgent.setEffectColor(LLColor4(newvalue)); +    return true;  }  bool handleHighResSnapshotChanged(const LLSD& newvalue)  { -	// High Res Snapshot active, must uncheck RenderUIInSnapshot -	if (newvalue.asBoolean()) -	{ -		gSavedSettings.setBOOL( "RenderUIInSnapshot", false); -	} -	return true; +    // High Res Snapshot active, must uncheck RenderUIInSnapshot +    if (newvalue.asBoolean()) +    { +        gSavedSettings.setBOOL( "RenderUIInSnapshot", false); +    } +    return true;  }  bool handleVoiceClientPrefsChanged(const LLSD& newvalue)  { -	if (LLVoiceClient::instanceExists()) -	{ -		LLVoiceClient::getInstance()->updateSettings(); -	} -	return true; +    if (LLVoiceClient::instanceExists()) +    { +        LLVoiceClient::getInstance()->updateSettings(); +    } +    return true;  }  bool handleVelocityInterpolate(const LLSD& newvalue)  { -	LLMessageSystem* msg = gMessageSystem; -	if ( newvalue.asBoolean() ) -	{ -		msg->newMessageFast(_PREHASH_VelocityInterpolateOn); -		msg->nextBlockFast(_PREHASH_AgentData); -		msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -		msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -		gAgent.sendReliableMessage(); -		LL_INFOS() << "Velocity Interpolation On" << LL_ENDL; -	} -	else -	{ -		msg->newMessageFast(_PREHASH_VelocityInterpolateOff); -		msg->nextBlockFast(_PREHASH_AgentData); -		msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -		msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -		gAgent.sendReliableMessage(); -		LL_INFOS() << "Velocity Interpolation Off" << LL_ENDL; -	} -	return true; +    LLMessageSystem* msg = gMessageSystem; +    if ( newvalue.asBoolean() ) +    { +        msg->newMessageFast(_PREHASH_VelocityInterpolateOn); +        msg->nextBlockFast(_PREHASH_AgentData); +        msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); +        msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); +        gAgent.sendReliableMessage(); +        LL_INFOS() << "Velocity Interpolation On" << LL_ENDL; +    } +    else +    { +        msg->newMessageFast(_PREHASH_VelocityInterpolateOff); +        msg->nextBlockFast(_PREHASH_AgentData); +        msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); +        msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); +        gAgent.sendReliableMessage(); +        LL_INFOS() << "Velocity Interpolation Off" << LL_ENDL; +    } +    return true;  }  bool handleForceShowGrid(const LLSD& newvalue)  { -	LLPanelLogin::updateLocationSelectorsVisibility(); -	return true; +    LLPanelLogin::updateLocationSelectorsVisibility(); +    return true;  }  bool handleLoginLocationChanged()  { -	/* -	 * This connects the default preference setting to the state of the login -	 * panel if it is displayed; if you open the preferences panel before -	 * logging in, and change the default login location there, the login -	 * panel immediately changes to match your new preference. -	 */ -	std::string new_login_location = gSavedSettings.getString("LoginLocation"); -	LL_DEBUGS("AppInit")<<new_login_location<<LL_ENDL; -	LLStartUp::setStartSLURL(LLSLURL(new_login_location)); -	return true; +    /* +     * This connects the default preference setting to the state of the login +     * panel if it is displayed; if you open the preferences panel before +     * logging in, and change the default login location there, the login +     * panel immediately changes to match your new preference. +     */ +    std::string new_login_location = gSavedSettings.getString("LoginLocation"); +    LL_DEBUGS("AppInit")<<new_login_location<<LL_ENDL; +    LLStartUp::setStartSLURL(LLSLURL(new_login_location)); +    return true;  }  bool handleSpellCheckChanged()  { -	if (gSavedSettings.getBOOL("SpellCheck")) -	{ -		std::list<std::string> dict_list; -		std::string dict_setting = gSavedSettings.getString("SpellCheckDictionary"); -		boost::split(dict_list, dict_setting, boost::is_any_of(std::string(","))); -		if (!dict_list.empty()) -		{ -			LLSpellChecker::setUseSpellCheck(dict_list.front()); -			dict_list.pop_front(); -			LLSpellChecker::instance().setSecondaryDictionaries(dict_list); -			return true; -		} -	} -	LLSpellChecker::setUseSpellCheck(LLStringUtil::null); -	return true; +    if (gSavedSettings.getBOOL("SpellCheck")) +    { +        std::list<std::string> dict_list; +        std::string dict_setting = gSavedSettings.getString("SpellCheckDictionary"); +        boost::split(dict_list, dict_setting, boost::is_any_of(std::string(","))); +        if (!dict_list.empty()) +        { +            LLSpellChecker::setUseSpellCheck(dict_list.front()); +            dict_list.pop_front(); +            LLSpellChecker::instance().setSecondaryDictionaries(dict_list); +            return true; +        } +    } +    LLSpellChecker::setUseSpellCheck(LLStringUtil::null); +    return true;  }  bool toggle_agent_pause(const LLSD& newvalue)  { -	if ( newvalue.asBoolean() ) -	{ -		send_agent_pause(); -	} -	else -	{ -		send_agent_resume(); -	} -	return true; +    if ( newvalue.asBoolean() ) +    { +        send_agent_pause(); +    } +    else +    { +        send_agent_resume(); +    } +    return true;  }  bool toggle_show_navigation_panel(const LLSD& newvalue)  { -	bool value = newvalue.asBoolean(); +    bool value = newvalue.asBoolean(); -	LLNavigationBar::getInstance()->setVisible(value); -	gSavedSettings.setBOOL("ShowMiniLocationPanel", !value); +    LLNavigationBar::getInstance()->setVisible(value); +    gSavedSettings.setBOOL("ShowMiniLocationPanel", !value);      gViewerWindow->reshapeStatusBarContainer(); -	return true; +    return true;  }  bool toggle_show_mini_location_panel(const LLSD& newvalue)  { -	bool value = newvalue.asBoolean(); +    bool value = newvalue.asBoolean(); -	LLPanelTopInfoBar::getInstance()->setVisible(value); -	gSavedSettings.setBOOL("ShowNavbarNavigationPanel", !value); +    LLPanelTopInfoBar::getInstance()->setVisible(value); +    gSavedSettings.setBOOL("ShowNavbarNavigationPanel", !value); -	return true; +    return true;  }  bool toggle_show_object_render_cost(const LLSD& newvalue)  { -	LLFloaterTools::sShowObjectCost = newvalue.asBoolean(); -	return true; +    LLFloaterTools::sShowObjectCost = newvalue.asBoolean(); +    return true;  }  void handleTargetFPSChanged(const LLSD& newValue) @@ -658,6 +649,18 @@ void handleUserTargetDrawDistanceChanged(const LLSD& newValue)      LLPerfStats::tunables.userTargetDrawDistance = newval;  } +void handleUserMinDrawDistanceChanged(const LLSD &newValue) +{ +    const auto newval = gSavedSettings.getF32("AutoTuneRenderFarClipMin"); +    LLPerfStats::tunables.userMinDrawDistance = newval; +} + +void handleUserTargetReflectionsChanged(const LLSD& newValue) +{ +    const auto newval = gSavedSettings.getS32("UserTargetReflections"); +    LLPerfStats::tunables.userTargetReflections = newval; +} +  void handlePerformanceStatsEnabledChanged(const LLSD& newValue)  {      const auto newval = gSavedSettings.getBOOL("PerfStatsCaptureEnabled"); @@ -712,7 +715,7 @@ void handleLocalTerrainChanged(const LLSD& newValue)          else          {              gLocalTerrainMaterials.setMaterialOverride(i, mat_override); -		} +        }      }  }  //////////////////////////////////////////////////////////////////////////// @@ -786,7 +789,7 @@ void settings_setup_listeners()      setting_setup_signal_listener(gSavedSettings, "RenderFogRatio", handleFogRatioChanged);      setting_setup_signal_listener(gSavedSettings, "RenderMaxPartCount", handleMaxPartCountChanged);      setting_setup_signal_listener(gSavedSettings, "RenderDynamicLOD", handleRenderDynamicLODChanged); -	setting_setup_signal_listener(gSavedSettings, "RenderVSyncEnable", handleVSyncChanged); +    setting_setup_signal_listener(gSavedSettings, "RenderVSyncEnable", handleVSyncChanged);      setting_setup_signal_listener(gSavedSettings, "RenderDeferredNoise", handleReleaseGLBufferChanged);      setting_setup_signal_listener(gSavedSettings, "RenderDebugPipeline", handleRenderDebugPipelineChanged);      setting_setup_signal_listener(gSavedSettings, "RenderResolutionDivisor", handleRenderResolutionDivisorChanged); @@ -799,7 +802,6 @@ void settings_setup_listeners()      setting_setup_signal_listener(gSavedSettings, "RenderDeferredSSAO", handleSetShaderChanged);      setting_setup_signal_listener(gSavedSettings, "RenderPerformanceTest", handleRenderPerfTestChanged);      setting_setup_signal_listener(gSavedSettings, "ChatFontSize", handleChatFontSizeChanged); -    setting_setup_signal_listener(gSavedSettings, "ChatPersistTime", handleChatPersistTimeChanged);      setting_setup_signal_listener(gSavedSettings, "ConsoleMaxLines", handleConsoleMaxLinesChanged);      setting_setup_signal_listener(gSavedSettings, "UploadBakedTexOld", handleUploadBakedTexOldChanged);      setting_setup_signal_listener(gSavedSettings, "UseOcclusion", handleUseOcclusionChanged); @@ -810,9 +812,6 @@ void settings_setup_listeners()      setting_setup_signal_listener(gSavedSettings, "AudioLevelMusic", handleAudioVolumeChanged);      setting_setup_signal_listener(gSavedSettings, "AudioLevelMedia", handleAudioVolumeChanged);      setting_setup_signal_listener(gSavedSettings, "AudioLevelVoice", handleAudioVolumeChanged); -    setting_setup_signal_listener(gSavedSettings, "AudioLevelDoppler", handleAudioVolumeChanged); -    setting_setup_signal_listener(gSavedSettings, "AudioLevelRolloff", handleAudioVolumeChanged); -    setting_setup_signal_listener(gSavedSettings, "AudioLevelUnderwaterRolloff", handleAudioVolumeChanged);      setting_setup_signal_listener(gSavedSettings, "MuteAudio", handleAudioVolumeChanged);      setting_setup_signal_listener(gSavedSettings, "MuteMusic", handleAudioVolumeChanged);      setting_setup_signal_listener(gSavedSettings, "MuteMedia", handleAudioVolumeChanged); @@ -877,7 +876,7 @@ void settings_setup_listeners()      setting_setup_signal_listener(gSavedSettings, "VoiceInputAudioDevice", handleVoiceClientPrefsChanged);      setting_setup_signal_listener(gSavedSettings, "VoiceOutputAudioDevice", handleVoiceClientPrefsChanged);      setting_setup_signal_listener(gSavedSettings, "AudioLevelMic", handleVoiceClientPrefsChanged); -    setting_setup_signal_listener(gSavedSettings, "LipSyncEnabled", handleVoiceClientPrefsChanged);	 +    setting_setup_signal_listener(gSavedSettings, "LipSyncEnabled", handleVoiceClientPrefsChanged);      setting_setup_signal_listener(gSavedSettings, "VelocityInterpolate", handleVelocityInterpolate);      setting_setup_signal_listener(gSavedSettings, "QAMode", show_debug_menus);      setting_setup_signal_listener(gSavedSettings, "UseDebugMenus", show_debug_menus); @@ -898,6 +897,7 @@ void settings_setup_listeners()      setting_setup_signal_listener(gSavedSettings, "RenderAvatarMaxART", handleRenderAvatarMaxARTChanged);      setting_setup_signal_listener(gSavedSettings, "PerfStatsCaptureEnabled", handlePerformanceStatsEnabledChanged);      setting_setup_signal_listener(gSavedSettings, "AutoTuneRenderFarClipTarget", handleUserTargetDrawDistanceChanged); +    setting_setup_signal_listener(gSavedSettings, "AutoTuneRenderFarClipMin", handleUserMinDrawDistanceChanged);      setting_setup_signal_listener(gSavedSettings, "AutoTuneImpostorFarAwayDistance", handleUserImpostorDistanceChanged);      setting_setup_signal_listener(gSavedSettings, "AutoTuneImpostorByDistEnabled", handleUserImpostorByDistEnabledChanged);      setting_setup_signal_listener(gSavedSettings, "TuningFPSStrategy", handleFPSTuningStrategyChanged); @@ -943,26 +943,22 @@ DECL_LLCC(LLColor4U, LLColor4U(255, 200, 100, 255));  LLSD test_llsd = LLSD()["testing1"] = LLSD()["testing2"];  DECL_LLCC(LLSD, test_llsd); -static LLCachedControl<std::string> test_BrowserHomePage("BrowserHomePage", "hahahahahha", "Not the real comment"); -  void test_cached_control()  {  #define do { TEST_LLCC(T, V) if((T)mySetting_##T != V) LL_ERRS() << "Fail "#T << LL_ENDL; } while(0) -	TEST_LLCC(U32, 666); -	TEST_LLCC(S32, (S32)-666); -	TEST_LLCC(F32, (F32)-666.666); -	TEST_LLCC(bool, true); -	TEST_LLCC(bool, false); -	if((std::string)mySetting_string != "Default String Value") LL_ERRS() << "Fail string" << LL_ENDL; -	TEST_LLCC(LLVector3, LLVector3(1.0f, 2.0f, 3.0f)); -	TEST_LLCC(LLVector3d, LLVector3d(6.0f, 5.0f, 4.0f)); -	TEST_LLCC(LLRect, LLRect(0, 0, 100, 500)); -	TEST_LLCC(LLColor4, LLColor4(0.0f, 0.5f, 1.0f)); -	TEST_LLCC(LLColor3, LLColor3(1.0f, 0.f, 0.5f)); -	TEST_LLCC(LLColor4U, LLColor4U(255, 200, 100, 255)); -//There's no LLSD comparsion for LLCC yet. TEST_LLCC(LLSD, test_llsd);  - -	if((std::string)test_BrowserHomePage != "http://www.secondlife.com") LL_ERRS() << "Fail BrowserHomePage" << LL_ENDL; +    TEST_LLCC(U32, 666); +    TEST_LLCC(S32, (S32)-666); +    TEST_LLCC(F32, (F32)-666.666); +    TEST_LLCC(bool, true); +    TEST_LLCC(bool, false); +    if((std::string)mySetting_string != "Default String Value") LL_ERRS() << "Fail string" << LL_ENDL; +    TEST_LLCC(LLVector3, LLVector3(1.0f, 2.0f, 3.0f)); +    TEST_LLCC(LLVector3d, LLVector3d(6.0f, 5.0f, 4.0f)); +    TEST_LLCC(LLRect, LLRect(0, 0, 100, 500)); +    TEST_LLCC(LLColor4, LLColor4(0.0f, 0.5f, 1.0f)); +    TEST_LLCC(LLColor3, LLColor3(1.0f, 0.f, 0.5f)); +    TEST_LLCC(LLColor4U, LLColor4U(255, 200, 100, 255)); +//There's no LLSD comparsion for LLCC yet. TEST_LLCC(LLSD, test_llsd);  }  #endif // TEST_CACHED_CONTROL  | 
