diff options
| author | Rick Pasetto <rick@lindenlab.com> | 2009-10-26 10:40:41 -0700 | 
|---|---|---|
| committer | Rick Pasetto <rick@lindenlab.com> | 2009-10-26 10:40:41 -0700 | 
| commit | bc6aa9445f15f2f5eeae6a697504cebd14564a92 (patch) | |
| tree | f32c79e5620c3e83c545e82e17432f4b7bbe77be | |
| parent | 3f0b2307b59f6bc07e17182a1806866716304078 (diff) | |
| parent | d6e8f32b8073d85db59f2a45a10d622b71c859ae (diff) | |
merge from remote repo
| -rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl | 16 | ||||
| -rw-r--r-- | indra/newview/llagentwearables.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llagentwearables.h | 1 | ||||
| -rw-r--r-- | indra/newview/lltexlayerparams.cpp | 17 | ||||
| -rw-r--r-- | indra/newview/lltexlayerparams.h | 1 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.cpp | 3 | 
6 files changed, 27 insertions, 17 deletions
| diff --git a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl index 8bd702a8da..28908a311d 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl @@ -46,11 +46,15 @@ void main()  	dlt /= max(-pos.z*dist_factor, 1.0); -	vec2 defined_weight = kern[0].xy; // special case the first (centre) sample's weight in the blur; we have to sample it anyway so we get it for 'free' +	vec2 defined_weight = kern[0].xy; // special case the kern[0] (centre) sample's weight in the blur; we have to sample it anyway so we get it for 'free'  	vec4 col = defined_weight.xyxx * ccol; + +	float center_e = 1.0 - (texture2DRect(edgeMap, vary_fragcoord.xy).a+ +		      texture2DRect(edgeMap, vary_fragcoord.xy+dlt*0.333).a+ +	              texture2DRect(edgeMap, vary_fragcoord.xy-dlt*0.333).a); -	float e = 1.0; -	for (int i = 0; i < 4; i++) +	float e = center_e; +	for (int i = 1; i < 4; i++)  	{  		vec2 tc = vary_fragcoord.xy + kern[i].z*dlt; @@ -67,10 +71,8 @@ void main()  			texture2DRect(edgeMap, tc.xy-dlt*0.333).a;  	} - -	e = 1.0; -	 -	for (int i = 0; i < 4; i++) +	e = center_e; +	for (int i = 1; i < 4; i++)  	{  		vec2 tc = vary_fragcoord.xy - kern[i].z*dlt; diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index b976e6b2bd..b9a0b4293d 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -649,6 +649,7 @@ void LLAgentWearables::setWearable(const EWearableType type, U32 index, LLWearab  	else  	{  		wearable_vec[index] = wearable; +		mAvatarObject->wearableUpdated(wearable->getType());  	}  } @@ -663,6 +664,7 @@ U32 LLAgentWearables::pushWearable(const EWearableType type, LLWearable *wearabl  	if (type < WT_COUNT || mWearableDatas[type].size() < MAX_WEARABLES_PER_TYPE)  	{  		mWearableDatas[type].push_back(wearable); +		mAvatarObject->wearableUpdated(wearable->getType());  		return mWearableDatas[type].size()-1;  	}  	return MAX_WEARABLES_PER_TYPE; @@ -687,9 +689,11 @@ void LLAgentWearables::popWearable(LLWearable *wearable)  void LLAgentWearables::popWearable(const EWearableType type, U32 index)  { -	if (getWearable(type, index)) +	LLWearable *wearable = getWearable(type, index); +	if (wearable)  	{  		mWearableDatas[type].erase(mWearableDatas[type].begin() + index); +		mAvatarObject->wearableUpdated(wearable->getType());  	}  } diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h index 8e1bef88c3..667cb94552 100644 --- a/indra/newview/llagentwearables.h +++ b/indra/newview/llagentwearables.h @@ -114,6 +114,7 @@ public:  	void			setWearableName(const LLUUID& item_id, const std::string& new_name);  	void			addLocalTextureObject(const EWearableType wearable_type, const LLVOAvatarDefines::ETextureIndex texture_type, U32 wearable_index);  	U32				getWearableIndex(LLWearable *wearable); +  protected:  	void			setWearableFinal(LLInventoryItem* new_item, LLWearable* new_wearable, bool do_append = false);  	static bool		onSetWearableDialog(const LLSD& notification, const LLSD& response, LLWearable* wearable); diff --git a/indra/newview/lltexlayerparams.cpp b/indra/newview/lltexlayerparams.cpp index ca888899ed..e1643af71d 100644 --- a/indra/newview/lltexlayerparams.cpp +++ b/indra/newview/lltexlayerparams.cpp @@ -42,7 +42,8 @@  //-----------------------------------------------------------------------------  LLTexLayerParam::LLTexLayerParam(LLTexLayerInterface *layer) :  	mTexLayer(layer), -	mAvatar(NULL) +	mAvatar(NULL), +	mIsWearableParam(TRUE)  {  	if (mTexLayer != NULL)  	{ @@ -55,7 +56,8 @@ LLTexLayerParam::LLTexLayerParam(LLTexLayerInterface *layer) :  }  LLTexLayerParam::LLTexLayerParam(LLVOAvatar *avatar) : -	mTexLayer(NULL) +	mTexLayer(NULL), +	mIsWearableParam(FALSE)  {  	mAvatar = avatar;  } @@ -175,16 +177,15 @@ void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL set_by_user)  	{  		mCurWeight = new_weight; -		LLVOAvatar* avatar = mTexLayer->getTexLayerSet()->getAvatar(); -		if (avatar->getSex() & getSex()) +		if ((mAvatar->getSex() & getSex()) && !mIsWearableParam) // only trigger a baked texture update if we're changing a wearable's visual param.  		{  			if (gAgent.cameraCustomizeAvatar())  			{  				set_by_user = FALSE;  			} -			avatar->invalidateComposite(mTexLayer->getTexLayerSet(), set_by_user); +			mAvatar->invalidateComposite(mTexLayer->getTexLayerSet(), set_by_user);  			mTexLayer->invalidateMorphMasks(); -			avatar->updateMeshTextures(); +			mAvatar->updateMeshTextures();  		}  	}  } @@ -467,14 +468,16 @@ void LLTexLayerParamColor::setWeight(F32 weight, BOOL set_by_user)  			return;  		} -		if (mAvatar->getSex() & getSex()) +		if ((mAvatar->getSex() & getSex()) && !mIsWearableParam) // only trigger a baked texture update if we're changing a wearable's visual param.  		{  			onGlobalColorChanged(set_by_user);  			if (mTexLayer)  			{  				mAvatar->invalidateComposite(mTexLayer->getTexLayerSet(), set_by_user); +				mAvatar->updateMeshTextures();  			}  		} +  //		llinfos << "param " << mName << " = " << new_weight << llendl;  	}  } diff --git a/indra/newview/lltexlayerparams.h b/indra/newview/lltexlayerparams.h index 98365864f9..dcb108bbf6 100644 --- a/indra/newview/lltexlayerparams.h +++ b/indra/newview/lltexlayerparams.h @@ -49,6 +49,7 @@ public:  protected:  	LLTexLayerInterface*	mTexLayer;  	LLVOAvatar*             mAvatar; +	BOOL					mIsWearableParam;  };  //----------------------------------------------------------------------------- diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 2b2ac81487..4760d5a472 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -973,8 +973,7 @@ void LLVOAvatarSelf::wearableUpdated( EWearableType type )  				{  					if (mBakedTextureDatas[index].mTexLayerSet)  					{ -						mBakedTextureDatas[index].mTexLayerSet->requestUpdate(); -						mBakedTextureDatas[index].mTexLayerSet->requestUpload(); +						invalidateComposite(mBakedTextureDatas[index].mTexLayerSet, TRUE);  					}  					break;  				} | 
