EXT-8542 FIX (?) Avatar goes nude on teleport / outfit change

Believed fix, but having difficulty reproducing to verify.
changed logic in switching avatar textures so that we don't use the local
baked texture until we have at least the lowest LOD for each clothing texture.

Will ask Dan to help verify the fix.

Code reviewed by Seraph
meow-7.2.2
Nyx (Neal Orman) 2010-08-18 10:46:40 -04:00
parent 03128112b8
commit fe37d350b4
2 changed files with 10 additions and 2 deletions

View File

@ -581,6 +581,10 @@ void LLTexLayerSetBuffer::doUpdate()
}
restartUpdateTimer();
// need to swtich to using this layerset if this is the first update
// after getting the lowest LOD
mTexLayerSet->getAvatar()->updateMeshTextures();
// Print out notification that we uploaded this texture.
if (gSavedSettings.getBOOL("DebugAvatarRezTime"))

View File

@ -6251,10 +6251,14 @@ void LLVOAvatar::updateMeshTextures()
// When an avatar is changing clothes and not in Appearance mode,
// use the last-known good baked texture until it finish the first
// render of the new layerset.
const BOOL layerset_invalid = !mBakedTextureDatas[i].mTexLayerSet
|| !mBakedTextureDatas[i].mTexLayerSet->getComposite()->isInitialized()
|| !mBakedTextureDatas[i].mTexLayerSet->isLocalTextureDataAvailable();
use_lkg_baked_layer[i] = (!is_layer_baked[i]
&& (mBakedTextureDatas[i].mLastTextureIndex != IMG_DEFAULT_AVATAR)
&& mBakedTextureDatas[i].mTexLayerSet
&& !mBakedTextureDatas[i].mTexLayerSet->getComposite()->isInitialized());
&& layerset_invalid);
if (use_lkg_baked_layer[i])
{
mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled(TRUE);