diff options
author | RunitaiLinden <davep@lindenlab.com> | 2023-04-03 17:22:40 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-03 15:22:40 -0700 |
commit | 7c831d115b55b96129806353a51a01dcf2bcebba (patch) | |
tree | 03d2a767ff5c4ce0200dbe5e44fa431cd0ed399c /indra/llprimitive | |
parent | 982281b6cbba2db8757c906d1c8d5053f1c6696b (diff) |
SL-18458 Make LLVOCache the one source of truth on most recently received overrides. (#147)
Diffstat (limited to 'indra/llprimitive')
-rw-r--r-- | indra/llprimitive/lltextureentry.cpp | 11 | ||||
-rw-r--r-- | indra/llprimitive/lltextureentry.h | 2 |
2 files changed, 10 insertions, 3 deletions
diff --git a/indra/llprimitive/lltextureentry.cpp b/indra/llprimitive/lltextureentry.cpp index a665db378b..17b1f4cf5c 100644 --- a/indra/llprimitive/lltextureentry.cpp +++ b/indra/llprimitive/lltextureentry.cpp @@ -559,10 +559,17 @@ void LLTextureEntry::setGLTFMaterial(LLGLTFMaterial* material, bool local_origin } } -void LLTextureEntry::setGLTFMaterialOverride(LLGLTFMaterial* mat) +S32 LLTextureEntry::setGLTFMaterialOverride(LLGLTFMaterial* mat) { llassert(mat == nullptr || getGLTFMaterial() != nullptr); // if override is not null, base material must not be null - mGLTFMaterialOverrides = mat; + if (mat == mGLTFMaterialOverrides) + { + return TEM_CHANGE_NONE; + } + + mGLTFMaterialOverrides = mat; + + return TEM_CHANGE_TEXTURE; } S32 LLTextureEntry::setBaseMaterial() diff --git a/indra/llprimitive/lltextureentry.h b/indra/llprimitive/lltextureentry.h index 9a81181f3a..f5f2c0172d 100644 --- a/indra/llprimitive/lltextureentry.h +++ b/indra/llprimitive/lltextureentry.h @@ -200,7 +200,7 @@ public: // GLTF override LLGLTFMaterial* getGLTFMaterialOverride() const { return mGLTFMaterialOverrides; } - void setGLTFMaterialOverride(LLGLTFMaterial* mat); + S32 setGLTFMaterialOverride(LLGLTFMaterial* mat); // Clear most overrides so the render material better matches the material // ID (preserve transforms). If the overrides become passthrough, set the // overrides to nullptr. |