3f24d48d74924b33a7a8e992c95647a70ecf334f
[gltest.git] / glxbackend.h
1 #include "glwindow.h"
2
3 #include <GL/glx.h>
4
5
6 /** Make an X window fit for GL. You have to manage the X window yourself! */
7 class GLXBackend : public GLBackend {
8 public:
9         /** Create a GL window class and find an appropriate visual */
10         GLXBackend() : display(NULL), context(None) {}
11         /** Fre all resources */
12         virtual ~GLXBackend();
13         
14         /** Initialize GL backend, choose visual configuration and return the ID */
15         virtual VisualID initialize(Display *display);
16         
17         /** create a GL context for the given window */
18         virtual void createContext(Window window);
19         
20         /** Swap back and front buffers */
21         virtual void swapBuffers() const;
22         
23         /** Set the swap interval */
24         virtual void setSwapInterval(int i) const;
25 private:
26         Display *display;
27         XVisualInfo *vi;
28         GLXContext context;
29         Window window;
30         
31         PFNGLXSWAPINTERVALMESAPROC funSwapIntervalMesa;
32         PFNGLXSWAPINTERVALEXTPROC funSwapIntervalExt;
33 };