summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelface.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2022-11-07 18:02:34 +0200
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2022-11-07 18:07:09 +0200
commitc1180f1cc7370d2ff3acb37d6f6fac08f500661b (patch)
treea0e9ac6127513a6895d5a176029ab4ca478aa72e /indra/newview/llpanelface.cpp
parent172366121aef566a11464d82968776dcf0a836d4 (diff)
SL-18583 Fix race condition when setting multiple faces
And fix cases of updates not applying
Diffstat (limited to 'indra/newview/llpanelface.cpp')
-rw-r--r--indra/newview/llpanelface.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 06f69e6fb5..ab6d4dc1d6 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -4374,10 +4374,26 @@ void LLPanelFace::onPasteTexture(LLViewerObject* objectp, S32 te)
if (te_data["te"].has("pbr"))
{
objectp->setRenderMaterialID(te, te_data["te"]["pbr"].asUUID(), false);
+
+ // todo: provide copied overrides here
+ LLCoros::instance().launch("modifyMaterialCoro",
+ std::bind(&LLGLTFMaterialList::modifyMaterialCoro,
+ gAgent.getRegionCapability("ModifyMaterialParams"),
+ llsd::map(
+ "object_id", objectp->getID(),
+ "side", te), nullptr));
}
else
{
objectp->setRenderMaterialID(te, LLUUID::null, false);
+
+ // blank out any override data on the server
+ LLCoros::instance().launch("modifyMaterialCoro",
+ std::bind(&LLGLTFMaterialList::modifyMaterialCoro,
+ gAgent.getRegionCapability("ModifyMaterialParams"),
+ llsd::map(
+ "object_id", objectp->getID(),
+ "side", te), nullptr));
}
// Texture map