aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs')
-rw-r--r--OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs25
1 files changed, 16 insertions, 9 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs b/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs
index c369d87..82596ca 100644
--- a/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs
@@ -135,16 +135,15 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
135 m_reuseableDynamicTextures.Store( 135 m_reuseableDynamicTextures.Store(
136 GenerateReusableTextureKey(texture.InputCommands, texture.InputParams), newTextureID); 136 GenerateReusableTextureKey(texture.InputCommands, texture.InputParams), newTextureID);
137 } 137 }
138 updater.newTextureID = newTextureID;
138 } 139 }
139 }
140 140
141 if (updater.UpdateTimer == 0) 141 if (updater.UpdateTimer == 0)
142 {
143 lock (Updaters)
144 { 142 {
145 if (!Updaters.ContainsKey(updater.UpdaterID)) 143 lock (Updaters)
146 { 144 {
147 Updaters.Remove(updater.UpdaterID); 145 if (Updaters.ContainsKey(updater.UpdaterID))
146 Updaters.Remove(updater.UpdaterID);
148 } 147 }
149 } 148 }
150 } 149 }
@@ -213,7 +212,7 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
213 } 212 }
214 213
215 RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams); 214 RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams);
216 return updater.UpdaterID; 215 return updater.newTextureID;
217 } 216 }
218 return UUID.Zero; 217 return UUID.Zero;
219 } 218 }
@@ -314,7 +313,7 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
314 updater.UpdatePart(part, (UUID)objReusableTextureUUID); 313 updater.UpdatePart(part, (UUID)objReusableTextureUUID);
315 } 314 }
316 315
317 return updater.UpdaterID; 316 return updater.newTextureID;
318 } 317 }
319 318
320 private string GenerateReusableTextureKey(string data, string extraParams) 319 private string GenerateReusableTextureKey(string data, string extraParams)
@@ -411,6 +410,7 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
411 public int Face; 410 public int Face;
412 public int Disp; 411 public int Disp;
413 public string Url; 412 public string Url;
413 public UUID newTextureID;
414 414
415 public DynamicTextureUpdater() 415 public DynamicTextureUpdater()
416 { 416 {
@@ -445,7 +445,14 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
445 { 445 {
446 try 446 try
447 { 447 {
448 Primitive.TextureEntryFace texface = tmptex.CreateFace((uint)Face); 448 Primitive.TextureEntryFace texface = tmptex.GetFace((uint)Face);
449 if(texface == null)
450 tmptex.GetFace((uint)Face);
451 else
452 {
453 if(texface.TextureID != null && texface.TextureID != UUID.Zero)
454 oldID = texface.TextureID;
455 }
449 texface.TextureID = textureID; 456 texface.TextureID = textureID;
450 tmptex.FaceTextures[Face] = texface; 457 tmptex.FaceTextures[Face] = texface;
451 } 458 }