summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNyx (Neal Orman) <nyx@lindenlab.com>2009-11-25 13:59:23 -0500
committerNyx (Neal Orman) <nyx@lindenlab.com>2009-11-25 13:59:23 -0500
commit43d52671c8c71af188456c200baba7c3bc8d4799 (patch)
treefc6907dd94b940ad707bb9c01b956e61bd210fce
parentccf6cb3f9ba387117720d700b73ac8e05dbf1f75 (diff)
EXT-2769 hair alpha not applied immediately
Apparently none of the texture pickers were invalidating the baked textures causing selected textures to not appear on the avatar until you actually saved the wearable. This patch forces the composites to update when you change any texture or color (or invisibility flag). Code reviewed by Seraph --HG-- branch : avatar-pipeline
-rw-r--r--indra/newview/llagentwearables.cpp6
-rw-r--r--indra/newview/llvoavatarself.cpp6
-rw-r--r--indra/newview/llvoavatarself.h2
-rw-r--r--indra/newview/llwearable.cpp2
4 files changed, 8 insertions, 8 deletions
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 475f34dc2b..e2d0daa245 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -408,7 +408,7 @@ void LLAgentWearables::saveWearable(const EWearableType type, const U32 index, B
return;
}
- gAgent.getAvatarObject()->wearableUpdated( type );
+ gAgent.getAvatarObject()->wearableUpdated( type, TRUE );
if (send_update)
{
@@ -698,7 +698,7 @@ U32 LLAgentWearables::pushWearable(const EWearableType type, LLWearable *wearabl
void LLAgentWearables::wearableUpdated(LLWearable *wearable)
{
- mAvatarObject->wearableUpdated(wearable->getType());
+ mAvatarObject->wearableUpdated(wearable->getType(), TRUE);
wearable->setLabelUpdated();
// Hack pt 2. If the wearable we just loaded has definition version 24,
@@ -739,7 +739,7 @@ void LLAgentWearables::popWearable(const EWearableType type, U32 index)
if (wearable)
{
mWearableDatas[type].erase(mWearableDatas[type].begin() + index);
- mAvatarObject->wearableUpdated(wearable->getType());
+ mAvatarObject->wearableUpdated(wearable->getType(), TRUE);
wearable->setLabelUpdated();
}
}
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index f3e787ae7e..7d6401acde 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -918,9 +918,9 @@ void LLVOAvatarSelf::updateAttachmentVisibility(U32 camera_mode)
//-----------------------------------------------------------------------------
// updatedWearable( EWearableType type )
// forces an update to any baked textures relevant to type.
-// Should be called only on saving the wearable
+// will force an upload of the resulting bake if the second parameter is TRUE
//-----------------------------------------------------------------------------
-void LLVOAvatarSelf::wearableUpdated( EWearableType type )
+void LLVOAvatarSelf::wearableUpdated( EWearableType type, BOOL upload_result )
{
for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
@@ -939,7 +939,7 @@ void LLVOAvatarSelf::wearableUpdated( EWearableType type )
{
if (mBakedTextureDatas[index].mTexLayerSet)
{
- invalidateComposite(mBakedTextureDatas[index].mTexLayerSet, TRUE);
+ invalidateComposite(mBakedTextureDatas[index].mTexLayerSet, upload_result);
}
break;
}
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h
index e376e5e9ef..6bf4ef5496 100644
--- a/indra/newview/llvoavatarself.h
+++ b/indra/newview/llvoavatarself.h
@@ -270,7 +270,7 @@ protected:
public:
/*virtual*/ BOOL isWearingWearableType(EWearableType type) const;
- void wearableUpdated(EWearableType type);
+ void wearableUpdated(EWearableType type, BOOL upload_result);
protected:
U32 getNumWearables(LLVOAvatarDefines::ETextureIndex i) const;
diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp
index d92da4ef44..050b218356 100644
--- a/indra/newview/llwearable.cpp
+++ b/indra/newview/llwearable.cpp
@@ -703,7 +703,7 @@ void LLWearable::removeFromAvatar( EWearableType type, BOOL upload_bake )
}
avatar->updateVisualParams();
- avatar->wearableUpdated(type);
+ avatar->wearableUpdated(type, TRUE);
// if( upload_bake )
// {