diff options
author | Nyx (Neal Orman) <nyx@lindenlab.com> | 2012-04-02 11:21:52 -0400 |
---|---|---|
committer | Nyx (Neal Orman) <nyx@lindenlab.com> | 2012-04-02 11:21:52 -0400 |
commit | 6a7582c09d5533cab09ca07da301d9c987b422f5 (patch) | |
tree | ee93ff0976bb74fa89f77da4265430222e49c4d2 | |
parent | 1731894cb42fdbf0bb5bd2e96fe20e2252d1026f (diff) |
SH-3041 FIX use server-sent baked texture IDs while waiting for avatar to load
Prevents the avatar's baked texture UUIDs sent by the server's first objectUpdate
message from being overwritten until the wearable cache results come back.
-rw-r--r-- | indra/newview/llagent.cpp | 3 | ||||
-rw-r--r-- | indra/newview/llagentwearables.cpp | 11 | ||||
-rwxr-xr-x | indra/newview/llvoavatarself.cpp | 2 |
3 files changed, 13 insertions, 3 deletions
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 8aba2e76a2..83761ea18f 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3310,13 +3310,12 @@ void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void * else { // no cache of this bake. request upload. - gAgentAvatarp->requestLayerSetUpload(baked_index); + gAgentAvatarp->invalidateComposite(gAgentAvatarp->getLayerSet(baked_index),TRUE); } } } } } - llinfos << "Received cached texture response for " << num_results << " textures." << llendl; gAgentAvatarp->outputRezTiming("Fetched agent wearables textures from cache. Will now load them"); diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index bd418ca2b3..5c302766c4 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1447,7 +1447,16 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it { gAgentAvatarp->setCompositeUpdatesEnabled(TRUE); gAgentAvatarp->updateVisualParams(); - gAgentAvatarp->invalidateAll(); + + // If we have not yet declouded, we may want to use + // baked texture UUIDs sent from the first objectUpdate message + // don't overwrite these. If we have already declouded, we've saved + // these ids as the last known good textures and can invalidate without + // re-clouding. + if (!gAgentAvatarp->getIsCloud()) + { + gAgentAvatarp->invalidateAll(); + } } // Start rendering & update the server diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index f73c8b59aa..02efda913e 100755 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -822,6 +822,8 @@ U32 LLVOAvatarSelf::processUpdateMessage(LLMessageSystem *mesgsys, mInitialBakeIDs[i] = texture_id; } + onFirstTEMessageReceived(); + mInitialBakesLoaded = true; } |