Modified:
/trunk/Radegast/GUI/Rendering/RenderAvatar.cs
/trunk/Radegast/GUI/Rendering/Rendering.cs
/trunk/Radegast/GUI/Rendering/RenderingHelpers.cs
=======================================
--- /trunk/Radegast/GUI/Rendering/RenderAvatar.cs Sun Jan 1 14:58:33 2012
+++ /trunk/Radegast/GUI/Rendering/RenderAvatar.cs Sun Feb 12 15:13:22 2012
@@ -1704,14 +1704,8 @@
//TODO other paramaters but these arew concerned with editing
the GUI display so not too fussed at the moment
- try
- {
- allParams.Add(ParamID, this);
- }
- catch
- {
- Logger.Log("Duplicate VisualParam in allParams id " +
ParamID.ToString(), Helpers.LogLevel.Info);
- }
+ if (allParams.ContainsKey(ParamID)) Logger.Log("Duplicate
VisualParam in allParams id " + ParamID.ToString(), Helpers.LogLevel.Info);
+ else allParams.Add(ParamID, this);
if (pt == ParamType.TYPE_BONEDEFORM)
{
@@ -1732,14 +1726,8 @@
ParseVolumeDeforms(node.ChildNodes[0].ChildNodes);
}
- try
- {
- morphParams.Add(ParamID, this);
- }
- catch
- {
- Logger.Log("Duplicate VisualParam in morphParams id "
+ ParamID.ToString(), Helpers.LogLevel.Info);
- }
+ if (morphParams.ContainsKey(ParamID))
Logger.Log("Duplicate VisualParam in morphParams id " + ParamID.ToString(),
Helpers.LogLevel.Info);
+ else morphParams.Add(ParamID, this);
}
=======================================
--- /trunk/Radegast/GUI/Rendering/Rendering.cs Sun Jan 1 14:58:33 2012
+++ /trunk/Radegast/GUI/Rendering/Rendering.cs Sun Feb 12 15:13:22 2012
@@ -3199,23 +3199,38 @@
{
instance.Client.Assets.RequestImage(textureID,
(TextureRequestState state, AssetTexture assetTexture) =>
{
- if (state == TextureRequestState.Finished)
- {
- ManagedImage mi;
-
OpenJPEG.DecodeToImage(assetTexture.AssetData, out mi);
-
- if (removeAlpha)
- {
- if ((mi.Channels &
ManagedImage.ImageChannels.Alpha) != 0)
- {
- mi.ConvertChannels(mi.Channels &
~ManagedImage.ImageChannels.Alpha);
+ try
+ {
+ if (state == TextureRequestState.Finished)
+ {
+ ManagedImage mi;
+
OpenJPEG.DecodeToImage(assetTexture.AssetData, out mi);
+ if (mi != null)
+ {
+ if (removeAlpha)
+ {
+ if ((mi.Channels &
ManagedImage.ImageChannels.Alpha) != 0)
+ {
+
mi.ConvertChannels(mi.Channels & ~ManagedImage.ImageChannels.Alpha);
+ }
+ }
+ tgaData = mi.ExportTGA();
+ img = LoadTGAClass.LoadTGA(new
MemoryStream(tgaData));
+ RHelp.SaveCachedImage(tgaData,
textureID,
+ (mi.Channels
& ManagedImage.ImageChannels.Alpha) != 0,
+ false,
false);
}
}
- tgaData = mi.ExportTGA();
- img = LoadTGAClass.LoadTGA(new
MemoryStream(tgaData));
- RHelp.SaveCachedImage(tgaData, textureID,
(mi.Channels & ManagedImage.ImageChannels.Alpha) != 0, false, false);
- }
- gotImage.Set();
+ }
+ catch (Exception e)
+ {
+ Logger.Log("Failed to save or decode the
texture asset " + textureID
+ + ": " + e.Message,
Helpers.LogLevel.Warning, Client, e);
+ }
+ finally
+ {
+ gotImage.Set();
+ }
}
);
gotImage.WaitOne(30 * 1000, false);
@@ -3323,6 +3338,7 @@
Client.Inventory.RequestDeRezToInventory(prim.Prim.LocalID,
DeRezDestination.AgentInventoryTake,
Client.Inventory.FindFolderForType(AssetType.TrashFolder), UUID.Random());
});
ctxMenu.Items.Add(item);
+
instance.ContextActionManager.AddContributions(ctxMenu, typeof(Avatar),
prim.Prim.ID);
}
@@ -3362,6 +3378,7 @@
(new frmPay(Instance, av.avatar.ID,
Instance.Names.Get(av.avatar.ID), false)).ShowDialog();
});
ctxMenu.Items.Add(item);
+
instance.ContextActionManager.AddContributions(ctxMenu, typeof(Avatar),
av.avatar.ID);
}
}
=======================================
--- /trunk/Radegast/GUI/Rendering/RenderingHelpers.cs Sun Jan 1 14:58:33
2012
+++ /trunk/Radegast/GUI/Rendering/RenderingHelpers.cs Sun Feb 12 15:13:22
2012
@@ -74,7 +74,7 @@
public bool FullAlpha;
public bool IsMask;
public bool IsInvisible;
- public UUID TextureID;
+ public UUID TextureID = UUID.Zero;
public bool FetchFailed;
}