Browse Source

move clocktick outside of draw callback to python igloop

cxgeorge 24 years ago
parent
commit
68ecc1df88
2 changed files with 7 additions and 5 deletions
  1. 1 0
      direct/src/showbase/ShowBase.py
  2. 6 5
      direct/src/showbase/showBase.cxx

+ 1 - 0
direct/src/showbase/ShowBase.py

@@ -405,6 +405,7 @@ class ShowBase:
             self.cTrav.traverse(self.render)
             self.cTrav.traverse(self.render)
         # Finally, render the frame.
         # Finally, render the frame.
         self.win.update()
         self.win.update()
+        globalClock.tick()
         return Task.cont
         return Task.cont
 
 
     def restart(self):
     def restart(self):

+ 6 - 5
direct/src/showbase/showBase.cxx

@@ -67,7 +67,11 @@ void render_frame(GraphicsPipe *pipe) {
     GraphicsWindow *win = pipe->get_window(w);
     GraphicsWindow *win = pipe->get_window(w);
     win->get_gsg()->render_frame();
     win->get_gsg()->render_frame();
   }
   }
-  ClockObject::get_global_clock()->tick();
+  // clock tick moved to igloop in ShowBase.py because
+  // clock must tick while app is iconified and draw
+  // callback is not being called by panda gsg
+
+  //  ClockObject::get_global_clock()->tick();
   throw_event("NewFrame");
   throw_event("NewFrame");
 }
 }
 
 
@@ -84,9 +88,6 @@ public:
     render_frame(_pipe);
     render_frame(_pipe);
   }
   }
 
 
-  virtual void idle(void) {
-  }
-
   PT(GraphicsPipe) _pipe;
   PT(GraphicsPipe) _pipe;
   PT(Node) _render_top;
   PT(Node) _render_top;
   AppTraverser _app_traverser;
   AppTraverser _app_traverser;
@@ -180,7 +181,7 @@ setup_panda_2d(GraphicsWindow *win, const string &graph_name) {
   new RenderRelation(render2d, cam2d);
   new RenderRelation(render2d, cam2d);
 
 
   Frustumf frustum2d;
   Frustumf frustum2d;
-  frustum2d.make_ortho(-1000,1000);
+  frustum2d.make_ortho(-1000.0f,1000.0f);
   cam2d->set_projection(OrthoProjection(frustum2d));
   cam2d->set_projection(OrthoProjection(frustum2d));
 
 
   add_render_layer(win, render2d_top, cam2d);
   add_render_layer(win, render2d_top, cam2d);