summaryrefslogtreecommitdiff
path: root/indra/newview/llvovolume.cpp
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2026-08-18 13:57:14 +0800
committerErik Kundiman <erik@megapahit.org>2026-08-18 13:57:14 +0800
commit2fa8281b2d8ce8bdbcacf139ec674480da6c9d81 (patch)
treeffb343fee97f21942123fd322d88fea3ef1a4811 /indra/newview/llvovolume.cpp
parent742d802f073e81abc6d4cd512e58a4d03b414b83 (diff)
parent214fa765986b4c1e1de1b917581f8508278abd8e (diff)
Merge branch '26.3'
Diffstat (limited to 'indra/newview/llvovolume.cpp')
-rw-r--r--indra/newview/llvovolume.cpp34
1 files changed, 31 insertions, 3 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index d1feb7e875..16c262d1ad 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -1253,7 +1253,35 @@ void LLVOVolume::updateSculptTexture()
void LLVOVolume::updateVisualComplexity()
{
- LLVOAvatar* avatar = getAvatarAncestor();
+ LLVOAvatar* avatar = nullptr;
+ LLViewerObject* pobj = (LLViewerObject*)getParent();
+ LLViewerObject* lobj = this;
+ while (pobj)
+ {
+ avatar = pobj->asAvatar();
+ if (avatar)
+ {
+ break;
+ }
+ lobj = pobj;
+ pobj = (LLViewerObject*)pobj->getParent();
+ }
+
+ if (avatar)
+ {
+ // mark parent as dirty, complexity will be updated recursively.
+ avatar->markAttachmentComplexityDirty(lobj->getID());
+ }
+ LLVOAvatar* rigged_avatar = getAvatar();
+ if (rigged_avatar && (rigged_avatar != avatar))
+ {
+ // This might be wrong. Control avatars update each run,
+ // due to lack of dirty mechanics, and this might be
+ // where we should implement and call
+ // markControlAvatarComplexityDirty() if !isAttachment().
+ rigged_avatar->markAttachmentComplexityDirty(lobj->getID());
+ }
+ /*LLVOAvatar* avatar = getAvatarAncestor();
if (avatar)
{
avatar->updateVisualComplexity();
@@ -1262,7 +1290,7 @@ void LLVOVolume::updateVisualComplexity()
if(rigged_avatar && (rigged_avatar != avatar))
{
rigged_avatar->updateVisualComplexity();
- }
+ }*/
}
void LLVOVolume::notifyMeshLoaded()
@@ -5982,7 +6010,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
bool should_render = true;
if (gltf_mat->mAlphaMode == LLGLTFMaterial::ALPHA_MODE_BLEND)
{
- if (gltf_mat->mBaseColor.mV[3] == 0.0f)
+ if (gltf_mat->mBaseColor.mV[3] == 0.0f && !LLDrawPoolAlpha::sShowDebugAlpha)
{
should_render = false;
}