00001 // This is core/vgui/internals/vgui_accelerate_x11.h 00002 #ifndef vgui_accelerate_x11_h_ 00003 #define vgui_accelerate_x11_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \author VGG, Oxford 00010 // \brief Accelerated OpenGL functions for X11. 00011 00012 #include <vgui/vgui_gl.h> 00013 #include <vgui/internals/vgui_accelerate.h> 00014 00015 #if VGUI_MESA 00016 # include <GL/xmesa.h> 00017 #endif 00018 00019 #ifdef HAS_HERMES 00020 # include <Hermes/Hermes.h> 00021 #endif 00022 00023 //: Accelerated OpenGL functions for X11. 00024 class vgui_accelerate_x11 : public vgui_accelerate 00025 { 00026 public: 00027 vgui_accelerate_x11(); 00028 virtual ~vgui_accelerate_x11(); 00029 00030 virtual bool vgui_glDrawPixels( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); 00031 virtual bool vgui_glClear( GLbitfield mask ); 00032 virtual bool vgui_choose_cache_format( GLenum* format, GLenum* type); 00033 virtual bool vgui_copy_aux_to_back(); 00034 virtual bool vgui_copy_back_to_aux(); 00035 protected: 00036 char* aux_buffer; 00037 int aux_buffer_size; 00038 00039 #ifdef HAS_HERMES 00040 HermesHandle hermes_clearer; 00041 HermesHandle hermes_converter; 00042 #endif 00043 }; 00044 00045 #endif // vgui_accelerate_x11_h_