[Preferences Refactor] Further cleanup
Moves to visibility_control and enabled_control instead of using callbacks, this lightens the load on opening preferences, and makes them responsive even to debug settings changes Removes the moving m for meter text with draw distance, I don't think anyone cares if it's a little to the side of the number. Adjustment of tabs to spaces in xml. Return early when disabling unavailable settings if shaders are unavailable. Cuts back on single-call functions in favor of direct binds.
This commit is contained in:
@@ -102,10 +102,12 @@ LLPanelDisplay::LLPanelDisplay()
|
||||
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_graphics1.xml");
|
||||
}
|
||||
|
||||
void updateSliderText(LLSliderCtrl* slider, LLTextBox* text_box);
|
||||
|
||||
BOOL LLPanelDisplay::postBuild()
|
||||
{
|
||||
// return to default values
|
||||
getChild<LLButton>("Defaults")->setClickedCallback(boost::bind(&LLPanelDisplay::setHardwareDefaults));
|
||||
getChild<LLButton>("Defaults")->setClickedCallback(boost::bind(&LLPanelDisplay::setHardwareDefaults, this));
|
||||
|
||||
//============================================================================
|
||||
// Resolution
|
||||
@@ -190,16 +192,16 @@ BOOL LLPanelDisplay::postBuild()
|
||||
aspect_ratio_text = llformat("%.3f", mAspectRatio);
|
||||
}
|
||||
|
||||
mCtrlAutoDetectAspect = getChild<LLCheckBoxCtrl>( "aspect_auto_detect");
|
||||
mCtrlAutoDetectAspect->setCommitCallback(boost::bind(&LLPanelDisplay::onCommitAutoDetectAspect,this,_2));
|
||||
|
||||
mCtrlAspectRatio = getChild<LLComboBox>( "aspect_ratio");
|
||||
mCtrlAspectRatio->setTextEntryCallback(boost::bind(&LLPanelDisplay::onKeystrokeAspectRatio,this));
|
||||
mCtrlAspectRatio->setCommitCallback(boost::bind(&LLPanelDisplay::onSelectAspectRatio,this));
|
||||
mCtrlAspectRatio->setTextEntryCallback(boost::bind(&LLUICtrl::setValue, mCtrlAutoDetectAspect, false));
|
||||
mCtrlAspectRatio->setCommitCallback(boost::bind(&LLUICtrl::setValue, mCtrlAutoDetectAspect, false));
|
||||
// add default aspect ratios
|
||||
mCtrlAspectRatio->add(aspect_ratio_text, &mAspectRatio, ADD_TOP);
|
||||
mCtrlAspectRatio->setCurrentByIndex(0);
|
||||
|
||||
mCtrlAutoDetectAspect = getChild<LLCheckBoxCtrl>( "aspect_auto_detect");
|
||||
mCtrlAutoDetectAspect->setCommitCallback(boost::bind(&LLPanelDisplay::onCommitAutoDetectAspect,this,_2));
|
||||
|
||||
// radio performance box
|
||||
mCtrlSliderQuality = getChild<LLSliderCtrl>("QualityPerformanceSelection");
|
||||
mCtrlSliderQuality->setSliderMouseUpCallback(boost::bind(&LLPanelDisplay::onChangeQuality,this,_1));
|
||||
@@ -207,11 +209,6 @@ BOOL LLPanelDisplay::postBuild()
|
||||
mCtrlCustomSettings = getChild<LLCheckBoxCtrl>("CustomSettings");
|
||||
mCtrlCustomSettings->setCommitCallback(boost::bind(&LLPanelDisplay::onChangeCustom));
|
||||
|
||||
//mGraphicsBorder = getChild<LLViewBorder>("GraphicsBorder");
|
||||
|
||||
// Enable Transparent Water
|
||||
mCtrlTransparentWater = getChild<LLCheckBoxCtrl>("TransparentWater");
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Enable Bump/Shiny
|
||||
mCtrlBumpShiny = getChild<LLCheckBoxCtrl>("BumpShiny");
|
||||
@@ -247,11 +244,6 @@ BOOL LLPanelDisplay::postBuild()
|
||||
mCtrlAvatarCloth = getChild<LLCheckBoxCtrl>("AvatarCloth");
|
||||
mCtrlAvatarImpostors = getChild<LLCheckBoxCtrl>("AvatarImpostors");
|
||||
mCtrlAvatarImpostors->setCommitCallback(boost::bind(&LLPanelDisplay::onVertexShaderEnable));
|
||||
mCtrlNonImpostors = getChild<LLSliderCtrl>("AvatarMaxVisible");
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Checkbox for lighting detail
|
||||
mCtrlLightingDetail2 = getChild<LLCheckBoxCtrl>("LightingDetailRadio");
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Checkbox for ambient occlusion
|
||||
@@ -269,69 +261,59 @@ BOOL LLPanelDisplay::postBuild()
|
||||
//============================================================================
|
||||
|
||||
// Object detail slider
|
||||
mCtrlDrawDistance = getChild<LLSliderCtrl>("DrawDistance");
|
||||
mDrawDistanceMeterText1 = getChild<LLTextBox>("DrawDistanceMeterText1");
|
||||
mDrawDistanceMeterText2 = getChild<LLTextBox>("DrawDistanceMeterText2");
|
||||
mCtrlDrawDistance->setCommitCallback(boost::bind(&LLPanelDisplay::updateMeterText, this));
|
||||
|
||||
// Object detail slider
|
||||
mCtrlLODFactor = getChild<LLSliderCtrl>("ObjectMeshDetail");
|
||||
mLODFactorText = getChild<LLTextBox>("ObjectMeshDetailText");
|
||||
mCtrlLODFactor->setCommitCallback(boost::bind(&LLPanelDisplay::updateSliderText, _1,mLODFactorText));
|
||||
LLSliderCtrl* ctrl_slider = getChild<LLSliderCtrl>("ObjectMeshDetail");
|
||||
LLTextBox* slider_text = getChild<LLTextBox>("ObjectMeshDetailText");
|
||||
ctrl_slider->setCommitCallback(boost::bind(updateSliderText, ctrl_slider, slider_text));
|
||||
updateSliderText(ctrl_slider, slider_text);
|
||||
|
||||
// Flex object detail slider
|
||||
mCtrlFlexFactor = getChild<LLSliderCtrl>("FlexibleMeshDetail");
|
||||
mFlexFactorText = getChild<LLTextBox>("FlexibleMeshDetailText");
|
||||
mCtrlFlexFactor->setCommitCallback(boost::bind(&LLPanelDisplay::updateSliderText,_1, mFlexFactorText));
|
||||
ctrl_slider = getChild<LLSliderCtrl>("FlexibleMeshDetail");
|
||||
slider_text = getChild<LLTextBox>("FlexibleMeshDetailText");
|
||||
ctrl_slider->setCommitCallback(boost::bind(updateSliderText, ctrl_slider, slider_text));
|
||||
updateSliderText(ctrl_slider, slider_text);
|
||||
|
||||
// Tree detail slider
|
||||
mCtrlTreeFactor = getChild<LLSliderCtrl>("TreeMeshDetail");
|
||||
mTreeFactorText = getChild<LLTextBox>("TreeMeshDetailText");
|
||||
mCtrlTreeFactor->setCommitCallback(boost::bind(&LLPanelDisplay::updateSliderText, _1, mTreeFactorText));
|
||||
ctrl_slider = getChild<LLSliderCtrl>("TreeMeshDetail");
|
||||
slider_text = getChild<LLTextBox>("TreeMeshDetailText");
|
||||
ctrl_slider->setCommitCallback(boost::bind(updateSliderText, ctrl_slider, slider_text));
|
||||
updateSliderText(ctrl_slider, slider_text);
|
||||
|
||||
// Avatar detail slider
|
||||
mCtrlAvatarFactor = getChild<LLSliderCtrl>("AvatarMeshDetail");
|
||||
mAvatarFactorText = getChild<LLTextBox>("AvatarMeshDetailText");
|
||||
mCtrlAvatarFactor->setCommitCallback(boost::bind(&LLPanelDisplay::updateSliderText, _1, mAvatarFactorText));
|
||||
ctrl_slider = getChild<LLSliderCtrl>("AvatarMeshDetail");
|
||||
slider_text = getChild<LLTextBox>("AvatarMeshDetailText");
|
||||
ctrl_slider->setCommitCallback(boost::bind(updateSliderText, ctrl_slider, slider_text));
|
||||
updateSliderText(ctrl_slider, slider_text);
|
||||
|
||||
// Avatar physics detail slider
|
||||
mCtrlAvatarPhysicsFactor = getChild<LLSliderCtrl>("AvatarPhysicsDetail");
|
||||
mAvatarPhysicsFactorText = getChild<LLTextBox>("AvatarPhysicsDetailText");
|
||||
mCtrlAvatarPhysicsFactor->setCommitCallback(boost::bind(&LLPanelDisplay::updateSliderText, _1, mAvatarPhysicsFactorText));
|
||||
ctrl_slider = getChild<LLSliderCtrl>("AvatarPhysicsDetail");
|
||||
slider_text = getChild<LLTextBox>("AvatarPhysicsDetailText");
|
||||
ctrl_slider->setCommitCallback(boost::bind(updateSliderText, ctrl_slider, slider_text));
|
||||
updateSliderText(ctrl_slider, slider_text);
|
||||
|
||||
// Terrain detail slider
|
||||
mCtrlTerrainFactor = getChild<LLSliderCtrl>("TerrainMeshDetail");
|
||||
mTerrainFactorText = getChild<LLTextBox>("TerrainMeshDetailText");
|
||||
mCtrlTerrainFactor->setCommitCallback(boost::bind(&LLPanelDisplay::updateSliderText, _1, mTerrainFactorText));
|
||||
ctrl_slider = getChild<LLSliderCtrl>("TerrainMeshDetail");
|
||||
slider_text = getChild<LLTextBox>("TerrainMeshDetailText");
|
||||
ctrl_slider->setCommitCallback(boost::bind(updateSliderText, ctrl_slider, slider_text));
|
||||
updateSliderText(ctrl_slider, slider_text);
|
||||
|
||||
// Terrain detail slider
|
||||
mCtrlSkyFactor = getChild<LLSliderCtrl>("SkyMeshDetail");
|
||||
mSkyFactorText = getChild<LLTextBox>("SkyMeshDetailText");
|
||||
mCtrlSkyFactor->setCommitCallback(boost::bind(&LLPanelDisplay::updateSliderText, _1, mSkyFactorText));
|
||||
|
||||
// Particle detail slider
|
||||
mCtrlMaxParticle = getChild<LLSliderCtrl>("MaxParticleCount");
|
||||
ctrl_slider = getChild<LLSliderCtrl>("SkyMeshDetail");
|
||||
slider_text = getChild<LLTextBox>("SkyMeshDetailText");
|
||||
ctrl_slider->setCommitCallback(boost::bind(updateSliderText, ctrl_slider, slider_text));
|
||||
updateSliderText(ctrl_slider, slider_text);
|
||||
|
||||
// Glow detail slider
|
||||
mCtrlPostProcess = getChild<LLSliderCtrl>("RenderPostProcess");
|
||||
mPostProcessText = getChild<LLTextBox>("PostProcessText");
|
||||
mCtrlPostProcess->setCommitCallback(boost::bind(&LLPanelDisplay::updateSliderText, _1, mPostProcessText));
|
||||
ctrl_slider = getChild<LLSliderCtrl>("RenderPostProcess");
|
||||
slider_text = getChild<LLTextBox>("PostProcessText");
|
||||
ctrl_slider->setCommitCallback(boost::bind(updateSliderText, ctrl_slider, slider_text));
|
||||
updateSliderText(ctrl_slider, slider_text);
|
||||
|
||||
// Text boxes (for enabling/disabling)
|
||||
mShaderText = getChild<LLTextBox>("ShadersText");
|
||||
mReflectionText = getChild<LLTextBox>("ReflectionDetailText");
|
||||
mAvatarText = getChild<LLTextBox>("AvatarRenderingText");
|
||||
mTerrainText = getChild<LLTextBox>("TerrainDetailText");
|
||||
mMeshDetailText = getChild<LLTextBox>("MeshDetailText");
|
||||
mShadowDetailText = getChild<LLTextBox>("ShadowDetailText");
|
||||
mTerrainScaleText = getChild<LLTextBox>("TerrainScaleText");
|
||||
|
||||
// Hardware tab
|
||||
mVBO = getChild<LLCheckBoxCtrl>("vbo");
|
||||
mVBO->setCommitCallback(boost::bind(&LLPanelDisplay::onVertexShaderEnable));
|
||||
|
||||
mVBOStream = getChild<LLCheckBoxCtrl>("vbo_stream");
|
||||
|
||||
if(gGLManager.mIsATI) //AMD gpus don't go beyond 8x fsaa.
|
||||
{
|
||||
LLComboBox* fsaa = getChild<LLComboBox>("fsaa");
|
||||
@@ -397,16 +379,6 @@ void LLPanelDisplay::refresh()
|
||||
mLocalLights = gSavedSettings.getBOOL("RenderLocalLights");
|
||||
mTerrainDetail = gSavedSettings.getS32("RenderTerrainDetail");
|
||||
|
||||
// slider text boxes
|
||||
updateSliderText(mCtrlLODFactor, mLODFactorText);
|
||||
updateSliderText(mCtrlFlexFactor, mFlexFactorText);
|
||||
updateSliderText(mCtrlTreeFactor, mTreeFactorText);
|
||||
updateSliderText(mCtrlAvatarFactor, mAvatarFactorText);
|
||||
updateSliderText(mCtrlAvatarPhysicsFactor, mAvatarPhysicsFactorText);
|
||||
updateSliderText(mCtrlTerrainFactor, mTerrainFactorText);
|
||||
updateSliderText(mCtrlPostProcess, mPostProcessText);
|
||||
updateSliderText(mCtrlSkyFactor, mSkyFactorText);
|
||||
|
||||
// Hardware tab
|
||||
mUseVBO = gSavedSettings.getBOOL("RenderVBOEnable");
|
||||
mUseFBO = gSavedSettings.getBOOL("RenderUseFBO");
|
||||
@@ -442,12 +414,7 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
!gGLManager.mHasVertexBufferObject)
|
||||
{
|
||||
mVBO->setEnabled(false);
|
||||
//Streaming VBOs -Shyotl
|
||||
mVBOStream->setEnabled(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
mVBOStream->setEnabled(gSavedSettings.getBOOL("RenderVBOEnable"));
|
||||
mVBO->setValue(false);
|
||||
}
|
||||
|
||||
static LLCachedControl<bool> wlatmos("WindLightUseAtmosShaders",false);
|
||||
@@ -457,17 +424,7 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
getChildView("note")->setVisible(wlatmos);
|
||||
|
||||
// disable graphics settings and exit if it's not set to custom
|
||||
if(!gSavedSettings.getBOOL("RenderCustomSettings"))
|
||||
{
|
||||
setHiddenGraphicsState(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// otherwise turn them all on and selectively turn off others
|
||||
else
|
||||
{
|
||||
setHiddenGraphicsState(false);
|
||||
}
|
||||
if (!gSavedSettings.getBOOL("RenderCustomSettings")) return;
|
||||
|
||||
// Reflections
|
||||
BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable")
|
||||
@@ -477,17 +434,9 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
|
||||
// Bump & Shiny
|
||||
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
|
||||
mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE);
|
||||
mCtrlBumpShiny->setEnabled(bumpshiny);
|
||||
|
||||
if (gSavedSettings.getBOOL("VertexShaderEnable") == FALSE ||
|
||||
gSavedSettings.getBOOL("RenderAvatarVP") == FALSE)
|
||||
{
|
||||
mCtrlAvatarCloth->setEnabled(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
mCtrlAvatarCloth->setEnabled(true);
|
||||
}
|
||||
mCtrlAvatarCloth->setEnabled(gSavedSettings.getBOOL("VertexShaderEnable") && gSavedSettings.getBOOL("RenderAvatarVP"));
|
||||
|
||||
//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
|
||||
@@ -505,9 +454,6 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
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"));
|
||||
|
||||
// Vertex Shaders
|
||||
// mCtrlShaderEnable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"));
|
||||
// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0a
|
||||
@@ -536,39 +482,43 @@ void LLPanelDisplay::refreshEnabledState()
|
||||
mCtrlWindLight->setEnabled(fCtrlWindLightEnable && (!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV) || !mWindLight));
|
||||
// [/RLVa:KB]
|
||||
|
||||
// turn off sky detail if atmospherics isn't on
|
||||
mCtrlSkyFactor->setEnabled(wlatmos);
|
||||
mSkyFactorText->setEnabled(wlatmos);
|
||||
|
||||
// Avatar Mode and FBO
|
||||
if (render_deferred && wlatmos && shaders)
|
||||
{
|
||||
childSetEnabled("fbo", false);
|
||||
childSetValue("fbo", true);
|
||||
getChildView("fbo")->setEnabled(false);
|
||||
getChildView("fbo")->setValue(true);
|
||||
mCtrlAvatarVP->setEnabled(false);
|
||||
gSavedSettings.setBOOL("RenderAvatarVP", true);
|
||||
}
|
||||
else if (!shaders)
|
||||
{
|
||||
childSetEnabled("fbo", gGLManager.mHasFramebufferObject);
|
||||
mCtrlAvatarVP->setEnabled(false);
|
||||
gSavedSettings.setBOOL("RenderAvatarVP", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
childSetEnabled("fbo", gGLManager.mHasFramebufferObject);
|
||||
mCtrlAvatarVP->setEnabled(true);
|
||||
getChildView("fbo")->setEnabled(gGLManager.mHasFramebufferObject);
|
||||
mCtrlAvatarVP->setEnabled(shaders);
|
||||
if (!shaders) gSavedSettings.setBOOL("RenderAvatarVP", false);
|
||||
}
|
||||
|
||||
|
||||
// now turn off any features that are unavailable
|
||||
disableUnavailableSettings();
|
||||
}
|
||||
|
||||
void LLPanelDisplay::disableUnavailableSettings()
|
||||
{
|
||||
// disabled terrain scale
|
||||
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderTerrainScale"))
|
||||
{
|
||||
mCtrlTerrainScale->setEnabled(false);
|
||||
mCtrlTerrainScale->setValue(false);
|
||||
}
|
||||
// disabled impostors
|
||||
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseImpostors"))
|
||||
{
|
||||
mCtrlAvatarImpostors->setEnabled(false);
|
||||
mCtrlAvatarImpostors->setValue(false);
|
||||
}
|
||||
|
||||
// if vertex shaders off, disable all shader related products
|
||||
if(!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"))
|
||||
// Singu Note: Returns early this, place all unrelated checks above now.
|
||||
if (!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"))
|
||||
{
|
||||
mCtrlShaderEnable->setEnabled(FALSE);
|
||||
mCtrlShaderEnable->setValue(FALSE);
|
||||
@@ -593,6 +543,7 @@ void LLPanelDisplay::disableUnavailableSettings()
|
||||
mCtrlDeferredDoF->setValue(FALSE);
|
||||
mCtrlShadowDetail->setEnabled(FALSE);
|
||||
mCtrlShadowDetail->setValue(FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// disabled windlight
|
||||
@@ -609,13 +560,6 @@ void LLPanelDisplay::disableUnavailableSettings()
|
||||
mCtrlReflectionDetail->setValue(FALSE);
|
||||
}
|
||||
|
||||
// disabled terrain scale
|
||||
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderTerrainScale"))
|
||||
{
|
||||
mCtrlTerrainScale->setEnabled(false);
|
||||
mCtrlTerrainScale->setValue(false);
|
||||
}
|
||||
|
||||
// disabled av
|
||||
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarVP"))
|
||||
{
|
||||
@@ -626,18 +570,11 @@ void LLPanelDisplay::disableUnavailableSettings()
|
||||
mCtrlAvatarCloth->setValue(FALSE);
|
||||
}
|
||||
// disabled cloth
|
||||
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarCloth"))
|
||||
else if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarCloth"))
|
||||
{
|
||||
mCtrlAvatarCloth->setEnabled(FALSE);
|
||||
mCtrlAvatarCloth->setValue(FALSE);
|
||||
}
|
||||
// disabled impostors
|
||||
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseImpostors"))
|
||||
{
|
||||
mCtrlAvatarImpostors->setEnabled(FALSE);
|
||||
mCtrlAvatarImpostors->setValue(FALSE);
|
||||
mCtrlNonImpostors->setEnabled(FALSE);
|
||||
}
|
||||
// disabled deferred
|
||||
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred"))
|
||||
{
|
||||
@@ -653,119 +590,6 @@ void LLPanelDisplay::disableUnavailableSettings()
|
||||
|
||||
}
|
||||
|
||||
void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
|
||||
{
|
||||
// quick check
|
||||
//llassert(mGraphicsBorder != NULL);
|
||||
|
||||
llassert(mCtrlDrawDistance != NULL);
|
||||
llassert(mCtrlLODFactor != NULL);
|
||||
llassert(mCtrlFlexFactor != NULL);
|
||||
llassert(mCtrlTreeFactor != NULL);
|
||||
llassert(mCtrlAvatarFactor != NULL);
|
||||
llassert(mCtrlTerrainFactor != NULL);
|
||||
llassert(mCtrlSkyFactor != NULL);
|
||||
llassert(mCtrlMaxParticle != NULL);
|
||||
llassert(mCtrlPostProcess != NULL);
|
||||
|
||||
llassert(mLODFactorText != NULL);
|
||||
llassert(mFlexFactorText != NULL);
|
||||
llassert(mTreeFactorText != NULL);
|
||||
llassert(mAvatarFactorText != NULL);
|
||||
llassert(mTerrainFactorText != NULL);
|
||||
llassert(mSkyFactorText != NULL);
|
||||
llassert(mPostProcessText != NULL);
|
||||
|
||||
llassert(mCtrlTransparentWater != NULL);
|
||||
llassert(mCtrlBumpShiny != NULL);
|
||||
llassert(mCtrlWindLight != NULL);
|
||||
llassert(mCtrlAvatarVP != NULL);
|
||||
llassert(mCtrlShaderEnable != NULL);
|
||||
llassert(mCtrlAvatarImpostors != NULL);
|
||||
llassert(mCtrlNonImpostors != NULL);
|
||||
llassert(mCtrlAvatarCloth != NULL);
|
||||
llassert(mCtrlLightingDetail2 != NULL);
|
||||
llassert(mCtrlAmbientOcc != NULL);
|
||||
|
||||
llassert(mRadioTerrainDetail != NULL);
|
||||
llassert(mCtrlReflectionDetail != NULL);
|
||||
llassert(mCtrlTerrainScale != NULL);
|
||||
|
||||
llassert(mMeshDetailText != NULL);
|
||||
llassert(mShaderText != NULL);
|
||||
llassert(mReflectionText != NULL);
|
||||
llassert(mTerrainScaleText != NULL);
|
||||
llassert(mAvatarText != NULL);
|
||||
llassert(mTerrainText != NULL);
|
||||
llassert(mDrawDistanceMeterText1 != NULL);
|
||||
llassert(mDrawDistanceMeterText2 != NULL);
|
||||
|
||||
// enable/disable the states
|
||||
//mGraphicsBorder->setVisible(!isHidden);
|
||||
/*
|
||||
LLColor4 light(.45098f, .51765f, .6078f, 1.0f);
|
||||
LLColor4 dark(.10196f, .10196f, .10196f, 1.0f);
|
||||
b ? mGraphicsBorder->setColors(dark, light) : mGraphicsBorder->setColors(dark, dark);
|
||||
*/
|
||||
|
||||
mCtrlDrawDistance->setVisible(!isHidden);
|
||||
mCtrlLODFactor->setVisible(!isHidden);
|
||||
mCtrlFlexFactor->setVisible(!isHidden);
|
||||
mCtrlTreeFactor->setVisible(!isHidden);
|
||||
mCtrlAvatarFactor->setVisible(!isHidden);
|
||||
mCtrlAvatarPhysicsFactor->setVisible(!isHidden);
|
||||
mCtrlTerrainFactor->setVisible(!isHidden);
|
||||
mCtrlSkyFactor->setVisible(!isHidden);
|
||||
mCtrlMaxParticle->setVisible(!isHidden);
|
||||
mCtrlPostProcess->setVisible(!isHidden);
|
||||
|
||||
mLODFactorText->setVisible(!isHidden);
|
||||
mFlexFactorText->setVisible(!isHidden);
|
||||
mTreeFactorText->setVisible(!isHidden);
|
||||
mAvatarFactorText->setVisible(!isHidden);
|
||||
mAvatarPhysicsFactorText->setVisible(!isHidden);
|
||||
mTerrainFactorText->setVisible(!isHidden);
|
||||
mSkyFactorText->setVisible(!isHidden);
|
||||
mPostProcessText->setVisible(!isHidden);
|
||||
|
||||
mCtrlTransparentWater->setVisible(!isHidden);
|
||||
mCtrlBumpShiny->setVisible(!isHidden);
|
||||
mCtrlWindLight->setVisible(!isHidden);
|
||||
mCtrlAvatarVP->setVisible(!isHidden);
|
||||
mCtrlShaderEnable->setVisible(!isHidden);
|
||||
mCtrlAvatarImpostors->setVisible(!isHidden);
|
||||
mCtrlNonImpostors->setVisible(!isHidden);
|
||||
mCtrlAvatarCloth->setVisible(!isHidden);
|
||||
mCtrlLightingDetail2->setVisible(!isHidden);
|
||||
mCtrlAmbientOcc->setVisible(!isHidden);
|
||||
|
||||
mRadioTerrainDetail->setVisible(!isHidden);
|
||||
mCtrlReflectionDetail->setVisible(!isHidden);
|
||||
mCtrlTerrainScale->setVisible(!isHidden);
|
||||
|
||||
mCtrlDeferred->setVisible(!isHidden);
|
||||
mCtrlDeferredDoF->setVisible(!isHidden);
|
||||
mCtrlShadowDetail->setVisible(!isHidden);
|
||||
|
||||
// text boxes
|
||||
mShaderText->setVisible(!isHidden);
|
||||
mReflectionText->setVisible(!isHidden);
|
||||
mAvatarText->setVisible(!isHidden);
|
||||
mTerrainText->setVisible(!isHidden);
|
||||
mDrawDistanceMeterText1->setVisible(!isHidden);
|
||||
mDrawDistanceMeterText2->setVisible(!isHidden);
|
||||
mShadowDetailText->setVisible(!isHidden);
|
||||
mTerrainScaleText->setVisible(!isHidden);
|
||||
|
||||
// hide one meter text if we're making things visible
|
||||
if(!isHidden)
|
||||
{
|
||||
updateMeterText();
|
||||
}
|
||||
|
||||
mMeshDetailText->setVisible(!isHidden);
|
||||
}
|
||||
|
||||
void LLPanelDisplay::cancel()
|
||||
{
|
||||
gSavedSettings.setBOOL("FullScreenAutoDetectAspectRatio", mFSAutoDetectAspect);
|
||||
@@ -860,19 +684,10 @@ void LLPanelDisplay::apply()
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelDisplay::onChangeQuality(LLUICtrl* caller)
|
||||
void LLPanelDisplay::onChangeQuality(LLUICtrl* ctrl)
|
||||
{
|
||||
LLSlider* sldr = dynamic_cast<LLSlider*>(caller);
|
||||
|
||||
if(sldr == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
U32 set = (U32)sldr->getValueF32();
|
||||
LLFeatureManager::getInstance()->setGraphicsLevel(set, true);
|
||||
|
||||
LLFloaterPreference::refreshEnabledGraphics();
|
||||
LLFeatureManager::getInstance()->setGraphicsLevel(ctrl->getValue(), true);
|
||||
refresh();
|
||||
}
|
||||
|
||||
@@ -979,16 +794,6 @@ void LLPanelDisplay::onCommitAutoDetectAspect(const LLSD& value)
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelDisplay::onKeystrokeAspectRatio()
|
||||
{
|
||||
mCtrlAutoDetectAspect->set(FALSE);
|
||||
}
|
||||
|
||||
void LLPanelDisplay::onSelectAspectRatio()
|
||||
{
|
||||
mCtrlAutoDetectAspect->set(FALSE);
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelDisplay::fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator)
|
||||
{
|
||||
@@ -1010,51 +815,38 @@ void LLPanelDisplay::onVertexShaderEnable()
|
||||
LLFloaterPreference::refreshEnabledGraphics();
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelDisplay::setHardwareDefaults()
|
||||
{
|
||||
LLFeatureManager::getInstance()->applyRecommendedSettings();
|
||||
LLControlVariable* controlp = gSavedSettings.getControl("RenderAvatarMaxVisible");
|
||||
if (controlp)
|
||||
if (LLControlVariable* controlp = gSavedSettings.getControl("RenderAvatarMaxVisible"))
|
||||
{
|
||||
controlp->resetToDefault(true);
|
||||
}
|
||||
LLFloaterPreference::refreshEnabledGraphics();
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelDisplay::updateSliderText(LLUICtrl* ctrl, LLTextBox* text_box)
|
||||
void updateSliderText(LLSliderCtrl* slider, LLTextBox* text_box)
|
||||
{
|
||||
// get our UI widgets
|
||||
LLSliderCtrl* slider = dynamic_cast<LLSliderCtrl*>(ctrl);
|
||||
if(text_box == NULL || slider == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//Hack to display 'Off' for avatar physics slider.
|
||||
if(slider->getName() == "AvatarPhysicsDetail" && !slider->getValueF32())
|
||||
{
|
||||
text_box->setText(std::string("Off"));
|
||||
return;
|
||||
}
|
||||
|
||||
// get range and points when text should change
|
||||
F32 range = slider->getMaxValue() - slider->getMinValue();
|
||||
llassert(range > 0);
|
||||
F32 midPoint = slider->getMinValue() + range / 3.0f;
|
||||
F32 highPoint = slider->getMinValue() + (2.0f * range / 3.0f);
|
||||
const F32 value = slider->getValue().asFloat();
|
||||
const F32 min_val = slider->getMinValue();
|
||||
const F32 max_val = slider->getMaxValue();
|
||||
const F32 range = (max_val - min_val)/3.f;
|
||||
|
||||
// choose the right text
|
||||
if(slider->getValueF32() < midPoint)
|
||||
if (value < min_val + range)
|
||||
{
|
||||
text_box->setText(std::string("Low"));
|
||||
//Hack to display 'Off' for avatar physics slider.
|
||||
if (!value && slider->getName() == "AvatarPhysicsDetail")
|
||||
text_box->setText(std::string("Off"));
|
||||
else
|
||||
text_box->setText(std::string("Low"));
|
||||
}
|
||||
else if (slider->getValueF32() < highPoint)
|
||||
else if (value < min_val + 2.0f * range)
|
||||
{
|
||||
text_box->setText(std::string("Mid"));
|
||||
}
|
||||
else if(slider->getValueF32() < slider->getMaxValue())
|
||||
else if (value < max_val)
|
||||
{
|
||||
text_box->setText(std::string("High"));
|
||||
}
|
||||
@@ -1064,14 +856,3 @@ void LLPanelDisplay::updateSliderText(LLUICtrl* ctrl, LLTextBox* text_box)
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelDisplay::updateMeterText()
|
||||
{
|
||||
// toggle the two text boxes based on whether we have 2 or 3 digits
|
||||
F32 val = mCtrlDrawDistance->getValueF32();
|
||||
bool two_digits = val < 100;
|
||||
mDrawDistanceMeterText1->setVisible(two_digits);
|
||||
mDrawDistanceMeterText2->setVisible(!two_digits);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -70,14 +70,11 @@ public:
|
||||
void refresh(); // Refresh enable/disable
|
||||
void refreshEnabledState();
|
||||
void disableUnavailableSettings();
|
||||
void setHiddenGraphicsState(bool isHidden);
|
||||
void apply(); // Apply the changed values.
|
||||
void applyResolution();
|
||||
void cancel();
|
||||
|
||||
protected:
|
||||
void initWindowSizeControls();
|
||||
bool extractWindowSizeFromString(const std::string& instr, U32 &width, U32 &height);
|
||||
|
||||
// aspect ratio sliders and boxes
|
||||
LLComboBox *mCtrlFullScreen; // Fullscreen resolution
|
||||
@@ -90,22 +87,6 @@ protected:
|
||||
LLSliderCtrl *mCtrlSliderQuality;
|
||||
LLCheckBoxCtrl *mCtrlCustomSettings;
|
||||
|
||||
// performance sliders and boxes
|
||||
//LLViewBorder *mGraphicsBorder;
|
||||
|
||||
LLSliderCtrl *mCtrlDrawDistance; // the draw distance slider
|
||||
LLSliderCtrl *mCtrlLODFactor; // LOD for volume objects
|
||||
LLSliderCtrl *mCtrlFlexFactor; // Timeslice for flexible objects
|
||||
LLSliderCtrl *mCtrlTreeFactor; // Control tree cutoff distance
|
||||
LLSliderCtrl *mCtrlAvatarFactor; // LOD for avatars
|
||||
LLSliderCtrl *mCtrlAvatarPhysicsFactor; // Physics LOD for avatars
|
||||
LLSliderCtrl *mCtrlTerrainFactor; // LOD for terrain
|
||||
LLSliderCtrl *mCtrlSkyFactor; // LOD for terrain
|
||||
LLSliderCtrl *mCtrlMaxParticle; // Max Particle
|
||||
LLSliderCtrl *mCtrlPostProcess; // Max Particle
|
||||
LLSliderCtrl *mCtrlNonImpostors; // Max non-impostors
|
||||
|
||||
LLCheckBoxCtrl *mCtrlTransparentWater;
|
||||
LLCheckBoxCtrl *mCtrlBumpShiny;
|
||||
LLCheckBoxCtrl *mCtrlWindLight;
|
||||
LLCheckBoxCtrl *mCtrlAvatarVP;
|
||||
@@ -117,34 +98,13 @@ protected:
|
||||
LLComboBox *mCtrlTerrainScale;
|
||||
LLCheckBoxCtrl *mCtrlAvatarImpostors;
|
||||
LLCheckBoxCtrl *mCtrlAvatarCloth;
|
||||
LLCheckBoxCtrl *mCtrlLightingDetail2;
|
||||
LLCheckBoxCtrl *mCtrlAmbientOcc;
|
||||
LLRadioGroup *mRadioTerrainDetail;
|
||||
|
||||
LLTextBox *mAspectRatioLabel1;
|
||||
LLTextBox *mDisplayResLabel;
|
||||
|
||||
LLTextBox *mShaderText;
|
||||
LLTextBox *mReflectionText;
|
||||
LLTextBox *mAvatarText;
|
||||
LLTextBox *mTerrainText;
|
||||
LLTextBox *mDrawDistanceMeterText1;
|
||||
LLTextBox *mDrawDistanceMeterText2;
|
||||
|
||||
LLTextBox *mMeshDetailText;
|
||||
LLTextBox *mLODFactorText;
|
||||
LLTextBox *mFlexFactorText;
|
||||
LLTextBox *mTreeFactorText;
|
||||
LLTextBox *mAvatarFactorText;
|
||||
LLTextBox *mAvatarPhysicsFactorText;
|
||||
LLTextBox *mTerrainFactorText;
|
||||
LLTextBox *mSkyFactorText;
|
||||
LLTextBox *mPostProcessText;
|
||||
LLTextBox *mShadowDetailText;
|
||||
LLTextBox *mTerrainScaleText;
|
||||
|
||||
LLCheckBoxCtrl *mVBO;
|
||||
LLCheckBoxCtrl *mVBOStream;
|
||||
|
||||
BOOL mFSAutoDetectAspect;
|
||||
F32 mAspectRatio;
|
||||
@@ -200,14 +160,11 @@ protected:
|
||||
static void onChangeCustom();
|
||||
|
||||
void onCommitAutoDetectAspect(const LLSD& value);
|
||||
void onKeystrokeAspectRatio();
|
||||
void onSelectAspectRatio();
|
||||
void onCommitWindowedMode();
|
||||
static void updateSliderText(LLUICtrl* ctrl, LLTextBox* text_box);
|
||||
void updateMeterText();
|
||||
|
||||
/// callback for defaults
|
||||
static void setHardwareDefaults();
|
||||
void setHardwareDefaults();
|
||||
|
||||
// callback for when client turns on shaders
|
||||
static void onVertexShaderEnable();
|
||||
|
||||
@@ -1,103 +1,102 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel border="true" 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."/>
|
||||
<button bottom_delta="4" height="20" left="-210" label="Reset to Defaults" tool_tip="Reset to recommended graphics settings" name="Defaults" width="200"/>
|
||||
<text bottom="-62" height="12" left="10" name="DisplayResLabel">Display Resolution:</text>
|
||||
<combo_box bottom="-67" height="18" left="165" name="fullscreen combo" width="150"/>
|
||||
<text bottom="-39" height="12" left="10" name="AspectRatioLabel1">Aspect Ratio:</text>
|
||||
<combo_box bottom="-43" height="16" left="165" name="aspect_ratio" width="150" tool_tip="width / height">
|
||||
<combo_item name="4:3(StandardCRT)" value="1.333333">4:3 (Standard CRT)</combo_item>
|
||||
<combo_item name="5:4(1280x1024LCD)" value="1.25">5:4 (1280x1024 LCD)</combo_item>
|
||||
<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="350" name="aspect_auto_detect" width="256"/>
|
||||
<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."/>
|
||||
<button bottom_delta="4" height="20" left="-210" label="Reset to Defaults" tool_tip="Reset to recommended graphics settings" name="Defaults" width="200"/>
|
||||
<text bottom="-62" height="12" left="10" name="DisplayResLabel">Display Resolution:</text>
|
||||
<combo_box bottom="-67" height="18" left="165" name="fullscreen combo" width="150"/>
|
||||
<text bottom="-39" height="12" left="10" name="AspectRatioLabel1">Aspect Ratio:</text>
|
||||
<combo_box bottom="-43" height="16" left="165" name="aspect_ratio" width="150" tool_tip="width / height">
|
||||
<combo_item name="4:3(StandardCRT)" value="1.333333">4:3 (Standard CRT)</combo_item>
|
||||
<combo_item name="5:4(1280x1024LCD)" value="1.25">5:4 (1280x1024 LCD)</combo_item>
|
||||
<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" label="Auto-detect ratio" left="350" name="aspect_auto_detect" width="256"/>
|
||||
<tab_container follows="all" bottom="0" border="false" left="2" height="360" right="-2" name="graphics_tab" tab_position="bottom">
|
||||
<panel border="true" bottom="-439" height="438" label="Main" left="102" name="Main" width="517">
|
||||
<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>
|
||||
<panel border="true" bottom="-439" height="438" label="Main" left="102" name="Main" width="517">
|
||||
<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"/>
|
||||
<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_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="-10" control_name="RenderCustomSettings" label="Custom" left="410" initial_value="true" name="CustomSettings"/>
|
||||
<!--view_border bevel_style="none" bottom="-395" height="280" left="5" name="GraphicsBorder" width="485"/-->
|
||||
<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."/>
|
||||
<check_box bottom_delta="-17" control_name="WindLightUseAtmosShaders" initial_value="true" label="Atmospheric shaders" left_delta="0" name="WindLightUseAtmosShaders"/>
|
||||
<check_box bottom_delta="-17" control_name="RenderDeferred" initial_value="true" label="Advanced Lighting Model" tool_tip="Deferred Shading" left_delta="0" name="RenderDeferred"/>
|
||||
<check_box bottom_delta="-17" control_name="RenderDeferredSSAO" height="16" initial_value="true" label="Ambient Occlusion" left_delta="0" name="UseSSAO"/>
|
||||
<text bottom_delta="-17" height="12" left="15" name="TerrainScaleText">Terrain Scale:</text>
|
||||
<combo_box bottom_delta="-22" control_name="RenderTerrainScale" label="Terrain Scale" left_delta="-2" name="TerrainScaleCombo" width="160" height="16">
|
||||
<combo_item name="Low" value="12">Low</combo_item>
|
||||
<combo_item name="Medium" value="9">Medium</combo_item>
|
||||
<combo_item name="High" value="7">High</combo_item>
|
||||
<combo_item name="Ultra" value="5">Ultra</combo_item>
|
||||
</combo_box>
|
||||
<text bottom_delta="-17" height="12" left="15" name="ShadowDetailText">Shadows:</text>
|
||||
<combo_box bottom_delta="-22" control_name="RenderShadowDetail" label="Shadow Detail" left_delta="-2" name="ShadowDetailCombo" width="160" height="16">
|
||||
<combo_item name="0" value="0">Disabled</combo_item>
|
||||
<combo_item name="1" value="1">Sun/Moon</combo_item>
|
||||
<combo_item name="2" value="2">Sun/Moon + Projectors</combo_item>
|
||||
</combo_box>
|
||||
<text bottom_delta="-17" height="12" left="15" name="ReflectionDetailText">Water Reflections:</text>
|
||||
<combo_box bottom_delta="-22" control_name="RenderReflectionDetail" label="Reflection Detail" left_delta="-2" name="ReflectionDetailCombo" width="160" height="16">
|
||||
<combo_item name="0" value="0">Minimal</combo_item>
|
||||
<combo_item name="1" value="1">Terrain and trees</combo_item>
|
||||
<combo_item name="2" value="2">All static objects</combo_item>
|
||||
<combo_item name="3" value="3">All avatars and objects</combo_item>
|
||||
<combo_item name="4" value="4">Everything</combo_item>
|
||||
</combo_box>
|
||||
<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="-10" control_name="RenderCustomSettings" visibility_control="RenderCustomSettings" label="Custom" left="410" name="CustomSettings"/>
|
||||
<!--view_border bevel_style="none" bottom="-395" height="280" left="5" visibility_control="RenderCustomSettings" name="GraphicsBorder" width="485"/-->
|
||||
<text bottom="300" height="12" left="10" visibility_control="RenderCustomSettings" name="ShadersText">Shaders:</text>
|
||||
<check_box bottom_delta="-23" control_name="RenderTransparentWater" visibility_control="RenderCustomSettings" height="16" label="Transparent water" left="10" name="TransparentWater"/>
|
||||
<check_box bottom_delta="-17" control_name="RenderObjectBump" visibility_control="RenderCustomSettings" height="16" label="Bump mapping and shiny" left="10" name="BumpShiny"/>
|
||||
<check_box bottom_delta="-17" control_name="RenderLocalLights" visibility_control="RenderCustomSettings" height="16" label="Local Lights" name="LightingDetailRadio"/>
|
||||
<check_box bottom_delta="-17" control_name="VertexShaderEnable" visibility_control="RenderCustomSettings" height="16" label="Basic shaders" left_delta="0" name="BasicShaders" tool_tip="Disabling this option may prevent some graphics card drivers from crashing."/>
|
||||
<check_box bottom_delta="-17" control_name="WindLightUseAtmosShaders" visibility_control="RenderCustomSettings" label="Atmospheric shaders" left_delta="0" name="WindLightUseAtmosShaders"/>
|
||||
<check_box bottom_delta="-17" control_name="RenderDeferred" visibility_control="RenderCustomSettings" label="Advanced Lighting Model" tool_tip="Deferred Shading" left_delta="0" name="RenderDeferred"/>
|
||||
<check_box bottom_delta="-17" control_name="RenderDeferredSSAO" visibility_control="RenderCustomSettings" height="16" label="Ambient Occlusion" left_delta="0" name="UseSSAO"/>
|
||||
<text bottom_delta="-17" height="12" left="15" visibility_control="RenderCustomSettings" name="TerrainScaleText">Terrain Scale:</text>
|
||||
<combo_box bottom_delta="-22" control_name="RenderTerrainScale" visibility_control="RenderCustomSettings" label="Terrain Scale" left_delta="-2" name="TerrainScaleCombo" width="160" height="16">
|
||||
<combo_item name="Low" value="12">Low</combo_item>
|
||||
<combo_item name="Medium" value="9">Medium</combo_item>
|
||||
<combo_item name="High" value="7">High</combo_item>
|
||||
<combo_item name="Ultra" value="5">Ultra</combo_item>
|
||||
</combo_box>
|
||||
<text bottom_delta="-17" height="12" left="15" visibility_control="RenderCustomSettings" name="ShadowDetailText">Shadows:</text>
|
||||
<combo_box bottom_delta="-22" control_name="RenderShadowDetail" visibility_control="RenderCustomSettings" label="Shadow Detail" left_delta="-2" name="ShadowDetailCombo" width="160" height="16">
|
||||
<combo_item name="0" value="0">Disabled</combo_item>
|
||||
<combo_item name="1" value="1">Sun/Moon</combo_item>
|
||||
<combo_item name="2" value="2">Sun/Moon + Projectors</combo_item>
|
||||
</combo_box>
|
||||
<text bottom_delta="-17" height="12" left="15" visibility_control="RenderCustomSettings" name="ReflectionDetailText">Water Reflections:</text>
|
||||
<combo_box bottom_delta="-22" control_name="RenderReflectionDetail" visibility_control="RenderCustomSettings" label="Reflection Detail" left_delta="-2" name="ReflectionDetailCombo" width="160" height="16">
|
||||
<combo_item name="0" value="0">Minimal</combo_item>
|
||||
<combo_item name="1" value="1">Terrain and trees</combo_item>
|
||||
<combo_item name="2" value="2">All static objects</combo_item>
|
||||
<combo_item name="3" value="3">All avatars and objects</combo_item>
|
||||
<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="284" left="460" height="12" name="DrawDistanceMeterText1">m</text>
|
||||
<text bottom="284" left="470" height="12" name="DrawDistanceMeterText2">m</text>
|
||||
<slider bottom="280" 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="24" name="DrawDistance" width="262"/>
|
||||
<slider bottom_delta="-18" 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="-18" control_name="RenderAvatarMaxVisible" decimal_digits="0" height="16" 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="-18" 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="4" height="12" left="444" name="PostProcessText">Low</text>
|
||||
<text bottom_delta="-25" height="12" left="215" name="MeshDetailText">Level of Detail:</text>
|
||||
<slider bottom_delta="-22" control_name="RenderVolumeLODFactor" height="16" 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="-18" control_name="RenderFlexTimeFactor" height="16" increment="0.1" label=" Flexiprims:" label_width="79" max_val="1" min_val="0" name="FlexibleMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-18" control_name="RenderTreeLODFactor" height="16" increment="0.125" label=" Trees:" label_width="79" max_val="2" min_val="0" name="TreeMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-18" control_name="RenderAvatarLODFactor" height="16" increment="0.125" label=" Avatars:" label_width="79" max_val="1" min_val="0" name="AvatarMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-18" control_name="RenderTerrainLODFactor" height="16" increment="0.125" label=" Terrain:" label_width="79" max_val="2" min_val="1" name="TerrainMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-18" control_name="WLSkyDetail" height="16" 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="90" left_delta="229" height="12" name="ObjectMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" name="FlexibleMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" name="TreeMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" name="AvatarMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" name="TerrainMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" name="SkyMeshDetailText">Low</text>
|
||||
<text bottom_delta="-25" 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="50" 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>
|
||||
<slider bottom_delta="-20" left="5" control_name="RenderAvatarPhysicsLODFactor" visibility_control="RenderCustomSettings" 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" visibility_control="RenderCustomSettings" name="AvatarPhysicsDetailText">Off</text>
|
||||
<text bottom="284" left="470" height="12" visibility_control="RenderCustomSettings" name="DrawDistanceMeterText">m</text>
|
||||
<slider bottom="280" left="215" control_name="RenderFarClip" visibility_control="RenderCustomSettings" decimal_digits="0" height="16" increment="8" initial_val="160" label="Draw Distance:" label_width="101" max_val="1024" min_val="24" name="DrawDistance" width="262"/>
|
||||
<slider bottom_delta="-18" control_name="RenderMaxPartCount" visibility_control="RenderCustomSettings" 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="-18" control_name="RenderAvatarMaxVisible" visibility_control="RenderCustomSettings" enabled_control="RenderUseImpostors" decimal_digits="0" height="16" 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="-18" control_name="RenderGlowResolutionPow" visibility_control="RenderCustomSettings" 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="4" height="12" left="444" visibility_control="RenderCustomSettings" name="PostProcessText">Low</text>
|
||||
<text bottom_delta="-25" height="12" left="215" visibility_control="RenderCustomSettings" name="MeshDetailText">Level of Detail:</text>
|
||||
<slider bottom_delta="-22" control_name="RenderVolumeLODFactor" visibility_control="RenderCustomSettings" height="16" 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="-18" control_name="RenderFlexTimeFactor" visibility_control="RenderCustomSettings" height="16" increment="0.1" label=" Flexiprims:" label_width="79" max_val="1" min_val="0" name="FlexibleMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-18" control_name="RenderTreeLODFactor" visibility_control="RenderCustomSettings" height="16" increment="0.125" label=" Trees:" label_width="79" max_val="2" min_val="0" name="TreeMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-18" control_name="RenderAvatarLODFactor" visibility_control="RenderCustomSettings" height="16" increment="0.125" label=" Avatars:" label_width="79" max_val="1" min_val="0" name="AvatarMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-18" control_name="RenderTerrainLODFactor" visibility_control="RenderCustomSettings" height="16" increment="0.125" label=" Terrain:" label_width="79" max_val="2" min_val="1" name="TerrainMeshDetail" show_text="false" width="223"/>
|
||||
<slider bottom_delta="-18" control_name="WLSkyDetail" visibility_control="RenderCustomSettings" enabled_control="WindLightUseAtmosShaders" height="16" 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="90" left_delta="229" height="12" visibility_control="RenderCustomSettings" name="ObjectMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" visibility_control="RenderCustomSettings" name="FlexibleMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" visibility_control="RenderCustomSettings" name="TreeMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" visibility_control="RenderCustomSettings" name="AvatarMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" visibility_control="RenderCustomSettings" name="TerrainMeshDetailText">Low</text>
|
||||
<text bottom_delta="-18" height="12" visibility_control="RenderCustomSettings" enabled_control="WindLightUseAtmosShaders" name="SkyMeshDetailText">Low</text>
|
||||
<text bottom_delta="-25" height="12" left="230" visibility_control="RenderCustomSettings" name="AvatarRenderingText">Avatar Rendering:</text>
|
||||
<check_box bottom_delta="-20" control_name="RenderUseImpostors" visibility_control="RenderCustomSettings" label="Avatar impostors" name="AvatarImpostors"/>
|
||||
<check_box bottom_delta="-16" control_name="RenderAvatarVP" visibility_control="RenderCustomSettings" label="Hardware skinning" name="AvatarVertexProgram"/>
|
||||
<check_box bottom_delta="-16" control_name="RenderAvatarCloth" visibility_control="RenderCustomSettings" label="Avatar cloth" name="AvatarCloth"/>
|
||||
<text bottom_delta="50" height="12" left="395" visibility_control="RenderCustomSettings" name="TerrainDetailText">Terrain detail:</text>
|
||||
<radio_group bottom_delta="-44" control_name="RenderTerrainDetail" visibility_control="RenderCustomSettings" 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>
|
||||
</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"/>
|
||||
<check_box bottom="-22" control_name="RenderAnisotropic" height="16" 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" 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="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>
|
||||
@@ -108,20 +107,20 @@
|
||||
<combo_item name="VSyncStandard" value="1">Standard</combo_item>
|
||||
<combo_item name="VSyncAdaptive" value="-1">Adaptive</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="-41" 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">
|
||||
<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" 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" enabled_control="RenderVBOEnable" height="16" 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" 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="-41" 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>
|
||||
</text>
|
||||
</panel>
|
||||
</tab_container>
|
||||
<string name="resolution_format">[RES_X] x [RES_Y]</string>
|
||||
|
||||
Reference in New Issue
Block a user