00001 #ifndef Hippo_OpenGLApp_h 00002 #define Hippo_OpenGLApp_h 00003 00004 #include <X11/Xlib.h> 00005 #include <GL/glx.h> 00006 #include <vector> 00007 00016 class OpenGLWindow; 00017 00018 class OpenGLApp { 00019 public: 00020 OpenGLApp(); 00021 ~OpenGLApp(); 00022 bool initialize( int argc = 0, char ** argv = 0); 00023 int exec(); 00024 Display* getXDisplay(); 00025 Colormap getXColormap(); 00026 XVisualInfo* getXVisualInfo(); 00027 GLXContext getGLXContext(); 00028 public: 00029 std::vector<OpenGLWindow*> fViews; 00030 private: 00031 OpenGLWindow* findView(Window) const; 00032 private: 00033 Display* m_display; 00034 Colormap m_colormap; 00035 XVisualInfo* m_vinfo; 00036 GLXContext m_ctx; 00037 bool m_privateColormap; 00038 }; 00039 00040 #endif // OpenGLApp_H