00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef GLXTGLWINDOW_H
00028 #define GLXTGLWINDOW_H
00029
00030 #include <GL/glx.h>
00031 #include <X11/Xlib.h>
00032 #include <X11/Xatom.h>
00033 #include <TGL/tgl.h>
00034
00039 class GLXTGLWindow : public GLWindow
00040 {
00041 Display* disp;
00042 Window window;
00043 XVisualInfo* vi;
00044 Colormap colormap;
00045 GLXContext cx;
00046 Atom wmDeleteWindow;
00047 bool doubleBuffered;
00048
00049 public:
00050 GLXTGLWindow(GLsizei w, GLsizei h, bool genRenderSet = true);
00051 ~GLXTGLWindow();
00052
00053 inline Display* getDisplay() const
00054 { return disp; }
00055
00056 inline Atom getDeleteAtom() const
00057 { return wmDeleteWindow; }
00058
00060 virtual void create(char* str, char** argv, int argc);
00061
00062 virtual void init();
00063 virtual void display();
00064 virtual void reshape(GLsizei w, GLsizei h);
00065 virtual void mouse(int b, int state, int x, int y);
00066 virtual void motion(int x, int y);
00067 virtual void keyboard(unsigned char key, int x, int y);
00068 virtual void idle();
00069
00070 virtual void postRedisplay();
00071 virtual void beginScene();
00072 virtual void endScene();
00073 };
00074
00075 #endif