summaryrefslogtreecommitdiff
path: root/indra/llprimitive
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llprimitive')
-rw-r--r--indra/llprimitive/lltextureentry.cpp11
-rw-r--r--indra/llprimitive/lltextureentry.h2
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.