dont send baked textures assets, but send cache information

avinationmerge
UbitUmarov 2014-10-26 18:13:44 +00:00
parent bc4d0179b3
commit 736490dcb6
2 changed files with 17 additions and 5 deletions

View File

@ -144,12 +144,14 @@ namespace OpenSim.Framework
itemmap.Add("textureindex", OSD.FromUInteger(item.TextureIndex));
itemmap.Add("cacheid", OSD.FromUUID(item.CacheId));
itemmap.Add("textureid", OSD.FromUUID(item.TextureID));
/*
if (item.TextureAsset != null)
{
itemmap.Add("assetdata", OSD.FromBinary(item.TextureAsset.Data));
itemmap.Add("assetcreator", OSD.FromString(item.TextureAsset.CreatorID));
itemmap.Add("assetname", OSD.FromString(item.TextureAsset.Name));
}
*/
arr.Add(itemmap);
}
return arr;
@ -169,6 +171,7 @@ namespace OpenSim.Framework
continue;
pcache[idx].CacheId = item["cacheid"].AsUUID();
pcache[idx].TextureID = item["textureid"].AsUUID();
/*
if (item.ContainsKey("assetdata"))
{
AssetBase asset = new AssetBase(item["textureid"].AsUUID(), "BakedTexture", (sbyte)AssetType.Texture, UUID.Zero.ToString());
@ -178,6 +181,7 @@ namespace OpenSim.Framework
pcache[idx].TextureAsset = asset;
}
else
*/
pcache[idx].TextureAsset = null;
}
}

View File

@ -547,12 +547,20 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
{
int idx = AvatarAppearance.BAKE_INDICES[i];
Primitive.TextureEntryFace face = sp.Appearance.Texture.FaceTextures[idx];
if (face != null && face.TextureID == wearableCache[idx].TextureID && wearableCache[idx].TextureAsset != null)
if (face != null && face.TextureID == wearableCache[idx].TextureID)
{
if (wearableCache[idx].TextureAsset != null)
{
hits++;
wearableCache[idx].TextureAsset.Temporary = true;
wearableCache[idx].TextureAsset.Local = true;
cache.Store(wearableCache[idx].TextureAsset);
}
else if (cache.GetCached((wearableCache[idx].TextureID).ToString()) != null)
{
hits++;
}
}
}