summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llavatariconctrl.cpp5
-rwxr-xr-xindra/newview/llviewertexture.cpp11
2 files changed, 14 insertions, 2 deletions
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 746b541f9d..b89b0d9900 100755
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -247,7 +247,7 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
{
LLAvatarPropertiesProcessor* app =
LLAvatarPropertiesProcessor::getInstance();
- if (mAvatarId.notNull())
+ if (mAvatarId.notNull() && mAvatarId != value.asUUID())
{
app->removeObserver(mAvatarId, this);
}
@@ -255,6 +255,7 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
if (mAvatarId != value.asUUID())
{
mAvatarId = value.asUUID();
+ app->addObserver(mAvatarId, this);
// *BUG: This will return stale icons if a user changes their
// profile picture. However, otherwise we send too many upstream
@@ -270,7 +271,7 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
// People API, rather than sending AvatarPropertyRequest
// messages. People API already hits the user table.
LLIconCtrl::setValue(mDefaultIconName);
- app->addObserver(mAvatarId, this);
+ // duplicated requests are filtered later if there are any
app->sendAvatarPropertiesRequest(mAvatarId);
}
}
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index b83697b2f1..8090b85c0a 100755
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1458,6 +1458,17 @@ void LLViewerFetchedTexture::processTextureStats()
{
mDesiredDiscardLevel = 0;
}
+ else if (mDontDiscard && (mBoostLevel == LLGLTexture::BOOST_UI || mBoostLevel == LLGLTexture::BOOST_ICON))
+ {
+ if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)
+ {
+ mDesiredDiscardLevel = 1; // MAX_IMAGE_SIZE_DEFAULT = 1024 and max size ever is 2048
+ }
+ else
+ {
+ mDesiredDiscardLevel = 0;
+ }
+ }
else if(!mFullWidth || !mFullHeight)
{
mDesiredDiscardLevel = llmin(getMaxDiscardLevel(), (S32)mLoadedCallbackDesiredDiscardLevel);