Browse Source

Prevent empty debug geom from getting optimized away.

enn0x 14 years ago
parent
commit
89b92f1f19
1 changed files with 14 additions and 2 deletions
  1. 14 2
      panda/src/bullet/bulletDebugNode.cxx

+ 14 - 2
panda/src/bullet/bulletDebugNode.cxx

@@ -27,8 +27,6 @@ TypeHandle BulletDebugNode::_type_handle;
 BulletDebugNode::
 BulletDebugNode(const char *name) : GeomNode(name), _verbose(false) {
 
-  set_overall_hidden(true);
-
   _vdata = new GeomVertexData("", GeomVertexFormat::get_v3c4(), Geom::UH_stream);
 
   // Lines
@@ -48,6 +46,18 @@ BulletDebugNode(const char *name) : GeomNode(name), _verbose(false) {
   _geom_triangles->add_primitive(_prim_triangles);
 
   add_geom(_geom_triangles);
+
+  // Draw something in oder to prevent getting optimized away
+  GeomVertexWriter vwriter(_vdata, InternalName::get_vertex());
+  vwriter.add_data3f(0.0, 0.0, 0.0);
+  vwriter.add_data3f(0.0, 0.0, 0.0);
+  vwriter.add_data3f(0.0, 0.0, 0.0);
+  _prim_lines->add_next_vertices(2);
+  _prim_lines->close_primitive();
+  _prim_triangles->add_next_vertices(3);
+  _prim_triangles->close_primitive();
+
+  set_overall_hidden(true);
 }
 
 ////////////////////////////////////////////////////////////////////
@@ -194,6 +204,8 @@ DBG_FastWireframe
 void BulletDebugNode::
 post_step(btDynamicsWorld *world) {
 
+  if (is_overall_hidden()) return;
+
   // Collect debug geometry data
   world->debugDrawWorld();