summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2010-03-20 16:56:36 -0500
committerDave Parks <davep@lindenlab.com>2010-03-20 16:56:36 -0500
commit06e3d288e40e46204d84aed9c548a6ca529e78d8 (patch)
treeeefa1c0d28da4593576131eb89f6d47c7f0b309b
parent08ae65fbd700646a5c2b6ed6764f372ef8b91082 (diff)
Tweak detail settings and make graphics preferences widget enabling respect requirements.
-rw-r--r--indra/newview/app_settings/high_graphics.xml9
-rw-r--r--indra/newview/app_settings/low_graphics.xml9
-rw-r--r--indra/newview/app_settings/mid_graphics.xml9
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/app_settings/ultra_graphics.xml9
-rw-r--r--indra/newview/featuretable.txt38
-rw-r--r--indra/newview/llfloaterpreference.cpp60
-rw-r--r--indra/newview/llviewercontrol.cpp10
-rw-r--r--indra/newview/llviewershadermgr.cpp39
-rw-r--r--indra/newview/llviewerstats.cpp2
-rw-r--r--indra/newview/pipeline.cpp13
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml80
12 files changed, 198 insertions, 91 deletions
diff --git a/indra/newview/app_settings/high_graphics.xml b/indra/newview/app_settings/high_graphics.xml
index c3fa2ab75e..93d39c8414 100644
--- a/indra/newview/app_settings/high_graphics.xml
+++ b/indra/newview/app_settings/high_graphics.xml
@@ -12,8 +12,6 @@
<RenderFlexTimeFactor value="1"/>
<!--256... but they don't use this-->
<RenderGlowResolutionPow value="9"/>
- <!--Sun/Moon only-->
- <RenderLightingDetail value="1"/>
<!--Low number-->
<RenderMaxPartCount value="4096"/>
<!--bump okay-->
@@ -34,4 +32,11 @@
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="TRUE"/>
+ <!--Deferred Shading-->
+ <RenderDeferred value="TRUE"/>
+ <!--SSAO Disabled-->
+ <RenderDeferredSSAO value="FALSE"/>
+ <!--Sun Shadows-->
+ <RenderShadowDetail value="1"/>
+
</settings>
diff --git a/indra/newview/app_settings/low_graphics.xml b/indra/newview/app_settings/low_graphics.xml
index 54320117fc..a300c8646c 100644
--- a/indra/newview/app_settings/low_graphics.xml
+++ b/indra/newview/app_settings/low_graphics.xml
@@ -12,8 +12,6 @@
<RenderFlexTimeFactor value="0.5"/>
<!--256... but they don't use this-->
<RenderGlowResolutionPow value="8"/>
- <!--Sun/Moon only-->
- <RenderLightingDetail value="0"/>
<!--Low number-->
<RenderMaxPartCount value="1024"/>
<!--bump okay-->
@@ -34,4 +32,11 @@
<VertexShaderEnable value="FALSE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="FALSE"/>
+ <!--No Deferred Shading-->
+ <RenderDeferred value="FALSE"/>
+ <!--SSAO Disabled-->
+ <RenderDeferredSSAO value="FALSE"/>
+ <!--No Shadows-->
+ <RenderShadowDetail value="0"/>
+
</settings>
diff --git a/indra/newview/app_settings/mid_graphics.xml b/indra/newview/app_settings/mid_graphics.xml
index 422988498d..a1430a58f9 100644
--- a/indra/newview/app_settings/mid_graphics.xml
+++ b/indra/newview/app_settings/mid_graphics.xml
@@ -12,8 +12,6 @@
<RenderFlexTimeFactor value="1"/>
<!--256... but they don't use this-->
<RenderGlowResolutionPow value="8"/>
- <!--Sun/Moon only-->
- <RenderLightingDetail value="1"/>
<!--Low number-->
<RenderMaxPartCount value="2048"/>
<!--bump okay-->
@@ -34,4 +32,11 @@
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="FALSE"/>
+ <!--No Deferred Shading-->
+ <RenderDeferred value="FALSE"/>
+ <!--SSAO Disabled-->
+ <RenderDeferredSSAO value="FALSE"/>
+ <!--No Shadows-->
+ <RenderShadowDetail value="0"/>
+
</settings>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 68d759019d..520cbae15b 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -7167,17 +7167,6 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>RenderLightingDetail</key>
- <map>
- <key>Comment</key>
- <string>Amount of detail for lighting objects/avatars/terrain (0=sun/moon only, 1=enable local lights)</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
<key>RenderMaxPartCount</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/app_settings/ultra_graphics.xml b/indra/newview/app_settings/ultra_graphics.xml
index 149aa32000..f741089ca2 100644
--- a/indra/newview/app_settings/ultra_graphics.xml
+++ b/indra/newview/app_settings/ultra_graphics.xml
@@ -12,8 +12,6 @@
<RenderFlexTimeFactor value="1"/>
<!--256... but they don't use this-->
<RenderGlowResolutionPow value="9"/>
- <!--Sun/Moon only-->
- <RenderLightingDetail value="1"/>
<!--Low number-->
<RenderMaxPartCount value="4096"/>
<!--bump okay-->
@@ -34,4 +32,11 @@
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="TRUE"/>
+ <!--Deferred Shading-->
+ <RenderDeferred value="TRUE"/>
+ <!--SSAO Enabled-->
+ <RenderDeferredSSAO value="TRUE"/>
+ <!--Full Shadows-->
+ <RenderShadowDetail value="2"/>
+
</settings>
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index 7f13240e60..1913f52499 100644
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
@@ -35,7 +35,6 @@ RenderFogRatio 1 4.0
RenderGamma 1 0
RenderGlowResolutionPow 1 9
RenderGround 1 1
-RenderLightingDetail 1 1
RenderMaxPartCount 1 8192
RenderNightBrightness 1 1.0
RenderObjectBump 1 1
@@ -55,6 +54,9 @@ Disregard128DefaultDrawDistance 1 1
Disregard96DefaultDrawDistance 1 1
RenderTextureMemoryMultiple 1 1.0
RenderShaderLightingMaxLevel 1 3
+RenderDeferred 1 1
+RenderDeferredSSAO 1 1
+RenderShadowDetail 1 2
//
@@ -68,7 +70,6 @@ RenderAvatarVP 1 0
RenderFarClip 1 64
RenderFlexTimeFactor 1 0.5
RenderGlowResolutionPow 1 8
-RenderLightingDetail 1 0
RenderMaxPartCount 1 1024
RenderObjectBump 1 0
RenderReflectionDetail 1 0
@@ -80,6 +81,10 @@ RenderVolumeLODFactor 1 1.125
VertexShaderEnable 1 0
WindLightUseAtmosShaders 1 0
WLSkyDetail 1 48
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// Mid Graphics Settings
@@ -92,7 +97,6 @@ RenderAvatarVP 1 1
RenderFarClip 1 96
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 8
-RenderLightingDetail 1 1
RenderMaxPartCount 1 2048
RenderObjectBump 1 1
RenderReflectionDetail 1 0
@@ -104,6 +108,10 @@ RenderVolumeLODFactor 1 1.125
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 0
WLSkyDetail 1 48
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// High Graphics Settings (purty)
@@ -116,7 +124,6 @@ RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
-RenderLightingDetail 1 1
RenderMaxPartCount 1 4096
RenderObjectBump 1 1
RenderReflectionDetail 1 2
@@ -128,6 +135,10 @@ RenderVolumeLODFactor 1 1.125
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
WLSkyDetail 1 48
+RenderDeferred 1 1
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 1
+
//
// Ultra graphics (REALLY PURTY!)
@@ -140,7 +151,6 @@ RenderAvatarVP 1 1
RenderFarClip 1 256
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
-RenderLightingDetail 1 1
RenderMaxPartCount 1 8192
RenderObjectBump 1 1
RenderReflectionDetail 1 4
@@ -152,6 +162,10 @@ RenderVolumeLODFactor 1 2.0
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
WLSkyDetail 1 128
+RenderDeferred 1 1
+RenderDeferredSSAO 1 1
+RenderShadowDetail 1 2
+
//
// Class Unknown Hardware (unknown)
@@ -192,6 +206,9 @@ RenderAvatarCloth 0 0
RenderReflectionDetail 0 0
VertexShaderEnable 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
//
// No Vertex Shaders available
@@ -202,6 +219,10 @@ RenderAvatarCloth 0 0
RenderReflectionDetail 0 0
VertexShaderEnable 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
+
// "Default" setups for safe, low, medium, high
//
@@ -209,7 +230,6 @@ list safe
RenderAnisotropic 1 0
RenderAvatarCloth 0 0
RenderAvatarVP 0 0
-RenderLightingDetail 1 0
RenderObjectBump 0 0
RenderMaxPartCount 1 1024
RenderTerrainDetail 1 0
@@ -217,6 +237,10 @@ RenderUseImpostors 0 0
RenderVBOEnable 1 0
RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
+
//
// CPU based feature masks
@@ -240,11 +264,9 @@ RenderVBOEnable 1 0
list Intel
RenderAnisotropic 1 0
-RenderLightingDetail 1 0
list GeForce2
RenderAnisotropic 1 0
-RenderLightingDetail 1 0
RenderMaxPartCount 1 2048
RenderTerrainDetail 1 0
RenderVBOEnable 1 1
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index f19683304f..2d23f848af 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -819,7 +819,7 @@ void LLFloaterPreference::buildPopupLists()
void LLFloaterPreference::refreshEnabledState()
{
- LLCheckBoxCtrl* ctrl_reflections = getChild<LLCheckBoxCtrl>("Reflections");
+ LLComboBox* ctrl_reflections = getChild<LLComboBox>("Reflections");
LLRadioGroup* radio_reflection_detail = getChild<LLRadioGroup>("ReflectionDetailRadio");
// Reflections
@@ -832,7 +832,7 @@ void LLFloaterPreference::refreshEnabledState()
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
getChild<LLCheckBoxCtrl>("BumpShiny")->setEnabled(bumpshiny ? TRUE : FALSE);
- radio_reflection_detail->setEnabled(ctrl_reflections->get() && reflections);
+ radio_reflection_detail->setEnabled(reflections);
// Avatar Mode
// Enable Avatar Shaders
@@ -878,6 +878,26 @@ void LLFloaterPreference::refreshEnabledState()
// *HACK just checks to see if we can use shaders...
// maybe some cards that use shaders, but don't support windlight
ctrl_wind_light->setEnabled(ctrl_shader_enable->getEnabled() && shaders);
+
+ //Deferred/SSAO/Shadows
+ LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
+ if (LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseFBO") &&
+ shaders)
+ {
+ BOOL enabled = ctrl_wind_light->get() ? TRUE : FALSE;
+
+ ctrl_deferred->setEnabled(enabled);
+
+ LLCheckBoxCtrl* ctrl_ssao = getChild<LLCheckBoxCtrl>("UseSSAO");
+ LLComboBox* ctrl_shadow = getChild<LLComboBox>("ShadowDetail");
+
+ enabled = enabled && (ctrl_deferred->get() ? TRUE : FALSE);
+
+ ctrl_ssao->setEnabled(enabled);
+ ctrl_shadow->setEnabled(enabled);
+ }
+
+
// now turn off any features that are unavailable
disableUnavailableSettings();
}
@@ -890,6 +910,9 @@ void LLFloaterPreference::disableUnavailableSettings()
LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");
LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
LLCheckBoxCtrl* ctrl_avatar_impostors = getChild<LLCheckBoxCtrl>("AvatarImpostors");
+ LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
+ LLComboBox* ctrl_shadows = getChild<LLComboBox>("ShadowDetail");
+ LLCheckBoxCtrl* ctrl_ssao = getChild<LLCheckBoxCtrl>("UseSSAO");
// if vertex shaders off, disable all shader related products
if(!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"))
@@ -901,13 +924,22 @@ void LLFloaterPreference::disableUnavailableSettings()
ctrl_wind_light->setValue(FALSE);
ctrl_reflections->setEnabled(FALSE);
- ctrl_reflections->setValue(FALSE);
+ ctrl_reflections->setValue(0);
ctrl_avatar_vp->setEnabled(FALSE);
ctrl_avatar_vp->setValue(FALSE);
ctrl_avatar_cloth->setEnabled(FALSE);
ctrl_avatar_cloth->setValue(FALSE);
+
+ ctrl_shadows->setEnabled(FALSE);
+ ctrl_shadows->setValue(0);
+
+ ctrl_ssao->setEnabled(FALSE);
+ ctrl_ssao->setValue(FALSE);
+
+ ctrl_deferred->setEnabled(FALSE);
+ ctrl_deferred->setValue(FALSE);
}
// disabled windlight
@@ -915,6 +947,16 @@ void LLFloaterPreference::disableUnavailableSettings()
{
ctrl_wind_light->setEnabled(FALSE);
ctrl_wind_light->setValue(FALSE);
+
+ //deferred needs windlight, disable deferred
+ ctrl_shadows->setEnabled(FALSE);
+ ctrl_shadows->setValue(0);
+
+ ctrl_ssao->setEnabled(FALSE);
+ ctrl_ssao->setValue(FALSE);
+
+ ctrl_deferred->setEnabled(FALSE);
+ ctrl_deferred->setValue(FALSE);
}
// disabled reflections
@@ -932,13 +974,25 @@ void LLFloaterPreference::disableUnavailableSettings()
ctrl_avatar_cloth->setEnabled(FALSE);
ctrl_avatar_cloth->setValue(FALSE);
+
+ //deferred needs AvatarVP, disable deferred
+ ctrl_shadows->setEnabled(FALSE);
+ ctrl_shadows->setValue(0);
+
+ ctrl_ssao->setEnabled(FALSE);
+ ctrl_ssao->setValue(FALSE);
+
+ ctrl_deferred->setEnabled(FALSE);
+ ctrl_deferred->setValue(FALSE);
}
+
// disabled cloth
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarCloth"))
{
ctrl_avatar_cloth->setEnabled(FALSE);
ctrl_avatar_cloth->setValue(FALSE);
}
+
// disabled impostors
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseImpostors"))
{
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 862e1de685..e13411442d 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -297,15 +297,6 @@ static bool handleWLSkyDetailChanged(const LLSD&)
return true;
}
-static bool handleRenderLightingDetailChanged(const LLSD& newvalue)
-{
- if (gPipeline.isInit())
- {
- gPipeline.setLightingDetail(newvalue.asInteger());
- }
- return true;
-}
-
static bool handleResetVertexBuffersChanged(const LLSD&)
{
if (gPipeline.isInit())
@@ -574,7 +565,6 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderVBOEnable")->getSignal()->connect(boost::bind(&handleRenderUseVBOChanged, _2));
gSavedSettings.getControl("RenderUseStreamVBO")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
gSavedSettings.getControl("WLSkyDetail")->getSignal()->connect(boost::bind(&handleWLSkyDetailChanged, _2));
- gSavedSettings.getControl("RenderLightingDetail")->getSignal()->connect(boost::bind(&handleRenderLightingDetailChanged, _2));
gSavedSettings.getControl("NumpadControl")->getSignal()->connect(boost::bind(&handleNumpadControlChanged, _2));
gSavedSettings.getControl("JoystickAxis0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _2));
gSavedSettings.getControl("JoystickAxis1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _2));
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index c15f93d9aa..a0d0b9d490 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -317,10 +317,16 @@ S32 LLViewerShaderMgr::getVertexShaderLevel(S32 type)
void LLViewerShaderMgr::setShaders()
{
- if (!gPipeline.mInitialized || !sInitialized)
+ //setShaders might be called redundantly by gSavedSettings, so return on reentrance
+ static bool reentrance = false;
+
+ if (!gPipeline.mInitialized || !sInitialized || reentrance)
{
return;
}
+
+ reentrance = true;
+
// Make sure the compiled shader map is cleared before we recompile shaders.
mShaderObjects.clear();
@@ -368,15 +374,8 @@ void LLViewerShaderMgr::setShaders()
S32 wl_class = 2;
S32 water_class = 2;
S32 deferred_class = 0;
- if (!(LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders")
- && gSavedSettings.getBOOL("WindLightUseAtmosShaders")))
- {
- // user has disabled WindLight in their settings, downgrade
- // windlight shaders to stub versions.
- wl_class = 1;
- }
-
- if (LLPipeline::sRenderDeferred)
+
+ if (gSavedSettings.getBOOL("RenderDeferred"))
{
if (gSavedSettings.getS32("RenderShadowDetail") > 0)
{
@@ -393,6 +392,24 @@ void LLViewerShaderMgr::setShaders()
{ //no shadows
deferred_class = 1;
}
+
+ //make sure framebuffer objects are enabled
+ gSavedSettings.setBOOL("RenderUseFBO", TRUE);
+
+ //make sure hardware skinning is enabled
+ gSavedSettings.setBOOL("RenderAvatarVP", TRUE);
+
+ //make sure atmospheric shaders are enabled
+ gSavedSettings.setBOOL("WindLightUseAtmosShaders", TRUE);
+ }
+
+
+ if (!(LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders")
+ && gSavedSettings.getBOOL("WindLightUseAtmosShaders")))
+ {
+ // user has disabled WindLight in their settings, downgrade
+ // windlight shaders to stub versions.
+ wl_class = 1;
}
if(!gSavedSettings.getBOOL("EnableRippleWater"))
@@ -517,6 +534,8 @@ void LLViewerShaderMgr::setShaders()
gViewerWindow->setCursor(UI_CURSOR_ARROW);
}
gPipeline.createGLBuffers();
+
+ reentrance = false;
}
void LLViewerShaderMgr::unloadShaders()
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index 8059f866ba..045a5485ef 100644
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -591,7 +591,7 @@ void update_statistics(U32 frame_count)
}
}
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_ENABLE_VBO, (F64)gSavedSettings.getBOOL("RenderVBOEnable"));
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_LIGHTING_DETAIL, (F64)gSavedSettings.getS32("RenderLightingDetail"));
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_LIGHTING_DETAIL, (F64)gPipeline.getLightingDetail());
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_DRAW_DIST, (F64)gSavedSettings.getF32("RenderFarClip"));
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_CHAT_BUBBLES, (F64)gSavedSettings.getBOOL("UseChatBubbles"));
#if 0 // 1.9.2
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 5cfd6c3d38..26670351c6 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -409,6 +409,8 @@ void LLPipeline::init()
{
mSpotLightFade[i] = 1.f;
}
+
+ setLightingDetail(-1);
}
LLPipeline::~LLPipeline()
@@ -905,13 +907,18 @@ S32 LLPipeline::setLightingDetail(S32 level)
if (level < 0)
{
- level = gSavedSettings.getS32("RenderLightingDetail");
+ if (gSavedSettings.getBOOL("VertexShaderEnable"))
+ {
+ level = 1;
+ }
+ else
+ {
+ level = 0;
+ }
}
level = llclamp(level, 0, getMaxLightingDetail());
if (level != mLightingDetail)
{
- gSavedSettings.setS32("RenderLightingDetail", level);
-
mLightingDetail = level;
if (mVertexShadersLoaded == 1)
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index e38ad01ff9..e6e7094847 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -242,12 +242,15 @@
control_name="RenderDeferred"
height="16"
initial_value="true"
- label="Lighting Shaders"
+ label="Lighting and Shadows"
layout="topleft"
left_delta="0"
name="UseLightShaders"
top_pad="1"
- width="256"/>
+ width="256">
+ <check_box.commit_callback
+ function="Pref.VertexShaderEnable" />
+ </check_box>
<check_box
control_name="RenderDeferredSSAO"
height="16"
@@ -257,9 +260,12 @@
left_delta="0"
name="UseSSAO"
top_pad="1"
- width="256"/>
+ width="256">
+ <check_box.commit_callback
+ function="Pref.VertexShaderEnable" />
+ </check_box>
- <text
+ <text
type="string"
length="1"
top_pad="8"
@@ -269,72 +275,72 @@
word_wrap="true"
layout="topleft"
left="10"
- name="reflection_label">
- Water Reflections:
+ name="shadows_label">
+ Shadows:
</text>
<combo_box
- control_name="RenderReflectionDetail"
+ control_name="RenderShadowDetail"
height="23"
layout="topleft"
- left_="10"
- top_pad ="0"
- name="Reflections"
+ left="10"
+ top_pad="0"
+ name="ShadowDetail"
width="150">
<combo_box.item
label="None"
name="0"
value="0"/>
<combo_box.item
- label="Terrain and trees"
+ label="Sun/Moon"
name="1"
value="1"/>
<combo_box.item
- label="All static objects"
+ label="Sun/Moon + Projectors"
name="2"
value="2"/>
- <combo_box.item
- label="All avatars and objects"
- name="3"
- value="3"/>
- <combo_box.item
- label="Everything"
- name="4"
- value="4"/>
</combo_box>
<text
- type="string"
- length="1"
- top_pad="8"
- follows="top|left"
- height="23"
- width="110"
- word_wrap="true"
- layout="topleft"
- left="10"
- name="shadows_label">
- Shadows:
+ type="string"
+ length="1"
+ top_pad="8"
+ follows="top|left"
+ height="23"
+ width="110"
+ word_wrap="true"
+ layout="topleft"
+ left="10"
+ name="reflection_label">
+ Water Reflections:
</text>
<combo_box
- control_name="RenderShadowDetail"
+ control_name="RenderReflectionDetail"
height="23"
layout="topleft"
- left="10"
- top_pad="0"
- name="ShadowDetailRadio"
+ left_="10"
+ top_pad ="0"
+ name="Reflections"
width="150">
<combo_box.item
label="None"
name="0"
value="0"/>
<combo_box.item
- label="Sun/Moon"
+ label="Terrain and trees"
name="1"
value="1"/>
<combo_box.item
- label="Sun/Moon + Projectors"
+ label="All static objects"
name="2"
value="2"/>
+ <combo_box.item
+ label="All avatars and objects"
+ name="3"
+ value="3"/>
+ <combo_box.item
+ label="Everything"
+ name="4"
+ value="4"/>
</combo_box>
<slider