diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2015-04-13 17:20:36 -0400 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2015-04-13 17:20:36 -0400 |
commit | d516a8729e413e3097c468e8f3c2c39ff73181bd (patch) | |
tree | 3ba17c58af42f23e77199516be4674245328cd86 /indra/newview/llvoavatar.cpp | |
parent | 3f001b520c42d9182de89c3cacb79f6684dd0471 (diff) | |
parent | a647b8f1cbab13f07ea889c80df28414bc906129 (diff) |
merge
Diffstat (limited to 'indra/newview/llvoavatar.cpp')
-rwxr-xr-x | indra/newview/llvoavatar.cpp | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 67cb4af5c0..ff9e021f8e 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -721,7 +721,9 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id, mIsEditingAppearance(FALSE), mUseLocalAppearance(FALSE), mLastUpdateRequestCOFVersion(-1), - mLastUpdateReceivedCOFVersion(-1) + mLastUpdateReceivedCOFVersion(-1), + mCachedMuteListUpdateTime(0), + mCachedInMuteList(false) { //VTResume(); // VTune setHoverOffset(LLVector3(0.0, 0.0, 0.0)); @@ -3133,10 +3135,9 @@ bool LLVOAvatar::isVisuallyMuted() U32 max_cost = (U32) (max_render_cost*(LLVOAvatar::sLODFactor+0.5)); - muted = LLMuteList::getInstance()->isMuted(getID()) || - (mAttachmentGeometryBytes > max_attachment_bytes && max_attachment_bytes > 0) || - (mAttachmentSurfaceArea > max_attachment_area && max_attachment_area > 0.f) || - (mVisualComplexity > max_cost && max_render_cost > 0); + muted = (mAttachmentGeometryBytes > max_attachment_bytes && max_attachment_bytes > 0) || + (mAttachmentSurfaceArea > max_attachment_area && max_attachment_area > 0.f) || + (mVisualComplexity > max_cost && max_render_cost > 0); // Could be part of the grand || collection above, but yanked out to make the logic visible if (!muted) @@ -3168,7 +3169,7 @@ bool LLVOAvatar::isVisuallyMuted() } } - return muted; + return muted || isInMuteList(); } void LLVOAvatar::forceUpdateVisualMuteSettings() @@ -3177,6 +3178,24 @@ void LLVOAvatar::forceUpdateVisualMuteSettings() mCachedVisualMuteUpdateTime = LLFrameTimer::getTotalSeconds() - 1.0; } +bool LLVOAvatar::isInMuteList() +{ + bool muted = false; + F64 now = LLFrameTimer::getTotalSeconds(); + if (now < mCachedMuteListUpdateTime) + { + muted = mCachedInMuteList; + } + else + { + muted = LLMuteList::getInstance()->isMuted(getID()); + + const F64 SECONDS_BETWEEN_MUTE_UPDATES = 1; + mCachedMuteListUpdateTime = now + SECONDS_BETWEEN_MUTE_UPDATES; + mCachedInMuteList = muted; + } + return muted; +} void LLVOAvatar::updateDebugText() { @@ -8165,7 +8184,7 @@ void LLVOAvatar::updateImpostors() BOOL LLVOAvatar::isImpostor() { - return sUseImpostors && (isVisuallyMuted() || (mUpdatePeriod >= IMPOSTOR_PERIOD)) ? TRUE : FALSE; + return (sUseImpostors && (isVisuallyMuted() || (mUpdatePeriod >= IMPOSTOR_PERIOD))) || isInMuteList() ? TRUE : FALSE; } |