From b4dcdffb5094c488a98acbe675b333c3bd4cc570 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Tue, 16 Mar 2010 11:50:22 -0700 Subject: Fixed several unhandled exceptions and performance issues with PrimitiveBaseShape.Textures. This really should be moved from a property to a method if it is going to decode a byte[] into a TextureEntry each time --- .../Scripting/DynamicTexture/DynamicTextureModule.cs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs') diff --git a/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs b/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs index 643764f..678e772 100644 --- a/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs @@ -285,24 +285,22 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture return; } - byte[] assetData; + byte[] assetData = null; AssetBase oldAsset = null; if (BlendWithOldTexture) { - UUID lastTextureID = part.Shape.Textures.DefaultTexture.TextureID; - oldAsset = scene.AssetService.Get(lastTextureID.ToString()); - if (oldAsset != null) - { - assetData = BlendTextures(data, oldAsset.Data, SetNewFrontAlpha, FrontAlpha); - } - else + Primitive.TextureEntryFace defaultFace = part.Shape.Textures.DefaultTexture; + if (defaultFace != null) { - assetData = new byte[data.Length]; - Array.Copy(data, assetData, data.Length); + oldAsset = scene.AssetService.Get(defaultFace.TextureID.ToString()); + + if (oldAsset != null) + assetData = BlendTextures(data, oldAsset.Data, SetNewFrontAlpha, FrontAlpha); } } - else + + if (assetData == null) { assetData = new byte[data.Length]; Array.Copy(data, assetData, data.Length); -- cgit v1.1