summaryrefslogtreecommitdiff
path: root/indra/newview/llviewertexture.cpp
diff options
context:
space:
mode:
authorandreykproductengine <andreykproductengine@lindenlab.com>2017-11-13 14:26:15 +0200
committerandreykproductengine <andreykproductengine@lindenlab.com>2017-11-13 14:26:15 +0200
commit9de2af8b2dde7dc326f970d61950bebc565883f6 (patch)
tree87d799179a0fdb1ad6279f62a4f41747dedfce19 /indra/newview/llviewertexture.cpp
parent8da9e0ffd73e30a55734864e49a6ec917e3bee00 (diff)
MAINT-7847 Remake of 'white alpfa' fix
Diffstat (limited to 'indra/newview/llviewertexture.cpp')
-rw-r--r--indra/newview/llviewertexture.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 840176c1e0..e5a1bed48c 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -669,12 +669,36 @@ S8 LLViewerTexture::getType() const
void LLViewerTexture::cleanup()
{
+ notifyAboutMissingAsset();
+
mFaceList[LLRender::DIFFUSE_MAP].clear();
mFaceList[LLRender::NORMAL_MAP].clear();
mFaceList[LLRender::SPECULAR_MAP].clear();
mVolumeList.clear();
}
+void LLViewerTexture::notifyAboutCreatingTexture()
+{
+ for(U32 ch = 0; ch < LLRender::NUM_TEXTURE_CHANNELS; ++ch)
+ {
+ for(U32 f = 0; f < mNumFaces[ch]; f++)
+ {
+ mFaceList[ch][f]->notifyAboutCreatingTexture(this);
+ }
+ }
+}
+
+void LLViewerTexture::notifyAboutMissingAsset()
+{
+ for(U32 ch = 0; ch < LLRender::NUM_TEXTURE_CHANNELS; ++ch)
+ {
+ for(U32 f = 0; f < mNumFaces[ch]; f++)
+ {
+ mFaceList[ch][f]->notifyAboutMissingAsset(this);
+ }
+ }
+}
+
// virtual
void LLViewerTexture::dump()
{
@@ -1474,6 +1498,8 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/)
res = mGLTexturep->createGLTexture(mRawDiscardLevel, mRawImage, usename, TRUE, mBoostLevel);
+ notifyAboutCreatingTexture();
+
setActive();
if (!needsToSaveRawImage())
@@ -2198,6 +2224,8 @@ void LLViewerFetchedTexture::setIsMissingAsset(BOOL is_missing)
}
if (is_missing)
{
+ notifyAboutMissingAsset();
+
if (mUrl.empty())
{
LL_WARNS() << mID << ": Marking image as missing" << LL_ENDL;