GLX_SGIX_pbuffer
http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt
	GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
	GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
	GLX_PBUFFER_BIT_SGIX 0x00000004
	GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
	GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
	GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
	GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
	GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
	GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
	GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
	GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
	GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
	GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
	GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
	GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
	GLX_PRESERVED_CONTENTS_SGIX 0x801B
	GLX_LARGEST_PBUFFER_SGIX 0x801C
	GLX_WIDTH_SGIX 0x801D
	GLX_HEIGHT_SGIX 0x801E
	GLX_EVENT_MASK_SGIX 0x801F
	GLX_DAMAGED_SGIX 0x8020
	GLX_SAVED_SGIX 0x8021
	GLX_WINDOW_SGIX 0x8022
	GLX_PBUFFER_SGIX 0x8023
	GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
	GLXPbuffer glXCreateGLXPbufferSGIX (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list)
	void glXDestroyGLXPbufferSGIX (Display* dpy, GLXPbuffer pbuf)
	void glXGetSelectedEventSGIX (Display* dpy, GLXDrawable drawable, unsigned long *mask)
	void glXQueryGLXPbufferSGIX (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value)
	void glXSelectEventSGIX (Display* dpy, GLXDrawable drawable, unsigned long mask)
	typedef XID GLXPbufferSGIX
	typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX
