summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNyx (Neal Orman) <nyx@lindenlab.com>2010-02-17 11:50:13 -0500
committerNyx (Neal Orman) <nyx@lindenlab.com>2010-02-17 11:50:13 -0500
commit587b8e737d30d58976ef942a34dd4ef851764291 (patch)
tree7de5393575a0b9600c1feaf4708d32d26737f18a
parentc573679521bf260ec2e601eef7f0abf0deead2fd (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.cpp1
-rw-r--r--indra/newview/lltexlayer.cpp4
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);