diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2022-09-27 19:35:49 +0300 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2022-09-27 19:35:49 +0300 | 
| commit | dcd74c98dc5ab1373f1e7f692fd30dee92472acf (patch) | |
| tree | 79feefc4097ae6770162e5ee28aa5fc99b2c1849 /indra/newview | |
| parent | 3098d315a34f6d9e1bdf0f0de4e695a89626282f (diff) | |
SL-18202 impostor too slow avatars and add autotune settings button to Preference
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llfloaterperformance.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llfloaterperformance.h | 1 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.h | 1 | ||||
| -rw-r--r-- | indra/newview/llviewerpartsim.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml | 14 | 
8 files changed, 43 insertions, 11 deletions
| diff --git a/indra/newview/llfloaterperformance.cpp b/indra/newview/llfloaterperformance.cpp index da1670c15e..e79e9d19b1 100644 --- a/indra/newview/llfloaterperformance.cpp +++ b/indra/newview/llfloaterperformance.cpp @@ -170,6 +170,11 @@ void LLFloaterPerformance::showSelectedPanel(LLPanel* selected_panel)      }  } +void LLFloaterPerformance::showAutoadjustmentsPanel() +{ +    showSelectedPanel(mAutoadjustmentsPanel); +} +  void LLFloaterPerformance::draw()  {      if (mUpdateTimer->hasExpired()) diff --git a/indra/newview/llfloaterperformance.h b/indra/newview/llfloaterperformance.h index a79da7460b..09bcd18bb5 100644 --- a/indra/newview/llfloaterperformance.h +++ b/indra/newview/llfloaterperformance.h @@ -44,6 +44,7 @@ public:      void showSelectedPanel(LLPanel* selected_panel);      void showMainPanel();      void hidePanels(); +    void showAutoadjustmentsPanel();      void detachItem(const LLUUID& item_id); diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index e9d5a8e02c..179f70a4a7 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -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"); diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 94aac56506..1079b41000 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -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); diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp index e5265f1dcd..a440f3232a 100644 --- a/indra/newview/llviewerpartsim.cpp +++ b/indra/newview/llviewerpartsim.cpp @@ -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;  				} diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 1a71780a88..976b69502f 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -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 "; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 3110a1cbe5..ba5e35fd3e 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -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(); 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 5aff7a5127..ad02df3087 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml @@ -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" | 
