diff options
author | Master ScienceSim | 2010-10-26 12:53:15 -0700 |
---|---|---|
committer | Master ScienceSim | 2010-10-26 12:53:15 -0700 |
commit | 9132e251aa0d0d7395dc4868fd57799dd679cdb7 (patch) | |
tree | 3b911336b8b11cc59146f23ea19c561a5cafbea6 /OpenSim | |
parent | Half of the compatibility is working. Login into a new region with (diff) | |
download | opensim-SC-9132e251aa0d0d7395dc4868fd57799dd679cdb7.zip opensim-SC-9132e251aa0d0d7395dc4868fd57799dd679cdb7.tar.gz opensim-SC-9132e251aa0d0d7395dc4868fd57799dd679cdb7.tar.bz2 opensim-SC-9132e251aa0d0d7395dc4868fd57799dd679cdb7.tar.xz |
Made the check for texture assets asynchronous. This is one part of
a bigger clean up that needs to happen around locks on appearance.
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index b74cdc9..5444f80 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -84,6 +84,15 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
84 | // client.OnAvatarNowWearing -= AvatarIsWearing; | 84 | // client.OnAvatarNowWearing -= AvatarIsWearing; |
85 | } | 85 | } |
86 | 86 | ||
87 | public void CheckBakedTextureAssets(IClientAPI client, UUID textureID, int idx) | ||
88 | { | ||
89 | if (m_scene.AssetService.Get(textureID.ToString()) == null) | ||
90 | { | ||
91 | m_log.WarnFormat("[AVFACTORY]: Missing baked texture {0} ({1}) for avatar {2}",textureID,idx,client.Name); | ||
92 | client.SendRebakeAvatarTextures(textureID); | ||
93 | } | ||
94 | } | ||
95 | |||
87 | /// <summary> | 96 | /// <summary> |
88 | /// Set appearance data (textureentry and slider settings) received from the client | 97 | /// Set appearance data (textureentry and slider settings) received from the client |
89 | /// </summary> | 98 | /// </summary> |
@@ -133,13 +142,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
133 | Primitive.TextureEntryFace face = textureEntry.FaceTextures[j]; | 142 | Primitive.TextureEntryFace face = textureEntry.FaceTextures[j]; |
134 | 143 | ||
135 | if (face != null && face.TextureID != AppearanceManager.DEFAULT_AVATAR_TEXTURE) | 144 | if (face != null && face.TextureID != AppearanceManager.DEFAULT_AVATAR_TEXTURE) |
136 | { | 145 | Util.FireAndForget(delegate(object o) { CheckBakedTextureAssets(client,face.TextureID,j); }); |
137 | if (m_scene.AssetService.Get(face.TextureID.ToString()) == null) | ||
138 | { | ||
139 | m_log.WarnFormat("[AVFACTORY]: Missing baked texture {0} ({1}) for avatar {2}",face.TextureID,j,client.Name); | ||
140 | client.SendRebakeAvatarTextures(face.TextureID); | ||
141 | } | ||
142 | } | ||
143 | } | 146 | } |
144 | changed = sp.Appearance.SetTextureEntries(textureEntry); | 147 | changed = sp.Appearance.SetTextureEntries(textureEntry); |
145 | 148 | ||