KrisLibrary  1.0.0
GLUTProgram.h
1 #ifndef GL_GLUT_PROGRAM_H
2 #define GL_GLUT_PROGRAM_H
3 
4 #include <limits.h>
5 
7 {
8 public:
9  GLUTProgramBase(int width=800,int height=600);
10  virtual ~GLUTProgramBase() {}
11  //if displayMode is non-zero, initializes glut with that display mode
12  int Run(const char *window_title="OpenGL Viewer",unsigned int displayMode=0);
13 
14  //overrideable
15  virtual bool Initialize();
16  virtual void Handle_Display() {}
17  virtual void Handle_Reshape(int w,int h) { width=w; height=h; }
18  virtual void Handle_Keypress(unsigned char key,int x,int y){}
19  virtual void Handle_KeypressUp(unsigned char key,int x,int y){}
20  virtual void Handle_Special(int key,int x,int y) {}
21  virtual void Handle_SpecialUp(int key,int x,int y) {}
22  virtual void Handle_Click(int button,int state,int x,int y){}
23  virtual void Handle_Drag(int x,int y){}
24  virtual void Handle_Motion(int x,int y){}
25  virtual void Handle_Idle(); // by default turns off idle callbacks to save cpu
26 
27  //helpers
28  void Refresh();
29  void SetFullscreen(bool fullscreen_on);
30  void SleepIdleCallback(unsigned int time=INT_MAX);
31 
32  int main_window;
33  int width,height; // window size
34  bool fullscreen_mode;
35  int saved_width,saved_height;
36 
37 private:
38  static GLUTProgramBase* current_program;
39  static void DisplayFunc();
40  static void ReshapeFunc(int w,int h);
41  static void KeyboardFunc(unsigned char key,int x,int y);
42  static void KeyboardUpFunc(unsigned char key,int x,int y);
43  static void SpecialFunc(int key,int x,int y);
44  static void SpecialUpFunc(int key,int x,int y);
45  static void MouseFunc(int button,int state,int x,int y);
46  static void MotionFunc(int x,int y);
47  static void PassiveMotionFunc(int x,int y);
48  static void IdleFunc();
49 };
50 
51 #endif
Definition: GLUTProgram.h:6