diff options
| author | Nyx (Neal Orman) <nyx@lindenlab.com> | 2010-02-17 11:50:13 -0500 | 
|---|---|---|
| committer | Nyx (Neal Orman) <nyx@lindenlab.com> | 2010-02-17 11:50:13 -0500 | 
| commit | 587b8e737d30d58976ef942a34dd4ef851764291 (patch) | |
| tree | 7de5393575a0b9600c1feaf4708d32d26737f18a | |
| parent | c573679521bf260ec2e601eef7f0abf0deead2fd (diff) | |
EXT-5364 New users appear fully naked before resolving.
We were pushing off redrawing your local texture composite
while waiting for a baked texture cache response from the server.
If this happens when your textures come in, your avatar will de-cloud
but the composite will not update, resulting in nudity.
Changed the logic so we will re-generate a local composite even if
we have a pending baked texture query (we still suppress uploading the
composite until a response is received). Verified several times that this does
fix the issue. Will update the JIRA with reliable repro.
Q verified issue is worthy of a hotfix checkin
Code has been reviewed by vir, bigpapi, and seraph
This is necessary for new user experience. Patch should be contained enough to be low-risk. Contact Nyx if any further questions.
| -rw-r--r-- | indra/newview/llagentwearables.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/lltexlayer.cpp | 4 | 
2 files changed, 3 insertions, 2 deletions
| diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 68ee9cd612..f4bc35002b 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1673,6 +1673,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it  	if (mAvatarObject)  	{  		mAvatarObject->updateVisualParams(); +		mAvatarObject->invalidateAll();  	}  	// Start rendering & update the server diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp index ddb6405c41..662e6dcabe 100644 --- a/indra/newview/lltexlayer.cpp +++ b/indra/newview/lltexlayer.cpp @@ -167,8 +167,8 @@ void LLTexLayerSetBuffer::popProjection() const  BOOL LLTexLayerSetBuffer::needsRender()  {  	const LLVOAvatarSelf* avatar = mTexLayerSet->getAvatar(); -	BOOL upload_now = mNeedsUpload && mTexLayerSet->isLocalTextureDataFinal(); -	BOOL needs_update = gAgentQueryManager.hasNoPendingQueries() && (mNeedsUpdate || upload_now) && !avatar->mAppearanceAnimating; +	BOOL upload_now = mNeedsUpload && mTexLayerSet->isLocalTextureDataFinal() && gAgentQueryManager.hasNoPendingQueries(); +	BOOL needs_update = (mNeedsUpdate || upload_now) && !avatar->mAppearanceAnimating;  	if (needs_update)  	{  		BOOL invalid_skirt = avatar->getBakedTE(mTexLayerSet) == LLVOAvatarDefines::TEX_SKIRT_BAKED && !avatar->isWearingWearableType(WT_SKIRT); | 
