From 12bd27aa2e90bae780508d4f360cb6d9c30240ac Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 17 Jun 2016 16:04:23 +0200 Subject: [PATCH] Experiment: Remove NO_DELETE state of textures used in preview or texture control to get them removed from memory again --- indra/newview/llpreviewtexture.cpp | 3 +++ indra/newview/lltexturectrl.cpp | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index ba904d92f3..ced1e88a47 100644 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -140,6 +140,9 @@ LLPreviewTexture::~LLPreviewTexture() if (mImage.notNull()) { mImage->setBoostLevel(mImageOldBoostLevel); + // Remove NO_DELETE texture state so image gets removed from memory (set by calling setBoostLevel(LLGLTexture::BOOST_PREVIEW)) + mImage->forceActive(); + // mImage = NULL; } } diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index 8910de059c..61e1660f4d 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -1166,6 +1166,13 @@ LLTextureCtrl::LLTextureCtrl(const LLTextureCtrl::Params& p) LLTextureCtrl::~LLTextureCtrl() { closeDependentFloater(); + + // Remove NO_DELETE texture state so image gets removed from memory (set by calling setBoostLevel(LLGLTexture::BOOST_PREVIEW)) + if (mTexturep.notNull()) + { + mTexturep->forceActive(); + } + // } void LLTextureCtrl::setShowLoadingPlaceholder(BOOL showLoadingPlaceholder)