[radegast] r1197 committed - Rendering - In texture retrieval, deal with exceptions inside the call...

0 views
Skip to first unread message

rade...@googlecode.com

unread,
Feb 12, 2012, 6:14:24 PM2/12/12
to radega...@googlegroups.com
Revision: 1197
Author: logicmoo
Date: Sun Feb 12 15:13:22 2012
Log: Rendering - In texture retrieval, deal with exceptions inside the
callback (otherwise we'd need to wait 30 seconds). Added more context
sensitive menu's (from plugins) to 3D view. Skip over previously added
keys in VisualParams to avoid building stack traces.
http://code.google.com/p/radegast/source/detail?r=1197

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;
}

Reply all
Reply to author
Forward
0 new messages