Migrate LLFloaterHardwareSettings into a tab in LLPanelDisplay
Still not translated, left the old translated floaters for easier translation. New Hardware Tab is work in progress, it should be more populated in the future, but is fine for now.
This commit is contained in:
@@ -217,7 +217,6 @@ set(viewer_SOURCE_FILES
|
||||
llfloatergroupinvite.cpp
|
||||
llfloatergroups.cpp
|
||||
llfloaterhandler.cpp
|
||||
llfloaterhardwaresettings.cpp
|
||||
llfloaterhtmlcurrency.cpp
|
||||
llfloatermediabrowser.cpp
|
||||
llfloaterhtmlsimple.cpp
|
||||
@@ -710,7 +709,6 @@ set(viewer_HEADER_FILES
|
||||
llfloatergroupinvite.h
|
||||
llfloatergroups.h
|
||||
llfloaterhandler.h
|
||||
llfloaterhardwaresettings.h
|
||||
llfloaterhtmlcurrency.h
|
||||
llfloatermediabrowser.h
|
||||
llfloaterhtmlsimple.h
|
||||
|
||||
@@ -1,224 +0,0 @@
|
||||
/**
|
||||
* @file llfloaterhardwaresettings.cpp
|
||||
* @brief Menu of all the different graphics hardware settings
|
||||
*
|
||||
* $LicenseInfo:firstyear=2001&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2001-2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llfloaterhardwaresettings.h"
|
||||
#include "llfloaterpreference.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llwindow.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewertexturelist.h"
|
||||
#include "llfeaturemanager.h"
|
||||
#include "llstartup.h"
|
||||
|
||||
#include "llradiogroup.h"
|
||||
#include "lluictrlfactory.h"
|
||||
|
||||
#include "llimagegl.h"
|
||||
#include "pipeline.h"
|
||||
|
||||
LLFloaterHardwareSettings* LLFloaterHardwareSettings::sHardwareSettings = NULL;
|
||||
|
||||
LLFloaterHardwareSettings::LLFloaterHardwareSettings() : LLFloater(std::string("Hardware Settings Floater"))
|
||||
{
|
||||
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_hardware_settings.xml");
|
||||
|
||||
// load it up
|
||||
initCallbacks();
|
||||
}
|
||||
|
||||
LLFloaterHardwareSettings::~LLFloaterHardwareSettings()
|
||||
{
|
||||
}
|
||||
|
||||
void LLFloaterHardwareSettings::onClickHelp(void* data)
|
||||
{
|
||||
const char* xml_alert = "HardwareSettingsHelpButton";
|
||||
LLNotifications::instance().add(xml_alert);
|
||||
}
|
||||
|
||||
void LLFloaterHardwareSettings::initCallbacks(void)
|
||||
{
|
||||
}
|
||||
|
||||
// menu maintenance functions
|
||||
|
||||
void LLFloaterHardwareSettings::refresh()
|
||||
{
|
||||
LLPanel::refresh();
|
||||
|
||||
mUseVBO = gSavedSettings.getBOOL("RenderVBOEnable");
|
||||
mUseFBO = gSavedSettings.getBOOL("RenderUseFBO");
|
||||
mUseAniso = gSavedSettings.getBOOL("RenderAnisotropic");
|
||||
mFSAASamples = gSavedSettings.getU32("RenderFSAASamples");
|
||||
mGamma = gSavedSettings.getF32("RenderGamma");
|
||||
mVideoCardMem = gSavedSettings.getS32("TextureMemory");
|
||||
mFogRatio = gSavedSettings.getF32("RenderFogRatio");
|
||||
mProbeHardwareOnStartup = gSavedSettings.getBOOL("ProbeHardwareOnStartup");
|
||||
|
||||
childSetValue("fsaa", (LLSD::Integer) mFSAASamples);
|
||||
refreshEnabledState();
|
||||
}
|
||||
|
||||
void LLFloaterHardwareSettings::refreshEnabledState()
|
||||
{
|
||||
S32 min_tex_mem = LLViewerTextureList::getMinVideoRamSetting();
|
||||
S32 max_tex_mem = LLViewerTextureList::getMaxVideoRamSetting();
|
||||
childSetMinValue("GrapicsCardTextureMemory", min_tex_mem);
|
||||
childSetMaxValue("GrapicsCardTextureMemory", max_tex_mem);
|
||||
|
||||
mLastVBOState = LLVertexBuffer::sEnableVBOs;
|
||||
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderVBOEnable") ||
|
||||
!gGLManager.mHasVertexBufferObject)
|
||||
{
|
||||
childSetEnabled("vbo", FALSE);
|
||||
//Streaming VBOs -Shyotl
|
||||
childSetEnabled("vbo_stream", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
childSetEnabled("vbo_stream", LLVertexBuffer::sEnableVBOs);
|
||||
}
|
||||
|
||||
childSetEnabled("fbo",gGLManager.mHasFramebufferObject && !LLPipeline::sRenderDeferred);
|
||||
|
||||
// if no windlight shaders, turn off nighttime brightness, gamma, and fog distance
|
||||
childSetEnabled("gamma", !gPipeline.canUseWindLightShaders());
|
||||
childSetEnabled("(brightness, lower is brighter)", !gPipeline.canUseWindLightShaders());
|
||||
childSetEnabled("fog", !gPipeline.canUseWindLightShaders());
|
||||
|
||||
}
|
||||
|
||||
// static instance of it
|
||||
LLFloaterHardwareSettings* LLFloaterHardwareSettings::instance()
|
||||
{
|
||||
if (!sHardwareSettings)
|
||||
{
|
||||
sHardwareSettings = new LLFloaterHardwareSettings();
|
||||
sHardwareSettings->close();
|
||||
}
|
||||
return sHardwareSettings;
|
||||
}
|
||||
void LLFloaterHardwareSettings::show()
|
||||
{
|
||||
LLFloaterHardwareSettings* hardSettings = instance();
|
||||
hardSettings->refresh();
|
||||
hardSettings->center();
|
||||
|
||||
// comment in if you want the menu to rebuild each time
|
||||
//LLUICtrlFactory::getInstance()->buildFloater(hardSettings, "floater_hardware_settings.xml");
|
||||
//hardSettings->initCallbacks();
|
||||
|
||||
hardSettings->open();
|
||||
}
|
||||
|
||||
bool LLFloaterHardwareSettings::isOpen()
|
||||
{
|
||||
if (sHardwareSettings != NULL)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLFloaterHardwareSettings::onClose(bool app_quitting)
|
||||
{
|
||||
if (sHardwareSettings)
|
||||
{
|
||||
sHardwareSettings->setVisible(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLFloaterHardwareSettings::draw()
|
||||
{
|
||||
if(mLastVBOState == !LLVertexBuffer::sEnableVBOs)
|
||||
refreshEnabledState();
|
||||
LLFloater::draw();
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
|
||||
BOOL LLFloaterHardwareSettings::postBuild()
|
||||
{
|
||||
childSetAction("OK", onBtnOK, this);
|
||||
|
||||
refresh();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
void LLFloaterHardwareSettings::apply()
|
||||
{
|
||||
//Still do a bit of voodoo here. V2 forces restart to change FSAA with FBOs off.
|
||||
//Let's not do that, and instead do pre-V2 FSAA change handling for that particular case
|
||||
if(!LLRenderTarget::sUseFBO && (mFSAASamples != (U32)childGetValue("fsaa").asInteger()))
|
||||
{
|
||||
BOOL logged_in = (LLStartUp::getStartupState() >= STATE_STARTED);
|
||||
LLWindow* window = gViewerWindow->getWindow();
|
||||
LLCoordScreen size;
|
||||
window->getSize(&size);
|
||||
gViewerWindow->changeDisplaySettings(window->getFullscreen(),
|
||||
size,
|
||||
gSavedSettings.getBOOL("DisableVerticalSync"),
|
||||
logged_in);
|
||||
}
|
||||
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
void LLFloaterHardwareSettings::cancel()
|
||||
{
|
||||
gSavedSettings.setBOOL("RenderVBOEnable", mUseVBO);
|
||||
gSavedSettings.setBOOL("RenderUseFBO", mUseFBO);
|
||||
gSavedSettings.setBOOL("RenderAnisotropic", mUseAniso);
|
||||
gSavedSettings.setU32("RenderFSAASamples", mFSAASamples);
|
||||
gSavedSettings.setF32("RenderGamma", mGamma);
|
||||
gSavedSettings.setS32("TextureMemory", mVideoCardMem);
|
||||
gSavedSettings.setF32("RenderFogRatio", mFogRatio);
|
||||
gSavedSettings.setBOOL("ProbeHardwareOnStartup", mProbeHardwareOnStartup );
|
||||
|
||||
close();
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterHardwareSettings::onBtnOK( void* userdata )
|
||||
{
|
||||
LLFloaterHardwareSettings *fp =(LLFloaterHardwareSettings *)userdata;
|
||||
fp->apply();
|
||||
fp->close(false);
|
||||
}
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
/**
|
||||
* @file llfloaterhardwaresettings.h
|
||||
* @brief Menu of all the different graphics hardware settings
|
||||
*
|
||||
* $LicenseInfo:firstyear=2001&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2001-2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLFLOATER_HARDWARE_SETTINGS_H
|
||||
#define LL_LLFLOATER_HARDWARE_SETTINGS_H
|
||||
|
||||
#include "llfloater.h"
|
||||
|
||||
class LLSliderCtrl;
|
||||
|
||||
/// Menuing system for all of windlight's functionality
|
||||
class LLFloaterHardwareSettings : public LLFloater
|
||||
{
|
||||
friend class LLPreferenceCore;
|
||||
|
||||
public:
|
||||
|
||||
LLFloaterHardwareSettings();
|
||||
virtual ~LLFloaterHardwareSettings();
|
||||
|
||||
virtual BOOL postBuild();
|
||||
|
||||
/// initialize all the callbacks for the menu
|
||||
void initCallbacks(void);
|
||||
|
||||
/// one and one instance only
|
||||
static LLFloaterHardwareSettings* instance();
|
||||
|
||||
/// callback for the menus help button
|
||||
static void onClickHelp(void* data);
|
||||
|
||||
/// 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();
|
||||
|
||||
/// stuff to do on exit
|
||||
virtual void onClose(bool app_quitting);
|
||||
|
||||
/// sync up menu with parameters
|
||||
void refresh();
|
||||
|
||||
/// Draw the panel...
|
||||
void draw();
|
||||
|
||||
/// Apply the changed values.
|
||||
void apply();
|
||||
|
||||
/// don't apply the changed values
|
||||
void cancel();
|
||||
|
||||
/// refresh the enabled values
|
||||
void refreshEnabledState();
|
||||
|
||||
protected:
|
||||
LLSliderCtrl* mCtrlVideoCardMem;
|
||||
|
||||
//Retained values for cancel/reset
|
||||
BOOL mUseVBO;
|
||||
BOOL mUseFBO;
|
||||
BOOL mUseAniso;
|
||||
U32 mFSAASamples;
|
||||
F32 mGamma;
|
||||
S32 mVideoCardMem;
|
||||
F32 mFogRatio;
|
||||
BOOL mProbeHardwareOnStartup;
|
||||
|
||||
bool mLastVBOState; //track changes to LLVertexBuffer::sEnableVBOs every frame. Bleh.
|
||||
private:
|
||||
// one instance on the inside
|
||||
static LLFloaterHardwareSettings* sHardwareSettings;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -79,7 +79,6 @@
|
||||
#include "llviewerwindow.h"
|
||||
#include "llkeyboard.h"
|
||||
#include "llscrollcontainer.h"
|
||||
#include "llfloaterhardwaresettings.h"
|
||||
#include "hippopanelgrids.h"
|
||||
|
||||
const S32 PREF_BORDER = 4;
|
||||
@@ -318,9 +317,6 @@ void LLPreferenceCore::apply()
|
||||
mPrefsAscentSys->apply();
|
||||
mPrefsAscentVan->apply();
|
||||
|
||||
// hardware menu apply
|
||||
LLFloaterHardwareSettings::instance()->apply();
|
||||
|
||||
mWebPanel->apply();
|
||||
#if LL_LCD_COMPILE
|
||||
// only add this option if we actually have a logitech keyboard / speaker set
|
||||
@@ -350,9 +346,6 @@ void LLPreferenceCore::cancel()
|
||||
mPrefsAscentSys->cancel();
|
||||
mPrefsAscentVan->cancel();
|
||||
|
||||
// cancel hardware menu
|
||||
LLFloaterHardwareSettings::instance()->cancel();
|
||||
|
||||
mWebPanel->cancel();
|
||||
#if LL_LCD_COMPILE
|
||||
// only add this option if we actually have a logitech keyboard / speaker set
|
||||
@@ -380,7 +373,6 @@ void LLPreferenceCore::setPersonalInfo(const std::string& visibility, bool im_vi
|
||||
|
||||
void LLPreferenceCore::refreshEnabledGraphics()
|
||||
{
|
||||
LLFloaterHardwareSettings::instance()->refreshEnabledState();
|
||||
mDisplayPanel->refreshEnabledState();
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,6 @@
|
||||
#include "lluictrlfactory.h"
|
||||
#include "llfeaturemanager.h"
|
||||
#include "llviewershadermgr.h"
|
||||
#include "llfloaterhardwaresettings.h"
|
||||
#include "llboost.h"
|
||||
|
||||
//RN temporary includes for resolution switching
|
||||
@@ -111,9 +110,6 @@ BOOL LLPanelDisplay::postBuild()
|
||||
// Help button
|
||||
childSetAction("GraphicsPreferencesHelpButton", onOpenHelp, this);
|
||||
|
||||
// Hardware settings button
|
||||
childSetAction("GraphicsHardwareButton", onOpenHardwareSettings, NULL);
|
||||
|
||||
//============================================================================
|
||||
// Resolution
|
||||
|
||||
@@ -359,6 +355,9 @@ BOOL LLPanelDisplay::postBuild()
|
||||
mShadowDetailText = getChild<LLTextBox>("ShadowDetailText");
|
||||
mTerrainScaleText = getChild<LLTextBox>("TerrainScaleText");
|
||||
|
||||
// Hardware tab
|
||||
childSetCommitCallback("vbo", &LLPanelDisplay::onRenderVBOEnable, this);
|
||||
|
||||
refresh();
|
||||
|
||||
return TRUE;
|
||||
@@ -463,6 +462,17 @@ void LLPanelDisplay::refresh()
|
||||
updateSliderText(mCtrlPostProcess, mPostProcessText);
|
||||
updateSliderText(mCtrlSkyFactor, mSkyFactorText);
|
||||
|
||||
// Hardware tab
|
||||
mUseVBO = gSavedSettings.getBOOL("RenderVBOEnable");
|
||||
mUseFBO = gSavedSettings.getBOOL("RenderUseFBO");
|
||||
mUseAniso = gSavedSettings.getBOOL("RenderAnisotropic");
|
||||
mFSAASamples = gSavedSettings.getU32("RenderFSAASamples");
|
||||
mGamma = gSavedSettings.getF32("RenderGamma");
|
||||
mVideoCardMem = gSavedSettings.getS32("TextureMemory");
|
||||
mFogRatio = gSavedSettings.getF32("RenderFogRatio");
|
||||
|
||||
childSetValue("fsaa", (LLSD::Integer) mFSAASamples);
|
||||
|
||||
refreshEnabledState();
|
||||
}
|
||||
|
||||
@@ -503,10 +513,6 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
|
||||
mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE);
|
||||
|
||||
// Avatar Mode
|
||||
S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel;
|
||||
mCtrlAvatarVP->setEnabled((max_avatar_shader > 0) ? TRUE : FALSE);
|
||||
|
||||
if (gSavedSettings.getBOOL("VertexShaderEnable") == FALSE ||
|
||||
gSavedSettings.getBOOL("RenderAvatarVP") == FALSE)
|
||||
{
|
||||
@@ -517,6 +523,7 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
mCtrlAvatarCloth->setEnabled(true);
|
||||
}
|
||||
|
||||
static LLCachedControl<bool> wlatmos("WindLightUseAtmosShaders",false);
|
||||
//I actually recommend RenderUseFBO:FALSE for ati users when not using deferred, so RenderUseFBO shouldn't control visibility of the element.
|
||||
// Instead, gGLManager.mHasFramebufferObject seems better as it is determined by hardware and not current user settings. -Shyotl
|
||||
//Enabling deferred will force RenderUseFBO to TRUE.
|
||||
@@ -524,13 +531,14 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") && //Ensure it's enabled in the gpu feature table
|
||||
LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarVP") && //Hardware Skinning. Deferred forces RenderAvatarVP to true
|
||||
LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable") && gSavedSettings.getBOOL("VertexShaderEnable") && //Basic Shaders
|
||||
LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders") && gSavedSettings.getBOOL("WindLightUseAtmosShaders"); //Atmospheric Shaders
|
||||
LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders") && wlatmos; //Atmospheric Shaders
|
||||
|
||||
|
||||
mCtrlDeferred->setEnabled(can_defer);
|
||||
mCtrlShadowDetail->setEnabled(can_defer && gSavedSettings.getBOOL("RenderDeferred"));
|
||||
mCtrlAmbientOcc->setEnabled(can_defer && gSavedSettings.getBOOL("RenderDeferred"));
|
||||
mCtrlDeferredDoF->setEnabled(can_defer && gSavedSettings.getBOOL("RenderDeferred"));
|
||||
static LLCachedControl<bool> render_deferred("RenderDeferred",false);
|
||||
mCtrlShadowDetail->setEnabled(can_defer && render_deferred);
|
||||
mCtrlAmbientOcc->setEnabled(can_defer && render_deferred);
|
||||
mCtrlDeferredDoF->setEnabled(can_defer && render_deferred);
|
||||
|
||||
// Disable max non-impostors slider if avatar impostors are off
|
||||
mCtrlNonImpostors->setEnabled(gSavedSettings.getBOOL("RenderUseImpostors"));
|
||||
@@ -543,15 +551,15 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
mCtrlShaderEnable->setEnabled(fCtrlShaderEnable && (!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV) || !mShaderEnable));
|
||||
// [/RLVa:KB]
|
||||
|
||||
BOOL shaders = mCtrlShaderEnable->get();
|
||||
bool shaders = mCtrlShaderEnable->get();
|
||||
if (shaders)
|
||||
{
|
||||
mRadioTerrainDetail->setValue(1);
|
||||
mRadioTerrainDetail->setEnabled(FALSE);
|
||||
mRadioTerrainDetail->setEnabled(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
mRadioTerrainDetail->setEnabled(TRUE);
|
||||
mRadioTerrainDetail->setEnabled(true);
|
||||
}
|
||||
|
||||
// *HACK just checks to see if we can use shaders...
|
||||
@@ -563,9 +571,50 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
mCtrlWindLight->setEnabled(fCtrlWindLightEnable && (!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV) || !mWindLight));
|
||||
// [/RLVa:KB]
|
||||
|
||||
// turn off sky detail if atmostpherics isn't on
|
||||
mCtrlSkyFactor->setEnabled(gSavedSettings.getBOOL("WindLightUseAtmosShaders"));
|
||||
mSkyFactorText->setEnabled(gSavedSettings.getBOOL("WindLightUseAtmosShaders"));
|
||||
// turn off sky detail if atmospherics isn't on
|
||||
mCtrlSkyFactor->setEnabled(wlatmos);
|
||||
mSkyFactorText->setEnabled(wlatmos);
|
||||
|
||||
// Avatar Mode and FBO
|
||||
childSetEnabled("fbo", gGLManager.mHasFramebufferObject && !LLPipeline::sRenderDeferred);
|
||||
if (render_deferred && wlatmos && shaders)
|
||||
{
|
||||
childSetValue("fbo", true);
|
||||
mCtrlAvatarVP->setEnabled(false);
|
||||
mCtrlAvatarVP->setValue(true);
|
||||
}
|
||||
else if (!shaders)
|
||||
{
|
||||
mCtrlAvatarVP->setEnabled(false);
|
||||
mCtrlAvatarVP->setValue(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
mCtrlAvatarVP->setEnabled(true);
|
||||
}
|
||||
|
||||
// Hardware tab
|
||||
S32 min_tex_mem = LLViewerTextureList::getMinVideoRamSetting();
|
||||
S32 max_tex_mem = LLViewerTextureList::getMaxVideoRamSetting();
|
||||
childSetMinValue("GrapicsCardTextureMemory", min_tex_mem);
|
||||
childSetMaxValue("GrapicsCardTextureMemory", max_tex_mem);
|
||||
|
||||
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderVBOEnable") ||
|
||||
!gGLManager.mHasVertexBufferObject)
|
||||
{
|
||||
childSetEnabled("vbo", false);
|
||||
//Streaming VBOs -Shyotl
|
||||
childSetEnabled("vbo_stream", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
childSetEnabled("vbo_stream", LLVertexBuffer::sEnableVBOs);
|
||||
}
|
||||
|
||||
// if no windlight shaders, enable gamma, and fog distance
|
||||
childSetEnabled("gamma",!wlatmos);
|
||||
childSetEnabled("fog", !wlatmos);
|
||||
childSetVisible("note", wlatmos);
|
||||
|
||||
// now turn off any features that are unavailable
|
||||
disableUnavailableSettings();
|
||||
@@ -812,6 +861,15 @@ void LLPanelDisplay::cancel()
|
||||
gSavedSettings.setU32("WLSkyDetail", mSkyLOD);
|
||||
gSavedSettings.setS32("RenderMaxPartCount", mParticleCount);
|
||||
gSavedSettings.setS32("RenderGlowResolutionPow", mPostProcess);
|
||||
|
||||
// Hardware tab
|
||||
gSavedSettings.setBOOL("RenderVBOEnable", mUseVBO);
|
||||
gSavedSettings.setBOOL("RenderUseFBO", mUseFBO);
|
||||
gSavedSettings.setBOOL("RenderAnisotropic", mUseAniso);
|
||||
gSavedSettings.setU32("RenderFSAASamples", mFSAASamples);
|
||||
gSavedSettings.setF32("RenderGamma", mGamma);
|
||||
gSavedSettings.setS32("TextureMemory", mVideoCardMem);
|
||||
gSavedSettings.setF32("RenderFogRatio", mFogRatio);
|
||||
}
|
||||
|
||||
void LLPanelDisplay::apply()
|
||||
@@ -823,6 +881,21 @@ void LLPanelDisplay::apply()
|
||||
{
|
||||
applyWindowSize();
|
||||
}
|
||||
|
||||
// Hardware tab
|
||||
//Still do a bit of voodoo here. V2 forces restart to change FSAA with FBOs off.
|
||||
//Let's not do that, and instead do pre-V2 FSAA change handling for that particular case
|
||||
if(!LLRenderTarget::sUseFBO && (mFSAASamples != (U32)childGetValue("fsaa").asInteger()))
|
||||
{
|
||||
bool logged_in = (LLStartUp::getStartupState() >= STATE_STARTED);
|
||||
LLWindow* window = gViewerWindow->getWindow();
|
||||
LLCoordScreen size;
|
||||
window->getSize(&size);
|
||||
gViewerWindow->changeDisplaySettings(window->getFullscreen(),
|
||||
size,
|
||||
gSavedSettings.getBOOL("DisableVerticalSync"),
|
||||
logged_in);
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelDisplay::onChangeQuality(LLUICtrl *ctrl, void *data)
|
||||
@@ -856,11 +929,6 @@ void LLPanelDisplay::onOpenHelp(void* user_data)
|
||||
LLNotifications::instance().add(parent_floater->contextualNotification(xml_alert));
|
||||
}
|
||||
|
||||
void LLPanelDisplay::onOpenHardwareSettings(void* user_data)
|
||||
{
|
||||
LLFloaterHardwareSettings::show();
|
||||
}
|
||||
|
||||
void LLPanelDisplay::onApplyResolution(LLUICtrl* src, void* user_data)
|
||||
{
|
||||
((LLPanelDisplay*) src)->applyResolution();
|
||||
@@ -1037,6 +1105,15 @@ void LLPanelDisplay::onVertexShaderEnable(LLUICtrl* self, void* data)
|
||||
LLFloaterPreference::refreshEnabledGraphics();
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelDisplay::onRenderVBOEnable(LLUICtrl* self, void* data)
|
||||
{
|
||||
LLPanelDisplay* panel = (LLPanelDisplay*)data;
|
||||
bool enable = panel->childGetValue("vbo").asBoolean();
|
||||
panel->childSetEnabled("vbo_stream", enable);
|
||||
if(!enable) panel->childSetValue("vbo_stream", false);
|
||||
}
|
||||
|
||||
void LLPanelDisplay::setHardwareDefaults(void* user_data)
|
||||
{
|
||||
LLFeatureManager::getInstance()->applyRecommendedSettings();
|
||||
|
||||
@@ -185,6 +185,15 @@ protected:
|
||||
S32 mParticleCount;
|
||||
S32 mPostProcess;
|
||||
|
||||
// Hardware tab
|
||||
BOOL mUseVBO;
|
||||
BOOL mUseFBO;
|
||||
BOOL mUseAniso;
|
||||
U32 mFSAASamples;
|
||||
F32 mGamma;
|
||||
S32 mVideoCardMem;
|
||||
F32 mFogRatio;
|
||||
|
||||
static void setGraphicsSettings(LLControlGroup& group);
|
||||
static void createGroup();
|
||||
|
||||
@@ -195,7 +204,6 @@ protected:
|
||||
static void onChangeCustom(LLUICtrl *ctrl, void *data);
|
||||
|
||||
static void onOpenHelp(void *data);
|
||||
static void onOpenHardwareSettings(void *data);
|
||||
static void onCommitAutoDetectAspect(LLUICtrl *ctrl, void *data);
|
||||
static void onKeystrokeAspectRatio(LLLineEditor* caller, void* user_data);
|
||||
static void onSelectAspectRatio(LLUICtrl*, void*);
|
||||
@@ -210,6 +218,9 @@ protected:
|
||||
// callback for when client turns on shaders
|
||||
static void onVertexShaderEnable(LLUICtrl*, void*);
|
||||
|
||||
// callbacks for hardware tab
|
||||
static void onRenderVBOEnable(LLUICtrl*, void*);
|
||||
|
||||
// helper function
|
||||
static void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator);
|
||||
};
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater bottom="-400" height="244" left="50" name="Hardware Settings Floater" title="Hardware Settings" width="500">
|
||||
<text bottom="-42" height="12" left="10" name="Filtering:">Filtering:</text>
|
||||
<check_box bottom="-46" control_name="RenderAnisotropic" height="16" initial_value="false" label="Anisotropic Filtering (slower when enabled)" left="148" name="ani" width="256"/>
|
||||
<text bottom="-61" height="12" left="10" name="Antialiasing:" width="128">Antialiasing:</text>
|
||||
<combo_box bottom="-65" control_name="RenderFSAASamples" height="16" initial_value="false" label="Antialiasing" left="148" name="fsaa" width="64">
|
||||
<combo_item name="FSAADisabled" value="0">Disabled</combo_item>
|
||||
<combo_item name="2x" value="2">2x</combo_item>
|
||||
<combo_item name="4x" value="4">4x</combo_item>
|
||||
<combo_item name="8x" value="8">8x</combo_item>
|
||||
<combo_item name="16x" value="16">16x</combo_item>
|
||||
</combo_box>
|
||||
<spinner bottom_delta="-21" control_name="RenderGamma" decimal_digits="2" height="16" increment="0.01" initial_val="1" label="Gamma:" label_width="138" left="10" max_val="2" min_val="0.0" name="gamma" width="202"/>
|
||||
<text bottom_delta="2" height="12" left="222" name="(brightness, lower is brighter)">(brightness, lower is brighter, 0=use default)</text>
|
||||
<text bottom_delta="-20" height="12" left="10" name="Enable VBO:">Enable VBO:</text>
|
||||
<check_box bottom_delta="-5" control_name="RenderVBOEnable" height="16" initial_value="true" label="Enable OpenGL Vertex Buffer Objects" left="148" 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."/>
|
||||
<check_box bottom_delta="-18" control_name="ShyotlRenderUseStreamVBO" height="16" initial_value="false" label="Enable Streamed VBOs" left="157" name="vbo_stream"
|
||||
tool_tip="Disabling this may improve performance when VBOs are enabled. Disabling produced observable improvement on various AMD GPUs."/>
|
||||
<text bottom_delta="-20" height="12" left="10" name="Enable FBO:">Enable Framebuffer Objects:</text>
|
||||
<check_box bottom_delta="-5" control_name="RenderUseFBO" enabled="false" height="16" initial_value="true" label="Enable OpenGL Frame Buffer Objects" left="148" name="fbo"
|
||||
tool_tip="Enabling this on modern hardware can provide a performance gain. However, enabling this when combined with antialiasing on AMD GPUs may cause edge artifacts. This setting is required for deferred rendering."/>
|
||||
<slider bottom_delta="-21" control_name="TextureMemory" decimal_digits="0" height="16" increment="16" initial_val="32" label="Texture Memory (MB):" label_width="135" left="10" max_val="4096" min_val="0" name="GrapicsCardTextureMemory"
|
||||
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."
|
||||
width="300"/>
|
||||
<spinner bottom_delta="-24" control_name="RenderFogRatio" decimal_digits="1" height="16" increment="0.1" initial_val="4" label="Fog Distance Ratio:" label_width="138" left="10" max_val="10" min_val="0.5" name="fog" width="202"/>
|
||||
<text bottom_delta="-50" height="40" left="10" name="note">
|
||||
Note: the Gamma and Fog Distance Ratio settings are unavailable
|
||||
(since useless) when the Atmospheric Shaders are enabled.
|
||||
</text>
|
||||
<button bottom="10" height="20" label="OK" label_selected="OK" left="-110" name="OK" scale_image="true" width="90"/>
|
||||
</floater>
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel border="true" bottom="-439" height="438" label="Graphics" left="102" name="Display panel" width="517">
|
||||
<button bottom="-22" height="18" label="?" left="470" name="GraphicsPreferencesHelpButton" width="22"/>
|
||||
<panel bottom="-449" height="438" label="Graphics" name="Display panel" width="517">
|
||||
<check_box bottom="-23" height="16" initial_value="false" label="Run viewer in a window" left="10" name="windowed mode" width="120" tool_tip="If unchecked, viewer will display full-screen when logged in."/>
|
||||
<text bottom="-62" height="12" name="WindowSizeLabel">Window Size:</text>
|
||||
<combo_box bottom="-67" height="18" left="165" name="windowsize combo" width="150">
|
||||
@@ -21,25 +20,29 @@
|
||||
<combo_item name="8:5(Widescreen)" value="1.6">16:10 (Widescreen PC)</combo_item>
|
||||
<combo_item name="16:9(Widescreen)" value="1.7777777">16:9 (Widescreen TV)</combo_item>
|
||||
</combo_box>
|
||||
<check_box bottom="-44" control_name="FullScreenAutoDetectAspectRatio" height="16" initial_value="false" label="Auto-detect ratio" left="358" name="aspect_auto_detect" width="256"/>
|
||||
<text bottom="-91" height="12" left="10" name="QualityText">Quality & Performance:</text>
|
||||
<text bottom="-91" height="12" left="135" name="FasterText">Faster</text>
|
||||
<text bottom="-107" height="12" left_delta="23" name="ShadersPrefText">Low</text>
|
||||
<text bottom="-107" height="12" left_delta="47" name="ShadersPrefText2">Mid</text>
|
||||
<text bottom="-107" height="12" left_delta="47" name="ShadersPrefText3">High</text>
|
||||
<text bottom="-107" height="12" left_delta="47" name="ShadersPrefText4">Ultra</text>
|
||||
<text bottom="-91" height="12" left_delta="14" name="QualityText2">Higher Quality</text>
|
||||
<button bottom_delta="-20" height="20" label="Default" tool_tip="Reset to recommended graphics settings" left="355" name="Defaults" scale_image="true" width="100"/>
|
||||
<check_box bottom="-44" control_name="FullScreenAutoDetectAspectRatio" height="16" initial_value="false" label="Auto-detect ratio" left="350" name="aspect_auto_detect" width="256"/>
|
||||
<tab_container follows="all" bottom="0" border="false" left="0" height="360" width="518" name="graphics_tab" tab_position="bottom">
|
||||
<panel border="true" bottom="-439" height="438" label="Main" left="102" name="Main" width="517">
|
||||
<button bottom="327" height="18" label="?" left="470" name="GraphicsPreferencesHelpButton" width="22"/>
|
||||
<text bottom="330" height="12" left="10" name="QualityText">Quality & Performance:</text>
|
||||
<text bottom_delta="0" height="12" left="135" name="FasterText">Faster</text>
|
||||
<text bottom_delta="-16" height="12" left_delta="23" name="ShadersPrefText">Low</text>
|
||||
<text bottom_delta="0" height="12" left_delta="47" name="ShadersPrefText2">Mid</text>
|
||||
<text bottom_delta="0" height="12" left_delta="47" name="ShadersPrefText3">High</text>
|
||||
<text bottom_delta="0" height="12" left_delta="47" name="ShadersPrefText4">Ultra</text>
|
||||
<text bottom_delta="16" height="12" left_delta="23" name="QualityText2">Higher Quality</text>
|
||||
<!-- Are these icons really necessary?
|
||||
<icon bottom="-89" height="14" image_name="rounded_square.tga" left="173" name="LowDivet" width="2"/>
|
||||
<icon bottom="-89" height="14" image_name="rounded_square.tga" left_delta="44" name="MidDivet" width="2"/>
|
||||
<icon bottom="-89" height="14" image_name="rounded_square.tga" left_delta="44" name="HighDivet" width="2"/>
|
||||
<icon bottom="-89" height="14" image_name="rounded_square.tga" left_delta="44" name="UltraDivet" width="2"/>
|
||||
-->
|
||||
<slider bottom="-91" control_name="RenderQualityPerformance" increment="1" initial_val="0" left="165" max_val="3" min_val="0" name="QualityPerformanceSelection" show_text="false" width="150" />
|
||||
<check_box bottom="-96" control_name="RenderCustomSettings" label="Custom" left="395" initial_value="true" name="CustomSettings"/>
|
||||
<slider bottom_delta="0" control_name="RenderQualityPerformance" increment="1" initial_val="0" left="165" max_val="3" min_val="0" name="QualityPerformanceSelection" show_text="false" width="150" />
|
||||
<check_box bottom_delta="-5" control_name="RenderCustomSettings" label="Custom" left="395" initial_value="true" name="CustomSettings"/>
|
||||
<!--view_border bevel_style="none" bottom="-395" height="280" left="5" name="GraphicsBorder" width="485"/-->
|
||||
<text bottom="-130" height="12" left="10" name="ShadersText">Shaders:</text>
|
||||
<check_box bottom_delta="-23" control_name="RenderTransparentWater" height="16" initial_value="true" label="Transparent water" left="10" name="TransparentWater"/>
|
||||
<text bottom="300" height="12" left="10" name="ShadersText">Shaders:</text>
|
||||
<check_box bottom_delta="-23" control_name="RenderTransparentWater" height="16" initial_value="true" label="Transparent water" left="10" name="TransparentWater"/>
|
||||
<check_box bottom_delta="-17" control_name="RenderObjectBump" height="16" initial_value="true" label="Bump mapping and shiny" left="10" name="BumpShiny"/>
|
||||
<check_box bottom_delta="-17" control_name="RenderLocalLights" height="16" label="Local Lights" name="LightingDetailRadio"/>
|
||||
<check_box bottom_delta="-17" control_name="VertexShaderEnable" height="16" initial_value="true" label="Basic shaders" left_delta="0" name="BasicShaders" tool_tip="Disabling this option may prevent some graphics card drivers from crashing."/>
|
||||
@@ -69,40 +72,64 @@
|
||||
<combo_item name="4" value="4">Everything</combo_item>
|
||||
</combo_box>
|
||||
|
||||
<slider bottom_delta="-20" left="5" control_name="RenderAvatarPhysicsLODFactor" increment="0.1" label=" Avatar Physics:" label_width="79" max_val="1" min_val="0" name="AvatarPhysicsDetail" show_text="false" width="160"/>
|
||||
<text bottom_delta="-2" left="170" height="12" name="AvatarPhysicsDetailText">Off</text>
|
||||
<!--text bottom="-131" height="12" left="464" name="DrawDistanceMeterText1">m</text-->
|
||||
<text bottom="-131" height="12" left="470" name="DrawDistanceMeterText2">m</text>
|
||||
<slider bottom="-135" control_name="RenderFarClip" decimal_digits="0" height="16" increment="8" initial_val="160" label="Draw Distance:" label_width="101" left="215" max_val="1024" min_val="64" name="DrawDistance" width="262"/>
|
||||
<slider bottom_delta="-15" control_name="RenderMaxPartCount" decimal_digits="0" height="16" increment="256" initial_val="4096" label="Max. Particle Count:" label_width="101" max_val="8192" min_val="0" name="MaxParticleCount" width="262"/>
|
||||
<slider bottom_delta="-15" control_name="RenderAvatarMaxVisible" decimal_digits="0" increment="1" initial_val="35" label="Max non-impostors" label_width="101" max_val="50" min_val="1" name="AvatarMaxVisible" width="250"/>
|
||||
<slider bottom_delta="-25" control_name="RenderGlowResolutionPow" decimal_digits="0" height="16" increment="1" initial_val="8" label="Post Process Quality:" label_width="101" max_val="9" min_val="8" name="RenderPostProcess" show_text="false" width="226"/>
|
||||
<text bottom_delta="-20" height="12" left="215" name="MeshDetailText">Level of Detail:</text>
|
||||
<slider bottom_delta="-20" control_name="RenderVolumeLODFactor" increment="0.09375" label=" Objects:" label_width="79" max_val="2" min_val="0.5" name="ObjectMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="RenderFlexTimeFactor" increment="0.1" label=" Flexiprims:" label_width="79" max_val="1" min_val="0" name="FlexibleMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="RenderTreeLODFactor" increment="0.125" label=" Trees:" label_width="79" max_val="1" min_val="0" name="TreeMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="RenderAvatarLODFactor" increment="0.125" label=" Avatars:" label_width="79" max_val="1" min_val="0" name="AvatarMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="RenderTerrainLODFactor" increment="0.125" label=" Terrain:" label_width="79" max_val="2" min_val="1" name="TerrainMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="WLSkyDetail" decimal_digits="0" increment="8" label=" Sky:" label_width="79" max_val="128" min_val="16" name="SkyMeshDetail" show_text="false" width="223"/>
|
||||
<text bottom="-192" height="12" left="444" name="PostProcessText">Low</text>
|
||||
<text bottom_delta="-38" height="12" name="ObjectMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="FlexibleMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="TreeMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="AvatarMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="TerrainMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="SkyMeshDetailText">Low</text>
|
||||
<text bottom="-360" height="12" left="230" name="AvatarRenderingText">Avatar Rendering:</text>
|
||||
<check_box bottom_delta="-16" control_name="RenderUseImpostors" initial_value="true" label="Avatar impostors" name="AvatarImpostors"/>
|
||||
<check_box bottom_delta="-16" control_name="RenderAvatarVP" initial_value="true" label="Hardware skinning" name="AvatarVertexProgram"/>
|
||||
<check_box bottom_delta="-16" control_name="RenderAvatarCloth" initial_value="true" label="Avatar cloth" name="AvatarCloth"/>
|
||||
<text bottom="-360" height="12" left="395" name="TerrainDetailText">Terrain detail:</text>
|
||||
<radio_group bottom_delta="-40" control_name="RenderTerrainDetail" draw_border="false" height="38" name="TerrainDetailRadio" width="321">
|
||||
<slider bottom_delta="-20" left="5" control_name="RenderAvatarPhysicsLODFactor" increment="0.1" label=" Avatar Physics:" label_width="79" max_val="1" min_val="0" name="AvatarPhysicsDetail" show_text="false" width="160"/>
|
||||
<text bottom_delta="-2" left="170" height="12" name="AvatarPhysicsDetailText">Off</text>
|
||||
<text bottom="299" left="470" height="12" name="DrawDistanceMeterText1">m</text>
|
||||
<text bottom="299" left="470" height="12" name="DrawDistanceMeterText2">m</text>
|
||||
<slider bottom="295" left="215" control_name="RenderFarClip" decimal_digits="0" height="16" increment="8" initial_val="160" label="Draw Distance:" label_width="101" max_val="1024" min_val="64" name="DrawDistance" width="262"/>
|
||||
<slider bottom_delta="-15" control_name="RenderMaxPartCount" decimal_digits="0" height="16" increment="256" initial_val="4096" label="Max. Particle Count:" label_width="101" max_val="8192" min_val="0" name="MaxParticleCount" width="262"/>
|
||||
<slider bottom_delta="-15" control_name="RenderAvatarMaxVisible" decimal_digits="0" increment="1" initial_val="35" label="Max non-impostors" label_width="101" max_val="50" min_val="1" name="AvatarMaxVisible" width="250"/>
|
||||
<slider bottom_delta="-25" control_name="RenderGlowResolutionPow" decimal_digits="0" height="16" increment="1" initial_val="8" label="Post Process Quality:" label_width="101" max_val="9" min_val="8" name="RenderPostProcess" show_text="false" width="226"/>
|
||||
<text bottom_delta="-15" height="12" left="215" name="MeshDetailText">Level of Detail:</text>
|
||||
<slider bottom_delta="-20" control_name="RenderVolumeLODFactor" increment="0.09375" label=" Objects:" label_width="79" max_val="2" min_val="0.5" name="ObjectMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="RenderFlexTimeFactor" increment="0.1" label=" Flexiprims:" label_width="79" max_val="1" min_val="0" name="FlexibleMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="RenderTreeLODFactor" increment="0.125" label=" Trees:" label_width="79" max_val="1" min_val="0" name="TreeMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="RenderAvatarLODFactor" increment="0.125" label=" Avatars:" label_width="79" max_val="1" min_val="0" name="AvatarMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="RenderTerrainLODFactor" increment="0.125" label=" Terrain:" label_width="79" max_val="2" min_val="1" name="TerrainMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-20" control_name="WLSkyDetail" decimal_digits="0" increment="8" label=" Sky:" label_width="79" max_val="128" min_val="16" name="SkyMeshDetail" show_text="false" width="223"/>
|
||||
<text bottom_delta="100" left_delta="229" height="12" name="ObjectMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="FlexibleMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="TreeMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="AvatarMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="TerrainMeshDetailText">Low</text>
|
||||
<text bottom_delta="-20" height="12" name="SkyMeshDetailText">Low</text>
|
||||
<text bottom_delta="-30" height="12" left="230" name="AvatarRenderingText">Avatar Rendering:</text>
|
||||
<check_box bottom_delta="-20" control_name="RenderUseImpostors" initial_value="true" label="Avatar impostors" name="AvatarImpostors"/>
|
||||
<check_box bottom_delta="-16" control_name="RenderAvatarVP" initial_value="true" label="Hardware skinning" name="AvatarVertexProgram"/>
|
||||
<check_box bottom_delta="-16" control_name="RenderAvatarCloth" initial_value="true" label="Avatar cloth" name="AvatarCloth"/>
|
||||
<text bottom_delta="53" height="12" left="395" name="TerrainDetailText">Terrain detail:</text>
|
||||
<radio_group bottom_delta="-44" control_name="RenderTerrainDetail" draw_border="false" height="38" name="TerrainDetailRadio" width="321">
|
||||
<radio_item bottom="-15" height="16" left="3" name="0" width="315">Low</radio_item>
|
||||
<radio_item bottom="-31" height="16" name="2" width="315">High</radio_item>
|
||||
</radio_group>
|
||||
<button bottom="-440" height="20" label="Reset to defaults" left="10" name="Defaults" scale_image="true" width="240"/>
|
||||
<!--button bottom="-440" height="20" label="Advanced" left="230" name="CustomSettingsButton" scale_image="true" width="120" toggle="true" control_name="RenderCustomSettings"/-->
|
||||
<button bottom="-440" height="20" label="Hardware" left="370" name="GraphicsHardwareButton" scale_image="true" width="120"/>
|
||||
<string name="resolution_format">[RES_X] x [RES_Y]</string>
|
||||
<string name="aspect_ratio_text">[NUM]:[DEN]</string>
|
||||
</radio_group>
|
||||
<text bottom="-106" height="12" left="444" name="PostProcessText">Low</text>
|
||||
</panel>
|
||||
<panel border="true" bottom="-400" height="244" left="50" name="Hardware" label="Hardware" width="500">
|
||||
<check_box bottom="-22" control_name="RenderAnisotropic" height="16" initial_value="false" label="Anisotropic Filtering (slower when enabled)" left="5" name="ani" width="256"/>
|
||||
<text bottom="-37" height="12" left="10" name="Antialiasing:" width="128">Antialiasing:</text>
|
||||
<combo_box bottom="-41" control_name="RenderFSAASamples" height="16" initial_value="false" label="Antialiasing" left="148" name="fsaa" width="64">
|
||||
<combo_item name="FSAADisabled" value="0">Disabled</combo_item>
|
||||
<combo_item name="2x" value="2">2x</combo_item>
|
||||
<combo_item name="4x" value="4">4x</combo_item>
|
||||
<combo_item name="8x" value="8">8x</combo_item>
|
||||
<combo_item name="16x" value="16">16x</combo_item>
|
||||
</combo_box>
|
||||
<spinner bottom_delta="70" control_name="TextureMemory" decimal_digits="0" height="16" increment="16" initial_val="32" label="Texture Memory (MB):" label_width="138" left="10" max_val="4096" min_val="0" name="GrapicsCardTextureMemory" 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." width="202"/>
|
||||
<check_box bottom_delta="-25" control_name="RenderVBOEnable" height="16" initial_value="true" label="Enable OpenGL Vertex Buffer Objects" left="5" 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."/>
|
||||
<check_box bottom_delta="-18" control_name="ShyotlRenderUseStreamVBO" height="16" initial_value="false" label="Enable Streamed VBOs" left="14" name="vbo_stream"
|
||||
tool_tip="Disabling this may improve performance when VBOs are enabled. Disabling produced observable improvement on various AMD GPUs."/>
|
||||
<check_box bottom_delta="-25" control_name="RenderUseFBO" height="16" initial_value="true" label="Enable OpenGL Frame Buffer Objects" left="5" name="fbo"
|
||||
tool_tip="Enabling this on modern hardware can provide a performance gain. However, enabling this when combined with antialiasing on AMD GPUs may cause edge artifacts. This setting is required for deferred rendering."/>
|
||||
<spinner bottom="-42" control_name="RenderGamma" decimal_digits="2" height="16" increment="0.01" initial_val="1" label="Gamma:" label_width="138" left="250" max_val="2" min_val="0.0" name="gamma" width="202" tool_tip="(brightness, lower is brighter)"/>
|
||||
<spinner bottom_delta="70" control_name="RenderFogRatio" decimal_digits="1" height="16" increment="0.1" initial_val="4" label="Fog Distance Ratio:" label_width="138" max_val="10" min_val="0.5" name="fog" width="202"/>
|
||||
<text bottom_delta="-50" height="40" name="note">
|
||||
Note: The Gamma and Fog Distance Ratio
|
||||
settings are unavailable (since useless)
|
||||
when the Atmospheric Shaders are enabled.
|
||||
</text>
|
||||
</panel>
|
||||
</tab_container>
|
||||
<string name="resolution_format">[RES_X] x [RES_Y]</string>
|
||||
<string name="aspect_ratio_text">[NUM]:[DEN]</string>
|
||||
</panel>
|
||||
|
||||
Reference in New Issue
Block a user