summaryrefslogtreecommitdiff
path: root/indra/newview/llvovolume.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-01-08 21:30:28 +0200
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-01-08 21:31:35 +0200
commit55267aab80c945da44587b62822095838ac4a6bc (patch)
tree878f8264f0aae191d98712dd05ffb7fe521afe72 /indra/newview/llvovolume.cpp
parent766a9f150ceb2a0ee16d9f40b830f63ff7aced10 (diff)
SL-14175 Restarting animation on new face, restarts old one as well
Properly clean up animation when animation gets fully deleted.
Diffstat (limited to 'indra/newview/llvovolume.cpp')
-rw-r--r--indra/newview/llvovolume.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 492d37edba..5cf7bac46c 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -377,6 +377,18 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
{
delete mTextureAnimp;
mTextureAnimp = NULL;
+
+ for (S32 i = 0; i < getNumTEs(); i++)
+ {
+ LLFace* facep = mDrawable->getFace(i);
+ if (facep && facep->mTextureMatrix)
+ {
+ // delete or reset
+ delete facep->mTextureMatrix;
+ facep->mTextureMatrix = NULL;
+ }
+ }
+
gPipeline.markTextured(mDrawable);
mFaceMappingChanged = TRUE;
mTexAnimMode = 0;
@@ -476,6 +488,18 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
{
delete mTextureAnimp;
mTextureAnimp = NULL;
+
+ for (S32 i = 0; i < getNumTEs(); i++)
+ {
+ LLFace* facep = mDrawable->getFace(i);
+ if (facep && facep->mTextureMatrix)
+ {
+ // delete or reset
+ delete facep->mTextureMatrix;
+ facep->mTextureMatrix = NULL;
+ }
+ }
+
gPipeline.markTextured(mDrawable);
mFaceMappingChanged = TRUE;
mTexAnimMode = 0;