diff options
Diffstat (limited to 'indra/newview/llmaterialeditor.cpp')
| -rw-r--r-- | indra/newview/llmaterialeditor.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp index 7a23d8da37..a0cb4e1c8f 100644 --- a/indra/newview/llmaterialeditor.cpp +++ b/indra/newview/llmaterialeditor.cpp @@ -2503,14 +2503,16 @@ public: material->setAlphaCutoff(nodep->mSavedGLTFRenderMaterials[te]->mAlphaCutoff, true); } - std::string overrides_json = material->asJSON(); - #if 1 - // debug - std::string err, warn; - LLGLTFMaterial debug; - debug.fromJSON(overrides_json, warn, err); -#endif + if (mObjectTE == te + && mObjectId == objectp->getID()) + { + mSuccess = true; + } + LLGLTFMaterialList::queueModifyMaterial(objectp->getID(), te, *material); +#else + + std::string overrides_json = material->asJSON(); LLSD overrides = llsd::map( "object_id", objectp->getID(), @@ -2528,6 +2530,7 @@ public: done_callback = modifyCallback; } LLCoros::instance().launch("modifyMaterialCoro", std::bind(&LLGLTFMaterialList::modifyMaterialCoro, mCapUrl, overrides, done_callback)); +#endif } return true; } @@ -2575,6 +2578,11 @@ void LLMaterialEditor::applyToSelection() LLObjectSelectionHandle selected_objects = LLSelectMgr::getInstance()->getSelection(); LLRenderMaterialOverrideFunctor override_func(this, url, mOverrideObjectId, mOverrideObjectTE); selected_objects->applyToNodes(&override_func); + + void(*done_callback)(bool) = LLRenderMaterialOverrideFunctor::modifyCallback; + + LLGLTFMaterialList::flushModifyMaterialQueue(done_callback); + if (!override_func.getResult()) { // OverrideFunctor didn't find expected object or face |
