diff options
| author | Anchor Linden <anchor@lindenlab.com> | 2018-05-21 16:47:42 -0700 |
|---|---|---|
| committer | Anchor Linden <anchor@lindenlab.com> | 2018-05-21 16:47:42 -0700 |
| commit | 0fdbe7e34df55ac92302b4af38c42d03454d3bc1 (patch) | |
| tree | 038c6087299c9096ac7c6606ec45a8339eb0fd72 /indra/newview/lllocalbitmaps.cpp | |
| parent | 3bf89821d9c9777a0f24d89280bd7a7011a7a3df (diff) | |
| parent | c70119ebabc4b06e2b0db02aea8c56e01fbc666e (diff) | |
Merge
Diffstat (limited to 'indra/newview/lllocalbitmaps.cpp')
| -rw-r--r-- | indra/newview/lllocalbitmaps.cpp | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp index 29b374d411..558dde5a87 100644 --- a/indra/newview/lllocalbitmaps.cpp +++ b/indra/newview/lllocalbitmaps.cpp @@ -358,8 +358,9 @@ void LLLocalBitmap::replaceIDs(LLUUID old_id, LLUUID new_id) updateUserPrims(old_id, new_id, LLRender::DIFFUSE_MAP); updateUserPrims(old_id, new_id, LLRender::NORMAL_MAP); updateUserPrims(old_id, new_id, LLRender::SPECULAR_MAP); - - updateUserSculpts(old_id, new_id); // isn't there supposed to be an IMG_DEFAULT_SCULPT or something? + + updateUserVolumes(old_id, new_id, LLRender::LIGHT_TEX); + updateUserVolumes(old_id, new_id, LLRender::SCULPT_TEX); // isn't there supposed to be an IMG_DEFAULT_SCULPT or something? // default safeguard image for layers if( new_id == IMG_DEFAULT ) @@ -502,18 +503,29 @@ void LLLocalBitmap::updateUserPrims(LLUUID old_id, LLUUID new_id, U32 channel) } } } - } -void LLLocalBitmap::updateUserSculpts(LLUUID old_id, LLUUID new_id) +void LLLocalBitmap::updateUserVolumes(LLUUID old_id, LLUUID new_id, U32 channel) { LLViewerFetchedTexture* old_texture = gTextureList.findImage(old_id, TEX_LIST_STANDARD); - for(U32 volume_iter = 0; volume_iter < old_texture->getNumVolumes(); volume_iter++) + for (U32 volume_iter = 0; volume_iter < old_texture->getNumVolumes(channel); volume_iter++) { - LLVOVolume* volume_to_object = (*old_texture->getVolumeList())[volume_iter]; - LLViewerObject* object = (LLViewerObject*)volume_to_object; - - if(object) + LLVOVolume* volobjp = (*old_texture->getVolumeList(channel))[volume_iter]; + switch (channel) + { + case LLRender::LIGHT_TEX: + { + if (volobjp->getLightTextureID() == old_id) + { + volobjp->setLightTextureID(new_id); + } + break; + } + case LLRender::SCULPT_TEX: + { + LLViewerObject* object = (LLViewerObject*)volobjp; + + if (object) { if (object->isSculpted() && object->getVolume() && object->getVolume()->getParams().getSculptID() == old_id) @@ -525,6 +537,8 @@ void LLLocalBitmap::updateUserSculpts(LLUUID old_id, LLUUID new_id) } } } + } + } } void LLLocalBitmap::updateUserLayers(LLUUID old_id, LLUUID new_id, LLWearableType::EType type) |
