SL-18202 impostor too slow avatars and add autotune settings button to Preference
parent
3098d315a3
commit
dcd74c98dc
|
|
@ -170,6 +170,11 @@ void LLFloaterPerformance::showSelectedPanel(LLPanel* selected_panel)
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::showAutoadjustmentsPanel()
|
||||
{
|
||||
showSelectedPanel(mAutoadjustmentsPanel);
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::draw()
|
||||
{
|
||||
if (mUpdateTimer->hasExpired())
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ public:
|
|||
void showSelectedPanel(LLPanel* selected_panel);
|
||||
void showMainPanel();
|
||||
void hidePanels();
|
||||
void showAutoadjustmentsPanel();
|
||||
|
||||
void detachItem(const LLUUID& item_id);
|
||||
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
#include "llfloaterabout.h"
|
||||
#include "llfavoritesbar.h"
|
||||
#include "llfloaterpreferencesgraphicsadvanced.h"
|
||||
#include "llfloaterperformance.h"
|
||||
#include "llfloatersidepanelcontainer.h"
|
||||
#include "llfloaterimsession.h"
|
||||
#include "llkeyboard.h"
|
||||
|
|
@ -287,6 +288,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
|
|||
mCommitCallbackRegistrar.add("Pref.ClickDisablePopup", boost::bind(&LLFloaterPreference::onClickDisablePopup, this));
|
||||
mCommitCallbackRegistrar.add("Pref.LogPath", boost::bind(&LLFloaterPreference::onClickLogPath, this));
|
||||
mCommitCallbackRegistrar.add("Pref.RenderExceptions", boost::bind(&LLFloaterPreference::onClickRenderExceptions, this));
|
||||
mCommitCallbackRegistrar.add("Pref.AutoAdjustments", boost::bind(&LLFloaterPreference::onClickAutoAdjustments, this));
|
||||
mCommitCallbackRegistrar.add("Pref.HardwareDefaults", boost::bind(&LLFloaterPreference::setHardwareDefaults, this));
|
||||
mCommitCallbackRegistrar.add("Pref.AvatarImpostorsEnable", boost::bind(&LLFloaterPreference::onAvatarImpostorsEnable, this));
|
||||
mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxComplexity", boost::bind(&LLFloaterPreference::updateMaxComplexity, this));
|
||||
|
|
@ -726,13 +728,15 @@ void LLFloaterPreference::onOpen(const LLSD& key)
|
|||
LLButton* save_btn = findChild<LLButton>("PrefSaveButton");
|
||||
LLButton* delete_btn = findChild<LLButton>("PrefDeleteButton");
|
||||
LLButton* exceptions_btn = findChild<LLButton>("RenderExceptionsButton");
|
||||
LLButton* auto_adjustments_btn = findChild<LLButton>("AutoAdjustmentsButton");
|
||||
|
||||
if (load_btn && save_btn && delete_btn && exceptions_btn)
|
||||
if (load_btn && save_btn && delete_btn && exceptions_btn && auto_adjustments_btn)
|
||||
{
|
||||
load_btn->setEnabled(started);
|
||||
save_btn->setEnabled(started);
|
||||
delete_btn->setEnabled(started);
|
||||
exceptions_btn->setEnabled(started);
|
||||
auto_adjustments_btn->setEnabled(started);
|
||||
}
|
||||
|
||||
collectSearchableItems();
|
||||
|
|
@ -1655,6 +1659,15 @@ void LLFloaterPreference::onClickRenderExceptions()
|
|||
LLFloaterReg::showInstance("avatar_render_settings");
|
||||
}
|
||||
|
||||
void LLFloaterPreference::onClickAutoAdjustments()
|
||||
{
|
||||
LLFloaterPerformance* performance_floater = LLFloaterReg::showTypedInstance<LLFloaterPerformance>("performance");
|
||||
if (performance_floater)
|
||||
{
|
||||
performance_floater->showAutoadjustmentsPanel();
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPreference::onClickAdvanced()
|
||||
{
|
||||
LLFloaterReg::showInstance("prefs_graphics_advanced");
|
||||
|
|
|
|||
|
|
@ -185,6 +185,7 @@ public:
|
|||
void onClickAutoReplace();
|
||||
void onClickSpellChecker();
|
||||
void onClickRenderExceptions();
|
||||
void onClickAutoAdjustments();
|
||||
void onClickAdvanced();
|
||||
void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
|
||||
void getUIColor(LLUICtrl* ctrl, const LLSD& param);
|
||||
|
|
|
|||
|
|
@ -716,7 +716,7 @@ void LLViewerPartSim::updateSimulation()
|
|||
|
||||
if (upd && vobj && (vobj->getPCode() == LL_PCODE_VOLUME))
|
||||
{
|
||||
if(vobj->getAvatar() && vobj->getAvatar()->isTooComplex())
|
||||
if(vobj->getAvatar() && vobj->getAvatar()->isTooComplex() && vobj->getAvatar()->isTooSlowWithShadows())
|
||||
{
|
||||
upd = FALSE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3136,7 +3136,7 @@ void LLVOAvatar::idleUpdateLoadingEffect()
|
|||
LLPartData::LL_PART_TARGET_POS_MASK );
|
||||
|
||||
// do not generate particles for dummy or overly-complex avatars
|
||||
if (!mIsDummy && !isTooComplex())
|
||||
if (!mIsDummy && !isTooComplex() && !isTooSlowWithShadows())
|
||||
{
|
||||
setParticleSource(particle_parameters, getID());
|
||||
}
|
||||
|
|
@ -3717,7 +3717,7 @@ bool LLVOAvatar::isVisuallyMuted()
|
|||
}
|
||||
else
|
||||
{
|
||||
muted = isTooComplex();
|
||||
muted = isTooComplex() || isTooSlowWithShadows();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -11174,7 +11174,7 @@ LLVOAvatar::AvatarOverallAppearance LLVOAvatar::getOverallAppearance() const
|
|||
{ // Always want to see this AV as an impostor
|
||||
result = AOA_JELLYDOLL;
|
||||
}
|
||||
else if (isTooComplex())
|
||||
else if (isTooComplex() || isTooSlowWithShadows())
|
||||
{
|
||||
result = AOA_JELLYDOLL;
|
||||
}
|
||||
|
|
@ -11201,7 +11201,7 @@ void LLVOAvatar::calcMutedAVColor()
|
|||
new_color = LLColor4::grey4;
|
||||
change_msg = " blocked: color is grey4";
|
||||
}
|
||||
else if (!isTooComplex())
|
||||
else if (!isTooComplex() && !isTooSlowWithShadows())
|
||||
{
|
||||
new_color = LLColor4::white;
|
||||
change_msg = " simple imposter ";
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@
|
|||
|
||||
// NOTE: Keep in sync with indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml
|
||||
// NOTE: Unused consts are commented out since some compilers (on macOS) may complain about unused variables.
|
||||
const S32 WATER_REFLECT_NONE_WATER_OPAQUE = -2;
|
||||
// const S32 WATER_REFLECT_NONE_WATER_OPAQUE = -2;
|
||||
const S32 WATER_REFLECT_NONE_WATER_TRANSPARENT = -1;
|
||||
const S32 WATER_REFLECT_MINIMAL = 0;
|
||||
// const S32 WATER_REFLECT_TERRAIN = 1;
|
||||
|
|
@ -5993,7 +5993,7 @@ void LLPipeline::calcNearbyLights(LLCamera& camera)
|
|||
LLDrawable* drawable = light->drawable;
|
||||
const LLViewerObject *vobj = light->drawable->getVObj();
|
||||
if(vobj && vobj->getAvatar()
|
||||
&& (vobj->getAvatar()->isTooComplex() || vobj->getAvatar()->isInMuteList())
|
||||
&& (vobj->getAvatar()->isTooComplex() || vobj->getAvatar()->isInMuteList() || vobj->getAvatar()->isTooSlowWithShadows())
|
||||
)
|
||||
{
|
||||
drawable->clearState(LLDrawable::NEARBY_LIGHT);
|
||||
|
|
@ -6072,7 +6072,7 @@ void LLPipeline::calcNearbyLights(LLCamera& camera)
|
|||
continue;
|
||||
}
|
||||
LLVOAvatar * av = light->getAvatar();
|
||||
if (av && (av->isTooComplex() || av->isInMuteList()))
|
||||
if (av && (av->isTooComplex() || av->isInMuteList() || av->isTooSlowWithShadows()))
|
||||
{
|
||||
// avatars that are already in the list will be removed by removeMutedAVsLights
|
||||
continue;
|
||||
|
|
@ -10850,7 +10850,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar, bool preview_avatar)
|
|||
<< " is " << ( too_complex ? "" : "not ") << "too complex"
|
||||
<< LL_ENDL;
|
||||
|
||||
bool too_slow = avatar->isTooSlowWithoutShadows(); // only if we really have to do we imposter.
|
||||
bool too_slow = avatar->isTooSlowWithShadows();
|
||||
|
||||
pushRenderTypeMask();
|
||||
|
||||
|
|
|
|||
|
|
@ -258,6 +258,18 @@
|
|||
<check_box.commit_callback
|
||||
function="Pref.RenderOptionUpdate" />
|
||||
</check_box>
|
||||
|
||||
<button
|
||||
height="23"
|
||||
label="Automatic adjustments settings"
|
||||
layout="topleft"
|
||||
left="30"
|
||||
name="AutoAdjustmentsButton"
|
||||
top_delta="30"
|
||||
width="200">
|
||||
<button.commit_callback
|
||||
function="Pref.AutoAdjustments"/>
|
||||
</button>
|
||||
|
||||
<slider
|
||||
control_name="IndirectMaxComplexity"
|
||||
|
|
@ -274,7 +286,7 @@
|
|||
max_val="101"
|
||||
name="IndirectMaxComplexity"
|
||||
show_text="false"
|
||||
top_delta="60"
|
||||
top_delta="40"
|
||||
width="300">
|
||||
<slider.commit_callback
|
||||
function="Pref.UpdateIndirectMaxComplexity"
|
||||
|
|
|
|||
Loading…
Reference in New Issue