EXT-2326 Editing appearance causes too many texture callbacks stalls the viewer
problem was caused by triggering updateMeshTextures() every time visual params or textures were changed on your base avatar object. The latest structure makes the parameters and textures in the wearables authoritative, causing them to be copied to the avatar on a regular basis. This resulted in way too many callbacks to be registered while waiting for baked textures to be uploaded. Fixed by removing many calls to updateMeshTextures() and ensuring that it gets called every time an appropriate param or texture actually changes, or a wearable gets added/removed. This appears to cut the number of callbacks to a reasonable level. Code reviewed by Bigpapi.meow-7.2.2
parent
90d985946c
commit
75bdd2ff32
|
|
@ -183,7 +183,6 @@ void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL set_by_user)
|
|||
}
|
||||
mAvatar->invalidateComposite(mTexLayer->getTexLayerSet(), set_by_user);
|
||||
mTexLayer->invalidateMorphMasks();
|
||||
mAvatar->updateMeshTextures();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -479,7 +478,6 @@ void LLTexLayerParamColor::setWeight(F32 weight, BOOL set_by_user)
|
|||
if (mTexLayer)
|
||||
{
|
||||
mAvatar->invalidateComposite(mTexLayer->getTexLayerSet(), set_by_user);
|
||||
mAvatar->updateMeshTextures();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5377,7 +5377,6 @@ void LLVOAvatar::updateSexDependentLayerSets( BOOL set_by_user )
|
|||
invalidateComposite( mBakedTextureDatas[BAKED_HEAD].mTexLayerSet, set_by_user );
|
||||
invalidateComposite( mBakedTextureDatas[BAKED_UPPER].mTexLayerSet, set_by_user );
|
||||
invalidateComposite( mBakedTextureDatas[BAKED_LOWER].mTexLayerSet, set_by_user );
|
||||
updateMeshTextures();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -757,19 +757,7 @@ void LLVOAvatarSelf::setLocalTextureTE(U8 te, LLViewerTexture* image, BOOL set_b
|
|||
return;
|
||||
}
|
||||
|
||||
LLTexLayerSet* layer_set = getLayerSet((ETextureIndex)te);
|
||||
if (layer_set)
|
||||
{
|
||||
invalidateComposite(layer_set, set_by_user);
|
||||
}
|
||||
|
||||
setTEImage(te, image);
|
||||
updateMeshTextures();
|
||||
|
||||
if (gAgent.cameraCustomizeAvatar())
|
||||
{
|
||||
LLVisualParamHint::requestHintUpdates();
|
||||
}
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
@ -1377,6 +1365,7 @@ void LLVOAvatarSelf::invalidateComposite( LLTexLayerSet* layerset, BOOL set_by_u
|
|||
ETextureIndex baked_te = getBakedTE( layerset );
|
||||
setTEImage( baked_te, LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR) );
|
||||
layerset->requestUpload();
|
||||
updateMeshTextures();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1386,7 +1375,6 @@ void LLVOAvatarSelf::invalidateAll()
|
|||
{
|
||||
invalidateComposite(mBakedTextureDatas[i].mTexLayerSet, TRUE);
|
||||
}
|
||||
updateMeshTextures();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -674,8 +674,6 @@ void LLWearable::writeToAvatar( BOOL set_by_user, BOOL update_customize_floater
|
|||
avatar->updateSexDependentLayerSets( set_by_user );
|
||||
}
|
||||
|
||||
avatar->updateMeshTextures();
|
||||
|
||||
// if( set_by_user )
|
||||
// {
|
||||
// gAgent.sendAgentSetAppearance();
|
||||
|
|
@ -719,7 +717,7 @@ void LLWearable::removeFromAvatar( EWearableType type, BOOL set_by_user )
|
|||
}
|
||||
|
||||
avatar->updateVisualParams();
|
||||
avatar->updateMeshTextures();
|
||||
avatar->wearableUpdated(type);
|
||||
|
||||
// if( set_by_user )
|
||||
// {
|
||||
|
|
|
|||
Loading…
Reference in New Issue