home *** CD-ROM | disk | FTP | other *** search
/ ftp.hitl.washington.edu / ftp.hitl.washington.edu.tar / ftp.hitl.washington.edu / pub / people / peter / ER / PredrawSender.cxx < prev    next >
C/C++ Source or Header  |  1998-07-07  |  950b  |  46 lines

  1. /*
  2.   PredrawSender.cxx
  3. */
  4.  
  5. #include "PredrawSender.h"
  6.  
  7. PredrawSender *PredrawSender::PredrawSender_ = 0;
  8.  
  9. // Returns a pointer to the 3D predraw sender singleton.
  10. // If the singleton doesn't exist, it creates one.
  11. PredrawSender *
  12. PredrawSender::GetInstance()
  13. {
  14.     if (PredrawSender_ == 0) {
  15.         // The predraw sender hasn't been initialized, so create a
  16.         // new instance of the class.
  17.         PredrawSender_ = new PredrawSender();
  18.     }
  19.  
  20.     return PredrawSender_;
  21.  
  22. }
  23.  
  24. PredrawSender::PredrawSender()
  25. {
  26.     // Create and register the 3D predraw event.
  27.     predraw_event_ = new PredrawEvent;
  28.     RegisterEvent(predraw_event_);
  29.  
  30.     // Hook into WTK's 3D predraw function.
  31.     WTwindow_setdrawfn(WTuniverse_getwindows(), predraw_CB);
  32. }
  33.  
  34. PredrawSender::~PredrawSender()
  35. {
  36.     delete predraw_event_;
  37. }
  38.  
  39. // This function simply notifies all event handler's when it's invoked.
  40. void
  41. PredrawSender::predraw_CB(WTwindow *win, FLAG eye)
  42. {
  43.     PredrawSender_->predraw_event_->InvokeHandlers(0);
  44. }
  45.  
  46.