--- trunk/IdealistViewer/Scene/VSceneGraph.cs 2009/06/12 03:48:53 302
+++ trunk/IdealistViewer/Scene/VSceneGraph.cs 2009/06/12 07:22:26 303
@@ -39,7 +39,7 @@
///
/// All avatar modifications run through this queue
///
- public Queue AvatarModidifications = new Queue();
+ public Queue AvatarModifications = new Queue();
///
/// All Meshing gets queued up int this queue.
///
@@ -827,7 +827,7 @@
{
if ((sculpt = prim.Sculpt) != null)
{
- if (sculpt.SculptTexture != UUID.Zero)
+ if (m_viewer.MeshSculpties && sculpt.SculptTexture != UUID.Zero)
{
m_log.Warn("[SCULPT]: Got Sculpt");
if (!m_viewer.TextureManager.tryGetTexture(sculpt.SculptTexture, out sculpttex))
@@ -856,7 +856,7 @@
// Mesh a regular prim.
vobj.Mesh = m_viewer.MeshManager.GetMeshInstance(prim);
}
- else
+ else if (m_viewer.MeshSculpties)
{
if (sculpt != null)
{
@@ -1472,39 +1472,41 @@
}
}
- if (newObject != null)
+ try
{
- if (newObject.SceneNode != null)
+ if (newObject != null)
{
- if (newObject.SceneNode.TriangleSelector != null)
+ if (newObject.SceneNode != null)
{
- if (TriangleSelector != null)
+ if (newObject.SceneNode.TriangleSelector != null)
{
- TriangleSelector.RemoveTriangleSelector(newObject.SceneNode.TriangleSelector);
+ if (TriangleSelector != null)
+ {
+ TriangleSelector.RemoveTriangleSelector(newObject.SceneNode.TriangleSelector);
+ }
}
- }
- for (uint i = 0; i < newObject.SceneNode.MaterialCount; i++)
- {
- //IrrlichtNETCP.Material objmaterial = newObject.node.GetMaterial((int)i);
- //objmaterial.Texture1.Dispose();
- //if (objmaterial.Layer1 != null)
- //{
- // if (objmaterial.Layer1.Texture != null)
- // {
- // objmaterial.Layer1.Texture.Dispose();
- // }
- // objmaterial.Layer1.Dispose();
- // }
- //objmaterial.Dispose();
- }
+ for (uint i = 0; i < newObject.SceneNode.MaterialCount; i++)
+ {
+ //IrrlichtNETCP.Material objmaterial = newObject.node.GetMaterial((int)i);
+ //objmaterial.Texture1.Dispose();
+ //if (objmaterial.Layer1 != null)
+ //{
+ // if (objmaterial.Layer1.Texture != null)
+ // {
+ // objmaterial.Layer1.Texture.Dispose();
+ // }
+ // objmaterial.Layer1.Dispose();
+ // }
+ //objmaterial.Dispose();
+ }
- m_viewer.Renderer.SceneManager.AddToDeletionQueue(newObject.SceneNode);
+ m_viewer.Renderer.SceneManager.AddToDeletionQueue(newObject.SceneNode);
#if DebugObjectPipeline
m_log.DebugFormat("[OBJ]: Deleted Node for ID: {0}", prim.ID);
#endif
- /*newObject.SceneNode = null;
+ /*newObject.SceneNode = null;
Mesh objmesh = newObject.Mesh;
for (int i = 0; i < objmesh.MeshBufferCount; i++)
{
@@ -1514,8 +1516,14 @@
}
newObject.Mesh.Dispose();
newObject.Primitive = null;*/
+ }
+
}
+ }
+ catch (Exception e)
+ {
+ m_log.Error("Caught exception: " + e.ToString());
}
@@ -1570,7 +1578,7 @@
//}
// Add to the Avatar modification queue
- lock (AvatarModidifications) { AvatarModidifications.Enqueue(avob); }
+ lock (AvatarModifications) { AvatarModifications.Enqueue(avob); }
bool needInitialAnimationState = false;
@@ -1663,7 +1671,7 @@
//{
// objectModQueue.Enqueue(obj);
//}
- lock (AvatarModidifications) { AvatarModidifications.Enqueue(obj); }
+ lock (AvatarModifications) { AvatarModifications.Enqueue(obj); }
}
}
else