(mantis 7983) update local cache when storing a baked tex on assets server
parent
5baceff4e9
commit
a99df75a30
|
@ -288,23 +288,24 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
|
||||||
if (bakedTextures.Count == 0)
|
if (bakedTextures.Count == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
IImprovedAssetCache cache = sp.Scene.RequestModuleInterface<IImprovedAssetCache>();
|
||||||
|
if(cache == null)
|
||||||
|
return true; // no baked local caching so nothing to do
|
||||||
|
|
||||||
foreach (BakeType bakeType in bakedTextures.Keys)
|
foreach (BakeType bakeType in bakedTextures.Keys)
|
||||||
{
|
{
|
||||||
Primitive.TextureEntryFace bakedTextureFace = bakedTextures[bakeType];
|
Primitive.TextureEntryFace bakedTextureFace = bakedTextures[bakeType];
|
||||||
|
|
||||||
if (bakedTextureFace == null)
|
if (bakedTextureFace == null)
|
||||||
{
|
|
||||||
// This can happen legitimately, since some baked textures might not exist
|
|
||||||
//m_log.WarnFormat(
|
|
||||||
// "[AV FACTORY]: No texture ID set for {0} for {1} in {2} not found when trying to save permanently",
|
|
||||||
// bakeType, sp.Name, m_scene.RegionInfo.RegionName);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
AssetBase asset = m_scene.AssetService.Get(bakedTextureFace.TextureID.ToString());
|
AssetBase asset = cache.Get(bakedTextureFace.TextureID.ToString());
|
||||||
|
|
||||||
if (asset != null)
|
if (asset != null && asset.Local)
|
||||||
{
|
{
|
||||||
|
// cache does not update asset contents
|
||||||
|
cache.Expire(bakedTextureFace.TextureID.ToString());
|
||||||
|
|
||||||
// Replace an HG ID with the simple asset ID so that we can persist textures for foreign HG avatars
|
// Replace an HG ID with the simple asset ID so that we can persist textures for foreign HG avatars
|
||||||
asset.ID = asset.FullID.ToString();
|
asset.ID = asset.FullID.ToString();
|
||||||
|
|
||||||
|
@ -312,7 +313,8 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
|
||||||
asset.Local = false;
|
asset.Local = false;
|
||||||
m_scene.AssetService.Store(asset);
|
m_scene.AssetService.Store(asset);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (asset == null)
|
||||||
{
|
{
|
||||||
m_log.WarnFormat(
|
m_log.WarnFormat(
|
||||||
"[AV FACTORY]: Baked texture id {0} not found for bake {1} for avatar {2} in {3} when trying to save permanently",
|
"[AV FACTORY]: Baked texture id {0} not found for bake {1} for avatar {2} in {3} when trying to save permanently",
|
||||||
|
|
Loading…
Reference in New Issue