diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llagentwearables.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/lltexlayer.cpp | 47 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.h | 2 | ||||
| -rw-r--r-- | indra/newview/llwearable.cpp | 2 | 
5 files changed, 39 insertions, 24 deletions
| diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 5d56a5dfa1..1552c98594 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -412,7 +412,7 @@ void LLAgentWearables::saveWearable(const EWearableType type, const U32 index, B  			return;  		} -		gAgent.getAvatarObject()->wearableUpdated( type ); +		gAgent.getAvatarObject()->wearableUpdated( type, TRUE );  		if (send_update)  		{ @@ -702,7 +702,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, @@ -743,7 +743,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/lltexlayer.cpp b/indra/newview/lltexlayer.cpp index a90f3ee181..8d3dcf8a99 100644 --- a/indra/newview/lltexlayer.cpp +++ b/indra/newview/lltexlayer.cpp @@ -689,24 +689,24 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )  		}  	} +	LLGLSUIDefault gls_ui; +	LLGLDepthTest gls_depth(GL_FALSE, GL_FALSE); +	gGL.setColorMask(true, true); + +	// clear buffer area to ensure we don't pick up UI elements +	{ +		gGL.flush(); +		LLGLDisable no_alpha(GL_ALPHA_TEST); +		gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); +		gGL.color4f( 0.f, 0.f, 0.f, 1.f ); + +		gl_rect_2d_simple( width, height ); + +		gGL.flush(); +	} +  	if (mIsVisible)  	{ -		LLGLSUIDefault gls_ui; -		LLGLDepthTest gls_depth(GL_FALSE, GL_FALSE); -		gGL.setColorMask(true, true); -	 -		// clear buffer area to ensure we don't pick up UI elements -		{ -			gGL.flush(); -			LLGLDisable no_alpha(GL_ALPHA_TEST); -			gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); -			gGL.color4f( 0.f, 0.f, 0.f, 1.f ); -			 -			gl_rect_2d_simple( width, height ); -			 -			gGL.flush(); -		} -	  		// composite color layers  		for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )  		{ @@ -723,6 +723,21 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )  		stop_glerror();  	} +	else +	{ +		gGL.flush(); + +		gGL.setSceneBlendType(LLRender::BT_REPLACE); +		LLGLDisable no_alpha(GL_ALPHA_TEST); +		gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); +		gGL.color4f( 0.f, 0.f, 0.f, 0.f ); + +		gl_rect_2d_simple( width, height ); +		gGL.setSceneBlendType(LLRender::BT_ALPHA); + +		gGL.flush(); + +	}  	return success;  } 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 )  //	{ | 
