Deferred settings

This commit is contained in:
Siana Gearz
2011-05-12 22:10:10 +02:00
parent 6d5d90bd92
commit 4d9e7fa8c1
3 changed files with 92 additions and 26 deletions

View File

@@ -233,13 +233,21 @@ BOOL LLPanelDisplay::postBuild()
mCtrlReflections = getChild<LLCheckBoxCtrl>("Reflections");
mCtrlReflections->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
mCtrlReflections->setCallbackUserData(this);
mRadioReflectionDetail = getChild<LLRadioGroup>("ReflectionDetailRadio");
mCtrlReflectionDetail = getChild<LLComboBox>("ReflectionDetailCombo");
// WindLight
mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
mCtrlWindLight->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
mCtrlWindLight->setCallbackUserData(this);
// Deferred
mCtrlDeferred = getChild<LLCheckBoxCtrl>("RenderDeferred");
mCtrlDeferred->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
mCtrlDeferred->setCallbackUserData(this);
mCtrlSunShadow = getChild<LLCheckBoxCtrl>("RenderDeferredSunShadow");
mCtrlSunShadow->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
mCtrlSunShadow->setCallbackUserData(this);
//----------------------------------------------------------------------------
// Enable Avatar Shaders
mCtrlAvatarVP = getChild<LLCheckBoxCtrl>("AvatarVertexProgram");
@@ -391,6 +399,8 @@ void LLPanelDisplay::refresh()
mWindLight = gSavedSettings.getBOOL("WindLightUseAtmosShaders");
mReflections = gSavedSettings.getBOOL("RenderWaterReflections");
mAvatarVP = gSavedSettings.getBOOL("RenderAvatarVP");
mDeferred = gSavedSettings.getBOOL("RenderDeferred");
mSunShadow = gSavedSettings.getBOOL("RenderDeferredSunShadow");
// reflection radio
mReflectionDetail = gSavedSettings.getS32("RenderReflectionDetail");
@@ -464,10 +474,7 @@ void LLPanelDisplay::refreshEnabledState()
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE);
for (S32 i = 0; i < mRadioReflectionDetail->getItemCount(); ++i)
{
mRadioReflectionDetail->setIndexEnabled(i, mCtrlReflections->get() && reflections);
}
mCtrlReflectionDetail->setEnabled(mCtrlReflections->get() && reflections);
// Avatar Mode
S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel;
@@ -483,6 +490,10 @@ void LLPanelDisplay::refreshEnabledState()
mCtrlAvatarCloth->setEnabled(true);
}
BOOL can_defer = gSavedSettings.getBOOL("RenderUseFBO");
mCtrlDeferred->setEnabled(can_defer);
mCtrlSunShadow->setEnabled(can_defer && gSavedSettings.getBOOL("RenderDeferred"));
// Vertex Shaders
// mCtrlShaderEnable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"));
// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0a
@@ -538,6 +549,11 @@ void LLPanelDisplay::disableUnavailableSettings()
mCtrlAvatarCloth->setEnabled(FALSE);
mCtrlAvatarCloth->setValue(FALSE);
mCtrlDeferred->setEnabled(FALSE);
mCtrlDeferred->setValue(FALSE);
mCtrlSunShadow->setEnabled(FALSE);
mCtrlSunShadow->setValue(FALSE);
}
// disabled windlight
@@ -575,6 +591,15 @@ void LLPanelDisplay::disableUnavailableSettings()
mCtrlAvatarImpostors->setEnabled(FALSE);
mCtrlAvatarImpostors->setValue(FALSE);
}
// disabled deferred
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred"))
{
mCtrlDeferred->setEnabled(FALSE);
mCtrlDeferred->setValue(FALSE);
mCtrlSunShadow->setEnabled(FALSE);
mCtrlSunShadow->setValue(FALSE);
}
}
void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
@@ -610,7 +635,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
llassert(mRadioLightingDetail2 != NULL);
llassert(mRadioTerrainDetail != NULL);
llassert(mRadioReflectionDetail != NULL);
llassert(mCtrlReflectionDetail != NULL);
llassert(mMeshDetailText != NULL);
llassert(mShaderText != NULL);
@@ -633,7 +658,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
mCtrlLODFactor->setVisible(!isHidden);
mCtrlFlexFactor->setVisible(!isHidden);
mCtrlTreeFactor->setVisible(!isHidden);
mCtrlAvatarFactor->setVisible(!isHidden);
mCtrlAvatarFactor->setVisible(!isHidden);
mCtrlTerrainFactor->setVisible(!isHidden);
mCtrlSkyFactor->setVisible(!isHidden);
mCtrlMaxParticle->setVisible(!isHidden);
@@ -657,7 +682,10 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
mRadioLightingDetail2->setVisible(!isHidden);
mRadioTerrainDetail->setVisible(!isHidden);
mRadioReflectionDetail->setVisible(!isHidden);
mCtrlReflectionDetail->setVisible(!isHidden);
mCtrlDeferred->setVisible(!isHidden);
mCtrlSunShadow->setVisible(!isHidden);
// text boxes
mShaderText->setVisible(!isHidden);
@@ -691,6 +719,8 @@ void LLPanelDisplay::cancel()
gSavedSettings.setBOOL("WindLightUseAtmosShaders", mWindLight);
gSavedSettings.setBOOL("RenderWaterReflections", mReflections);
gSavedSettings.setBOOL("RenderAvatarVP", mAvatarVP);
gSavedSettings.setBOOL("RenderDeferred", mDeferred);
gSavedSettings.setBOOL("RenderDeferredSunShadow", mSunShadow);
gSavedSettings.setS32("RenderReflectionDetail", mReflectionDetail);

View File

@@ -84,6 +84,7 @@ protected:
LLComboBox *mCtrlFullScreen; // Fullscreen resolution
LLCheckBoxCtrl *mCtrlAutoDetectAspect; // automatically detect aspect ratio
LLComboBox *mCtrlAspectRatio; // user provided aspect ratio
LLComboBox *mCtrlReflectionDetail;
LLCheckBoxCtrl *mCtrlWindowed; // windowed mode
LLComboBox *mCtrlWindowSize; // window size for windowed mode
@@ -110,12 +111,12 @@ protected:
LLCheckBoxCtrl *mCtrlWindLight;
LLCheckBoxCtrl *mCtrlAvatarVP;
LLCheckBoxCtrl *mCtrlShaderEnable;
LLCheckBoxCtrl *mCtrlDeferred;
LLCheckBoxCtrl *mCtrlSunShadow;
LLCheckBoxCtrl *mCtrlAvatarImpostors;
LLCheckBoxCtrl *mCtrlAvatarCloth;
LLRadioGroup *mRadioLightingDetail2;
LLRadioGroup *mRadioTerrainDetail;
LLRadioGroup *mRadioReflectionDetail;
LLTextBox *mAspectRatioLabel1;
LLTextBox *mDisplayResLabel;
@@ -151,6 +152,8 @@ protected:
BOOL mShaderEnable;
BOOL mWindLight;
BOOL mReflections;
BOOL mDeferred;
BOOL mSunShadow;
BOOL mAvatarVP;
S32 mReflectionDetail;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom"
height="408" label="Graphics" left="102" mouse_opaque="true"
<panel border="true" bottom="-439" enabled="true" follows="left|top|right|bottom"
height="438" label="Graphics" left="102" mouse_opaque="true"
name="Display panel" width="517">
<button bottom="-22" follows="left|top" font="SansSerif" height="18" label="?"
left="470" name="GraphicsPreferencesHelpButton" width="22" />
@@ -24,11 +24,8 @@
<combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top"
height="18" left="185" max_chars="20" mouse_opaque="true"
name="windowsize combo" width="150">
<combo_item type="string" length="1" enabled="true" name="640x480" value="640 x 480">
640x480
</combo_item>
<combo_item type="string" length="1" enabled="true" name="800x600" value="800 x 600">
800x600
800x600
</combo_item>
<combo_item type="string" length="1" enabled="true" name="720x480" value="720 x 480">
720x480 (NTSC)
@@ -39,7 +36,16 @@
<combo_item type="string" length="1" enabled="true" name="1024x768" value="1024 x 768">
1024x768
</combo_item>
<combo_item type="string" length="1" enabled="true" name="1280x720" value="1280 x 720">
1280x720 (HDV720)
</combo_item>
<combo_item type="string" length="1" enabled="true" name="1440x1080" value="1440 x 1080">
1440x1080 (HDV1080)
</combo_item>
<combo_item type="string" length="1" enabled="true" name="1920x1080" value="1920 x 1080">
1920x1080 (HD1080)
</combo_item>
</combo_box>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top"
@@ -67,10 +73,10 @@
5:4 (1280x1024 LCD)
</combo_item>
<combo_item type="string" length="1" enabled="true" name="8:5(Widescreen)" value="1.6">
8:5 (Widescreen)
16:10 (Widescreen PC)
</combo_item>
<combo_item type="string" length="1" enabled="true" name="16:9(Widescreen)" value="1.7777777">
16:9 (Widescreen)
16:9 (Widescreen TV)
</combo_item>
</combo_box>
<check_box bottom="-44" control_name="FullScreenAutoDetectAspectRatio" enabled="true"
@@ -157,8 +163,8 @@
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Custom" left="385" mouse_opaque="true"
name="CustomSettings" radio_style="false" width="256" />
<view_border bevel_style="none" border_thickness="1" bottom="-375" follows="top|left"
height="260" left="5" name="GraphicsBorder" width="485" />
<view_border bevel_style="none" border_thickness="1" bottom="-405" follows="top|left"
height="290" left="5" name="GraphicsBorder" width="485" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-130" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12"
@@ -180,18 +186,45 @@
initial_value="true" label="Atmospheric Shaders" left_delta="0"
mouse_opaque="true" name="WindLightUseAtmosShaders" radio_style="false"
width="256" />
<check_box bottom_delta="-17" control_name="RenderDeferred" enabled="true"
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Deferred Shading" left_delta="0"
mouse_opaque="true" name="RenderDeferred" radio_style="false"
width="256" />
<check_box bottom_delta="-17" control_name="RenderDeferredSunShadow" enabled="true"
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Primary Shadows" left_delta="0"
mouse_opaque="true" name="RenderDeferredSunShadow" radio_style="false"
width="256" />
<check_box bottom_delta="-17" control_name="RenderWaterReflections" enabled="true"
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Water Reflections" left_delta="0"
mouse_opaque="true" name="Reflections" radio_style="false" width="256" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-223" drop_shadow_visible="true" enabled="true" follows="left|top"
bottom_delta="-17" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12"
left="10" mouse_opaque="true" name="ReflectionDetailText" v_pad="0"
width="128">
Reflection Detail:
</text>
<radio_group bottom_delta="-73" control_name="RenderReflectionDetail" draw_border="false"
<combo_box bottom_delta="-20" control_name="RenderReflectionDetail" enabled = "true" follows="left|top"
left_delta="-2" mouse_opaque="true" name="ReflectionDetailCombo" width="160" height="16">
<combo_item type="string" length="1" name="0" value="0">
Terrain and Trees
</combo_item>
<combo_item type="string" length="1" name="1" value="1">
All Static Objects
</combo_item>
<combo_item type="string" length="1" name="2" value="2">
All Avatars and Objects
</combo_item>
<combo_item type="string" length="1" name="3" value="3">
Everything
</combo_item>
</combo_box>
<!--radio_group bottom_delta="-73" control_name="RenderReflectionDetail" draw_border="false"
enabled="true" follows="left|top" height="70"
left_delta="-2" mouse_opaque="true" name="ReflectionDetailRadio"
width="321">
@@ -211,7 +244,7 @@
left="3" mouse_opaque="true" name="3" width="315">
Everything
</radio_item>
</radio_group>
</radio_group-->
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-313" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10"
@@ -382,10 +415,10 @@
High
</radio_item>
</radio_group>
<button bottom="-400" enabled="true" font="SansSerif" halign="center" height="20"
<button bottom="-430" enabled="true" font="SansSerif" halign="center" height="20"
label="Recommended Settings" left="130" mouse_opaque="true"
name="Defaults" scale_image="true" width="170" />
<button bottom="-400" enabled="true" font="SansSerif" halign="center" height="20"
<button bottom="-430" enabled="true" font="SansSerif" halign="center" height="20"
label="Hardware Options" label_selected="Hardware Options"
left="310" mouse_opaque="true" name="GraphicsHardwareButton"
scale_image="true" width="170" />