summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTonya Souther <tonya.souther@gmail.com>2013-02-06 21:38:05 -0600
committerTonya Souther <tonya.souther@gmail.com>2013-02-06 21:38:05 -0600
commit3422f75cf749df10c7bb7711b9a7fa870655818f (patch)
tree1b78f3cbc3e66ad4075e9c66bc499947b5bd5862
parentf2b026138d5abe5464de6db349b3431c262de53a (diff)
Tell the renderer to use the updated material immediately on editing it.
-rw-r--r--indra/newview/llpanelface.cpp2
-rw-r--r--indra/newview/llselectmgr.cpp11
-rw-r--r--indra/newview/llselectmgr.h3
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<LLComboBox>("combobox alphamode")->getCurrentIndex());
mMaterial->setAlphaMaskCutoff((U8)(getChild<LLUICtrl>("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 <deque>
#include <boost/iterator/filter_iterator.hpp>
#include <boost/signals2.hpp>
+#include <boost/make_shared.hpp> // 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);