core/vgui/internals/vgui_accelerate_x11.h
Go to the documentation of this file.
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_