diff options
| -rwxr-xr-x | indra/newview/CMakeLists.txt | 2 | ||||
| -rwxr-xr-x | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llfloaterdeleteprefpreset.cpp | 6 | ||||
| -rwxr-xr-x | indra/newview/llfloaterhardwaresettings.cpp | 201 | ||||
| -rwxr-xr-x | indra/newview/llfloaterhardwaresettings.h | 84 | ||||
| -rwxr-xr-x | indra/newview/llfloaterpreference.cpp | 168 | ||||
| -rwxr-xr-x | indra/newview/llfloaterpreference.h | 4 | ||||
| -rw-r--r-- | indra/newview/llfloatersaveprefpreset.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llpanelpresetspulldown.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llpresetsmanager.cpp | 21 | ||||
| -rw-r--r-- | indra/newview/llpresetsmanager.h | 5 | ||||
| -rwxr-xr-x | indra/newview/llviewerfloaterreg.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/notifications.xml | 8 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml | 218 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/strings.xml | 3 | 
15 files changed, 362 insertions, 381 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 57fa11a0bf..192be979fb 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -243,7 +243,6 @@ set(viewer_SOURCE_FILES      llfloatergroupinvite.cpp      llfloatergroups.cpp      llfloaterhandler.cpp -    llfloaterhardwaresettings.cpp      llfloaterhelpbrowser.cpp      llfloaterhud.cpp      llfloaterimagepreview.cpp @@ -852,7 +851,6 @@ set(viewer_HEADER_FILES      llfloatergroupinvite.h      llfloatergroups.h      llfloaterhandler.h -    llfloaterhardwaresettings.h      llfloaterhelpbrowser.h      llfloaterhud.h      llfloaterimagepreview.h diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 6016839875..276a65edc5 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -15562,6 +15562,17 @@        <key>Value</key>        <string />      </map> +    <key>MaximumARC</key> +    <map> +      <key>Comment</key> +      <string>Controls RenderAutoMuteRenderWeightLimit in a non-linear fashion</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>U32</string> +      <key>Value</key> +      <integer>0</integer> +    </map>  </map>  </llsd> diff --git a/indra/newview/llfloaterdeleteprefpreset.cpp b/indra/newview/llfloaterdeleteprefpreset.cpp index 2f7d0552a3..f147a5ee90 100644 --- a/indra/newview/llfloaterdeleteprefpreset.cpp +++ b/indra/newview/llfloaterdeleteprefpreset.cpp @@ -74,10 +74,12 @@ void LLFloaterDeletePrefPreset::onBtnDelete()  		{  			LLPresetsManager::getInstance()->savePreset(mSubdirectory, PRESETS_DEFAULT);  		} - +	} +	else +	{  		LLSD args;  		args["NAME"] = name; -		LLNotificationsUtil::add("PresetDeleted", args); +		LLNotificationsUtil::add("PresetNotDeleted", args);  	}  } diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp deleted file mode 100755 index 035eb307c2..0000000000 --- a/indra/newview/llfloaterhardwaresettings.cpp +++ /dev/null @@ -1,201 +0,0 @@ -/**  - * @file llfloaterhardwaresettings.cpp - * @brief Menu of all the different graphics hardware settings - * - * $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$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llfloaterhardwaresettings.h" - -// Viewer includes -#include "llfloaterpreference.h" -#include "llviewerwindow.h" -#include "llviewercontrol.h" -#include "llviewertexturelist.h" -#include "llfeaturemanager.h" -#include "llspinctrl.h" -#include "llstartup.h" -#include "lltextbox.h" -#include "llcombobox.h" -#include "pipeline.h" - -// Linden library includes -#include "llradiogroup.h" -#include "lluictrlfactory.h" -#include "llwindow.h" -#include "llsliderctrl.h" - -LLFloaterHardwareSettings::LLFloaterHardwareSettings(const LLSD& key) -	: LLFloater(key), - -	  // these should be set on imminent refresh() call, -	  // but init them anyway -	  mUseVBO(0), -	  mUseAniso(0), -	  mFSAASamples(0), -	  mGamma(0.0), -	  mVideoCardMem(0), -	  mFogRatio(0.0), -	  mProbeHardwareOnStartup(FALSE) -{ -} - -LLFloaterHardwareSettings::~LLFloaterHardwareSettings() -{ -} - -void LLFloaterHardwareSettings::initCallbacks(void)  -{ -} - -// menu maintenance functions - -void LLFloaterHardwareSettings::refresh() -{ -	LLPanel::refresh(); - -	mUseVBO = gSavedSettings.getBOOL("RenderVBOEnable"); -	mUseAniso = gSavedSettings.getBOOL("RenderAnisotropic"); -	mFSAASamples = gSavedSettings.getU32("RenderFSAASamples"); -	mGamma = gSavedSettings.getF32("RenderGamma"); -	mVideoCardMem = gSavedSettings.getS32("TextureMemory"); -	mFogRatio = gSavedSettings.getF32("RenderFogRatio"); -	mProbeHardwareOnStartup = gSavedSettings.getBOOL("ProbeHardwareOnStartup"); - -	getChild<LLUICtrl>("fsaa")->setValue((LLSD::Integer) mFSAASamples); -	refreshEnabledState(); -} - -void LLFloaterHardwareSettings::refreshEnabledState() -{ -	F32 mem_multiplier = gSavedSettings.getF32("RenderTextureMemoryMultiple"); -	S32Megabytes min_tex_mem = LLViewerTextureList::getMinVideoRamSetting(); -	S32Megabytes max_tex_mem = LLViewerTextureList::getMaxVideoRamSetting(false, mem_multiplier); -	getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setMinValue(min_tex_mem.value()); -	getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setMaxValue(max_tex_mem.value()); - -	if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderVBOEnable") || -		!gGLManager.mHasVertexBufferObject) -	{ -		getChildView("vbo")->setEnabled(FALSE); -	} - -	if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderCompressTextures") || -		!gGLManager.mHasVertexBufferObject) -	{ -		getChildView("texture compression")->setEnabled(FALSE); -	} - -	// if no windlight shaders, turn off nighttime brightness, gamma, and fog distance -	LLSpinCtrl* gamma_ctrl = getChild<LLSpinCtrl>("gamma"); -	gamma_ctrl->setEnabled(!gPipeline.canUseWindLightShaders()); -	getChildView("(brightness, lower is brighter)")->setEnabled(!gPipeline.canUseWindLightShaders()); -	getChildView("fog")->setEnabled(!gPipeline.canUseWindLightShaders()); - -	// anti-aliasing -	{ -		LLUICtrl* fsaa_ctrl = getChild<LLUICtrl>("fsaa"); -		LLTextBox* fsaa_text = getChild<LLTextBox>("antialiasing label"); -		LLView* fsaa_restart = getChildView("antialiasing restart"); -		 -		// Enable or disable the control, the "Antialiasing:" label and the restart warning -		// based on code support for the feature on the current hardware. - -		if (gPipeline.canUseAntiAliasing()) -		{ -			fsaa_ctrl->setEnabled(TRUE); -			 -			// borrow the text color from the gamma control for consistency -			fsaa_text->setColor(gamma_ctrl->getEnabledTextColor()); - -			fsaa_restart->setVisible(!gSavedSettings.getBOOL("RenderDeferred")); -		} -		else -		{ -			fsaa_ctrl->setEnabled(FALSE); -			fsaa_ctrl->setValue((LLSD::Integer) 0); -			 -			// borrow the text color from the gamma control for consistency -			fsaa_text->setColor(gamma_ctrl->getDisabledTextColor()); -			 -			fsaa_restart->setVisible(FALSE); -		} -	} -} - -//============================================================================ - -BOOL LLFloaterHardwareSettings::postBuild() -{ -	childSetAction("OK", onBtnOK, this); - -// Don't do this on Mac as their braindead GL versioning -// sets this when 8x and 16x are indeed available -// -#if !LL_DARWIN -	if (gGLManager.mIsIntel || gGLManager.mGLVersion < 3.f) -	{ //remove FSAA settings above "4x" -		LLComboBox* combo = getChild<LLComboBox>("fsaa"); -		combo->remove("8x"); -		combo->remove("16x"); -	} -#endif - -	refresh(); -	center(); - -	// load it up -	initCallbacks(); -	return TRUE; -} - - -void LLFloaterHardwareSettings::apply() -{ -	refresh(); -} - - -void LLFloaterHardwareSettings::cancel() -{ -	gSavedSettings.setBOOL("RenderVBOEnable", mUseVBO); -	gSavedSettings.setBOOL("RenderAnisotropic", mUseAniso); -	gSavedSettings.setU32("RenderFSAASamples", mFSAASamples); -	gSavedSettings.setF32("RenderGamma", mGamma); -	gSavedSettings.setS32("TextureMemory", mVideoCardMem); -	gSavedSettings.setF32("RenderFogRatio", mFogRatio); -	gSavedSettings.setBOOL("ProbeHardwareOnStartup", mProbeHardwareOnStartup ); - -	closeFloater(); -} - -// static  -void LLFloaterHardwareSettings::onBtnOK( void* userdata ) -{ -	LLFloaterHardwareSettings *fp =(LLFloaterHardwareSettings *)userdata; -	fp->apply(); -	fp->closeFloater(false); -} - - diff --git a/indra/newview/llfloaterhardwaresettings.h b/indra/newview/llfloaterhardwaresettings.h deleted file mode 100755 index 626771b1d2..0000000000 --- a/indra/newview/llfloaterhardwaresettings.h +++ /dev/null @@ -1,84 +0,0 @@ -/**  - * @file llfloaterhardwaresettings.h - * @brief Menu of all the different graphics hardware settings - * - * $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$ - */ - -#ifndef LL_LLFLOATER_HARDWARE_SETTINGS_H -#define LL_LLFLOATER_HARDWARE_SETTINGS_H - -#include "llfloater.h" - -/// Menuing system for all of windlight's functionality -class LLFloaterHardwareSettings : public LLFloater -{ -	friend class LLFloaterPreference; - -public: - -	LLFloaterHardwareSettings(const LLSD& key); -	/*virtual*/ ~LLFloaterHardwareSettings(); -	 -	/*virtual*/ BOOL postBuild(); - -	/// initialize all the callbacks for the menu -	void initCallbacks(void); - -	/// OK button -	static void onBtnOK( void* userdata ); -	 -	//// menu management - -	/// show off our menu -	static void show(); - -	/// return if the menu exists or not -	static bool isOpen(); - -	/// sync up menu with parameters -	void refresh(); - -	/// Apply the changed values. -	void apply(); -	 -	/// don't apply the changed values -	void cancel(); - -	/// refresh the enabled values -	void refreshEnabledState(); - -protected: -	BOOL mUseVBO; -	BOOL mUseAniso; -	BOOL mUseFBO; -	U32 mFSAASamples; -	F32 mGamma; -	S32 mVideoCardMem; -	F32 mFogRatio; -	BOOL mProbeHardwareOnStartup; - -private: -}; - -#endif - diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index e0c579f783..c7b4ae8ddc 100755 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -48,7 +48,6 @@  //#include "llfirstuse.h"  #include "llfloaterreg.h"  #include "llfloaterabout.h" -#include "llfloaterhardwaresettings.h"  #include "llfloatersidepanelcontainer.h"  #include "llfloaterimsession.h"  #include "llkeyboard.h" @@ -112,6 +111,7 @@  #include "llviewercontrol.h"  #include "llpresetsmanager.h"  #include "llfeaturemanager.h" +#include "llviewertexturelist.h"  const F32 MAX_USER_FAR_CLIP = 512.f;  const F32 MIN_USER_FAR_CLIP = 64.f; @@ -549,12 +549,6 @@ void LLFloaterPreference::apply()  		if (panel)  			panel->apply();  	} -	// hardware menu apply -	LLFloaterHardwareSettings* hardware_settings = LLFloaterReg::getTypedInstance<LLFloaterHardwareSettings>("prefs_hardware_settings"); -	if (hardware_settings) -	{ -		hardware_settings->apply(); -	}  	gViewerWindow->requestResolutionUpdate(); // for UIScaleFactor @@ -632,13 +626,6 @@ void LLFloaterPreference::cancel()  	// hide spellchecker settings folder  	LLFloaterReg::hideInstance("prefs_spellchecker"); -	// cancel hardware menu -	LLFloaterHardwareSettings* hardware_settings = LLFloaterReg::getTypedInstance<LLFloaterHardwareSettings>("prefs_hardware_settings"); -	if (hardware_settings) -	{ -		hardware_settings->cancel(); -	} -	  	// reverts any changes to current skin  	gSavedSettings.setString("SkinCurrent", sSkin); @@ -921,11 +908,6 @@ void LLFloaterPreference::refreshEnabledGraphics()  		instance->refresh();  		//instance->refreshEnabledState();  	} -	LLFloaterHardwareSettings* hardware_settings = LLFloaterReg::getTypedInstance<LLFloaterHardwareSettings>("prefs_hardware_settings"); -	if (hardware_settings) -	{ -		hardware_settings->refreshEnabledState(); -	}  }  void LLFloaterPreference::onClickClearCache() @@ -1201,7 +1183,61 @@ void LLFloaterPreference::refreshEnabledState()  	enabled = enabled && LLFeatureManager::getInstance()->isFeatureAvailable("RenderShadowDetail");  	ctrl_shadow->setEnabled(enabled); -	 + +	// Hardware settings +	F32 mem_multiplier = gSavedSettings.getF32("RenderTextureMemoryMultiple"); +	S32Megabytes min_tex_mem = LLViewerTextureList::getMinVideoRamSetting(); +	S32Megabytes max_tex_mem = LLViewerTextureList::getMaxVideoRamSetting(false, mem_multiplier); +	getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setMinValue(min_tex_mem.value()); +	getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setMaxValue(max_tex_mem.value()); + +	if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderVBOEnable") || +		!gGLManager.mHasVertexBufferObject) +	{ +		getChildView("vbo")->setEnabled(FALSE); +	} + +	if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderCompressTextures") || +		!gGLManager.mHasVertexBufferObject) +	{ +		getChildView("texture compression")->setEnabled(FALSE); +	} + +	// if no windlight shaders, turn off nighttime brightness, gamma, and fog distance +	LLUICtrl* gamma_ctrl = getChild<LLUICtrl>("gamma"); +	gamma_ctrl->setEnabled(!gPipeline.canUseWindLightShaders()); +	getChildView("(brightness, lower is brighter)")->setEnabled(!gPipeline.canUseWindLightShaders()); +	getChildView("fog")->setEnabled(!gPipeline.canUseWindLightShaders()); + +	/* Disabling this block of code because canUseAntiAliasing currently always returns true +	// anti-aliasing +	LLComboBox* fsaa_ctrl = getChild<LLComboBox>("fsaa"); +	LLTextBox* fsaa_text = getChild<LLTextBox>("antialiasing label"); +	LLTextBox* fsaa_restart = getChild<LLTextBox>("antialiasing restart"); +		 +	// Enable or disable the control, the "Antialiasing:" label and the restart warning +	// based on code support for the feature on the current hardware. + +	if (gPipeline.canUseAntiAliasing()) +	{ +		fsaa_ctrl->setEnabled(TRUE); + +		LLColor4 color = LLUIColorTable::instance().getColor("LabelTextColor"); +		fsaa_text->setColor(color); + +		fsaa_restart->setVisible(!gSavedSettings.getBOOL("RenderDeferred")); +	} +	else +	{ +		fsaa_ctrl->setEnabled(FALSE); +		fsaa_ctrl->setValue((LLSD::Integer) 0); +			 +		LLColor4 color = LLUIColorTable::instance().getColor("LabelDisabledColor"); +		fsaa_text->setColor(color); +			 +		fsaa_restart->setVisible(FALSE); +	} +	*/  	// now turn off any features that are unavailable  	disableUnavailableSettings(); @@ -1365,23 +1401,26 @@ void LLFloaterPreference::refresh()  {  	LLPanel::refresh(); +	getChild<LLUICtrl>("fsaa")->setValue((LLSD::Integer)  gSavedSettings.getU32("RenderFSAASamples")); +  	refreshEnabledState();  	// sliders and their text boxes  	//	mPostProcess = gSavedSettings.getS32("RenderGlowResolutionPow");  	// slider text boxes -	updateSliderText(getChild<LLSliderCtrl>("ObjectMeshDetail",		true), getChild<LLTextBox>("ObjectMeshDetailText",		true)); -	updateSliderText(getChild<LLSliderCtrl>("FlexibleMeshDetail",	true), getChild<LLTextBox>("FlexibleMeshDetailText",	true)); -	updateSliderText(getChild<LLSliderCtrl>("TreeMeshDetail",		true), getChild<LLTextBox>("TreeMeshDetailText",		true)); -	updateSliderText(getChild<LLSliderCtrl>("AvatarMeshDetail",		true), getChild<LLTextBox>("AvatarMeshDetailText",		true)); -	updateSliderText(getChild<LLSliderCtrl>("AvatarMeshDetail2",		true), getChild<LLTextBox>("AvatarMeshDetailText2",		true)); -	updateSliderText(getChild<LLSliderCtrl>("AvatarPhysicsDetail",	true), getChild<LLTextBox>("AvatarPhysicsDetailText",		true)); -	updateSliderText(getChild<LLSliderCtrl>("TerrainMeshDetail",	true), getChild<LLTextBox>("TerrainMeshDetailText",		true)); -	updateSliderText(getChild<LLSliderCtrl>("RenderPostProcess",	true), getChild<LLTextBox>("PostProcessText",			true)); -	updateSliderText(getChild<LLSliderCtrl>("SkyMeshDetail",		true), getChild<LLTextBox>("SkyMeshDetailText",			true)); -	updateSliderText(getChild<LLSliderCtrl>("TerrainDetail",		true), getChild<LLTextBox>("TerrainDetailText",			true));	 -	updateReflectionsText(getChild<LLSliderCtrl>("Reflections",		true), getChild<LLTextBox>("ReflectionsText",			true));	 -	updateShadowDetailText(getChild<LLSliderCtrl>("ShadowDetail",		true), getChild<LLTextBox>("RenderShadowDetailText",			true));	 +	updateSliderText(getChild<LLSliderCtrl>("ObjectMeshDetail",		true), getChild<LLTextBox>("ObjectMeshDetailText",		true), "ObjectMeshDetail"); +	updateSliderText(getChild<LLSliderCtrl>("FlexibleMeshDetail",	true), getChild<LLTextBox>("FlexibleMeshDetailText",	true), "FlexibleMeshDetail"); +	updateSliderText(getChild<LLSliderCtrl>("TreeMeshDetail",		true), getChild<LLTextBox>("TreeMeshDetailText",		true), "TreeMeshDetail"); +	updateSliderText(getChild<LLSliderCtrl>("AvatarMeshDetail",		true), getChild<LLTextBox>("AvatarMeshDetailText",		true), "AvatarMeshDetail"); +	updateSliderText(getChild<LLSliderCtrl>("AvatarMeshDetail2",		true), getChild<LLTextBox>("AvatarMeshDetailText2",		true), "AvatarMeshDetail2"); +	updateSliderText(getChild<LLSliderCtrl>("AvatarPhysicsDetail",	true), getChild<LLTextBox>("AvatarPhysicsDetailText",		true), "AvatarPhysicsDetail"); +	updateSliderText(getChild<LLSliderCtrl>("TerrainMeshDetail",	true), getChild<LLTextBox>("TerrainMeshDetailText",		true), "TerrainMeshDetail"); +	updateSliderText(getChild<LLSliderCtrl>("RenderPostProcess",	true), getChild<LLTextBox>("PostProcessText",			true), "RenderPostProcess"); +	updateSliderText(getChild<LLSliderCtrl>("SkyMeshDetail",		true), getChild<LLTextBox>("SkyMeshDetailText",			true), "SkyMeshDetail"); +	updateSliderText(getChild<LLSliderCtrl>("TerrainDetail",		true), getChild<LLTextBox>("TerrainDetailText",			true), "TerrainDetail");	 +	updateSliderText(getChild<LLSliderCtrl>("MaximumARC",		true), getChild<LLTextBox>("MaximumARCText",			true), "MaximumARC");	 +	updateSliderText(getChild<LLSliderCtrl>("Reflections",		true), getChild<LLTextBox>("ReflectionsText",			true), "Reflections");	 +	updateSliderText(getChild<LLSliderCtrl>("ShadowDetail",		true), getChild<LLTextBox>("RenderShadowDetailText",			true), "ShadowDetail");	  }  void LLFloaterPreference::onCommitWindowedMode() @@ -1633,24 +1672,7 @@ void LLFloaterPreference::refreshUI()  	refresh();  } -void LLFloaterPreference::updateReflectionsText(LLSliderCtrl* ctrl, LLTextBox* text_box) -{ -	if (text_box == NULL || ctrl== NULL) -		return; -	 -	U32 value = (U32)ctrl->getValue().asInteger(); -	text_box->setText(getString("Reflections" + llformat("%d", value))); -} -void LLFloaterPreference::updateShadowDetailText(LLSliderCtrl* ctrl, LLTextBox* text_box) -{ -	if (text_box == NULL || ctrl== NULL) -		return; -	 -	U32 value = (U32)ctrl->getValue().asInteger(); -	text_box->setText(getString("RenderShadowDetail" + llformat("%d", value))); -} - -void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box) +void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box, const std::string& name)  {  	if (text_box == NULL || ctrl== NULL)  		return; @@ -1663,7 +1685,21 @@ void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_b  	llassert(range > 0);  	F32 midPoint = min + range / 3.0f;  	F32 highPoint = min + (2.0f * range / 3.0f); -	 + +	if ("ShadowDetail" == name) +	{ +		U32 value = (U32)ctrl->getValue().asInteger(); +		text_box->setText(getString("RenderShadowDetail" + llformat("%d", value))); +		return; +	} + +	if ("Reflections" == name) +	{ +		U32 value = (U32)ctrl->getValue().asInteger(); +		text_box->setText(getString("Reflections" + llformat("%d", value))); +		return; +	} +  	// choose the right text  	if (value < midPoint)  	{ @@ -1677,6 +1713,22 @@ void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_b  	{  		text_box->setText(LLTrans::getString("GraphicsQualityHigh"));  	} + +	if ("MaximumARC" == name) +	{ +		F32 control_value = value; +		if (0.0f == control_value) +		{ +			text_box->setText(LLTrans::getString("Off")); +		} +		else +		{ +			// 13 is the maximum value of this control set in panel_preferences_graphics1.xml +			control_value = exp(13.0f - control_value) + 20000.0f; +		} + +		gSavedSettings.setU32("RenderAutoMuteRenderWeightLimit", (U32)control_value); +	}  }  void LLFloaterPreference::onChangeMaturity() @@ -2152,6 +2204,18 @@ static LLPanelInjector<LLPanelPreferencePrivacy> t_pref_privacy("panel_preferenc  BOOL LLPanelPreferenceGraphics::postBuild()  { +// Don't do this on Mac as their braindead GL versioning +// sets this when 8x and 16x are indeed available +// +#if !LL_DARWIN +	if (gGLManager.mIsIntel || gGLManager.mGLVersion < 3.f) +	{ //remove FSAA settings above "4x" +		LLComboBox* combo = getChild<LLComboBox>("fsaa"); +		combo->remove("8x"); +		combo->remove("16x"); +	} +#endif +  	LLComboBox* combo = getChild<LLComboBox>("graphic_preset_combo");  	combo->setLabel(LLTrans::getString("preset_combo_label")); @@ -2171,7 +2235,7 @@ void LLPanelPreferenceGraphics::setPresetNamesInComboBox()  {  	LLComboBox* combo = getChild<LLComboBox>("graphic_preset_combo"); -	EDefaultOptions option = DEFAULT_POSITION_TOP; +	EDefaultOptions option = DEFAULT_SHOW;  	LLPresetsManager::getInstance()->setPresetNamesInComboBox(PRESETS_GRAPHIC, combo, option);  } diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index d43c41272a..eebc0849ee 100755 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -156,9 +156,7 @@ public:  	// if the quality radio buttons are changed  	void onChangeQuality(const LLSD& data); -	void updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box); -	void updateReflectionsText(LLSliderCtrl* ctrl, LLTextBox* text_box); -	void updateShadowDetailText(LLSliderCtrl* ctrl, LLTextBox* text_box); +	void updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box, const std::string& name);  	void refreshUI();  	void onCommitParcelMediaAutoPlayEnable(); diff --git a/indra/newview/llfloatersaveprefpreset.cpp b/indra/newview/llfloatersaveprefpreset.cpp index 02281d8b3c..610c701d8d 100644 --- a/indra/newview/llfloatersaveprefpreset.cpp +++ b/indra/newview/llfloatersaveprefpreset.cpp @@ -70,7 +70,7 @@ void LLFloaterSavePrefPreset::onOpen(const LLSD& key)  	setTitle(floater_title); -	EDefaultOptions option = DEFAULT_POSITION_TOP; +	EDefaultOptions option = DEFAULT_SHOW;  	LLPresetsManager::getInstance()->setPresetNamesInComboBox(mSubdirectory, mPresetCombo, option);  	onPresetNameEdited(); @@ -80,11 +80,11 @@ void LLFloaterSavePrefPreset::onBtnSave()  {  	std::string name = mPresetCombo->getSimple(); -	if (LLPresetsManager::getInstance()->savePreset(mSubdirectory, name)) +	if (!LLPresetsManager::getInstance()->savePreset(mSubdirectory, name))  	{  		LLSD args;  		args["NAME"] = name; -		LLNotificationsUtil::add("PresetSaved", args); +		LLNotificationsUtil::add("PresetNotSaved", args);  	}  	closeFloater(); @@ -92,7 +92,7 @@ void LLFloaterSavePrefPreset::onBtnSave()  void LLFloaterSavePrefPreset::onPresetsListChange()  { -	EDefaultOptions option = DEFAULT_POSITION_TOP; +	EDefaultOptions option = DEFAULT_SHOW;  	LLPresetsManager::getInstance()->setPresetNamesInComboBox(mSubdirectory, mPresetCombo, option);  } diff --git a/indra/newview/llpanelpresetspulldown.cpp b/indra/newview/llpanelpresetspulldown.cpp index 1918623cab..4756f3bd75 100644 --- a/indra/newview/llpanelpresetspulldown.cpp +++ b/indra/newview/llpanelpresetspulldown.cpp @@ -71,7 +71,7 @@ BOOL LLPanelPresetsPulldown::postBuild()  void LLPanelPresetsPulldown::populatePanel()  {  	std::string presets_dir = LLPresetsManager::getInstance()->getPresetsDir(PRESETS_GRAPHIC); -	LLPresetsManager::getInstance()->loadPresetNamesFromDir(presets_dir, mPresetNames, DEFAULT_POSITION_NORMAL); +	LLPresetsManager::getInstance()->loadPresetNamesFromDir(presets_dir, mPresetNames, DEFAULT_SHOW);  	LLScrollListCtrl* scroll = getChild<LLScrollListCtrl>("preset_list"); diff --git a/indra/newview/llpresetsmanager.cpp b/indra/newview/llpresetsmanager.cpp index 971a5ecf52..1c14cc6ece 100644 --- a/indra/newview/llpresetsmanager.cpp +++ b/indra/newview/llpresetsmanager.cpp @@ -99,20 +99,26 @@ void LLPresetsManager::loadPresetNamesFromDir(const std::string& dir, preset_nam  		{  			std::string path = gDirUtilp->add(dir, file);  			std::string name = gDirUtilp->getBaseFileName(LLURI::unescape(path), /*strip_exten = */ true); +			// Two things are happening here: +			// 1 - Always put the active preset at the top of the list +			// 2 - Possibly hide the default preset  			if (PRESETS_DEFAULT != name)  			{ -				mPresetNames.push_back(name); +				if (name != gSavedSettings.getString("PresetGraphicActive")) +				{ +					mPresetNames.push_back(name); +				} +				else +				{ +					mPresetNames.insert(mPresetNames.begin(), name); +				}  			}  			else  			{  				switch (default_option)  				{ -					case DEFAULT_POSITION_TOP: -						mPresetNames.insert(mPresetNames.begin(), name); -						break; - -					case DEFAULT_POSITION_NORMAL: -						mPresetNames.push_back(name); +					case DEFAULT_SHOW: +						mPresetNames.push_back(LLTrans::getString(PRESETS_DEFAULT));  						break;  					case DEFAULT_HIDE: @@ -164,6 +170,7 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, const std::st  			("RenderDeferredSSAO")  			("RenderDepthOfField")  			("RenderShadowDetail") +			("RenderAutoMuteRenderWeightLimit")  			("RenderAnisotropic")  			("RenderFSAASamples") diff --git a/indra/newview/llpresetsmanager.h b/indra/newview/llpresetsmanager.h index 180cca5bc4..bf6a531d48 100644 --- a/indra/newview/llpresetsmanager.h +++ b/indra/newview/llpresetsmanager.h @@ -39,9 +39,8 @@ static const std::string PRESETS_CAMERA = "camera";  enum EDefaultOptions  { -	DEFAULT_POSITION_TOP,		// Put "Default" as the first item in the combobox -	DEFAULT_POSITION_NORMAL,	// No special positioning -	DEFAULT_HIDE				// Do not display "Default" in the combobox +	DEFAULT_SHOW, +	DEFAULT_HIDE				// Do not display "Default" in a list  };  class LLPresetsManager : public LLSingleton<LLPresetsManager> diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 3ee67d8ac5..8acb56d650 100755 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -69,7 +69,6 @@  #include "llfloatergesture.h"  #include "llfloatergodtools.h"  #include "llfloatergroups.h" -#include "llfloaterhardwaresettings.h"  #include "llfloaterhelpbrowser.h"  #include "llfloaterhud.h"  #include "llfloaterimagepreview.h" @@ -274,7 +273,6 @@ void LLViewerFloaterReg::registerFloaters()  	LLFloaterReg::add("places", "floater_places.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);  	LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);  	LLFloaterReg::add("prefs_proxy", "floater_preferences_proxy.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreferenceProxy>); -	LLFloaterReg::add("prefs_hardware_settings", "floater_hardware_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHardwareSettings>);  	LLFloaterReg::add("prefs_spellchecker_import", "floater_spellcheck_import.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSpellCheckerImport>);  	LLFloaterReg::add("prefs_translation", "floater_translation_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTranslationSettings>);  	LLFloaterReg::add("prefs_spellchecker", "floater_spellcheck.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSpellCheckerSettings>); diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 1618ea0ec7..340777faf3 100755 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -7659,16 +7659,16 @@ Attachment has been saved.    <notification      icon="notifytip.tga" -	name="PresetSaved" +	name="PresetNotSaved"      type="notifytip"> -Preset [NAME] has been saved. +Error saving preset [NAME].    </notification>    <notification      icon="notifytip.tga" -	name="PresetDeleted" +	name="PresetNotDeleted"      type="notifytip"> -Preset [NAME] has been deleted. +Error deleting preset [NAME].    </notification>    <notification diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml index d0a5075dc8..43b9d6003f 100755 --- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml @@ -320,7 +320,7 @@          <panel            border="false"            follows="top|left" -          height="600" +          height="700"            label="CustomGraphics"            layout="topleft"            left="5" @@ -542,9 +542,42 @@              min_val="1"              max_val="65"              name="MaxNumberAvatarDrawn" -            top_delta="20" +            top_delta="16"              width="325" /> +          <slider +            control_name="MaximumARC" +            follows="left|top" +            height="16" +            initial_value="0" +            increment=".1" +            label="Maximum ARC:" +            label_width="185" +            layout="topleft" +            left="30" +            min_val="0" +            max_val="13" +            name="MaximumARC" +            show_text="false" +            top_delta="16" +            width="300"> +            <slider.commit_callback +              function="Pref.UpdateSliderText" +              parameter="MaximumARCText" /> +          </slider> +          <text +            type="string" +            length="1" +            follows="left|top" +            height="16" +            layout="topleft" +            top_delta="0" +            left_delta="304" +            name="MaximumARCText" +            width="128"> +               Low +          </text> +            <check_box              control_name="RenderUseImpostors"              height="16" @@ -941,6 +974,173 @@              width="128">                None            </text> + +          <text +            type="string" +            length="1" +            follows="left|top" +            height="16" +            layout="topleft" +            name="ShadersText" +            top_delta="20" +            left="5" +            width="128"> +             Hardware +          </text> + + +          <slider +            control_name="TextureMemory" +            decimal_digits="0" +            follows="left|top" +            height="16" +            increment="16" +            initial_value="32" +            label="Texture Memory (MB):" +            label_width="185" +            layout="topleft" +            left="30" +            max_val="4096" +            name="GraphicsCardTextureMemory" +            tool_tip="Amount of memory to allocate for textures. Defaults to video card memory. Reducing this may improve performance but may also make textures blurry." +            top_delta="16" +            width="335" /> + +          <slider +            control_name="RenderFogRatio" +            follows="left|top" +            height="16" +            initial_value="4" +            decimal_digits="1" +            label="Fog Distance Ratio:" +            label_width="185" +            layout="topleft" +            left="30" +            name="fog" +            min_val="0.5" +            max_val="10" +            increment="0.1" +            top_delta="16" +            width="332" /> + +          <slider +            control_name="RenderGamma" +            follows="left|top" +            height="16" +            initial_value="1" +            decimal_digits="2" +            label="Gamma:" +            label_width="185" +            layout="topleft" +            left="30" +            name="gamma" +            min_val="0" +            max_val="2" +            increment="0.01" +            top_delta="16" +            width="332" /> +          <text +            type="string" +            length="1" +            follows="left|top" +            height="16" +            layout="topleft" +            left="30" +            name="(brightness, lower is brighter)" +            top_delta="16" +            width="230"> +              (0 = default brightness, lower = brighter) +          </text> + +          <check_box +            control_name="RenderAnisotropic" +            height="16" +            label="Anisotropic Filtering (slower when enabled)" +            layout="topleft" +            left="30" +            name="ani" +            top_delta="16" +            width="256" /> + +          <check_box +            control_name="RenderVBOEnable" +            height="16" +            initial_value="true" +            label="Enable OpenGL Vertex Buffer Objects" +            layout="topleft" +            left="30" +            top_delta="16" +            name="vbo" +            tool_tip="Enabling this on modern hardware gives a performance gain.  However, older hardware often has poor implementations of VBOs and you may get crashes when this is enabled." +            width="315" /> + +          <check_box +            control_name="RenderCompressTextures" +            height="16" +            initial_value="true" +            label="Enable Texture Compression (requires restart)" +            layout="topleft" +            left="30" +            top_delta="16" +            name="texture compression" +            tool_tip="Compresses textures in video memory, allowing for higher resolution textures to be loaded at the cost of some color quality." +            width="315" /> + +          <text +            type="string" +            length="1" +            follows="left|top" +            height="20" +            layout="topleft" +            left="30" +            name="antialiasing label" +            top_delta="20" +            width="100"> +              Antialiasing: +          </text> +          <combo_box +            control_name="RenderFSAASamples" +            height="20" +            initial_value="false" +            label="Antialiasing" +            layout="topleft" +            left_pad="40" +            name="fsaa" +            top_delta="0" +            width="90"> +            <combo_box.item +              label="Disabled" +              name="FSAADisabled" +              value="0" /> +            <combo_box.item +              label="2x" +              name="2x" +              value="2" /> +            <combo_box.item +             label="4x" +             name="4x" +             value="4" /> +            <combo_box.item +             label="8x" +             name="8x" +             value="8" /> +            <combo_box.item +             label="16x" +             name="16x" +             value="16" /> +          </combo_box> +          <text +            type="string" +            length="1" +            follows="left|top" +            height="16" +            layout="topleft" +            left_pad="10" +            name="antialiasing restart" +            top_delta="0" +            width="190"> +             (requires viewer restart) +          </text>          </panel>        </scroll_container>      </panel> @@ -958,18 +1158,6 @@        <button.commit_callback          function="Pref.HardwareDefaults" />      </button> -    <button -      follows="right|bottom" -      height="23" -      label="Hardware..." -      label_selected="Hardware" -      layout="topleft" -      left_pad="25" -      name="GraphicsHardwareButton" -      top="310" -      width="115"> -      <button.commit_callback -        function="Pref.HardwareSettings" /> -    </button> +    </tab_container>  </panel> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 1c655c6559..023c6e5bbb 100755 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -4044,5 +4044,6 @@ Try enclosing path to the editor with double quotes.    <!-- Presets graphic/camera -->    <string name="preset_combo_label">-Empty list-</string> - +  <string name="Default">Default</string> +  <string name="Off">Off</string>    </strings>  | 
