Updated graphical options panel to work with new setting configuration.
This commit is contained in:
@@ -230,11 +230,10 @@ BOOL LLPanelDisplay::postBuild()
|
|||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
// Enable Reflections
|
// Enable Reflections
|
||||||
mCtrlReflections = getChild<LLCheckBoxCtrl>("Reflections");
|
|
||||||
mCtrlReflections->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
|
||||||
mCtrlReflections->setCallbackUserData(this);
|
|
||||||
mCtrlReflectionDetail = getChild<LLComboBox>("ReflectionDetailCombo");
|
mCtrlReflectionDetail = getChild<LLComboBox>("ReflectionDetailCombo");
|
||||||
|
mCtrlReflectionDetail->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
||||||
|
mCtrlReflectionDetail->setCallbackUserData(this);
|
||||||
|
|
||||||
// WindLight
|
// WindLight
|
||||||
mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
|
mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
|
||||||
mCtrlWindLight->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
mCtrlWindLight->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
||||||
@@ -244,9 +243,12 @@ BOOL LLPanelDisplay::postBuild()
|
|||||||
mCtrlDeferred = getChild<LLCheckBoxCtrl>("RenderDeferred");
|
mCtrlDeferred = getChild<LLCheckBoxCtrl>("RenderDeferred");
|
||||||
mCtrlDeferred->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
mCtrlDeferred->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
||||||
mCtrlDeferred->setCallbackUserData(this);
|
mCtrlDeferred->setCallbackUserData(this);
|
||||||
mCtrlSunShadow = getChild<LLCheckBoxCtrl>("RenderDeferredSunShadow");
|
mCtrlDeferredGI = getChild<LLCheckBoxCtrl>("RenderDeferredGI");
|
||||||
mCtrlSunShadow->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
mCtrlDeferredGI->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
||||||
mCtrlSunShadow->setCallbackUserData(this);
|
mCtrlDeferredGI->setCallbackUserData(this);
|
||||||
|
mCtrlShadowDetail = getChild<LLComboBox>("ShadowDetailCombo");
|
||||||
|
mCtrlShadowDetail->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
|
||||||
|
mCtrlShadowDetail->setCallbackUserData(this);
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
// Enable Avatar Shaders
|
// Enable Avatar Shaders
|
||||||
@@ -306,6 +308,12 @@ BOOL LLPanelDisplay::postBuild()
|
|||||||
mCtrlAvatarFactor->setCommitCallback(&LLPanelDisplay::updateSliderText);
|
mCtrlAvatarFactor->setCommitCallback(&LLPanelDisplay::updateSliderText);
|
||||||
mCtrlAvatarFactor->setCallbackUserData(mAvatarFactorText);
|
mCtrlAvatarFactor->setCallbackUserData(mAvatarFactorText);
|
||||||
|
|
||||||
|
// Avatar physics detail slider
|
||||||
|
mCtrlAvatarPhysicsFactor = getChild<LLSliderCtrl>("AvatarPhysicsDetail");
|
||||||
|
mAvatarPhysicsFactorText = getChild<LLTextBox>("AvatarPhysicsDetailText");
|
||||||
|
mCtrlAvatarPhysicsFactor->setCommitCallback(&LLPanelDisplay::updateSliderText);
|
||||||
|
mCtrlAvatarPhysicsFactor->setCallbackUserData(mAvatarPhysicsFactorText);
|
||||||
|
|
||||||
// Terrain detail slider
|
// Terrain detail slider
|
||||||
mCtrlTerrainFactor = getChild<LLSliderCtrl>("TerrainMeshDetail");
|
mCtrlTerrainFactor = getChild<LLSliderCtrl>("TerrainMeshDetail");
|
||||||
mTerrainFactorText = getChild<LLTextBox>("TerrainMeshDetailText");
|
mTerrainFactorText = getChild<LLTextBox>("TerrainMeshDetailText");
|
||||||
@@ -397,14 +405,15 @@ void LLPanelDisplay::refresh()
|
|||||||
mBumpShiny = gSavedSettings.getBOOL("RenderObjectBump");
|
mBumpShiny = gSavedSettings.getBOOL("RenderObjectBump");
|
||||||
mShaderEnable = gSavedSettings.getBOOL("VertexShaderEnable");
|
mShaderEnable = gSavedSettings.getBOOL("VertexShaderEnable");
|
||||||
mWindLight = gSavedSettings.getBOOL("WindLightUseAtmosShaders");
|
mWindLight = gSavedSettings.getBOOL("WindLightUseAtmosShaders");
|
||||||
mReflections = gSavedSettings.getBOOL("RenderWaterReflections");
|
|
||||||
mAvatarVP = gSavedSettings.getBOOL("RenderAvatarVP");
|
mAvatarVP = gSavedSettings.getBOOL("RenderAvatarVP");
|
||||||
mDeferred = gSavedSettings.getBOOL("RenderDeferred");
|
mDeferred = gSavedSettings.getBOOL("RenderDeferred");
|
||||||
mSunShadow = gSavedSettings.getBOOL("RenderDeferredSunShadow");
|
mDeferredGI = gSavedSettings.getBOOL("RenderDeferredGI");
|
||||||
|
|
||||||
// reflection radio
|
// reflection radio
|
||||||
mReflectionDetail = gSavedSettings.getS32("RenderReflectionDetail");
|
mReflectionDetail = gSavedSettings.getS32("RenderReflectionDetail");
|
||||||
|
|
||||||
|
mShadowDetail = gSavedSettings.getS32("RenderShadowDetail");
|
||||||
|
|
||||||
// avatar settings
|
// avatar settings
|
||||||
mAvatarImpostors = gSavedSettings.getBOOL("RenderUseImpostors");
|
mAvatarImpostors = gSavedSettings.getBOOL("RenderUseImpostors");
|
||||||
mAvatarCloth = gSavedSettings.getBOOL("RenderAvatarCloth");
|
mAvatarCloth = gSavedSettings.getBOOL("RenderAvatarCloth");
|
||||||
@@ -431,6 +440,7 @@ void LLPanelDisplay::refresh()
|
|||||||
updateSliderText(mCtrlFlexFactor, mFlexFactorText);
|
updateSliderText(mCtrlFlexFactor, mFlexFactorText);
|
||||||
updateSliderText(mCtrlTreeFactor, mTreeFactorText);
|
updateSliderText(mCtrlTreeFactor, mTreeFactorText);
|
||||||
updateSliderText(mCtrlAvatarFactor, mAvatarFactorText);
|
updateSliderText(mCtrlAvatarFactor, mAvatarFactorText);
|
||||||
|
updateSliderText(mCtrlAvatarPhysicsFactor, mAvatarPhysicsFactorText);
|
||||||
updateSliderText(mCtrlTerrainFactor, mTerrainFactorText);
|
updateSliderText(mCtrlTerrainFactor, mTerrainFactorText);
|
||||||
updateSliderText(mCtrlPostProcess, mPostProcessText);
|
updateSliderText(mCtrlPostProcess, mPostProcessText);
|
||||||
updateSliderText(mCtrlSkyFactor, mSkyFactorText);
|
updateSliderText(mCtrlSkyFactor, mSkyFactorText);
|
||||||
@@ -468,13 +478,11 @@ void LLPanelDisplay::refreshEnabledState()
|
|||||||
BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable")
|
BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable")
|
||||||
&& gGLManager.mHasCubeMap
|
&& gGLManager.mHasCubeMap
|
||||||
&& LLCubeMap::sUseCubeMaps;
|
&& LLCubeMap::sUseCubeMaps;
|
||||||
mCtrlReflections->setEnabled(reflections);
|
mCtrlReflectionDetail->setEnabled(reflections);
|
||||||
|
|
||||||
// Bump & Shiny
|
// Bump & Shiny
|
||||||
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
|
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
|
||||||
mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE);
|
mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE);
|
||||||
|
|
||||||
mCtrlReflectionDetail->setEnabled(mCtrlReflections->get() && reflections);
|
|
||||||
|
|
||||||
// Avatar Mode
|
// Avatar Mode
|
||||||
S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel;
|
S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel;
|
||||||
@@ -501,8 +509,9 @@ void LLPanelDisplay::refreshEnabledState()
|
|||||||
|
|
||||||
|
|
||||||
mCtrlDeferred->setEnabled(can_defer);
|
mCtrlDeferred->setEnabled(can_defer);
|
||||||
mCtrlSunShadow->setEnabled(can_defer && gSavedSettings.getBOOL("RenderDeferred"));
|
mCtrlShadowDetail->setEnabled(can_defer && gSavedSettings.getBOOL("RenderDeferred"));
|
||||||
mCtrlAvatarCloth->setValue(gSavedSettings.getBOOL("RenderAvatarVP")); //Enabling RenderDeferred changes this setting behind this floaters back.
|
//GI won't do anything with shadows off, but disabling it here is less than intuitive. Ignore shadow setting for now.
|
||||||
|
mCtrlDeferredGI->setEnabled(mCtrlShadowDetail->getEnabled()/* && gSavedSettings.getS32("RenderShadowDetail") > 0*/);
|
||||||
|
|
||||||
// Vertex Shaders
|
// Vertex Shaders
|
||||||
// mCtrlShaderEnable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"));
|
// mCtrlShaderEnable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"));
|
||||||
@@ -551,8 +560,8 @@ void LLPanelDisplay::disableUnavailableSettings()
|
|||||||
mCtrlWindLight->setEnabled(FALSE);
|
mCtrlWindLight->setEnabled(FALSE);
|
||||||
mCtrlWindLight->setValue(FALSE);
|
mCtrlWindLight->setValue(FALSE);
|
||||||
|
|
||||||
mCtrlReflections->setEnabled(FALSE);
|
mCtrlReflectionDetail->setEnabled(FALSE);
|
||||||
mCtrlReflections->setValue(FALSE);
|
mCtrlReflectionDetail->setValue(FALSE);
|
||||||
|
|
||||||
mCtrlAvatarVP->setEnabled(FALSE);
|
mCtrlAvatarVP->setEnabled(FALSE);
|
||||||
mCtrlAvatarVP->setValue(FALSE);
|
mCtrlAvatarVP->setValue(FALSE);
|
||||||
@@ -562,8 +571,10 @@ void LLPanelDisplay::disableUnavailableSettings()
|
|||||||
|
|
||||||
mCtrlDeferred->setEnabled(FALSE);
|
mCtrlDeferred->setEnabled(FALSE);
|
||||||
mCtrlDeferred->setValue(FALSE);
|
mCtrlDeferred->setValue(FALSE);
|
||||||
mCtrlSunShadow->setEnabled(FALSE);
|
mCtrlDeferredGI->setEnabled(FALSE);
|
||||||
mCtrlSunShadow->setValue(FALSE);
|
mCtrlDeferredGI->setValue(FALSE);
|
||||||
|
mCtrlShadowDetail->setEnabled(FALSE);
|
||||||
|
mCtrlShadowDetail->setValue(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// disabled windlight
|
// disabled windlight
|
||||||
@@ -576,8 +587,8 @@ void LLPanelDisplay::disableUnavailableSettings()
|
|||||||
// disabled reflections
|
// disabled reflections
|
||||||
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderWaterReflections"))
|
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderWaterReflections"))
|
||||||
{
|
{
|
||||||
mCtrlReflections->setEnabled(FALSE);
|
mCtrlReflectionDetail->setEnabled(FALSE);
|
||||||
mCtrlReflections->setValue(FALSE);
|
mCtrlReflectionDetail->setValue(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// disabled av
|
// disabled av
|
||||||
@@ -606,8 +617,10 @@ void LLPanelDisplay::disableUnavailableSettings()
|
|||||||
{
|
{
|
||||||
mCtrlDeferred->setEnabled(FALSE);
|
mCtrlDeferred->setEnabled(FALSE);
|
||||||
mCtrlDeferred->setValue(FALSE);
|
mCtrlDeferred->setValue(FALSE);
|
||||||
mCtrlSunShadow->setEnabled(FALSE);
|
mCtrlDeferredGI->setEnabled(FALSE);
|
||||||
mCtrlSunShadow->setValue(FALSE);
|
mCtrlDeferredGI->setValue(FALSE);
|
||||||
|
mCtrlShadowDetail->setEnabled(FALSE);
|
||||||
|
mCtrlShadowDetail->setValue(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -669,6 +682,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
|
|||||||
mCtrlFlexFactor->setVisible(!isHidden);
|
mCtrlFlexFactor->setVisible(!isHidden);
|
||||||
mCtrlTreeFactor->setVisible(!isHidden);
|
mCtrlTreeFactor->setVisible(!isHidden);
|
||||||
mCtrlAvatarFactor->setVisible(!isHidden);
|
mCtrlAvatarFactor->setVisible(!isHidden);
|
||||||
|
mCtrlAvatarPhysicsFactor->setVisible(!isHidden);
|
||||||
mCtrlTerrainFactor->setVisible(!isHidden);
|
mCtrlTerrainFactor->setVisible(!isHidden);
|
||||||
mCtrlSkyFactor->setVisible(!isHidden);
|
mCtrlSkyFactor->setVisible(!isHidden);
|
||||||
mCtrlMaxParticle->setVisible(!isHidden);
|
mCtrlMaxParticle->setVisible(!isHidden);
|
||||||
@@ -678,12 +692,12 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
|
|||||||
mFlexFactorText->setVisible(!isHidden);
|
mFlexFactorText->setVisible(!isHidden);
|
||||||
mTreeFactorText->setVisible(!isHidden);
|
mTreeFactorText->setVisible(!isHidden);
|
||||||
mAvatarFactorText->setVisible(!isHidden);
|
mAvatarFactorText->setVisible(!isHidden);
|
||||||
|
mAvatarPhysicsFactorText->setVisible(!isHidden);
|
||||||
mTerrainFactorText->setVisible(!isHidden);
|
mTerrainFactorText->setVisible(!isHidden);
|
||||||
mSkyFactorText->setVisible(!isHidden);
|
mSkyFactorText->setVisible(!isHidden);
|
||||||
mPostProcessText->setVisible(!isHidden);
|
mPostProcessText->setVisible(!isHidden);
|
||||||
|
|
||||||
mCtrlBumpShiny->setVisible(!isHidden);
|
mCtrlBumpShiny->setVisible(!isHidden);
|
||||||
mCtrlReflections->setVisible(!isHidden);
|
|
||||||
mCtrlWindLight->setVisible(!isHidden);
|
mCtrlWindLight->setVisible(!isHidden);
|
||||||
mCtrlAvatarVP->setVisible(!isHidden);
|
mCtrlAvatarVP->setVisible(!isHidden);
|
||||||
mCtrlShaderEnable->setVisible(!isHidden);
|
mCtrlShaderEnable->setVisible(!isHidden);
|
||||||
@@ -695,7 +709,8 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
|
|||||||
mCtrlReflectionDetail->setVisible(!isHidden);
|
mCtrlReflectionDetail->setVisible(!isHidden);
|
||||||
|
|
||||||
mCtrlDeferred->setVisible(!isHidden);
|
mCtrlDeferred->setVisible(!isHidden);
|
||||||
mCtrlSunShadow->setVisible(!isHidden);
|
mCtrlDeferredGI->setVisible(!isHidden);
|
||||||
|
mCtrlShadowDetail->setVisible(!isHidden);
|
||||||
|
|
||||||
// text boxes
|
// text boxes
|
||||||
mShaderText->setVisible(!isHidden);
|
mShaderText->setVisible(!isHidden);
|
||||||
@@ -727,12 +742,13 @@ void LLPanelDisplay::cancel()
|
|||||||
gSavedSettings.setBOOL("RenderObjectBump", mBumpShiny);
|
gSavedSettings.setBOOL("RenderObjectBump", mBumpShiny);
|
||||||
gSavedSettings.setBOOL("VertexShaderEnable", mShaderEnable);
|
gSavedSettings.setBOOL("VertexShaderEnable", mShaderEnable);
|
||||||
gSavedSettings.setBOOL("WindLightUseAtmosShaders", mWindLight);
|
gSavedSettings.setBOOL("WindLightUseAtmosShaders", mWindLight);
|
||||||
gSavedSettings.setBOOL("RenderWaterReflections", mReflections);
|
|
||||||
gSavedSettings.setBOOL("RenderAvatarVP", mAvatarVP);
|
gSavedSettings.setBOOL("RenderAvatarVP", mAvatarVP);
|
||||||
gSavedSettings.setBOOL("RenderDeferred", mDeferred);
|
gSavedSettings.setBOOL("RenderDeferred", mDeferred);
|
||||||
gSavedSettings.setBOOL("RenderDeferredSunShadow", mSunShadow);
|
gSavedSettings.setBOOL("RenderDeferredGI", mDeferredGI);
|
||||||
|
|
||||||
gSavedSettings.setS32("RenderReflectionDetail", mReflectionDetail);
|
gSavedSettings.setS32("RenderReflectionDetail", mReflectionDetail);
|
||||||
|
gSavedSettings.setS32("RenderShadowDetail", mShadowDetail);
|
||||||
|
|
||||||
gSavedSettings.setBOOL("RenderUseImpostors", mAvatarImpostors);
|
gSavedSettings.setBOOL("RenderUseImpostors", mAvatarImpostors);
|
||||||
gSavedSettings.setBOOL("RenderAvatarCloth", mAvatarCloth);
|
gSavedSettings.setBOOL("RenderAvatarCloth", mAvatarCloth);
|
||||||
@@ -989,6 +1005,13 @@ void LLPanelDisplay::updateSliderText(LLUICtrl* ctrl, void* user_data)
|
|||||||
return;
|
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
|
// get range and points when text should change
|
||||||
F32 range = slider->getMaxValue() - slider->getMinValue();
|
F32 range = slider->getMaxValue() - slider->getMinValue();
|
||||||
llassert(range > 0);
|
llassert(range > 0);
|
||||||
@@ -1004,10 +1027,14 @@ void LLPanelDisplay::updateSliderText(LLUICtrl* ctrl, void* user_data)
|
|||||||
{
|
{
|
||||||
text_box->setText(std::string("Mid"));
|
text_box->setText(std::string("Mid"));
|
||||||
}
|
}
|
||||||
else
|
else if(slider->getValueF32() < slider->getMaxValue())
|
||||||
{
|
{
|
||||||
text_box->setText(std::string("High"));
|
text_box->setText(std::string("High"));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
text_box->setText(std::string("Max"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLPanelDisplay::updateMeterText(LLUICtrl* ctrl, void* user_data)
|
void LLPanelDisplay::updateMeterText(LLUICtrl* ctrl, void* user_data)
|
||||||
|
|||||||
@@ -101,18 +101,19 @@ protected:
|
|||||||
LLSliderCtrl *mCtrlFlexFactor; // Timeslice for flexible objects
|
LLSliderCtrl *mCtrlFlexFactor; // Timeslice for flexible objects
|
||||||
LLSliderCtrl *mCtrlTreeFactor; // Control tree cutoff distance
|
LLSliderCtrl *mCtrlTreeFactor; // Control tree cutoff distance
|
||||||
LLSliderCtrl *mCtrlAvatarFactor; // LOD for avatars
|
LLSliderCtrl *mCtrlAvatarFactor; // LOD for avatars
|
||||||
|
LLSliderCtrl *mCtrlAvatarPhysicsFactor; // Physics LOD for avatars
|
||||||
LLSliderCtrl *mCtrlTerrainFactor; // LOD for terrain
|
LLSliderCtrl *mCtrlTerrainFactor; // LOD for terrain
|
||||||
LLSliderCtrl *mCtrlSkyFactor; // LOD for terrain
|
LLSliderCtrl *mCtrlSkyFactor; // LOD for terrain
|
||||||
LLSliderCtrl *mCtrlMaxParticle; // Max Particle
|
LLSliderCtrl *mCtrlMaxParticle; // Max Particle
|
||||||
LLSliderCtrl *mCtrlPostProcess; // Max Particle
|
LLSliderCtrl *mCtrlPostProcess; // Max Particle
|
||||||
|
|
||||||
LLCheckBoxCtrl *mCtrlBumpShiny;
|
LLCheckBoxCtrl *mCtrlBumpShiny;
|
||||||
LLCheckBoxCtrl *mCtrlReflections;
|
|
||||||
LLCheckBoxCtrl *mCtrlWindLight;
|
LLCheckBoxCtrl *mCtrlWindLight;
|
||||||
LLCheckBoxCtrl *mCtrlAvatarVP;
|
LLCheckBoxCtrl *mCtrlAvatarVP;
|
||||||
LLCheckBoxCtrl *mCtrlShaderEnable;
|
LLCheckBoxCtrl *mCtrlShaderEnable;
|
||||||
LLCheckBoxCtrl *mCtrlDeferred;
|
LLCheckBoxCtrl *mCtrlDeferred;
|
||||||
LLCheckBoxCtrl *mCtrlSunShadow;
|
LLCheckBoxCtrl *mCtrlDeferredGI;
|
||||||
|
LLComboBox *mCtrlShadowDetail;
|
||||||
LLCheckBoxCtrl *mCtrlAvatarImpostors;
|
LLCheckBoxCtrl *mCtrlAvatarImpostors;
|
||||||
LLCheckBoxCtrl *mCtrlAvatarCloth;
|
LLCheckBoxCtrl *mCtrlAvatarCloth;
|
||||||
LLRadioGroup *mRadioLightingDetail2;
|
LLRadioGroup *mRadioLightingDetail2;
|
||||||
@@ -136,6 +137,7 @@ protected:
|
|||||||
LLTextBox *mFlexFactorText;
|
LLTextBox *mFlexFactorText;
|
||||||
LLTextBox *mTreeFactorText;
|
LLTextBox *mTreeFactorText;
|
||||||
LLTextBox *mAvatarFactorText;
|
LLTextBox *mAvatarFactorText;
|
||||||
|
LLTextBox *mAvatarPhysicsFactorText;
|
||||||
LLTextBox *mTerrainFactorText;
|
LLTextBox *mTerrainFactorText;
|
||||||
LLTextBox *mSkyFactorText;
|
LLTextBox *mSkyFactorText;
|
||||||
LLTextBox *mPostProcessText;
|
LLTextBox *mPostProcessText;
|
||||||
@@ -151,12 +153,12 @@ protected:
|
|||||||
BOOL mBumpShiny;
|
BOOL mBumpShiny;
|
||||||
BOOL mShaderEnable;
|
BOOL mShaderEnable;
|
||||||
BOOL mWindLight;
|
BOOL mWindLight;
|
||||||
BOOL mReflections;
|
|
||||||
BOOL mDeferred;
|
BOOL mDeferred;
|
||||||
BOOL mSunShadow;
|
BOOL mDeferredGI;
|
||||||
BOOL mAvatarVP;
|
BOOL mAvatarVP;
|
||||||
|
|
||||||
S32 mReflectionDetail;
|
S32 mReflectionDetail;
|
||||||
|
S32 mShadowDetail;
|
||||||
|
|
||||||
BOOL mAvatarImpostors;
|
BOOL mAvatarImpostors;
|
||||||
BOOL mAvatarCloth;
|
BOOL mAvatarCloth;
|
||||||
|
|||||||
@@ -496,7 +496,9 @@ BOOL LLPhysicsMotionController::onUpdate(F32 time, U8* joint_mask)
|
|||||||
{
|
{
|
||||||
// Skip if disabled globally.
|
// Skip if disabled globally.
|
||||||
static const LLCachedControl<bool> avatar_physics("AvatarPhysics",false);
|
static const LLCachedControl<bool> avatar_physics("AvatarPhysics",false);
|
||||||
if (!avatar_physics || (!((LLVOAvatar*)mCharacter)->isSelf() && !((LLVOAvatar*)mCharacter)->mSupportsPhysics))
|
bool supports_physics = !avatar_physics || (!((LLVOAvatar*)mCharacter)->isSelf() && !((LLVOAvatar*)mCharacter)->mSupportsPhysics);
|
||||||
|
//Treat lod 0 as AvatarPhyiscs:FALSE. AvatarPhyiscs setting is superfluous unless we decide to hook it into param sending.
|
||||||
|
if (supports_physics || !LLVOAvatar::sPhysicsLODFactor)
|
||||||
{
|
{
|
||||||
if(!mIsDefault)
|
if(!mIsDefault)
|
||||||
{
|
{
|
||||||
@@ -507,6 +509,7 @@ BOOL LLPhysicsMotionController::onUpdate(F32 time, U8* joint_mask)
|
|||||||
}
|
}
|
||||||
mCharacter->updateVisualParams();
|
mCharacter->updateVisualParams();
|
||||||
}
|
}
|
||||||
|
if(!supports_physics) //Only use emerald physics if avatarphysiscs is really off, or the client doesn't seem to support new physics.
|
||||||
((LLVOAvatar*)mCharacter)->idleUpdateBoobEffect(); //Fall back to emerald physics
|
((LLVOAvatar*)mCharacter)->idleUpdateBoobEffect(); //Fall back to emerald physics
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -191,37 +191,35 @@
|
|||||||
initial_value="true" label="Deferred Shading" left_delta="0"
|
initial_value="true" label="Deferred Shading" left_delta="0"
|
||||||
mouse_opaque="true" name="RenderDeferred" radio_style="false"
|
mouse_opaque="true" name="RenderDeferred" radio_style="false"
|
||||||
width="256" />
|
width="256" />
|
||||||
<check_box bottom_delta="-17" control_name="RenderDeferredSunShadow" enabled="true"
|
<check_box bottom_delta="-17" control_name="RenderDeferredGI" enabled="true"
|
||||||
follows="left|top" font="SansSerifSmall" height="16"
|
follows="left|top" font="SansSerifSmall" height="16"
|
||||||
initial_value="true" label="Primary Shadows" left_delta="0"
|
initial_value="true" label="Global Illumination (Experimental!)" left_delta="0"
|
||||||
mouse_opaque="true" name="RenderDeferredSunShadow" radio_style="false"
|
mouse_opaque="true" name="RenderDeferredGI" radio_style="false"
|
||||||
width="256" />
|
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"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom_delta="-17" 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"
|
font="SansSerifSmall" h_pad="0" halign="left" height="12"
|
||||||
left="10" mouse_opaque="true" name="ReflectionDetailText" v_pad="0"
|
left="15" mouse_opaque="true" name="ReflectionDetailText" v_pad="0"
|
||||||
width="128">
|
width="128">
|
||||||
Reflection Detail:
|
Water Reflections:
|
||||||
</text>
|
</text>
|
||||||
<combo_box bottom_delta="-20" control_name="RenderReflectionDetail" enabled = "true" follows="left|top" label="Reflection Detail"
|
<combo_box bottom_delta="-20" control_name="RenderReflectionDetail" enabled = "true" follows="left|top" label="Reflection Detail"
|
||||||
left_delta="-2" mouse_opaque="true" name="ReflectionDetailCombo" width="160" height="16">
|
left_delta="-2" mouse_opaque="true" name="ReflectionDetailCombo" width="160" height="16">
|
||||||
<combo_item type="string" length="1" name="0" value="0">
|
<combo_item type="string" length="1" name="0" value="0">
|
||||||
|
Disabled
|
||||||
|
</combo_item>
|
||||||
|
<combo_item type="string" length="1" name="1" value="1">
|
||||||
Terrain and Trees
|
Terrain and Trees
|
||||||
</combo_item>
|
</combo_item>
|
||||||
<combo_item type="string" length="1" name="1" value="1">
|
<combo_item type="string" length="1" name="2" value="2">
|
||||||
All Static Objects
|
All Static Objects
|
||||||
</combo_item>
|
</combo_item>
|
||||||
<combo_item type="string" length="1" name="2" value="2">
|
<combo_item type="string" length="1" name="3" value="3">
|
||||||
All Avatars and Objects
|
All Avatars and Objects
|
||||||
</combo_item>
|
</combo_item>
|
||||||
<combo_item type="string" length="1" name="3" value="3">
|
<combo_item type="string" length="1" name="4" value="4">
|
||||||
Everything
|
Everything
|
||||||
</combo_item>
|
</combo_item>
|
||||||
|
|
||||||
</combo_box>
|
</combo_box>
|
||||||
|
|
||||||
<!--radio_group bottom_delta="-73" control_name="RenderReflectionDetail" draw_border="false"
|
<!--radio_group bottom_delta="-73" control_name="RenderReflectionDetail" draw_border="false"
|
||||||
@@ -245,6 +243,27 @@
|
|||||||
Everything
|
Everything
|
||||||
</radio_item>
|
</radio_item>
|
||||||
</radio_group-->
|
</radio_group-->
|
||||||
|
|
||||||
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
|
bottom_delta="-17" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
|
font="SansSerifSmall" h_pad="0" halign="left" height="12"
|
||||||
|
left="15" mouse_opaque="true" name="ShadowDetailText" v_pad="0"
|
||||||
|
width="128">
|
||||||
|
Deferred Shadows:
|
||||||
|
</text>
|
||||||
|
<combo_box bottom_delta="-20" control_name="RenderShadowDetail" enabled = "true" follows="left|top" label="Shadow Detail"
|
||||||
|
left_delta="-2" mouse_opaque="true" name="ShadowDetailCombo" width="160" height="16">
|
||||||
|
<combo_item type="string" length="1" name="0" value="0">
|
||||||
|
Disabled
|
||||||
|
</combo_item>
|
||||||
|
<combo_item type="string" length="1" name="1" value="1">
|
||||||
|
Sun shadows
|
||||||
|
</combo_item>
|
||||||
|
<combo_item type="string" length="1" name="2" value="2">
|
||||||
|
Sun and spotlight shadows
|
||||||
|
</combo_item>
|
||||||
|
</combo_box>
|
||||||
|
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<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"
|
bottom="-313" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10"
|
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10"
|
||||||
@@ -320,6 +339,11 @@
|
|||||||
increment="0.125" initial_val="160" label=" Avatars:"
|
increment="0.125" initial_val="160" label=" Avatars:"
|
||||||
label_width="140" left_delta="0" max_val="1" min_val="0"
|
label_width="140" left_delta="0" max_val="1" min_val="0"
|
||||||
mouse_opaque="true" name="AvatarMeshDetail" show_text="false" width="223" />
|
mouse_opaque="true" name="AvatarMeshDetail" show_text="false" width="223" />
|
||||||
|
<slider bottom_delta="-20" can_edit_text="false" control_name="RenderAvatarPhysicsLODFactor"
|
||||||
|
decimal_digits="3" enabled="true" follows="left|top" height="16"
|
||||||
|
increment="0.1" initial_val="160" label=" Avatar Physics:"
|
||||||
|
label_width="140" left_delta="0" max_val="1" min_val="0"
|
||||||
|
mouse_opaque="true" name="AvatarPhysicsDetail" show_text="false" width="223" />
|
||||||
<slider bottom_delta="-20" can_edit_text="false" control_name="RenderTerrainLODFactor"
|
<slider bottom_delta="-20" can_edit_text="false" control_name="RenderTerrainLODFactor"
|
||||||
decimal_digits="3" enabled="true" follows="left|top" height="16"
|
decimal_digits="3" enabled="true" follows="left|top" height="16"
|
||||||
increment="0.125" initial_val="160" label=" Terrain:"
|
increment="0.125" initial_val="160" label=" Terrain:"
|
||||||
@@ -364,6 +388,13 @@
|
|||||||
name="AvatarMeshDetailText" v_pad="0" width="128">
|
name="AvatarMeshDetailText" v_pad="0" width="128">
|
||||||
Low
|
Low
|
||||||
</text>
|
</text>
|
||||||
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
|
bottom_delta="-20" drop_shadow_visible="true" enabled="true"
|
||||||
|
follows="left|top" font="SansSerifSmall" h_pad="0" halign="left"
|
||||||
|
height="12" left_delta="0" mouse_opaque="true"
|
||||||
|
name="AvatarPhysicsDetailText" v_pad="0" width="128">
|
||||||
|
Off
|
||||||
|
</text>
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom_delta="-20" drop_shadow_visible="true" enabled="true"
|
bottom_delta="-20" drop_shadow_visible="true" enabled="true"
|
||||||
follows="left|top" font="SansSerifSmall" h_pad="0" halign="left"
|
follows="left|top" font="SansSerifSmall" h_pad="0" halign="left"
|
||||||
@@ -379,7 +410,7 @@
|
|||||||
Low
|
Low
|
||||||
</text>
|
</text>
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-331" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-352" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerifSmall" h_pad="0" halign="left" height="12"
|
font="SansSerifSmall" h_pad="0" halign="left" height="12"
|
||||||
left="210" mouse_opaque="true" name="LightingDetailText" v_pad="0"
|
left="210" mouse_opaque="true" name="LightingDetailText" v_pad="0"
|
||||||
width="128">
|
width="128">
|
||||||
@@ -398,7 +429,7 @@
|
|||||||
</radio_item>
|
</radio_item>
|
||||||
</radio_group>
|
</radio_group>
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-331" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-352" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="360"
|
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="360"
|
||||||
mouse_opaque="true" name="TerrainDetailText" v_pad="0" width="128">
|
mouse_opaque="true" name="TerrainDetailText" v_pad="0" width="128">
|
||||||
Terrain Detail:
|
Terrain Detail:
|
||||||
|
|||||||
Reference in New Issue
Block a user