summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorSabrina Shanman <cosmic@lindenlab.com>2022-11-09 00:03:34 +0000
committerSabrina Shanman <cosmic@lindenlab.com>2022-11-09 00:03:34 +0000
commitded67322deb36dc842deb0e4c47022691d5ffb2b (patch)
tree0fb4c230d1440675a45939853882ba8d698bd13a /indra/newview
parentdafbed80b4cfdf906913a469503db320da49cabf (diff)
parentcba87c62cc3c31d48c680bf92aa7ae2b9555ba69 (diff)
Merged in SL-18523 (pull request #1190)
SL-18523: When editing an object's material override, use the object's material override as a base, rather than its render material
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llmaterialeditor.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp
index a0cb4e1c8f..70b165460a 100644
--- a/indra/newview/llmaterialeditor.cpp
+++ b/indra/newview/llmaterialeditor.cpp
@@ -2385,19 +2385,26 @@ public:
// Selection can cover multiple objects, and live editor is
// supposed to overwrite changed values only
LLTextureEntry* tep = objectp->getTE(te);
- LLPointer<LLGLTFMaterial> material = tep->getGLTFRenderMaterial();
- if (material.isNull())
+ if (tep->getGLTFMaterial().isNull())
{
// overrides are not supposed to work or apply if
// there is no base material to work from
return false;
}
-
+ LLPointer<LLGLTFMaterial> material = tep->getGLTFMaterialOverride();
// make a copy to not invalidate existing
// material for multiple objects
- material = new LLGLTFMaterial(*material);
+ if (material.isNull())
+ {
+ // Start with a material override which does not make any changes
+ material = new LLGLTFMaterial(LLGLTFMaterial::sOverrideDefault);
+ }
+ else
+ {
+ material = new LLGLTFMaterial(*material);
+ }
U32 changed_flags = mEditor->getUnsavedChangesFlags();
U32 reverted_flags = mEditor->getRevertedChangesFlags();