]> git.cworth.org Git - glaze/commitdiff
Add GLX functions as well.
authorCarl Worth <cworth@cworth.org>
Thu, 25 Jul 2013 03:16:36 +0000 (20:16 -0700)
committerCarl Worth <cworth@cworth.org>
Thu, 25 Jul 2013 03:16:36 +0000 (20:16 -0700)
The glx.xml file was downloaded from:

https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/glx.xml

And should be current as of OpenGL 4.4.

glaze.c
specs/Makefile
specs/glx.def [new file with mode: 0644]
specs/glx.xml [new file with mode: 0644]

diff --git a/glaze.c b/glaze.c
index f52463d82d49cc818467f94eda865c2349b18521..af2aade6cbe0f2312cfb00368b3ab240b826f9e1 100644 (file)
--- a/glaze.c
+++ b/glaze.c
@@ -69,3 +69,4 @@ static void *                                                         \
 name ## _resolver (void) { return resolve (#name); }
 
 #include "specs/gl.def"
+#include "specs/glx.def"
index 67f5166e2f028c61968a104b536167f231314977..b48a944917cfee25cf1d5b2feb376c36c491cd44 100644 (file)
@@ -1,4 +1,4 @@
-TARGETS=gl.def
+TARGETS=gl.def glx.def
 
 all: $(TARGETS)
 
diff --git a/specs/glx.def b/specs/glx.def
new file mode 100644 (file)
index 0000000..90c9caa
--- /dev/null
@@ -0,0 +1,117 @@
+GLAZE_API(glXAssociateDMPbufferSGIX)
+GLAZE_API(glXBindChannelToWindowSGIX)
+GLAZE_API(glXBindHyperpipeSGIX)
+GLAZE_API(glXBindSwapBarrierNV)
+GLAZE_API(glXBindSwapBarrierSGIX)
+GLAZE_API(glXBindTexImageEXT)
+GLAZE_API(glXBindVideoCaptureDeviceNV)
+GLAZE_API(glXBindVideoDeviceNV)
+GLAZE_API(glXBindVideoImageNV)
+GLAZE_API(glXChannelRectSGIX)
+GLAZE_API(glXChannelRectSyncSGIX)
+GLAZE_API(glXChooseFBConfig)
+GLAZE_API(glXChooseFBConfigSGIX)
+GLAZE_API(glXChooseVisual)
+GLAZE_API(glXCopyContext)
+GLAZE_API(glXCopyImageSubDataNV)
+GLAZE_API(glXCopySubBufferMESA)
+GLAZE_API(glXCreateContext)
+GLAZE_API(glXCreateContextAttribsARB)
+GLAZE_API(glXCreateContextWithConfigSGIX)
+GLAZE_API(glXCreateGLXPbufferSGIX)
+GLAZE_API(glXCreateGLXPixmap)
+GLAZE_API(glXCreateGLXPixmapMESA)
+GLAZE_API(glXCreateGLXPixmapWithConfigSGIX)
+GLAZE_API(glXCreateGLXVideoSourceSGIX)
+GLAZE_API(glXCreateNewContext)
+GLAZE_API(glXCreatePbuffer)
+GLAZE_API(glXCreatePixmap)
+GLAZE_API(glXCreateWindow)
+GLAZE_API(glXCushionSGI)
+GLAZE_API(glXDestroyContext)
+GLAZE_API(glXDestroyGLXPbufferSGIX)
+GLAZE_API(glXDestroyGLXPixmap)
+GLAZE_API(glXDestroyGLXVideoSourceSGIX)
+GLAZE_API(glXDestroyHyperpipeConfigSGIX)
+GLAZE_API(glXDestroyPbuffer)
+GLAZE_API(glXDestroyPixmap)
+GLAZE_API(glXDestroyWindow)
+GLAZE_API(glXEnumerateVideoCaptureDevicesNV)
+GLAZE_API(glXEnumerateVideoDevicesNV)
+GLAZE_API(glXFreeContextEXT)
+GLAZE_API(glXGetAGPOffsetMESA)
+GLAZE_API(glXGetClientString)
+GLAZE_API(glXGetConfig)
+GLAZE_API(glXGetContextIDEXT)
+GLAZE_API(glXGetCurrentContext)
+GLAZE_API(glXGetCurrentDisplay)
+GLAZE_API(glXGetCurrentDisplayEXT)
+GLAZE_API(glXGetCurrentDrawable)
+GLAZE_API(glXGetCurrentReadDrawable)
+GLAZE_API(glXGetCurrentReadDrawableSGI)
+GLAZE_API(glXGetFBConfigAttrib)
+GLAZE_API(glXGetFBConfigAttribSGIX)
+GLAZE_API(glXGetFBConfigFromVisualSGIX)
+GLAZE_API(glXGetFBConfigs)
+GLAZE_API(glXGetMscRateOML)
+GLAZE_API(glXGetProcAddress)
+GLAZE_API(glXGetProcAddressARB)
+GLAZE_API(glXGetSelectedEvent)
+GLAZE_API(glXGetSelectedEventSGIX)
+GLAZE_API(glXGetSyncValuesOML)
+GLAZE_API(glXGetTransparentIndexSUN)
+GLAZE_API(glXGetVideoDeviceNV)
+GLAZE_API(glXGetVideoInfoNV)
+GLAZE_API(glXGetVideoSyncSGI)
+GLAZE_API(glXGetVisualFromFBConfig)
+GLAZE_API(glXGetVisualFromFBConfigSGIX)
+GLAZE_API(glXHyperpipeAttribSGIX)
+GLAZE_API(glXHyperpipeConfigSGIX)
+GLAZE_API(glXImportContextEXT)
+GLAZE_API(glXIsDirect)
+GLAZE_API(glXJoinSwapGroupNV)
+GLAZE_API(glXJoinSwapGroupSGIX)
+GLAZE_API(glXLockVideoCaptureDeviceNV)
+GLAZE_API(glXMakeContextCurrent)
+GLAZE_API(glXMakeCurrent)
+GLAZE_API(glXMakeCurrentReadSGI)
+GLAZE_API(glXQueryChannelDeltasSGIX)
+GLAZE_API(glXQueryChannelRectSGIX)
+GLAZE_API(glXQueryContext)
+GLAZE_API(glXQueryContextInfoEXT)
+GLAZE_API(glXQueryDrawable)
+GLAZE_API(glXQueryExtension)
+GLAZE_API(glXQueryExtensionsString)
+GLAZE_API(glXQueryFrameCountNV)
+GLAZE_API(glXQueryGLXPbufferSGIX)
+GLAZE_API(glXQueryHyperpipeAttribSGIX)
+GLAZE_API(glXQueryHyperpipeBestAttribSGIX)
+GLAZE_API(glXQueryHyperpipeConfigSGIX)
+GLAZE_API(glXQueryHyperpipeNetworkSGIX)
+GLAZE_API(glXQueryMaxSwapBarriersSGIX)
+GLAZE_API(glXQueryMaxSwapGroupsNV)
+GLAZE_API(glXQueryServerString)
+GLAZE_API(glXQuerySwapGroupNV)
+GLAZE_API(glXQueryVersion)
+GLAZE_API(glXQueryVideoCaptureDeviceNV)
+GLAZE_API(glXReleaseBuffersMESA)
+GLAZE_API(glXReleaseTexImageEXT)
+GLAZE_API(glXReleaseVideoCaptureDeviceNV)
+GLAZE_API(glXReleaseVideoDeviceNV)
+GLAZE_API(glXReleaseVideoImageNV)
+GLAZE_API(glXResetFrameCountNV)
+GLAZE_API(glXSelectEvent)
+GLAZE_API(glXSelectEventSGIX)
+GLAZE_API(glXSendPbufferToVideoNV)
+GLAZE_API(glXSet3DfxModeMESA)
+GLAZE_API(glXSwapBuffers)
+GLAZE_API(glXSwapBuffersMscOML)
+GLAZE_API(glXSwapIntervalEXT)
+GLAZE_API(glXSwapIntervalSGI)
+GLAZE_API(glXUseXFont)
+GLAZE_API(glXWaitForMscOML)
+GLAZE_API(glXWaitForSbcOML)
+GLAZE_API(glXWaitGL)
+GLAZE_API(glXWaitVideoSyncSGI)
+GLAZE_API(glXWaitX)
+
diff --git a/specs/glx.xml b/specs/glx.xml
new file mode 100644 (file)
index 0000000..1b018c5
--- /dev/null
@@ -0,0 +1,1977 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry>
+    <!--
+    Copyright (c) 2013 The Khronos Group Inc.
+
+    Permission is hereby granted, free of charge, to any person obtaining a
+    copy of this software and/or associated documentation files (the
+    "Materials"), to deal in the Materials without restriction, including
+    without limitation the rights to use, copy, modify, merge, publish,
+    distribute, sublicense, and/or sell copies of the Materials, and to
+    permit persons to whom the Materials are furnished to do so, subject to
+    the following conditions:
+
+    The above copyright notice and this permission notice shall be included
+    in all copies or substantial portions of the Materials.
+
+    THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+    MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+    -->
+    <!--
+    This file, glx.xml, is the GLX API Registry. The older ".spec" file
+    format has been retired and will no longer be updated with new
+    extensions and API versions. The canonical version of the registry,
+    together with documentation, schema, and Python generator scripts used
+    to generate C header files for GLX, can always be found in the Khronos
+    Registry at
+        http://www.opengl.org/registry/
+    -->
+
+    <!-- SECTION: GLX type definitions. Does not include X or GL types. -->
+    <types>
+            <!-- These are dependencies GLX types require to be declared legally -->
+        <type name="inttypes"><![CDATA[#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GLX_OML_sync_control extension). */
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <inttypes.h>
+#elif defined(__sun__) || defined(__digital__)
+#include <inttypes.h>
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include <inttypes.h>
+#elif defined(__SCO__) || defined(__USLC__)
+#include <stdint.h>
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) && defined(__GNUC__)
+#include <stdint.h>
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include <inttypes.h>
+#endif
+#endif]]></type>
+        <type name="int32_t" requires="inttypes"/>
+        <type name="int64_t" requires="inttypes"/>
+            <!-- Dummy placeholders for X types -->
+        <type name="Bool"/>
+        <type name="Colormap"/>
+        <type name="Display"/>
+        <type name="Font"/>
+        <type name="Pixmap"/>
+        <type name="Screen"/>
+        <type name="Status"/>
+        <type name="Window"/>
+        <type name="XVisualInfo"/>
+        <type name="GLboolean"/>
+        <type name="GLenum"/>
+        <type name="GLint"/>
+        <type name="GLsizei"/>
+        <type name="GLubyte"/>
+        <type name="GLuint"/>
+        <type name="DMbuffer"/>
+        <type name="DMparams"/>
+        <type name="VLNode"/>
+        <type name="VLPath"/>
+        <type name="VLServer"/>
+            <!-- These are actual GLX types. X types are not included.  -->
+        <type>typedef XID <name>GLXFBConfigID</name>;</type>
+        <type>typedef struct __GLXFBConfigRec *<name>GLXFBConfig</name>;</type>
+        <type>typedef XID <name>GLXContextID</name>;</type>
+        <type>typedef struct __GLXcontextRec *<name>GLXContext</name>;</type>
+        <type>typedef XID <name>GLXPixmap</name>;</type>
+        <type>typedef XID <name>GLXDrawable</name>;</type>
+        <type>typedef XID <name>GLXWindow</name>;</type>
+        <type>typedef XID <name>GLXPbuffer</name>;</type>
+        <type>typedef void (<apientry /> *<name>__GLXextFuncPtr</name>)(void);</type>
+        <type>typedef XID <name>GLXVideoCaptureDeviceNV</name>;</type>
+        <type>typedef unsigned int <name>GLXVideoDeviceNV</name>;</type>
+        <type>typedef XID <name>GLXVideoSourceSGIX</name>;</type>
+        <type>typedef XID <name>GLXFBConfigIDSGIX</name>;</type>
+        <type>typedef struct __GLXFBConfigRec *<name>GLXFBConfigSGIX</name>;</type>
+        <type>typedef XID <name>GLXPbufferSGIX</name>;</type>
+            <!-- Declaring C structures in XML is a pain indentation-wise -->
+        <type>typedef struct {
+    int event_type;             /* GLX_DAMAGED or GLX_SAVED */
+    int draw_type;              /* GLX_WINDOW or GLX_PBUFFER */
+    unsigned long serial;       /* # of last request processed by server */
+    Bool send_event;            /* true if this came for SendEvent request */
+    Display *display;           /* display the event was read from */
+    GLXDrawable drawable;       /* XID of Drawable */
+    unsigned int buffer_mask;   /* mask indicating which buffers are affected */
+    unsigned int aux_buffer;    /* which aux buffer was affected */
+    int x, y;
+    int width, height;
+    int count;                  /* if nonzero, at least this many more */
+} <name>GLXPbufferClobberEvent</name>;</type>
+
+        <type>typedef struct {
+    int type;
+    unsigned long serial;       /* # of last request processed by server */
+    Bool send_event;            /* true if this came from a SendEvent request */
+    Display *display;           /* Display the event was read from */
+    GLXDrawable drawable;       /* drawable on which event was requested in event mask */
+    int event_type;
+    int64_t ust;
+    int64_t msc;
+    int64_t sbc;
+} <name>GLXBufferSwapComplete</name>;</type>
+
+        <type>typedef union __GLXEvent {
+    GLXPbufferClobberEvent glxpbufferclobber;
+    GLXBufferSwapComplete glxbufferswapcomplete;
+    long pad[24];
+} <name>GLXEvent</name>;</type>
+
+        <type>typedef struct {
+    int type;
+    unsigned long serial;   /* # of last request processed by server */
+    Bool send_event;        /* true if this came for SendEvent request */
+    Display *display;       /* display the event was read from */
+    GLXDrawable drawable;   /* i.d. of Drawable */
+    int event_type;         /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
+    int draw_type;          /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
+    unsigned int mask;      /* mask indicating which buffers are affected*/
+    int x, y;
+    int width, height;
+    int count;              /* if nonzero, at least this many more */
+} <name>GLXBufferClobberEventSGIX</name>;</type>
+
+        <type>typedef struct {
+    char    pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int     networkId;
+} <name>GLXHyperpipeNetworkSGIX</name>;</type>
+
+        <type>typedef struct {
+    char    pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int     channel;
+    unsigned int participationType;
+    int     timeSlice;
+} <name>GLXHyperpipeConfigSGIX</name>;</type>
+
+        <type>typedef struct {
+    char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
+    int destXOrigin, destYOrigin, destWidth, destHeight;
+} <name>GLXPipeRect</name>;</type>
+
+        <type>typedef struct {
+    char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int XOrigin, YOrigin, maxHeight, maxWidth;
+} <name>GLXPipeRectLimits</name>;</type>
+
+    </types>
+
+    <!-- SECTION: GLX enumerant (token) definitions. -->
+
+    <!-- This is modest abuse of the <enum> mechanism but there's no
+         better way to inject this #define at present (maybe a <string>
+         tag?). -->
+    <enums namespace="GLXStrings">
+        <enum value="&quot;GLX&quot;"  name="GLX_EXTENSION_NAME"/>
+    </enums>
+
+    <!-- Bitmasks each have their own namespace, as do a few other
+         categories of enumeration -->
+
+    <enums namespace="GLXStringName">
+        <enum value="0x1"           name="GLX_VENDOR"/>
+        <enum value="0x2"           name="GLX_VERSION"/>
+        <enum value="0x3"           name="GLX_EXTENSIONS"/>
+    </enums>
+
+    <enums namespace="GLXMesa3DFXMode" vendor="MESA">
+        <enum value="0x1"           name="GLX_3DFX_WINDOW_MODE_MESA"/>
+        <enum value="0x2"           name="GLX_3DFX_FULLSCREEN_MODE_MESA"/>
+    </enums>
+
+    <enums namespace="GLXEventCodes">
+        <!-- __GLX_NUMBER_EVENTS is set to 17 to account for the
+             BufferClobberSGIX event. This helps initialization if the
+             server supports the extension and the client doesn't. -->
+        <enum value="0"             name="GLX_PbufferClobber"/>
+        <enum value="1"             name="GLX_BufferSwapComplete"/>
+        <enum value="17"            name="__GLX_NUMBER_EVENTS"/>
+    </enums>
+
+    <enums namespace="GLXErrorCode">
+        <enum value="1"             name="GLX_BAD_SCREEN"/>
+        <enum value="2"             name="GLX_BAD_ATTRIBUTE"/>
+        <enum value="3"             name="GLX_NO_EXTENSION"/>
+        <enum value="4"             name="GLX_BAD_VISUAL"/>
+        <enum value="5"             name="GLX_BAD_CONTEXT"/>
+        <enum value="6"             name="GLX_BAD_VALUE"/>
+        <enum value="7"             name="GLX_BAD_ENUM"/>
+        <enum value="91"            name="GLX_BAD_HYPERPIPE_CONFIG_SGIX"/>
+        <enum value="92"            name="GLX_BAD_HYPERPIPE_SGIX"/>
+    </enums>
+
+    <enums namespace="GLXDrawableTypeMask" type="bitmask" comment="DRAWABLE_TYPE bits">
+        <enum value="0x00000001"    name="GLX_WINDOW_BIT"/>
+        <enum value="0x00000001"    name="GLX_WINDOW_BIT_SGIX"/>
+        <enum value="0x00000002"    name="GLX_PIXMAP_BIT"/>
+        <enum value="0x00000002"    name="GLX_PIXMAP_BIT_SGIX"/>
+        <enum value="0x00000004"    name="GLX_PBUFFER_BIT"/>
+        <enum value="0x00000004"    name="GLX_PBUFFER_BIT_SGIX"/>
+    </enums>
+
+    <enums namespace="GLXRenderTypeMask" type="bitmask" comment="RENDER_TYPE bits">
+        <enum value="0x00000001"    name="GLX_RGBA_BIT"/>
+        <enum value="0x00000001"    name="GLX_RGBA_BIT_SGIX"/>
+        <enum value="0x00000002"    name="GLX_COLOR_INDEX_BIT"/>
+        <enum value="0x00000002"    name="GLX_COLOR_INDEX_BIT_SGIX"/>
+        <enum value="0x00000004"    name="GLX_RGBA_FLOAT_BIT_ARB"/>
+        <enum value="0x00000008"    name="GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT"/>
+    </enums>
+
+    <enums namespace="GLXSyncType" type="bitmask" comment="ChannelRectSyncSGIX bits">
+        <enum value="0x00000000"    name="GLX_SYNC_FRAME_SGIX"/>
+        <enum value="0x00000001"    name="GLX_SYNC_SWAP_SGIX"/>
+    </enums>
+
+    <enums namespace="GLXEventMask" type="bitmask" comment="SelectEvent mask">
+        <enum value="0x04000000"    name="GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK"/>
+        <enum value="0x08000000"    name="GLX_PBUFFER_CLOBBER_MASK"/>
+        <enum value="0x08000000"    name="GLX_BUFFER_CLOBBER_MASK_SGIX"/>
+    </enums>
+
+    <enums namespace="GLXPbufferClobberMask" type="bitmask">
+        <enum value="0x00000001"    name="GLX_FRONT_LEFT_BUFFER_BIT"/>
+        <enum value="0x00000001"    name="GLX_FRONT_LEFT_BUFFER_BIT_SGIX"/>
+        <enum value="0x00000002"    name="GLX_FRONT_RIGHT_BUFFER_BIT"/>
+        <enum value="0x00000002"    name="GLX_FRONT_RIGHT_BUFFER_BIT_SGIX"/>
+        <enum value="0x00000004"    name="GLX_BACK_LEFT_BUFFER_BIT"/>
+        <enum value="0x00000004"    name="GLX_BACK_LEFT_BUFFER_BIT_SGIX"/>
+        <enum value="0x00000008"    name="GLX_BACK_RIGHT_BUFFER_BIT"/>
+        <enum value="0x00000008"    name="GLX_BACK_RIGHT_BUFFER_BIT_SGIX"/>
+        <enum value="0x00000010"    name="GLX_AUX_BUFFERS_BIT"/>
+        <enum value="0x00000010"    name="GLX_AUX_BUFFERS_BIT_SGIX"/>
+        <enum value="0x00000020"    name="GLX_DEPTH_BUFFER_BIT"/>
+        <enum value="0x00000020"    name="GLX_DEPTH_BUFFER_BIT_SGIX"/>
+        <enum value="0x00000040"    name="GLX_STENCIL_BUFFER_BIT"/>
+        <enum value="0x00000040"    name="GLX_STENCIL_BUFFER_BIT_SGIX"/>
+        <enum value="0x00000080"    name="GLX_ACCUM_BUFFER_BIT"/>
+        <enum value="0x00000080"    name="GLX_ACCUM_BUFFER_BIT_SGIX"/>
+        <enum value="0x00000100"    name="GLX_SAMPLE_BUFFERS_BIT_SGIX"/>
+    </enums>
+
+    <enums namespace="GLXHyperpipeTypeMask" type="bitmask">
+        <enum value="0x00000001"    name="GLX_HYPERPIPE_DISPLAY_PIPE_SGIX"/>                     <!-- SGIX_hyperpipe                                 -->
+        <enum value="0x00000002"    name="GLX_HYPERPIPE_RENDER_PIPE_SGIX"/>                      <!--   "                                            -->
+    </enums>
+
+    <enums namespace="GLXHyperpipeAttribSGIX" type="bitmask">
+        <enum value="0x00000001"    name="GLX_PIPE_RECT_SGIX"/>
+        <enum value="0x00000002"    name="GLX_PIPE_RECT_LIMITS_SGIX"/>
+        <enum value="0x00000003"    name="GLX_HYPERPIPE_STEREO_SGIX"/>
+        <enum value="0x00000004"    name="GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX"/>
+    </enums>
+
+    <enums namespace="GLXBindToTextureTargetMask" type="bitmask">
+        <enum value="0x00000001"    name="GLX_TEXTURE_1D_BIT_EXT"/>
+        <enum value="0x00000002"    name="GLX_TEXTURE_2D_BIT_EXT"/>
+        <enum value="0x00000004"    name="GLX_TEXTURE_RECTANGLE_BIT_EXT"/>
+    </enums>
+
+    <enums namespace="GLXContextFlags" type="bitmask" comment="CONTEXT_FLAGS_ARB bits (shared with WGL/GL)">
+        <enum value="0x00000001"    name="GLX_CONTEXT_DEBUG_BIT_ARB"/>
+        <enum value="0x00000002"    name="GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB"/>
+        <enum value="0x00000004"    name="GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB"/>
+        <enum value="0x00000008"    name="GLX_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+    </enums>
+
+    <enums namespace="GLXContextProfileMask" type="bitmask" comment="CONTEXT_PROFILE_MASK_ARB bits">
+        <enum value="0x00000001"    name="GLX_CONTEXT_CORE_PROFILE_BIT_ARB"/>
+        <enum value="0x00000002"    name="GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB"/>
+        <enum value="0x00000004"    name="GLX_CONTEXT_ES_PROFILE_BIT_EXT"/>
+        <enum value="0x00000004"    name="GLX_CONTEXT_ES2_PROFILE_BIT_EXT" alias="GLX_CONTEXT_ES_PROFILE_BIT_EXT"/>
+    </enums>
+
+    <enums namespace="GLXHyperpipeMiscSGIX">
+        <enum value="80"            name="GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x0000" end="0x2FFF" vendor="ARB"           comment="Miscellaneous OpenGL 1.0/1.1 enums. Most parts of this range are unused and should remain unused."/>
+
+    <enums namespace="GLX" group="SpecialNumbers"  vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
+        <enum value="0xFFFFFFFF"    name="GLX_DONT_CARE"/>                                       <!-- for ChooseFBConfig attributes                  -->
+    </enums>
+
+    <enums namespace="GLX" group="GLXAttribute" vendor="ARB" comment="Visual attributes">
+        <enum value="1"             name="GLX_USE_GL"/>
+        <enum value="2"             name="GLX_BUFFER_SIZE"/>
+        <enum value="3"             name="GLX_LEVEL"/>
+        <enum value="4"             name="GLX_RGBA"/>
+        <enum value="5"             name="GLX_DOUBLEBUFFER"/>
+        <enum value="6"             name="GLX_STEREO"/>
+        <enum value="7"             name="GLX_AUX_BUFFERS"/>
+        <enum value="8"             name="GLX_RED_SIZE"/>
+        <enum value="9"             name="GLX_GREEN_SIZE"/>
+        <enum value="10"            name="GLX_BLUE_SIZE"/>
+        <enum value="11"            name="GLX_ALPHA_SIZE"/>
+        <enum value="12"            name="GLX_DEPTH_SIZE"/>
+        <enum value="13"            name="GLX_STENCIL_SIZE"/>
+        <enum value="14"            name="GLX_ACCUM_RED_SIZE"/>
+        <enum value="15"            name="GLX_ACCUM_GREEN_SIZE"/>
+        <enum value="16"            name="GLX_ACCUM_BLUE_SIZE"/>
+        <enum value="17"            name="GLX_ACCUM_ALPHA_SIZE"/>
+            <unused start="18" end="0x1F"/>
+        <enum value="0x20"          name="GLX_CONFIG_CAVEAT"/>
+        <enum value="0x20"          name="GLX_VISUAL_CAVEAT_EXT"/>
+        <enum value="0x22"          name="GLX_X_VISUAL_TYPE"/>
+        <enum value="0x22"          name="GLX_X_VISUAL_TYPE_EXT"/>
+        <enum value="0x23"          name="GLX_TRANSPARENT_TYPE"/>
+        <enum value="0x23"          name="GLX_TRANSPARENT_TYPE_EXT"/>
+        <enum value="0x24"          name="GLX_TRANSPARENT_INDEX_VALUE"/>
+        <enum value="0x24"          name="GLX_TRANSPARENT_INDEX_VALUE_EXT"/>
+        <enum value="0x25"          name="GLX_TRANSPARENT_RED_VALUE"/>
+        <enum value="0x25"          name="GLX_TRANSPARENT_RED_VALUE_EXT"/>
+        <enum value="0x26"          name="GLX_TRANSPARENT_GREEN_VALUE"/>
+        <enum value="0x26"          name="GLX_TRANSPARENT_GREEN_VALUE_EXT"/>
+        <enum value="0x27"          name="GLX_TRANSPARENT_BLUE_VALUE"/>
+        <enum value="0x27"          name="GLX_TRANSPARENT_BLUE_VALUE_EXT"/>
+        <enum value="0x28"          name="GLX_TRANSPARENT_ALPHA_VALUE"/>
+        <enum value="0x28"          name="GLX_TRANSPARENT_ALPHA_VALUE_EXT"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x1F00" end="0x1F02" vendor="AMD" comment="Equivalent to corresponding WGL/GL tokens">
+        <enum value="0x1F00"        name="GLX_GPU_VENDOR_AMD"/>
+        <enum value="0x1F01"        name="GLX_GPU_RENDERER_STRING_AMD"/>
+        <enum value="0x1F02"        name="GLX_GPU_OPENGL_VERSION_STRING_AMD"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x2070" end="0x209F" vendor="ARB" comment="Shared with WGL; synchronize create_context enums">
+        <enum value="0x2091"        name="GLX_CONTEXT_MAJOR_VERSION_ARB"/>
+        <enum value="0x2092"        name="GLX_CONTEXT_MINOR_VERSION_ARB"/>
+            <!-- 0x2093 used for WGL_CONTEXT_LAYER_PLANE_ARB -->
+        <enum value="0x2094"        name="GLX_CONTEXT_FLAGS_ARB"/>
+            <!-- 0x2095 collides with WGL_ERROR_INVALID_VERSION_ARB! -->
+        <enum value="0x2095"        name="GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB"/>
+            <!-- 0x2096 used for WGL_ERROR_INVALID_PROFILE_ARB -->
+            <unused start="0x2097" end="0x209F"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x20A0" end="0x219F" vendor="NV" comment="Shared with WGL">
+        <enum value="0x20B0"        name="GLX_FLOAT_COMPONENTS_NV"/>
+        <enum value="0x20B1"        name="GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT"/>
+        <enum value="0x20B2"        name="GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB"/>
+        <enum value="0x20B2"        name="GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+        <enum value="0x20B3"        name="GLX_COLOR_SAMPLES_NV"/>
+            <unused start="0x20B4" end="0x20B8"/>
+        <enum value="0x20B9"        name="GLX_RGBA_FLOAT_TYPE_ARB"/>
+            <unused start="0x20BA" end="0x20C2"/>
+        <enum value="0x20C3"        name="GLX_VIDEO_OUT_COLOR_NV"/>
+        <enum value="0x20C4"        name="GLX_VIDEO_OUT_ALPHA_NV"/>
+        <enum value="0x20C5"        name="GLX_VIDEO_OUT_DEPTH_NV"/>
+        <enum value="0x20C6"        name="GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV"/>
+        <enum value="0x20C7"        name="GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV"/>
+        <enum value="0x20C8"        name="GLX_VIDEO_OUT_FRAME_NV"/>
+        <enum value="0x20C9"        name="GLX_VIDEO_OUT_FIELD_1_NV"/>
+        <enum value="0x20CA"        name="GLX_VIDEO_OUT_FIELD_2_NV"/>
+        <enum value="0x20CB"        name="GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV"/>
+        <enum value="0x20CC"        name="GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV"/>
+        <enum value="0x20CD"        name="GLX_DEVICE_ID_NV"/>
+        <enum value="0x20CE"        name="GLX_UNIQUE_ID_NV"/>
+        <enum value="0x20CF"        name="GLX_NUM_VIDEO_CAPTURE_SLOTS_NV"/>
+        <enum value="0x20D0"        name="GLX_BIND_TO_TEXTURE_RGB_EXT"/>
+        <enum value="0x20D1"        name="GLX_BIND_TO_TEXTURE_RGBA_EXT"/>
+        <enum value="0x20D2"        name="GLX_BIND_TO_MIPMAP_TEXTURE_EXT"/>
+        <enum value="0x20D3"        name="GLX_BIND_TO_TEXTURE_TARGETS_EXT"/>
+        <enum value="0x20D4"        name="GLX_Y_INVERTED_EXT"/>
+        <enum value="0x20D5"        name="GLX_TEXTURE_FORMAT_EXT"/>
+        <enum value="0x20D6"        name="GLX_TEXTURE_TARGET_EXT"/>
+        <enum value="0x20D7"        name="GLX_MIPMAP_TEXTURE_EXT"/>
+        <enum value="0x20D8"        name="GLX_TEXTURE_FORMAT_NONE_EXT"/>
+        <enum value="0x20D9"        name="GLX_TEXTURE_FORMAT_RGB_EXT"/>
+        <enum value="0x20DA"        name="GLX_TEXTURE_FORMAT_RGBA_EXT"/>
+        <enum value="0x20DB"        name="GLX_TEXTURE_1D_EXT"/>
+        <enum value="0x20DC"        name="GLX_TEXTURE_2D_EXT"/>
+        <enum value="0x20DD"        name="GLX_TEXTURE_RECTANGLE_EXT"/>
+        <enum value="0x20DE"        name="GLX_FRONT_LEFT_EXT"/>
+        <enum value="0x20DF"        name="GLX_FRONT_RIGHT_EXT"/>
+        <enum value="0x20E0"        name="GLX_BACK_LEFT_EXT"/>
+        <enum value="0x20E1"        name="GLX_BACK_RIGHT_EXT"/>
+        <enum value="0x20DE"        name="GLX_FRONT_EXT"    alias="GLX_FRONT_LEFT_EXT"/>
+        <enum value="0x20E0"        name="GLX_BACK_EXT"     alias="GLX_BACK_LEFT_EXT"/>
+        <enum value="0x20E2"        name="GLX_AUX0_EXT"/>
+        <enum value="0x20E3"        name="GLX_AUX1_EXT"/>
+        <enum value="0x20E4"        name="GLX_AUX2_EXT"/>
+        <enum value="0x20E5"        name="GLX_AUX3_EXT"/>
+        <enum value="0x20E6"        name="GLX_AUX4_EXT"/>
+        <enum value="0x20E7"        name="GLX_AUX5_EXT"/>
+        <enum value="0x20E8"        name="GLX_AUX6_EXT"/>
+        <enum value="0x20E9"        name="GLX_AUX7_EXT"/>
+        <enum value="0x20EA"        name="GLX_AUX8_EXT"/>
+        <enum value="0x20EB"        name="GLX_AUX9_EXT"/>
+            <unused start="0x20EC" end="0x20EF"/>
+        <enum value="0x20F0"        name="GLX_NUM_VIDEO_SLOTS_NV"/>
+        <enum value="0x20F1"        name="GLX_SWAP_INTERVAL_EXT"/>
+        <enum value="0x20F2"        name="GLX_MAX_SWAP_INTERVAL_EXT"/>
+        <enum value="0x20F3"        name="GLX_LATE_SWAPS_TEAR_EXT"/>
+        <enum value="0x20F4"        name="GLX_BACK_BUFFER_AGE_EXT"/>
+            <unused start="0x20F5" end="0x219F"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x21A0" end="0x21AF" vendor="AMD" comment="Shared with WGL; synchronize create_context enums">
+            <unused start="0x21A0" end="0x21A1" comment="used by WGL extensions"/>
+        <enum value="0x21A2"        name="GLX_GPU_FASTEST_TARGET_GPUS_AMD"/>
+        <enum value="0x21A3"        name="GLX_GPU_RAM_AMD"/>
+        <enum value="0x21A4"        name="GLX_GPU_CLOCK_AMD"/>
+        <enum value="0x21A5"        name="GLX_GPU_NUM_PIPES_AMD"/>
+        <enum value="0x21A6"        name="GLX_GPU_NUM_SIMD_AMD"/>
+        <enum value="0x21A7"        name="GLX_GPU_NUM_RB_AMD"/>
+        <enum value="0x21A8"        name="GLX_GPU_NUM_SPI_AMD"/>
+            <unused start="0x21A9" end="0x21AF"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x8000" end="0x804F" vendor="ARB">
+        <enum value="0x8000"        name="GLX_NONE"/>                                            <!-- several attribute values                       -->
+        <enum value="0x8001"        name="GLX_SLOW_CONFIG"/>                                     <!-- CONFIG_CAVEAT attribute value                  -->
+        <enum value="0x8002"        name="GLX_TRUE_COLOR"/>                                      <!-- X_VISUAL_TYPE attribute value                  -->
+        <enum value="0x8003"        name="GLX_DIRECT_COLOR"/>                                    <!--   "                                            -->
+        <enum value="0x8004"        name="GLX_PSEUDO_COLOR"/>                                    <!--   "                                            -->
+        <enum value="0x8005"        name="GLX_STATIC_COLOR"/>                                    <!--   "                                            -->
+        <enum value="0x8006"        name="GLX_GRAY_SCALE"/>                                      <!--   "                                            -->
+        <enum value="0x8007"        name="GLX_STATIC_GRAY"/>                                     <!--   "                                            -->
+        <enum value="0x8008"        name="GLX_TRANSPARENT_RGB"/>                                 <!-- TRANSPARENT_TYPE attribute value               -->
+        <enum value="0x8009"        name="GLX_TRANSPARENT_INDEX"/>                               <!--   "                                            -->
+        <enum value="0x800B"        name="GLX_VISUAL_ID"/>                                       <!-- Context attribute                              -->
+        <enum value="0x800C"        name="GLX_SCREEN"/>                                          <!--   "                                            -->
+        <enum value="0x800D"        name="GLX_NON_CONFORMANT_CONFIG"/>                           <!-- CONFIG_CAVEAT attribute value                  -->
+        <enum value="0x8010"        name="GLX_DRAWABLE_TYPE"/>                                   <!-- FBConfig attribute                             -->
+        <enum value="0x8011"        name="GLX_RENDER_TYPE"/>                                     <!--   "                                            -->
+        <enum value="0x8012"        name="GLX_X_RENDERABLE"/>                                    <!--   "                                            -->
+        <enum value="0x8013"        name="GLX_FBCONFIG_ID"/>                                     <!--   "                                            -->
+        <enum value="0x8014"        name="GLX_RGBA_TYPE"/>                                       <!-- CreateNewContext render_type value             -->
+        <enum value="0x8015"        name="GLX_COLOR_INDEX_TYPE"/>                                <!--   "                                            -->
+        <enum value="0x8016"        name="GLX_MAX_PBUFFER_WIDTH"/>                               <!-- FBConfig attribute                             -->
+        <enum value="0x8017"        name="GLX_MAX_PBUFFER_HEIGHT"/>                              <!--   "                                            -->
+        <enum value="0x8018"        name="GLX_MAX_PBUFFER_PIXELS"/>                              <!--   "                                            -->
+        <enum value="0x801B"        name="GLX_PRESERVED_CONTENTS"/>                              <!-- CreateGLXPbuffer attribute                     -->
+        <enum value="0x801C"        name="GLX_LARGEST_PBUFFER"/>                                 <!--   "                                            -->
+        <enum value="0x801D"        name="GLX_WIDTH"/>                                           <!-- Drawable attribute                             -->
+        <enum value="0x801E"        name="GLX_HEIGHT"/>                                          <!--   "                                            -->
+        <enum value="0x801F"        name="GLX_EVENT_MASK"/>                                      <!--   "                                            -->
+        <enum value="0x8020"        name="GLX_DAMAGED"/>                                         <!-- PbufferClobber event_type value                -->
+        <enum value="0x8021"        name="GLX_SAVED"/>                                           <!--   "                                            -->
+        <enum value="0x8022"        name="GLX_WINDOW"/>                                          <!-- PbufferClobber draw_type value                 -->
+        <enum value="0x8023"        name="GLX_PBUFFER"/>                                         <!--   "                                            -->
+        <enum value="0x8000"        name="GLX_NONE_EXT"/>                                        <!-- several EXT attribute values                   -->
+        <enum value="0x8001"        name="GLX_SLOW_VISUAL_EXT"/>                                 <!-- VISUAL_CAVEAT_EXT attribute value              -->
+        <enum value="0x8002"        name="GLX_TRUE_COLOR_EXT"/>                                  <!-- X_VISUAL_TYPE_EXT attribute value              -->
+        <enum value="0x8003"        name="GLX_DIRECT_COLOR_EXT"/>                                <!--   "                                            -->
+        <enum value="0x8004"        name="GLX_PSEUDO_COLOR_EXT"/>                                <!--   "                                            -->
+        <enum value="0x8005"        name="GLX_STATIC_COLOR_EXT"/>                                <!--   "                                            -->
+        <enum value="0x8006"        name="GLX_GRAY_SCALE_EXT"/>                                  <!--   "                                            -->
+        <enum value="0x8007"        name="GLX_STATIC_GRAY_EXT"/>                                 <!--   "                                            -->
+        <enum value="0x8008"        name="GLX_TRANSPARENT_RGB_EXT"/>                             <!-- TRANSPARENT_TYPE_EXT attribute value           -->
+        <enum value="0x8009"        name="GLX_TRANSPARENT_INDEX_EXT"/>                           <!--   "                                            -->
+        <enum value="0x800A"        name="GLX_SHARE_CONTEXT_EXT"/>                               <!-- QueryContextInfoEXT attribute                  -->
+        <enum value="0x800B"        name="GLX_VISUAL_ID_EXT"/>                                   <!--   "                                            -->
+        <enum value="0x800C"        name="GLX_SCREEN_EXT"/>                                      <!--   "                                            -->
+        <enum value="0x800D"        name="GLX_NON_CONFORMANT_VISUAL_EXT"/>                       <!-- VISUAL_CAVEAT_EXT attribute value              -->
+        <enum value="0x8010"        name="GLX_DRAWABLE_TYPE_SGIX"/>                              <!-- FBConfigSGIX attribute                         -->
+        <enum value="0x8011"        name="GLX_RENDER_TYPE_SGIX"/>                                <!--   "                                            -->
+        <enum value="0x8012"        name="GLX_X_RENDERABLE_SGIX"/>                               <!--   "                                            -->
+        <enum value="0x8013"        name="GLX_FBCONFIG_ID_SGIX"/>                                <!--   "                                            -->
+        <enum value="0x8014"        name="GLX_RGBA_TYPE_SGIX"/>                                  <!-- CreateContextWithConfigSGIX render_type value  -->
+        <enum value="0x8015"        name="GLX_COLOR_INDEX_TYPE_SGIX"/>                           <!--   "                                            -->
+        <enum value="0x8016"        name="GLX_MAX_PBUFFER_WIDTH_SGIX"/>                          <!-- FBConfigSGIX attribute                         -->
+        <enum value="0x8017"        name="GLX_MAX_PBUFFER_HEIGHT_SGIX"/>                         <!--   "                                            -->
+        <enum value="0x8018"        name="GLX_MAX_PBUFFER_PIXELS_SGIX"/>                         <!--   "                                            -->
+        <enum value="0x8019"        name="GLX_OPTIMAL_PBUFFER_WIDTH_SGIX"/>                      <!--   "                                            -->
+        <enum value="0x801A"        name="GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX"/>                     <!--   "                                            -->
+        <enum value="0x801B"        name="GLX_PRESERVED_CONTENTS_SGIX"/>                         <!-- PbufferSGIX attribute                          -->
+        <enum value="0x801C"        name="GLX_LARGEST_PBUFFER_SGIX"/>                            <!--   "                                            -->
+        <enum value="0x801D"        name="GLX_WIDTH_SGIX"/>                                      <!--   "                                            -->
+        <enum value="0x801E"        name="GLX_HEIGHT_SGIX"/>                                     <!--   "                                            -->
+        <enum value="0x801F"        name="GLX_EVENT_MASK_SGIX"/>                                 <!--   "                                            -->
+        <enum value="0x8020"        name="GLX_DAMAGED_SGIX"/>                                    <!-- BufferClobberSGIX event_type value             -->
+        <enum value="0x8021"        name="GLX_SAVED_SGIX"/>                                      <!--   "                                            -->
+        <enum value="0x8022"        name="GLX_WINDOW_SGIX"/>                                     <!-- BufferClobberSGIX draw_type value              -->
+        <enum value="0x8023"        name="GLX_PBUFFER_SGIX"/>                                    <!--   "                                            -->
+        <enum value="0x8024"        name="GLX_DIGITAL_MEDIA_PBUFFER_SGIX"/>                      <!-- PbufferSGIX attribute                          -->
+        <enum value="0x8025"        name="GLX_BLENDED_RGBA_SGIS"/>                               <!-- TRANSPARENT_TYPE_EXT attribute value           -->
+        <enum value="0x8026"        name="GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS"/>                 <!-- Visual attribute (shared_multisample)          -->
+        <enum value="0x8027"        name="GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS"/>                <!--   "                                            -->
+        <enum value="0x8028"        name="GLX_VISUAL_SELECT_GROUP_SGIX"/>                        <!-- Visual attribute (visual_select_group)         -->
+            <unused start="0x8029" end="0x802F"/>
+        <enum value="0x8030"        name="GLX_HYPERPIPE_ID_SGIX"/>                               <!-- Associated hyperpipe ID (SGIX_hyperpipe)       -->
+            <unused start="0x8031" end="0x803F"/>
+        <enum value="0x8040"        name="GLX_PBUFFER_HEIGHT"/>                                  <!-- CreateGLXPbuffer attribute                     -->
+        <enum value="0x8041"        name="GLX_PBUFFER_WIDTH"/>                                   <!--   "                                            -->
+            <unused start="0x8042" end="0x804F"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x8050" end="0x804F" vendor="3DFX">
+        <enum value="0x8050"        name="GLX_SAMPLE_BUFFERS_3DFX"/>
+        <enum value="0x8051"        name="GLX_SAMPLES_3DFX"/>
+            <unused start="0x8052" end="0x805F"/>
+    </enums>
+
+
+    <enums namespace="GLX" start="0x8060" end="0x806F" vendor="OML">
+        <enum value="0x8060"        name="GLX_SWAP_METHOD_OML"/>
+        <enum value="0x8061"        name="GLX_SWAP_EXCHANGE_OML"/>
+        <enum value="0x8062"        name="GLX_SWAP_COPY_OML"/>
+        <enum value="0x8063"        name="GLX_SWAP_UNDEFINED_OML"/>
+            <unused start="0x8064" end="0x806F"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x8070" end="0x816F" vendor="NV">
+            <unused start="0x8070" end="0x816F"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x8170" end="0x817F" vendor="SUN">
+            <unused start="0x8170" end="0x817F"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x8180" end="0x818F" vendor="INTEL">
+        <enum value="0x8180"        name="GLX_EXCHANGE_COMPLETE_INTEL"/>
+        <enum value="0x8181"        name="GLX_COPY_COMPLETE_INTEL"/>
+        <enum value="0x8182"        name="GLX_FLIP_COMPLETE_INTEL"/>
+            <unused start="0x8183" end="0x818F"/>
+    </enums>
+
+<!-- Please remember that new enumerant allocations must be obtained by
+     request to the Khronos API registrar (see comments at the top of this
+     file) File requests in the Khronos Bugzilla, OpenGL project, Registry
+     component. Also note that some GLX enum values are shared with GL and
+     WGL, and new ranges should be allocated with such overlaps in mind. -->
+
+<!-- Reservable for future use: 0x8190-0x824F.
+     To generate a new range, allocate multiples of 16 starting at the
+     lowest available point in this block. -->
+    <enums namespace="GLX" start="0x8190" end="0x824F" vendor="ARB">
+            <unused start="0x8190" end="0x824F" comment="Reserved for future use"/>
+    </enums>
+
+    <enums namespace="GL" start="0x8250" end="0x826F" vendor="ARB" comment="Values shared with GL. Do not allocate additional values in this range.">
+        <enum value="0x8252"        name="GLX_LOSE_CONTEXT_ON_RESET_ARB"/>
+        <enum value="0x8256"        name="GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB"/>
+        <enum value="0x8261"        name="GLX_NO_RESET_NOTIFICATION_ARB"/>
+    </enums>
+
+    <enums namespace="GLX" start="0x8270" end="99999"  vendor="ARB" comment="RESERVED FOR FUTURE ALLOCATIONS BY KHRONOS">
+            <unused start="0x8270" end="0x9125"/>
+        <enum value="0x9126"        name="GLX_CONTEXT_PROFILE_MASK_ARB" comment="Value shared with GL"/>
+            <unused start="0x9127" end="99999"/>
+    </enums>
+
+<!-- Historical allocations. Do not allocate new values in this space. -->
+    <enums namespace="GLX" start="100000" end="100001" vendor="ARB" comment="Visual attributes for multisampling">
+        <enum value="100000"        name="GLX_SAMPLE_BUFFERS"/>
+        <enum value="100000"        name="GLX_SAMPLE_BUFFERS_ARB"/>
+        <enum value="100000"        name="GLX_SAMPLE_BUFFERS_SGIS"/>
+        <enum value="100001"        name="GLX_SAMPLES"/>
+        <enum value="100001"        name="GLX_SAMPLES_ARB"/>
+        <enum value="100001"        name="GLX_SAMPLES_SGIS"/>
+        <enum value="100001"        name="GLX_COVERAGE_SAMPLES_NV"/>
+    </enums>
+
+
+    <!-- SECTION: GLX command definitions. -->
+    <commands namespace="GLX">
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXAssociateDMPbufferSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXPbufferSGIX</ptype> <name>pbuffer</name></param>
+            <param><ptype>DMparams</ptype> *<name>params</name></param>
+            <param><ptype>DMbuffer</ptype> <name>dmbuffer</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXBindChannelToWindowSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>display</name></param>
+            <param>int <name>screen</name></param>
+            <param>int <name>channel</name></param>
+            <param><ptype>Window</ptype> <name>window</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXBindHyperpipeSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>hpId</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXBindSwapBarrierNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLuint</ptype> <name>group</name></param>
+            <param><ptype>GLuint</ptype> <name>barrier</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXBindSwapBarrierSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param>int <name>barrier</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXBindTexImageEXT</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param>int <name>buffer</name></param>
+            <param>const int *<name>attrib_list</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXBindVideoCaptureDeviceNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>unsigned int <name>video_capture_slot</name></param>
+            <param><ptype>GLXVideoCaptureDeviceNV</ptype> <name>device</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXBindVideoDeviceNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>unsigned int <name>video_slot</name></param>
+            <param>unsigned int <name>video_device</name></param>
+            <param>const int *<name>attrib_list</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXBindVideoImageNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXVideoDeviceNV</ptype> <name>VideoDevice</name></param>
+            <param><ptype>GLXPbuffer</ptype> <name>pbuf</name></param>
+            <param>int <name>iVideoBuffer</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXChannelRectSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>display</name></param>
+            <param>int <name>screen</name></param>
+            <param>int <name>channel</name></param>
+            <param>int <name>x</name></param>
+            <param>int <name>y</name></param>
+            <param>int <name>w</name></param>
+            <param>int <name>h</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXChannelRectSyncSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>display</name></param>
+            <param>int <name>screen</name></param>
+            <param>int <name>channel</name></param>
+            <param><ptype>GLenum</ptype> <name>synctype</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXFBConfig</ptype> *<name>glXChooseFBConfig</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>const int *<name>attrib_list</name></param>
+            <param>int *<name>nelements</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXFBConfigSGIX</ptype> *<name>glXChooseFBConfigSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>int *<name>attrib_list</name></param>
+            <param>int *<name>nelements</name></param>
+        </command>
+        <command>
+            <proto><ptype>XVisualInfo</ptype> *<name>glXChooseVisual</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>int *<name>attribList</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXCopyContext</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXContext</ptype> <name>src</name></param>
+            <param><ptype>GLXContext</ptype> <name>dst</name></param>
+            <param>unsigned long <name>mask</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXCopyImageSubDataNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXContext</ptype> <name>srcCtx</name></param>
+            <param><ptype>GLuint</ptype> <name>srcName</name></param>
+            <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+            <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+            <param><ptype>GLint</ptype> <name>srcX</name></param>
+            <param><ptype>GLint</ptype> <name>srcY</name></param>
+            <param><ptype>GLint</ptype> <name>srcZ</name></param>
+            <param><ptype>GLXContext</ptype> <name>dstCtx</name></param>
+            <param><ptype>GLuint</ptype> <name>dstName</name></param>
+            <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+            <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+            <param><ptype>GLint</ptype> <name>dstX</name></param>
+            <param><ptype>GLint</ptype> <name>dstY</name></param>
+            <param><ptype>GLint</ptype> <name>dstZ</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXCopySubBufferMESA</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param>int <name>x</name></param>
+            <param>int <name>y</name></param>
+            <param>int <name>width</name></param>
+            <param>int <name>height</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXContext</ptype> <name>glXCreateContextAttribsARB</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfig</ptype> <name>config</name></param>
+            <param><ptype>GLXContext</ptype> <name>share_context</name></param>
+            <param><ptype>Bool</ptype> <name>direct</name></param>
+            <param>const int *<name>attrib_list</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXContext</ptype> <name>glXCreateContext</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>XVisualInfo</ptype> *<name>vis</name></param>
+            <param><ptype>GLXContext</ptype> <name>shareList</name></param>
+            <param><ptype>Bool</ptype> <name>direct</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXContext</ptype> <name>glXCreateContextWithConfigSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfigSGIX</ptype> <name>config</name></param>
+            <param>int <name>render_type</name></param>
+            <param><ptype>GLXContext</ptype> <name>share_list</name></param>
+            <param><ptype>Bool</ptype> <name>direct</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXPbufferSGIX</ptype> <name>glXCreateGLXPbufferSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfigSGIX</ptype> <name>config</name></param>
+            <param>unsigned int <name>width</name></param>
+            <param>unsigned int <name>height</name></param>
+            <param>int *<name>attrib_list</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXPixmap</ptype> <name>glXCreateGLXPixmap</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>XVisualInfo</ptype> *<name>visual</name></param>
+            <param><ptype>Pixmap</ptype> <name>pixmap</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXPixmap</ptype> <name>glXCreateGLXPixmapMESA</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>XVisualInfo</ptype> *<name>visual</name></param>
+            <param><ptype>Pixmap</ptype> <name>pixmap</name></param>
+            <param><ptype>Colormap</ptype> <name>cmap</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXPixmap</ptype> <name>glXCreateGLXPixmapWithConfigSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfigSGIX</ptype> <name>config</name></param>
+            <param><ptype>Pixmap</ptype> <name>pixmap</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXVideoSourceSGIX</ptype> <name>glXCreateGLXVideoSourceSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>display</name></param>
+            <param>int <name>screen</name></param>
+            <param><ptype>VLServer</ptype> <name>server</name></param>
+            <param><ptype>VLPath</ptype> <name>path</name></param>
+            <param>int <name>nodeClass</name></param>
+            <param><ptype>VLNode</ptype> <name>drainNode</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXContext</ptype> <name>glXCreateNewContext</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfig</ptype> <name>config</name></param>
+            <param>int <name>render_type</name></param>
+            <param><ptype>GLXContext</ptype> <name>share_list</name></param>
+            <param><ptype>Bool</ptype> <name>direct</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXPbuffer</ptype> <name>glXCreatePbuffer</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfig</ptype> <name>config</name></param>
+            <param>const int *<name>attrib_list</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXPixmap</ptype> <name>glXCreatePixmap</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfig</ptype> <name>config</name></param>
+            <param><ptype>Pixmap</ptype> <name>pixmap</name></param>
+            <param>const int *<name>attrib_list</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXWindow</ptype> <name>glXCreateWindow</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfig</ptype> <name>config</name></param>
+            <param><ptype>Window</ptype> <name>win</name></param>
+            <param>const int *<name>attrib_list</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXCushionSGI</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>Window</ptype> <name>window</name></param>
+            <param>float <name>cushion</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXDestroyContext</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXContext</ptype> <name>ctx</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXDestroyGLXPbufferSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXPbufferSGIX</ptype> <name>pbuf</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXDestroyGLXPixmap</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXPixmap</ptype> <name>pixmap</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXDestroyGLXVideoSourceSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXVideoSourceSGIX</ptype> <name>glxvideosource</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXDestroyHyperpipeConfigSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>hpId</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXDestroyPbuffer</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXPbuffer</ptype> <name>pbuf</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXDestroyPixmap</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXPixmap</ptype> <name>pixmap</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXDestroyWindow</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXWindow</ptype> <name>win</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXVideoCaptureDeviceNV</ptype> *<name>glXEnumerateVideoCaptureDevicesNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>int *<name>nelements</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXFreeContextEXT</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXContext</ptype> <name>context</name></param>
+        </command>
+        <command>
+            <proto>const char *<name>glXGetClientString</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>name</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXGetConfig</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>XVisualInfo</ptype> *<name>visual</name></param>
+            <param>int <name>attrib</name></param>
+            <param>int *<name>value</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXContextID</ptype> <name>glXGetContextIDEXT</name></proto>
+            <param>const <ptype>GLXContext</ptype> <name>context</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXContext</ptype> <name>glXGetCurrentContext</name></proto>
+        </command>
+        <command>
+            <proto><ptype>Display</ptype> *<name>glXGetCurrentDisplayEXT</name></proto>
+        </command>
+        <command>
+            <proto><ptype>Display</ptype> *<name>glXGetCurrentDisplay</name></proto>
+        </command>
+        <command>
+            <proto><ptype>GLXDrawable</ptype> <name>glXGetCurrentDrawable</name></proto>
+        </command>
+        <command>
+            <proto><ptype>GLXDrawable</ptype> <name>glXGetCurrentReadDrawableSGI</name></proto>
+        </command>
+        <command>
+            <proto><ptype>GLXDrawable</ptype> <name>glXGetCurrentReadDrawable</name></proto>
+        </command>
+        <command>
+            <proto>int <name>glXGetFBConfigAttrib</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfig</ptype> <name>config</name></param>
+            <param>int <name>attribute</name></param>
+            <param>int *<name>value</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXGetFBConfigAttribSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfigSGIX</ptype> <name>config</name></param>
+            <param>int <name>attribute</name></param>
+            <param>int *<name>value</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXFBConfigSGIX</ptype> <name>glXGetFBConfigFromVisualSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>XVisualInfo</ptype> *<name>vis</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXFBConfig</ptype> *<name>glXGetFBConfigs</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>int *<name>nelements</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXGetMscRateOML</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>int32_t</ptype> *<name>numerator</name></param>
+            <param><ptype>int32_t</ptype> *<name>denominator</name></param>
+        </command>
+        <command>
+            <proto><ptype>__GLXextFuncPtr</ptype> <name>glXGetProcAddressARB</name></proto>
+            <param>const <ptype>GLubyte</ptype> *<name>procName</name></param>
+        </command>
+        <command>
+            <proto><ptype>__GLXextFuncPtr</ptype> <name>glXGetProcAddress</name></proto>
+            <param>const <ptype>GLubyte</ptype> *<name>procName</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXGetSelectedEvent</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>draw</name></param>
+            <param>unsigned long *<name>event_mask</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXGetSelectedEventSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param>unsigned long *<name>mask</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXGetSyncValuesOML</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>int64_t</ptype> *<name>ust</name></param>
+            <param><ptype>int64_t</ptype> *<name>msc</name></param>
+            <param><ptype>int64_t</ptype> *<name>sbc</name></param>
+        </command>
+        <command>
+            <proto><ptype>Status</ptype> <name>glXGetTransparentIndexSUN</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>Window</ptype> <name>overlay</name></param>
+            <param><ptype>Window</ptype> <name>underlay</name></param>
+            <param>long *<name>pTransparentIndex</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXGetVideoDeviceNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>int <name>numVideoDevices</name></param>
+            <param><ptype>GLXVideoDeviceNV</ptype> *<name>pVideoDevice</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXGetVideoInfoNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param><ptype>GLXVideoDeviceNV</ptype> <name>VideoDevice</name></param>
+            <param>unsigned long *<name>pulCounterOutputPbuffer</name></param>
+            <param>unsigned long *<name>pulCounterOutputVideo</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXGetVideoSyncSGI</name></proto>
+            <param>unsigned int *<name>count</name></param>
+        </command>
+        <command>
+            <proto><ptype>XVisualInfo</ptype> *<name>glXGetVisualFromFBConfig</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfig</ptype> <name>config</name></param>
+        </command>
+        <command>
+            <proto><ptype>XVisualInfo</ptype> *<name>glXGetVisualFromFBConfigSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXFBConfigSGIX</ptype> <name>config</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXHyperpipeAttribSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>timeSlice</name></param>
+            <param>int <name>attrib</name></param>
+            <param>int <name>size</name></param>
+            <param>void *<name>attribList</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXHyperpipeConfigSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>networkId</name></param>
+            <param>int <name>npipes</name></param>
+            <param><ptype>GLXHyperpipeConfigSGIX</ptype> *<name>cfg</name></param>
+            <param>int *<name>hpId</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXContext</ptype> <name>glXImportContextEXT</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXContextID</ptype> <name>contextID</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXIsDirect</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXContext</ptype> <name>ctx</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXJoinSwapGroupNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>GLuint</ptype> <name>group</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXJoinSwapGroupSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>member</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXLockVideoCaptureDeviceNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXVideoCaptureDeviceNV</ptype> <name>device</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXMakeContextCurrent</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>draw</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>read</name></param>
+            <param><ptype>GLXContext</ptype> <name>ctx</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXMakeCurrent</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>GLXContext</ptype> <name>ctx</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXMakeCurrentReadSGI</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>draw</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>read</name></param>
+            <param><ptype>GLXContext</ptype> <name>ctx</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXQueryChannelDeltasSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>display</name></param>
+            <param>int <name>screen</name></param>
+            <param>int <name>channel</name></param>
+            <param>int *<name>x</name></param>
+            <param>int *<name>y</name></param>
+            <param>int *<name>w</name></param>
+            <param>int *<name>h</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXQueryChannelRectSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>display</name></param>
+            <param>int <name>screen</name></param>
+            <param>int <name>channel</name></param>
+            <param>int *<name>dx</name></param>
+            <param>int *<name>dy</name></param>
+            <param>int *<name>dw</name></param>
+            <param>int *<name>dh</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXQueryContext</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXContext</ptype> <name>ctx</name></param>
+            <param>int <name>attribute</name></param>
+            <param>int *<name>value</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXQueryContextInfoEXT</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXContext</ptype> <name>context</name></param>
+            <param>int <name>attribute</name></param>
+            <param>int *<name>value</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXQueryDrawable</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>draw</name></param>
+            <param>int <name>attribute</name></param>
+            <param>unsigned int *<name>value</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXQueryExtension</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int *<name>errorb</name></param>
+            <param>int *<name>event</name></param>
+        </command>
+        <command>
+            <proto>const char *<name>glXQueryExtensionsString</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXQueryFrameCountNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param><ptype>GLuint</ptype> *<name>count</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXQueryGLXPbufferSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXPbufferSGIX</ptype> <name>pbuf</name></param>
+            <param>int <name>attribute</name></param>
+            <param>unsigned int *<name>value</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXQueryHyperpipeAttribSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>timeSlice</name></param>
+            <param>int <name>attrib</name></param>
+            <param>int <name>size</name></param>
+            <param>void *<name>returnAttribList</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXQueryHyperpipeBestAttribSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>timeSlice</name></param>
+            <param>int <name>attrib</name></param>
+            <param>int <name>size</name></param>
+            <param>void *<name>attribList</name></param>
+            <param>void *<name>returnAttribList</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXHyperpipeConfigSGIX</ptype> *<name>glXQueryHyperpipeConfigSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>hpId</name></param>
+            <param>int *<name>npipes</name></param>
+        </command>
+        <command>
+            <proto><ptype>GLXHyperpipeNetworkSGIX</ptype> *<name>glXQueryHyperpipeNetworkSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int *<name>npipes</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXQueryMaxSwapBarriersSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>int *<name>max</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXQueryMaxSwapGroupsNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param><ptype>GLuint</ptype> *<name>maxGroups</name></param>
+            <param><ptype>GLuint</ptype> *<name>maxBarriers</name></param>
+        </command>
+        <command>
+            <proto>const char *<name>glXQueryServerString</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>int <name>name</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXQuerySwapGroupNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>GLuint</ptype> *<name>group</name></param>
+            <param><ptype>GLuint</ptype> *<name>barrier</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXQueryVersion</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int *<name>maj</name></param>
+            <param>int *<name>min</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXQueryVideoCaptureDeviceNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXVideoCaptureDeviceNV</ptype> <name>device</name></param>
+            <param>int <name>attribute</name></param>
+            <param>int *<name>value</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXReleaseBuffersMESA</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXReleaseTexImageEXT</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param>int <name>buffer</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXReleaseVideoCaptureDeviceNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXVideoCaptureDeviceNV</ptype> <name>device</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXReleaseVideoDeviceNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param><ptype>GLXVideoDeviceNV</ptype> <name>VideoDevice</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXReleaseVideoImageNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXPbuffer</ptype> <name>pbuf</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXResetFrameCountNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXSelectEvent</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>draw</name></param>
+            <param>unsigned long <name>event_mask</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXSelectEventSGIX</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param>unsigned long <name>mask</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXSendPbufferToVideoNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXPbuffer</ptype> <name>pbuf</name></param>
+            <param>int <name>iBufferType</name></param>
+            <param>unsigned long *<name>pulCounterPbuffer</name></param>
+            <param><ptype>GLboolean</ptype> <name>bBlock</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXSet3DfxModeMESA</name></proto>
+            <param>int <name>mode</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXSwapBuffers</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+        </command>
+        <command>
+            <proto><ptype>int64_t</ptype> <name>glXSwapBuffersMscOML</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>int64_t</ptype> <name>target_msc</name></param>
+            <param><ptype>int64_t</ptype> <name>divisor</name></param>
+            <param><ptype>int64_t</ptype> <name>remainder</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXSwapIntervalEXT</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param>int <name>interval</name></param>
+        </command>
+        <command>
+            <proto>int <name>glXSwapIntervalSGI</name></proto>
+            <param>int <name>interval</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXUseXFont</name></proto>
+            <param><ptype>Font</ptype> <name>font</name></param>
+            <param>int <name>first</name></param>
+            <param>int <name>count</name></param>
+            <param>int <name>list</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXWaitForMscOML</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>int64_t</ptype> <name>target_msc</name></param>
+            <param><ptype>int64_t</ptype> <name>divisor</name></param>
+            <param><ptype>int64_t</ptype> <name>remainder</name></param>
+            <param><ptype>int64_t</ptype> *<name>ust</name></param>
+            <param><ptype>int64_t</ptype> *<name>msc</name></param>
+            <param><ptype>int64_t</ptype> *<name>sbc</name></param>
+        </command>
+        <command>
+            <proto><ptype>Bool</ptype> <name>glXWaitForSbcOML</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param><ptype>GLXDrawable</ptype> <name>drawable</name></param>
+            <param><ptype>int64_t</ptype> <name>target_sbc</name></param>
+            <param><ptype>int64_t</ptype> *<name>ust</name></param>
+            <param><ptype>int64_t</ptype> *<name>msc</name></param>
+            <param><ptype>int64_t</ptype> *<name>sbc</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXWaitGL</name></proto>
+        </command>
+        <command>
+            <proto>int <name>glXWaitVideoSyncSGI</name></proto>
+            <param>int <name>divisor</name></param>
+            <param>int <name>remainder</name></param>
+            <param>unsigned int *<name>count</name></param>
+        </command>
+        <command>
+            <proto>void <name>glXWaitX</name></proto>
+        </command>
+        <command>
+            <proto>unsigned int *<name>glXEnumerateVideoDevicesNV</name></proto>
+            <param><ptype>Display</ptype> *<name>dpy</name></param>
+            <param>int <name>screen</name></param>
+            <param>int *<name>nelements</name></param>
+        </command>
+        <command>
+            <proto>unsigned int <name>glXGetAGPOffsetMESA</name></proto>
+            <param>const void *<name>pointer</name></param>
+        </command>
+    </commands>
+
+    <!-- SECTION: GLX API interface definitions. -->
+    <feature api="glx" name="GLX_VERSION_1_0" number="1.0">
+        <require>
+                <!-- A string #define. Maybe should have a <text> tag for this use? -->
+            <enum name="GLX_EXTENSION_NAME"/>
+                <!-- Events -->
+            <enum name="GLX_PbufferClobber"/>
+            <enum name="GLX_BufferSwapComplete"/>
+            <enum name="__GLX_NUMBER_EVENTS"/>
+                <!-- Error codes -->
+            <enum name="GLX_BAD_SCREEN"/>
+            <enum name="GLX_BAD_ATTRIBUTE"/>
+            <enum name="GLX_NO_EXTENSION"/>
+            <enum name="GLX_BAD_VISUAL"/>
+            <enum name="GLX_BAD_CONTEXT"/>
+            <enum name="GLX_BAD_VALUE"/>
+            <enum name="GLX_BAD_ENUM"/>
+                <!-- Tokens for glXChooseVisual and glXGetConfig -->
+            <enum name="GLX_USE_GL"/>
+            <enum name="GLX_BUFFER_SIZE"/>
+            <enum name="GLX_LEVEL"/>
+            <enum name="GLX_RGBA"/>
+            <enum name="GLX_DOUBLEBUFFER"/>
+            <enum name="GLX_STEREO"/>
+            <enum name="GLX_AUX_BUFFERS"/>
+            <enum name="GLX_RED_SIZE"/>
+            <enum name="GLX_GREEN_SIZE"/>
+            <enum name="GLX_BLUE_SIZE"/>
+            <enum name="GLX_ALPHA_SIZE"/>
+            <enum name="GLX_DEPTH_SIZE"/>
+            <enum name="GLX_STENCIL_SIZE"/>
+            <enum name="GLX_ACCUM_RED_SIZE"/>
+            <enum name="GLX_ACCUM_GREEN_SIZE"/>
+            <enum name="GLX_ACCUM_BLUE_SIZE"/>
+            <enum name="GLX_ACCUM_ALPHA_SIZE"/>
+            <command name="glXChooseVisual"/>
+            <command name="glXCreateContext"/>
+            <command name="glXDestroyContext"/>
+            <command name="glXMakeCurrent"/>
+            <command name="glXCopyContext"/>
+            <command name="glXSwapBuffers"/>
+            <command name="glXCreateGLXPixmap"/>
+            <command name="glXDestroyGLXPixmap"/>
+            <command name="glXQueryExtension"/>
+            <command name="glXQueryVersion"/>
+            <command name="glXIsDirect"/>
+            <command name="glXGetConfig"/>
+            <command name="glXGetCurrentContext"/>
+            <command name="glXGetCurrentDrawable"/>
+            <command name="glXWaitGL"/>
+            <command name="glXWaitX"/>
+            <command name="glXUseXFont"/>
+        </require>
+    </feature>
+
+    <feature api="glx" name="GLX_VERSION_1_1" number="1.1">
+        <require>
+            <enum name="GLX_VENDOR"/>
+            <enum name="GLX_VERSION"/>
+            <enum name="GLX_EXTENSIONS"/>
+            <command name="glXQueryExtensionsString"/>
+            <command name="glXQueryServerString"/>
+            <command name="glXGetClientString"/>
+        </require>
+    </feature>
+
+    <feature api="glx" name="GLX_VERSION_1_2" number="1.2">
+        <require>
+            <command name="glXGetCurrentDisplay"/>
+        </require>
+    </feature>
+
+
+    <feature api="glx" name="GLX_VERSION_1_3" number="1.3">
+        <require>
+            <enum name="GLX_WINDOW_BIT"/>
+            <enum name="GLX_PIXMAP_BIT"/>
+            <enum name="GLX_PBUFFER_BIT"/>
+            <enum name="GLX_RGBA_BIT"/>
+            <enum name="GLX_COLOR_INDEX_BIT"/>
+            <enum name="GLX_PBUFFER_CLOBBER_MASK"/>
+            <enum name="GLX_FRONT_LEFT_BUFFER_BIT"/>
+            <enum name="GLX_FRONT_RIGHT_BUFFER_BIT"/>
+            <enum name="GLX_BACK_LEFT_BUFFER_BIT"/>
+            <enum name="GLX_BACK_RIGHT_BUFFER_BIT"/>
+            <enum name="GLX_AUX_BUFFERS_BIT"/>
+            <enum name="GLX_DEPTH_BUFFER_BIT"/>
+            <enum name="GLX_STENCIL_BUFFER_BIT"/>
+            <enum name="GLX_ACCUM_BUFFER_BIT"/>
+            <enum name="GLX_CONFIG_CAVEAT"/>
+            <enum name="GLX_X_VISUAL_TYPE"/>
+            <enum name="GLX_TRANSPARENT_TYPE"/>
+            <enum name="GLX_TRANSPARENT_INDEX_VALUE"/>
+            <enum name="GLX_TRANSPARENT_RED_VALUE"/>
+            <enum name="GLX_TRANSPARENT_GREEN_VALUE"/>
+            <enum name="GLX_TRANSPARENT_BLUE_VALUE"/>
+            <enum name="GLX_TRANSPARENT_ALPHA_VALUE"/>
+            <enum name="GLX_DONT_CARE"/>
+            <enum name="GLX_NONE"/>
+            <enum name="GLX_SLOW_CONFIG"/>
+            <enum name="GLX_TRUE_COLOR"/>
+            <enum name="GLX_DIRECT_COLOR"/>
+            <enum name="GLX_PSEUDO_COLOR"/>
+            <enum name="GLX_STATIC_COLOR"/>
+            <enum name="GLX_GRAY_SCALE"/>
+            <enum name="GLX_STATIC_GRAY"/>
+            <enum name="GLX_TRANSPARENT_RGB"/>
+            <enum name="GLX_TRANSPARENT_INDEX"/>
+            <enum name="GLX_VISUAL_ID"/>
+            <enum name="GLX_SCREEN"/>
+            <enum name="GLX_NON_CONFORMANT_CONFIG"/>
+            <enum name="GLX_DRAWABLE_TYPE"/>
+            <enum name="GLX_RENDER_TYPE"/>
+            <enum name="GLX_X_RENDERABLE"/>
+            <enum name="GLX_FBCONFIG_ID"/>
+            <enum name="GLX_RGBA_TYPE"/>
+            <enum name="GLX_COLOR_INDEX_TYPE"/>
+            <enum name="GLX_MAX_PBUFFER_WIDTH"/>
+            <enum name="GLX_MAX_PBUFFER_HEIGHT"/>
+            <enum name="GLX_MAX_PBUFFER_PIXELS"/>
+            <enum name="GLX_PRESERVED_CONTENTS"/>
+            <enum name="GLX_LARGEST_PBUFFER"/>
+            <enum name="GLX_WIDTH"/>
+            <enum name="GLX_HEIGHT"/>
+            <enum name="GLX_EVENT_MASK"/>
+            <enum name="GLX_DAMAGED"/>
+            <enum name="GLX_SAVED"/>
+            <enum name="GLX_WINDOW"/>
+            <enum name="GLX_PBUFFER"/>
+            <enum name="GLX_PBUFFER_HEIGHT"/>
+            <enum name="GLX_PBUFFER_WIDTH"/>
+            <command name="glXGetFBConfigs"/>
+            <command name="glXChooseFBConfig"/>
+            <command name="glXGetFBConfigAttrib"/>
+            <command name="glXGetVisualFromFBConfig"/>
+            <command name="glXCreateWindow"/>
+            <command name="glXDestroyWindow"/>
+            <command name="glXCreatePixmap"/>
+            <command name="glXDestroyPixmap"/>
+            <command name="glXCreatePbuffer"/>
+            <command name="glXDestroyPbuffer"/>
+            <command name="glXQueryDrawable"/>
+            <command name="glXCreateNewContext"/>
+            <command name="glXMakeContextCurrent"/>
+            <command name="glXGetCurrentReadDrawable"/>
+            <command name="glXQueryContext"/>
+            <command name="glXSelectEvent"/>
+            <command name="glXGetSelectedEvent"/>
+        </require>
+    </feature>
+
+    <feature api="glx" name="GLX_VERSION_1_4" number="1.4">
+        <require>
+            <enum name="GLX_SAMPLE_BUFFERS"/>
+            <enum name="GLX_SAMPLES"/>
+            <command name="glXGetProcAddress"/>
+        </require>
+    </feature>
+
+
+    <!-- SECTION: GLX extension interface definitions -->
+    <extensions>
+        <extension name="GLX_ARB_get_proc_address" supported="glx">
+            <require>
+                <command name="glXGetProcAddressARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_multisample" supported="glx">
+            <require>
+                <enum name="GLX_SAMPLE_BUFFERS_ARB"/>
+                <enum name="GLX_SAMPLES_ARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_3DFX_multisample" supported="glx">
+            <require>
+                <enum name="GLX_SAMPLE_BUFFERS_3DFX"/>
+                <enum name="GLX_SAMPLES_3DFX"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_vertex_buffer_object" supported="glx">
+            <require>
+                <enum name="GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_fbconfig_float" supported="glx">
+            <require>
+                <enum name="GLX_RGBA_FLOAT_TYPE_ARB"/>
+                <enum name="GLX_RGBA_FLOAT_BIT_ARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_framebuffer_sRGB" supported="glx">
+            <require>
+                <enum name="GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_create_context" supported="glx">
+            <require>
+                <enum name="GLX_CONTEXT_DEBUG_BIT_ARB"/>
+                <enum name="GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB"/>
+                <enum name="GLX_CONTEXT_MAJOR_VERSION_ARB"/>
+                <enum name="GLX_CONTEXT_MINOR_VERSION_ARB"/>
+                <enum name="GLX_CONTEXT_FLAGS_ARB"/>
+                <command name="glXCreateContextAttribsARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_create_context_profile" supported="glx">
+            <require>
+                <enum name="GLX_CONTEXT_CORE_PROFILE_BIT_ARB"/>
+                <enum name="GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB"/>
+                <enum name="GLX_CONTEXT_PROFILE_MASK_ARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_create_context_robustness" supported="glx">
+            <require>
+                <enum name="GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB"/>
+                <enum name="GLX_LOSE_CONTEXT_ON_RESET_ARB"/>
+                <enum name="GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB"/>
+                <enum name="GLX_NO_RESET_NOTIFICATION_ARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_robustness_application_isolation" supported="glx">
+            <require>
+                <enum name="GLX_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_ARB_robustness_share_group_isolation" supported="glx">
+            <require>
+                <enum name="GLX_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIS_multisample" supported="glx">
+            <require>
+                <enum name="GLX_SAMPLE_BUFFERS_SGIS"/>
+                <enum name="GLX_SAMPLES_SGIS"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_visual_info" supported="glx">
+            <require>
+                <enum name="GLX_X_VISUAL_TYPE_EXT"/>
+                <enum name="GLX_TRANSPARENT_TYPE_EXT"/>
+                <enum name="GLX_TRANSPARENT_INDEX_VALUE_EXT"/>
+                <enum name="GLX_TRANSPARENT_RED_VALUE_EXT"/>
+                <enum name="GLX_TRANSPARENT_GREEN_VALUE_EXT"/>
+                <enum name="GLX_TRANSPARENT_BLUE_VALUE_EXT"/>
+                <enum name="GLX_TRANSPARENT_ALPHA_VALUE_EXT"/>
+                <enum name="GLX_NONE_EXT"/>
+                <enum name="GLX_TRUE_COLOR_EXT"/>
+                <enum name="GLX_DIRECT_COLOR_EXT"/>
+                <enum name="GLX_PSEUDO_COLOR_EXT"/>
+                <enum name="GLX_STATIC_COLOR_EXT"/>
+                <enum name="GLX_GRAY_SCALE_EXT"/>
+                <enum name="GLX_STATIC_GRAY_EXT"/>
+                <enum name="GLX_TRANSPARENT_RGB_EXT"/>
+                <enum name="GLX_TRANSPARENT_INDEX_EXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGI_swap_control" supported="glx">
+            <require>
+                <command name="glXSwapIntervalSGI"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGI_video_sync" supported="glx">
+            <require>
+                <command name="glXGetVideoSyncSGI"/>
+                <command name="glXWaitVideoSyncSGI"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGI_make_current_read" supported="glx">
+            <require>
+                <command name="glXMakeCurrentReadSGI"/>
+                <command name="glXGetCurrentReadDrawableSGI"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIX_video_source" supported="glx" protect="_VL_H">
+            <require>
+                <command name="glXCreateGLXVideoSourceSGIX"/>
+                <command name="glXDestroyGLXVideoSourceSGIX"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_visual_rating" supported="glx">
+            <require>
+                <enum name="GLX_VISUAL_CAVEAT_EXT"/>
+                <enum name="GLX_SLOW_VISUAL_EXT"/>
+                <enum name="GLX_NON_CONFORMANT_VISUAL_EXT"/>
+                <enum name="GLX_NONE_EXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_import_context" supported="glx">
+            <require>
+                <enum name="GLX_SHARE_CONTEXT_EXT"/>
+                <enum name="GLX_VISUAL_ID_EXT"/>
+                <enum name="GLX_SCREEN_EXT"/>
+                <command name="glXGetCurrentDisplayEXT"/>
+                <command name="glXQueryContextInfoEXT"/>
+                <command name="glXGetContextIDEXT"/>
+                <command name="glXImportContextEXT"/>
+                <command name="glXFreeContextEXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIX_fbconfig" supported="glx">
+            <require>
+                <enum name="GLX_WINDOW_BIT_SGIX"/>
+                <enum name="GLX_PIXMAP_BIT_SGIX"/>
+                <enum name="GLX_RGBA_BIT_SGIX"/>
+                <enum name="GLX_COLOR_INDEX_BIT_SGIX"/>
+                <enum name="GLX_DRAWABLE_TYPE_SGIX"/>
+                <enum name="GLX_RENDER_TYPE_SGIX"/>
+                <enum name="GLX_X_RENDERABLE_SGIX"/>
+                <enum name="GLX_FBCONFIG_ID_SGIX"/>
+                <enum name="GLX_RGBA_TYPE_SGIX"/>
+                <enum name="GLX_COLOR_INDEX_TYPE_SGIX"/>
+                <enum name="GLX_SCREEN_EXT"/>
+                <command name="glXGetFBConfigAttribSGIX"/>
+                <command name="glXChooseFBConfigSGIX"/>
+                <command name="glXCreateGLXPixmapWithConfigSGIX"/>
+                <command name="glXCreateContextWithConfigSGIX"/>
+                <command name="glXGetVisualFromFBConfigSGIX"/>
+                <command name="glXGetFBConfigFromVisualSGIX"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIX_pbuffer" supported="glx">
+            <require>
+                <enum name="GLX_PBUFFER_BIT_SGIX"/>
+                <enum name="GLX_BUFFER_CLOBBER_MASK_SGIX"/>
+                <enum name="GLX_FRONT_LEFT_BUFFER_BIT_SGIX"/>
+                <enum name="GLX_FRONT_RIGHT_BUFFER_BIT_SGIX"/>
+                <enum name="GLX_BACK_LEFT_BUFFER_BIT_SGIX"/>
+                <enum name="GLX_BACK_RIGHT_BUFFER_BIT_SGIX"/>
+                <enum name="GLX_AUX_BUFFERS_BIT_SGIX"/>
+                <enum name="GLX_DEPTH_BUFFER_BIT_SGIX"/>
+                <enum name="GLX_STENCIL_BUFFER_BIT_SGIX"/>
+                <enum name="GLX_ACCUM_BUFFER_BIT_SGIX"/>
+                <enum name="GLX_SAMPLE_BUFFERS_BIT_SGIX"/>
+                <enum name="GLX_MAX_PBUFFER_WIDTH_SGIX"/>
+                <enum name="GLX_MAX_PBUFFER_HEIGHT_SGIX"/>
+                <enum name="GLX_MAX_PBUFFER_PIXELS_SGIX"/>
+                <enum name="GLX_OPTIMAL_PBUFFER_WIDTH_SGIX"/>
+                <enum name="GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX"/>
+                <enum name="GLX_PRESERVED_CONTENTS_SGIX"/>
+                <enum name="GLX_LARGEST_PBUFFER_SGIX"/>
+                <enum name="GLX_WIDTH_SGIX"/>
+                <enum name="GLX_HEIGHT_SGIX"/>
+                <enum name="GLX_EVENT_MASK_SGIX"/>
+                <enum name="GLX_DAMAGED_SGIX"/>
+                <enum name="GLX_SAVED_SGIX"/>
+                <enum name="GLX_WINDOW_SGIX"/>
+                <enum name="GLX_PBUFFER_SGIX"/>
+                <command name="glXCreateGLXPbufferSGIX"/>
+                <command name="glXDestroyGLXPbufferSGIX"/>
+                <command name="glXQueryGLXPbufferSGIX"/>
+                <command name="glXSelectEventSGIX"/>
+                <command name="glXGetSelectedEventSGIX"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIS_blended_overlay" supported="glx">
+            <require>
+                <enum name="GLX_BLENDED_RGBA_SGIS"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGI_cushion" supported="glx">
+            <require>
+                <command name="glXCushionSGI"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIS_shared_multisample" supported="glx">
+            <require>
+                <enum name="GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS"/>
+                <enum name="GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIX_video_resize" supported="glx">
+            <require>
+                <enum name="GLX_SYNC_FRAME_SGIX"/>
+                <enum name="GLX_SYNC_SWAP_SGIX"/>
+                <command name="glXBindChannelToWindowSGIX"/>
+                <command name="glXChannelRectSGIX"/>
+                <command name="glXQueryChannelRectSGIX"/>
+                <command name="glXQueryChannelDeltasSGIX"/>
+                <command name="glXChannelRectSyncSGIX"/>
+            </require>
+        </extension>
+<!--     Comment GLX_SGIX_dmbuffer out for the moment. The extension pulls in
+         the GLXPbufferSGIX <type> but then comments it out with #ifdef
+         _DM_BUFFER_H_, making it unavailable to later extensions. Need some
+         work on dependencies.
+-->
+        <extension name="GLX_SGIX_dmbuffer" supported="glx" protect="_DM_BUFFER_H_">
+            <require>
+                <enum name="GLX_DIGITAL_MEDIA_PBUFFER_SGIX"/>
+                <command name="glXAssociateDMPbufferSGIX"/>
+            </require>
+        </extension>
+<!--
+-->
+        <extension name="GLX_SGIX_swap_group" supported="glx">
+            <require>
+                <command name="glXJoinSwapGroupSGIX"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIX_swap_barrier" supported="glx">
+            <require>
+                <command name="glXBindSwapBarrierSGIX"/>
+                <command name="glXQueryMaxSwapBarriersSGIX"/>
+            </require>
+        </extension>
+        <extension name="GLX_SUN_get_transparent_index" supported="glx">
+            <require>
+                <command name="glXGetTransparentIndexSUN"/>
+            </require>
+        </extension>
+        <extension name="GLX_MESA_copy_sub_buffer" supported="glx">
+            <require>
+                <command name="glXCopySubBufferMESA"/>
+            </require>
+        </extension>
+        <extension name="GLX_MESA_pixmap_colormap" supported="glx">
+            <require>
+                <command name="glXCreateGLXPixmapMESA"/>
+            </require>
+        </extension>
+        <extension name="GLX_MESA_release_buffers" supported="glx">
+            <require>
+                <command name="glXReleaseBuffersMESA"/>
+            </require>
+        </extension>
+        <extension name="GLX_MESA_set_3dfx_mode" supported="glx">
+            <require>
+                <enum name="GLX_3DFX_WINDOW_MODE_MESA"/>
+                <enum name="GLX_3DFX_FULLSCREEN_MODE_MESA"/>
+                <command name="glXSet3DfxModeMESA"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIX_visual_select_group" supported="glx">
+            <require>
+                <enum name="GLX_VISUAL_SELECT_GROUP_SGIX"/>
+            </require>
+        </extension>
+        <extension name="GLX_OML_swap_method" supported="glx">
+            <require>
+                <enum name="GLX_SWAP_METHOD_OML"/>
+                <enum name="GLX_SWAP_EXCHANGE_OML"/>
+                <enum name="GLX_SWAP_COPY_OML"/>
+                <enum name="GLX_SWAP_UNDEFINED_OML"/>
+            </require>
+        </extension>
+        <extension name="GLX_OML_sync_control" supported="glx">
+            <require>
+                <command name="glXGetSyncValuesOML"/>
+                <command name="glXGetMscRateOML"/>
+                <command name="glXSwapBuffersMscOML"/>
+                <command name="glXWaitForMscOML"/>
+                <command name="glXWaitForSbcOML"/>
+            </require>
+        </extension>
+        <extension name="GLX_NV_float_buffer" supported="glx">
+            <require>
+                <enum name="GLX_FLOAT_COMPONENTS_NV"/>
+            </require>
+        </extension>
+        <extension name="GLX_SGIX_hyperpipe" supported="glx">
+            <require>
+                <type name="GLXHyperpipeNetworkSGIX"/>
+                <type name="GLXHyperpipeConfigSGIX"/>
+                <type name="GLXPipeRect"/>
+                <type name="GLXPipeRectLimits"/>
+                <enum name="GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX"/>
+                <enum name="GLX_BAD_HYPERPIPE_CONFIG_SGIX"/>
+                <enum name="GLX_BAD_HYPERPIPE_SGIX"/>
+                <enum name="GLX_HYPERPIPE_DISPLAY_PIPE_SGIX"/>
+                <enum name="GLX_HYPERPIPE_RENDER_PIPE_SGIX"/>
+                <enum name="GLX_PIPE_RECT_SGIX"/>
+                <enum name="GLX_PIPE_RECT_LIMITS_SGIX"/>
+                <enum name="GLX_HYPERPIPE_STEREO_SGIX"/>
+                <enum name="GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX"/>
+                <enum name="GLX_HYPERPIPE_ID_SGIX"/>
+                <command name="glXQueryHyperpipeNetworkSGIX"/>
+                <command name="glXHyperpipeConfigSGIX"/>
+                <command name="glXQueryHyperpipeConfigSGIX"/>
+                <command name="glXDestroyHyperpipeConfigSGIX"/>
+                <command name="glXBindHyperpipeSGIX"/>
+                <command name="glXQueryHyperpipeBestAttribSGIX"/>
+                <command name="glXHyperpipeAttribSGIX"/>
+                <command name="glXQueryHyperpipeAttribSGIX"/>
+            </require>
+        </extension>
+        <extension name="GLX_MESA_agp_offset" supported="glx">
+            <require>
+                <command name="glXGetAGPOffsetMESA"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_fbconfig_packed_float" supported="glx">
+            <require>
+                <enum name="GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT"/>
+                <enum name="GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_framebuffer_sRGB" supported="glx">
+            <require>
+                <enum name="GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_texture_from_pixmap" supported="glx">
+            <require>
+                <enum name="GLX_TEXTURE_1D_BIT_EXT"/>
+                <enum name="GLX_TEXTURE_2D_BIT_EXT"/>
+                <enum name="GLX_TEXTURE_RECTANGLE_BIT_EXT"/>
+                <enum name="GLX_BIND_TO_TEXTURE_RGB_EXT"/>
+                <enum name="GLX_BIND_TO_TEXTURE_RGBA_EXT"/>
+                <enum name="GLX_BIND_TO_MIPMAP_TEXTURE_EXT"/>
+                <enum name="GLX_BIND_TO_TEXTURE_TARGETS_EXT"/>
+                <enum name="GLX_Y_INVERTED_EXT"/>
+                <enum name="GLX_TEXTURE_FORMAT_EXT"/>
+                <enum name="GLX_TEXTURE_TARGET_EXT"/>
+                <enum name="GLX_MIPMAP_TEXTURE_EXT"/>
+                <enum name="GLX_TEXTURE_FORMAT_NONE_EXT"/>
+                <enum name="GLX_TEXTURE_FORMAT_RGB_EXT"/>
+                <enum name="GLX_TEXTURE_FORMAT_RGBA_EXT"/>
+                <enum name="GLX_TEXTURE_1D_EXT"/>
+                <enum name="GLX_TEXTURE_2D_EXT"/>
+                <enum name="GLX_TEXTURE_RECTANGLE_EXT"/>
+                <enum name="GLX_FRONT_LEFT_EXT"/>
+                <enum name="GLX_FRONT_RIGHT_EXT"/>
+                <enum name="GLX_BACK_LEFT_EXT"/>
+                <enum name="GLX_BACK_RIGHT_EXT"/>
+                <enum name="GLX_FRONT_EXT"/>
+                <enum name="GLX_BACK_EXT"/>
+                <enum name="GLX_AUX0_EXT"/>
+                <enum name="GLX_AUX1_EXT"/>
+                <enum name="GLX_AUX2_EXT"/>
+                <enum name="GLX_AUX3_EXT"/>
+                <enum name="GLX_AUX4_EXT"/>
+                <enum name="GLX_AUX5_EXT"/>
+                <enum name="GLX_AUX6_EXT"/>
+                <enum name="GLX_AUX7_EXT"/>
+                <enum name="GLX_AUX8_EXT"/>
+                <enum name="GLX_AUX9_EXT"/>
+                <command name="glXBindTexImageEXT"/>
+                <command name="glXReleaseTexImageEXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_NV_present_video" supported="glx">
+            <require>
+                <enum name="GLX_NUM_VIDEO_SLOTS_NV"/>
+                <command name="glXEnumerateVideoDevicesNV"/>
+                <command name="glXBindVideoDeviceNV"/>
+            </require>
+        </extension>
+        <extension name="GLX_NV_video_output" supported="glx">
+            <require>
+                <enum name="GLX_VIDEO_OUT_COLOR_NV"/>
+                <enum name="GLX_VIDEO_OUT_ALPHA_NV"/>
+                <enum name="GLX_VIDEO_OUT_DEPTH_NV"/>
+                <enum name="GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV"/>
+                <enum name="GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV"/>
+                <enum name="GLX_VIDEO_OUT_FRAME_NV"/>
+                <enum name="GLX_VIDEO_OUT_FIELD_1_NV"/>
+                <enum name="GLX_VIDEO_OUT_FIELD_2_NV"/>
+                <enum name="GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV"/>
+                <enum name="GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV"/>
+                <command name="glXGetVideoDeviceNV"/>
+                <command name="glXReleaseVideoDeviceNV"/>
+                <command name="glXBindVideoImageNV"/>
+                <command name="glXReleaseVideoImageNV"/>
+                <command name="glXSendPbufferToVideoNV"/>
+                <command name="glXGetVideoInfoNV"/>
+            </require>
+        </extension>
+        <extension name="GLX_NV_swap_group" supported="glx">
+            <require>
+                <command name="glXJoinSwapGroupNV"/>
+                <command name="glXBindSwapBarrierNV"/>
+                <command name="glXQuerySwapGroupNV"/>
+                <command name="glXQueryMaxSwapGroupsNV"/>
+                <command name="glXQueryFrameCountNV"/>
+                <command name="glXResetFrameCountNV"/>
+            </require>
+        </extension>
+        <extension name="GLX_NV_video_capture" supported="glx">
+            <require>
+                <enum name="GLX_DEVICE_ID_NV"/>
+                <enum name="GLX_UNIQUE_ID_NV"/>
+                <enum name="GLX_NUM_VIDEO_CAPTURE_SLOTS_NV"/>
+                <command name="glXBindVideoCaptureDeviceNV"/>
+                <command name="glXEnumerateVideoCaptureDevicesNV"/>
+                <command name="glXLockVideoCaptureDeviceNV"/>
+                <command name="glXQueryVideoCaptureDeviceNV"/>
+                <command name="glXReleaseVideoCaptureDeviceNV"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_swap_control" supported="glx">
+            <require>
+                <enum name="GLX_SWAP_INTERVAL_EXT"/>
+                <enum name="GLX_MAX_SWAP_INTERVAL_EXT"/>
+                <command name="glXSwapIntervalEXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_NV_copy_image" supported="glx">
+            <require>
+                <command name="glXCopyImageSubDataNV"/>
+            </require>
+        </extension>
+        <extension name="GLX_INTEL_swap_event" supported="glx">
+            <require>
+                <enum name="GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK"/>
+                <enum name="GLX_EXCHANGE_COMPLETE_INTEL"/>
+                <enum name="GLX_COPY_COMPLETE_INTEL"/>
+                <enum name="GLX_FLIP_COMPLETE_INTEL"/>
+            </require>
+        </extension>
+        <extension name="GLX_NV_multisample_coverage" supported="glx">
+            <require>
+                <enum name="GLX_COVERAGE_SAMPLES_NV"/>
+                <enum name="GLX_COLOR_SAMPLES_NV"/>
+            </require>
+        </extension>
+        <extension name="GLX_AMD_gpu_association" supported="glx">
+            <require>
+                <enum name="GLX_GPU_VENDOR_AMD"/>
+                <enum name="GLX_GPU_RENDERER_STRING_AMD"/>
+                <enum name="GLX_GPU_OPENGL_VERSION_STRING_AMD"/>
+                <enum name="GLX_GPU_FASTEST_TARGET_GPUS_AMD"/>
+                <enum name="GLX_GPU_RAM_AMD"/>
+                <enum name="GLX_GPU_CLOCK_AMD"/>
+                <enum name="GLX_GPU_NUM_PIPES_AMD"/>
+                <enum name="GLX_GPU_NUM_SIMD_AMD"/>
+                <enum name="GLX_GPU_NUM_RB_AMD"/>
+                <enum name="GLX_GPU_NUM_SPI_AMD"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_create_context_es_profile" supported="glx">
+            <require>
+                <enum name="GLX_CONTEXT_ES_PROFILE_BIT_EXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_create_context_es2_profile" supported="glx">
+            <require>
+                <enum name="GLX_CONTEXT_ES2_PROFILE_BIT_EXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_swap_control_tear" supported="glx">
+            <require>
+                <enum name="GLX_LATE_SWAPS_TEAR_EXT"/>
+            </require>
+        </extension>
+        <extension name="GLX_EXT_buffer_age" supported="glx">
+            <require>
+                <enum name="GLX_BACK_BUFFER_AGE_EXT"/>
+            </require>
+        </extension>
+    </extensions>
+</registry>