summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llrender/llgltexture.cpp3
-rwxr-xr-xindra/newview/llviewertexture.cpp3
-rwxr-xr-xindra/newview/llviewertexturelist.cpp27
3 files changed, 25 insertions, 8 deletions
diff --git a/indra/llrender/llgltexture.cpp b/indra/llrender/llgltexture.cpp
index 56e263c5f1..3a6eebebba 100644
--- a/indra/llrender/llgltexture.cpp
+++ b/indra/llrender/llgltexture.cpp
@@ -112,7 +112,8 @@ void LLGLTexture::setBoostLevel(S32 level)
if(mBoostLevel != level)
{
mBoostLevel = level ;
- if(mBoostLevel != LLGLTexture::BOOST_NONE)
+ if(mBoostLevel != LLGLTexture::BOOST_NONE
+ && mBoostLevel != LLGLTexture::BOOST_ICON)
{
setNoDelete() ;
}
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index e2b8ff8e80..3e059f3b68 100755
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -716,7 +716,8 @@ void LLViewerTexture::setBoostLevel(S32 level)
{
mBoostLevel = level;
if(mBoostLevel != LLViewerTexture::BOOST_NONE &&
- mBoostLevel != LLViewerTexture::BOOST_SELECTED)
+ mBoostLevel != LLViewerTexture::BOOST_SELECTED &&
+ mBoostLevel != LLViewerTexture::BOOST_ICON)
{
setNoDelete();
}
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index a8c93646c6..ca0565fa4b 100755
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -450,11 +450,17 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string&
if (boost_priority != 0)
{
- if (boost_priority == LLViewerFetchedTexture::BOOST_UI
- || boost_priority == LLViewerFetchedTexture::BOOST_ICON)
+ if (boost_priority == LLViewerFetchedTexture::BOOST_UI)
{
imagep->dontDiscard();
}
+ if (boost_priority == LLViewerFetchedTexture::BOOST_ICON)
+ {
+ // Agent and group Icons are downloadable content, nothing manages
+ // icon deletion yet, so they should not persist
+ imagep->dontDiscard();
+ imagep->forceActive();
+ }
imagep->setBoostLevel(boost_priority);
}
}
@@ -554,10 +560,16 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
if (boost_priority != 0)
{
- if (boost_priority == LLViewerFetchedTexture::BOOST_UI
- || boost_priority == LLViewerFetchedTexture::BOOST_ICON)
+ if (boost_priority == LLViewerFetchedTexture::BOOST_UI)
+ {
+ imagep->dontDiscard();
+ }
+ if (boost_priority == LLViewerFetchedTexture::BOOST_ICON)
{
+ // Agent and group Icons are downloadable content, nothing manages
+ // icon deletion yet, so they should not persist.
imagep->dontDiscard();
+ imagep->forceActive();
}
imagep->setBoostLevel(boost_priority);
}
@@ -1679,8 +1691,11 @@ LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const st
//don't compress UI images
imagep->getGLTexture()->setAllowCompression(false);
- //all UI images are non-deletable
- imagep->setNoDelete();
+ //all UI images are non-deletable, except downloadable icons
+ if (imagep->getBoostLevel() != LLGLTexture::BOOST_ICON)
+ {
+ imagep->setNoDelete();
+ }
LLUIImagePtr new_imagep = new LLUIImage(name, imagep);
new_imagep->setScaleStyle(scale_style);