From 71a38e3a76f472e652c9ca43d948e5a90ebbcff3 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Tue, 3 Feb 2015 07:04:22 -0800
Subject: [PATCH] remove unused RenderAvatarComplexityLimit; replace with
 visual muting based on render weight

---
 indra/newview/app_settings/settings.xml | 11 -----------
 indra/newview/llvoavatar.cpp            | 24 ++++++------------------
 indra/newview/llvoavatar.h              |  1 -
 3 files changed, 6 insertions(+), 30 deletions(-)

diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index b78cb01d854..c2c93bbb806 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -8202,17 +8202,6 @@
       <key>Value</key>
       <integer>1</integer>
     </map>
-  <key>RenderAvatarComplexityLimit</key>
-    <map>
-      <key>Comment</key>
-      <string>Max visual complexity of avatars in a scene</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>S32</string>
-      <key>Value</key>
-      <integer>-1</integer>
-    </map>
   <key>RenderComplexityColorMin</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 532bb325ea8..44fbceed14a 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -780,7 +780,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
 		    LLSceneMonitor::getInstance()->freezeAvatar((LLCharacter*)this);
 	}
 
-	mCachedVisualMute = !isSelf();
+	mCachedVisualMute = !isSelf(); // default to muting everyone? hmmm....
 	mCachedVisualMuteUpdateTime = LLFrameTimer::getTotalSeconds() + 5.0;
 	mVisuallyMuteSetting = VISUAL_MUTE_NOT_SET;
 
@@ -2534,7 +2534,7 @@ void LLVOAvatar::idleUpdateLoadingEffect()
 																 LLPartData::LL_PART_EMISSIVE_MASK | // LLPartData::LL_PART_FOLLOW_SRC_MASK |
 																 LLPartData::LL_PART_TARGET_POS_MASK );
 			
-			if (!isTooComplex()) // do not generate particles for overly-complex avatars
+			if (!isVisuallyMuted()) // if we are muting the avatar, don't render particles
 			{
 				setParticleSource(particle_parameters, getID());
 			}
@@ -3088,10 +3088,7 @@ bool LLVOAvatar::isVisuallyMuted()
 	// * own avatar is never visually muted
 	// * if on the "always draw normally" list, draw them normally
 	// * if on the "always visually mute" list, mute them
-	// * draw them normally if they meet the following criteria:
-	//       - within the closest N avatars 
-	//       - AND aren't over the thresholds
-	// * otherwise visually mute all other avatars
+	// * check against the render cost and attachment limits
 	if (!isSelf())
 	{
 			static LLCachedControl<U32> max_attachment_bytes(gSavedSettings, "RenderAutoMuteByteLimit", 0);
@@ -6052,8 +6049,9 @@ BOOL LLVOAvatar::getIsCloud() const
 		return TRUE;
 	}
 
-	if (isTooComplex())
+	if (isVisuallyMuted())
 	{
+		// we can render the muted representation
 		return TRUE;
 	}
 	return FALSE;
@@ -6305,16 +6303,6 @@ BOOL LLVOAvatar::isFullyLoaded() const
 	return (mRenderUnloadedAvatar || mFullyLoaded);
 }
 
-bool LLVOAvatar::isTooComplex() const
-{
-	if (gSavedSettings.getS32("RenderAvatarComplexityLimit") > 0 && mVisualComplexity >= gSavedSettings.getS32("RenderAvatarComplexityLimit"))
-	{
-		return true;
-	}
-
-	return false;
-}
-
 
 //-----------------------------------------------------------------------------
 // findMotion()
@@ -7935,7 +7923,7 @@ void LLVOAvatar::idleUpdateRenderCost()
 		if ( !mText )
 		{
 			initDebugTextHud();
-			mText->setFadeDistance(15.0, 5.0); // limit clutter in large crowds
+			mText->setFadeDistance(20.0, 5.0); // limit clutter in large crowds
 		}
 		else
 		{
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index f2c1b349056..2921a3a3f9d 100755
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -297,7 +297,6 @@ class LLVOAvatar :
 	//--------------------------------------------------------------------
 public:
 	BOOL			isFullyLoaded() const;
-	bool			isTooComplex() const;
 	bool 			visualParamWeightsAreDefault();
 	virtual BOOL	getIsCloud() const;
 	BOOL			isFullyTextured() const;
-- 
GitLab