diff options
author | Monroe Linden <monroe@lindenlab.com> | 2009-12-01 16:21:29 -0800 |
---|---|---|
committer | Monroe Linden <monroe@lindenlab.com> | 2009-12-01 16:21:29 -0800 |
commit | 37e701dba91985ddeaa4704d846f533331c95216 (patch) | |
tree | c415f0734c18ad71339afd02b01f752977c040ef | |
parent | a0c133f819b7b6043e39a39a02310cd1fad67859 (diff) |
Fix for EXT-2836 (Changing texture on Media on a Prim face removes MoaP functionality).
LLVOVolume::regenFaces() (specifically the calls to facep->setTexture()) breaks associations between faces and LLViewerMediaTexture objects when called on a prim with playing media.
This change adds code which recreates the associations.
-rw-r--r-- | indra/newview/llvovolume.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 1ee0811ba6..367912f45e 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -1134,6 +1134,20 @@ void LLVOVolume::regenFaces() facep->setTEOffset(i); facep->setTexture(getTEImage(i)); facep->setViewerObject(this); + + // If the face had media on it, this will have broken the link between the LLViewerMediaTexture and the face. + // Re-establish the link. + if(mMediaImplList.size() > i) + { + if(mMediaImplList[i]) + { + LLViewerMediaTexture* media_tex = LLViewerTextureManager::findMediaTexture(mMediaImplList[i]->getMediaTextureID()) ; + if(media_tex) + { + media_tex->addMediaToFace(facep) ; + } + } + } } if (!count_changed) |