summaryrefslogtreecommitdiff
path: root/indra/llprimitive
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2022-10-24 16:26:42 -0500
committerDave Parks <davep@lindenlab.com>2022-10-24 16:26:42 -0500
commit5c86ec6a6130bef9348d6155c6a7404914c20418 (patch)
treebcc13446fda77a997065216d7d36fcb3ae8c28ac /indra/llprimitive
parent554bc6f6b3da2f0949e92e92f09804c8f65b07ca (diff)
SL-18105 Add mechanism for applying overrides that were received before associated ViewerObject was ready to receive them.
Diffstat (limited to 'indra/llprimitive')
-rw-r--r--indra/llprimitive/lltextureentry.cpp11
-rw-r--r--indra/llprimitive/lltextureentry.h4
2 files changed, 13 insertions, 2 deletions
diff --git a/indra/llprimitive/lltextureentry.cpp b/indra/llprimitive/lltextureentry.cpp
index 68de480d87..d810c6ed25 100644
--- a/indra/llprimitive/lltextureentry.cpp
+++ b/indra/llprimitive/lltextureentry.cpp
@@ -519,6 +519,17 @@ void LLTextureEntry::setGLTFMaterial(LLGLTFMaterial* material)
}
}
+LLGLTFMaterial* LLTextureEntry::getGLTFRenderMaterial() const
+{
+ if (mGLTFRenderMaterial.notNull())
+ {
+ return mGLTFRenderMaterial;
+ }
+
+ llassert(getGLTFMaterialOverride() == nullptr);
+ return getGLTFMaterial();
+}
+
S32 LLTextureEntry::setGLTFRenderMaterial(LLGLTFMaterial* mat)
{
if (mGLTFRenderMaterial != mat)
diff --git a/indra/llprimitive/lltextureentry.h b/indra/llprimitive/lltextureentry.h
index 8dc3434a01..e37bc9a3b6 100644
--- a/indra/llprimitive/lltextureentry.h
+++ b/indra/llprimitive/lltextureentry.h
@@ -199,12 +199,12 @@ public:
LLGLTFMaterial* getGLTFMaterial() const { return mGLTFMaterial; }
// GLTF override
- LLGLTFMaterial* getGLTFMaterialOverride() { return mGLTFMaterialOverrides; }
+ LLGLTFMaterial* getGLTFMaterialOverride() const { return mGLTFMaterialOverrides; }
void setGLTFMaterialOverride(LLGLTFMaterial* mat) { mGLTFMaterialOverrides = mat; }
// GLTF render material
// nuanced behavior here -- if there is no render material, fall back to getGLTFMaterial, but ONLY for the getter, not the setter
- LLGLTFMaterial* getGLTFRenderMaterial() const { return mGLTFRenderMaterial.notNull() ? mGLTFRenderMaterial.get() : getGLTFMaterial(); }
+ LLGLTFMaterial* getGLTFRenderMaterial() const;
S32 setGLTFRenderMaterial(LLGLTFMaterial* mat);
public: