From 3422f75cf749df10c7bb7711b9a7fa870655818f Mon Sep 17 00:00:00 2001 From: Tonya Souther Date: Wed, 6 Feb 2013 21:38:05 -0600 Subject: Tell the renderer to use the updated material immediately on editing it. --- indra/newview/llpanelface.cpp | 2 +- indra/newview/llselectmgr.cpp | 11 ++++++----- indra/newview/llselectmgr.h | 3 ++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index 7b3bbf8b3b..7e9fe212dd 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -1352,7 +1352,7 @@ void LLPanelFace::updateMaterial() mMaterial->setDiffuseAlphaMode(getChild("combobox alphamode")->getCurrentIndex()); mMaterial->setAlphaMaskCutoff((U8)(getChild("maskcutoff")->getValue().asInteger())); llinfos << "Updating material: " << mMaterial->asLLSD() << llendl; - LLSelectMgr::getInstance()->selectionSetMaterial( *mMaterial ); + LLSelectMgr::getInstance()->selectionSetMaterial( mMaterial ); // We've sent an update. Need to hold off on any more until // the sim acknowledges this one. diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index c93cecdd5d..9f343f465c 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -2010,18 +2010,19 @@ void LLSelectMgr::selectionSetGlow(F32 glow) mSelectedObjects->applyToObjects( &func2 ); } -void LLSelectMgr::selectionSetMaterial(LLMaterial& material) +void LLSelectMgr::selectionSetMaterial(LLMaterialPtr material) { struct f1 : public LLSelectedTEFunctor { - LLMaterial mMaterial; - f1(LLMaterial material) : mMaterial(material) {}; + LLMaterialPtr mMaterial; + f1(LLMaterialPtr material) : mMaterial(material) {}; bool apply(LLViewerObject* object, S32 face) { if (object->permModify()) { - llinfos << "Putting material on object " << object->getID() << " face " << face << ", material: " << mMaterial.asLLSD() << llendl; - LLMaterialMgr::getInstance()->put(object->getID(),face,mMaterial); + llinfos << "Putting material on object " << object->getID() << " face " << face << ", material: " << mMaterial->asLLSD() << llendl; + LLMaterialMgr::getInstance()->put(object->getID(),face,*mMaterial); + object->setTEMaterialParams(face,mMaterial); } return true; } diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h index f1da18dcc3..2eae5b94c9 100644 --- a/indra/newview/llselectmgr.h +++ b/indra/newview/llselectmgr.h @@ -48,6 +48,7 @@ #include #include #include +#include // boost::make_shared class LLMessageSystem; class LLViewerTexture; @@ -538,7 +539,7 @@ public: void selectionSetClickAction(U8 action); void selectionSetIncludeInSearch(bool include_in_search); void selectionSetGlow(const F32 glow); - void selectionSetMaterial(LLMaterial& material); + void selectionSetMaterial(LLMaterialPtr material); void selectionSetObjectPermissions(U8 perm_field, BOOL set, U32 perm_mask, BOOL override = FALSE); void selectionSetObjectName(const std::string& name); -- cgit v1.2.3