MAX_TEXTURE_COORDS_ARB and MAX_TEXTURE_IMAGE_UNITS_ARB had wrong glGet info.
[mesa.git] / src / mesa / glapi / gl_API.xml
index adade55b56c88f32cbe24c62a10ad867f03ef248..1f23d8c587c72768d530060bb1b956543a1189fc 100644 (file)
 <?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI [
-<!ELEMENT OpenGLAPI (category+)>
-<!ELEMENT category (type*, enum*, function*)>
-<!ELEMENT type EMPTY>
-<!ELEMENT enum EMPTY>
-<!ELEMENT function (param*, return?, glx?)>
-<!ELEMENT param EMPTY>
-<!ELEMENT return EMPTY>
-<!ELEMENT glx EMPTY>
-
-<!ATTLIST category name   CDATA #REQUIRED
-                   number CDATA #IMPLIED>
-<!ATTLIST type     name   CDATA #REQUIRED
-                   size   CDATA #REQUIRED>
-<!ATTLIST enum     name   CDATA #REQUIRED
-                   value  CDATA #REQUIRED>
-<!ATTLIST function name   CDATA #REQUIRED
-                   offset CDATA #REQUIRED
-                  vectorequiv CDATA #IMPLIED>
-<!ATTLIST param    name   CDATA #REQUIRED
-                   type   CDATA #REQUIRED
-                  count  CDATA #IMPLIED
-                  variable_param  CDATA #IMPLIED>
-<!ATTLIST return   type     CDATA #REQUIRED>
-<!ATTLIST glx      rop      CDATA #IMPLIED
-                   sop      CDATA #IMPLIED
-                   handcode CDATA #IMPLIED
-                   ignore   CDATA #IMPLIED>
-]>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
 
 <OpenGLAPI>
 
 <!-- Core versions sorted by version number. -->
 
 <category name="1.0">
-    <type name="double"  size="8"/>
-    <type name="clampd"  size="8"/>
-
-    <type name="float"   size="4"/>
-    <type name="clampf"  size="4"/>
-
-    <type name="int"     size="4"/>
-    <type name="uint"    size="4"/>
-    <type name="sizei"   size="4"/>
-    <type name="enum"    size="4"/>
-    <type name="bitfield" size="4"/>
-
-    <type name="short"   size="2"/>
-    <type name="ushort"  size="2"/>
-
-    <type name="byte"    size="1"/>
-    <type name="ubyte"   size="1"/>
-    <type name="boolean" size="1"/>
-    
-    <type name="void"    size="0"/>
-
-    <enum name="TEXTURE_GEN_MODE" value="0x2500">
-        <size name="TexGendv" count="1"/>
-        <size name="TexGenfv" count="1"/>
-        <size name="TexGeniv" count="1"/>
+    <enum name="FALSE"                                    value="0x0"/>
+    <enum name="TRUE"                                     value="0x1"/>
+    <enum name="ZERO"                                     value="0x0"/>
+    <enum name="ONE"                                      value="0x1"/>
+    <enum name="NONE"                                     value="0x0"/>
+    <enum name="NO_ERROR"                                 value="0x0"/>
+    <enum name="POINTS"                                   value="0x0000"/>
+    <enum name="LINES"                                    value="0x0001"/>
+    <enum name="LINE_LOOP"                                value="0x0002"/>
+    <enum name="LINE_STRIP"                               value="0x0003"/>
+    <enum name="TRIANGLES"                                value="0x0004"/>
+    <enum name="TRIANGLE_STRIP"                           value="0x0005"/>
+    <enum name="TRIANGLE_FAN"                             value="0x0006"/>
+    <enum name="QUADS"                                    value="0x0007"/>
+    <enum name="QUAD_STRIP"                               value="0x0008"/>
+    <enum name="POLYGON"                                  value="0x0009"/>
+    <enum name="ACCUM"                                    value="0x0100"/>
+    <enum name="LOAD"                                     value="0x0101"/>
+    <enum name="RETURN"                                   value="0x0102"/>
+    <enum name="MULT"                                     value="0x0103"/>
+    <enum name="ADD"                                      value="0x0104"/>
+    <enum name="NEVER"                                    value="0x0200"/>
+    <enum name="LESS"                                     value="0x0201"/>
+    <enum name="EQUAL"                                    value="0x0202"/>
+    <enum name="LEQUAL"                                   value="0x0203"/>
+    <enum name="GREATER"                                  value="0x0204"/>
+    <enum name="NOTEQUAL"                                 value="0x0205"/>
+    <enum name="GEQUAL"                                   value="0x0206"/>
+    <enum name="ALWAYS"                                   value="0x0207"/>
+    <enum name="SRC_COLOR"                                value="0x0300"/>
+    <enum name="ONE_MINUS_SRC_COLOR"                      value="0x0301"/>
+    <enum name="SRC_ALPHA"                                value="0x0302"/>
+    <enum name="ONE_MINUS_SRC_ALPHA"                      value="0x0303"/>
+    <enum name="DST_ALPHA"                                value="0x0304"/>
+    <enum name="ONE_MINUS_DST_ALPHA"                      value="0x0305"/>
+    <enum name="DST_COLOR"                                value="0x0306"/>
+    <enum name="ONE_MINUS_DST_COLOR"                      value="0x0307"/>
+    <enum name="SRC_ALPHA_SATURATE"                       value="0x0308"/>
+    <enum name="FRONT_LEFT"                               value="0x0400"/>
+    <enum name="FRONT_RIGHT"                              value="0x0401"/>
+    <enum name="BACK_LEFT"                                value="0x0402"/>
+    <enum name="BACK_RIGHT"                               value="0x0403"/>
+    <enum name="FRONT"                                    value="0x0404"/>
+    <enum name="BACK"                                     value="0x0405"/>
+    <enum name="LEFT"                                     value="0x0406"/>
+    <enum name="RIGHT"                                    value="0x0407"/>
+    <enum name="FRONT_AND_BACK"                           value="0x0408"/>
+    <enum name="AUX0"                                     value="0x0409"/>
+    <enum name="AUX1"                                     value="0x040A"/>
+    <enum name="AUX2"                                     value="0x040B"/>
+    <enum name="AUX3"                                     value="0x040C"/>
+    <enum name="INVALID_VALUE"                            value="0x0501"/>
+    <enum name="INVALID_ENUM"                             value="0x0500"/>
+    <enum name="INVALID_OPERATION"                        value="0x0502"/>
+    <enum name="STACK_OVERFLOW"                           value="0x0503"/>
+    <enum name="STACK_UNDERFLOW"                          value="0x0504"/>
+    <enum name="OUT_OF_MEMORY"                            value="0x0505"/>
+    <enum name="2D"                                       value="0x0600"/>
+    <enum name="3D"                                       value="0x0601"/>
+    <enum name="3D_COLOR"                                 value="0x0602"/>
+    <enum name="3D_COLOR_TEXTURE"                         value="0x0603"/>
+    <enum name="4D_COLOR_TEXTURE"                         value="0x0604"/>
+    <enum name="PASS_THROUGH_TOKEN"                       value="0x0700"/>
+    <enum name="POINT_TOKEN"                              value="0x0701"/>
+    <enum name="LINE_TOKEN"                               value="0x0702"/>
+    <enum name="POLYGON_TOKEN"                            value="0x0703"/>
+    <enum name="BITMAP_TOKEN"                             value="0x0704"/>
+    <enum name="DRAW_PIXEL_TOKEN"                         value="0x0705"/>
+    <enum name="COPY_PIXEL_TOKEN"                         value="0x0706"/>
+    <enum name="LINE_RESET_TOKEN"                         value="0x0707"/>
+    <enum name="EXP"                                      value="0x0800"/>
+    <enum name="EXP2"                                     value="0x0801"/>
+    <enum name="CW"                                       value="0x0900"/>
+    <enum name="CCW"                                      value="0x0901"/>
+    <enum name="COEFF"                                    value="0x0A00"/>
+    <enum name="ORDER"                                    value="0x0A01"/>
+    <enum name="DOMAIN"                                   value="0x0A02"/>
+    <enum name="CURRENT_COLOR"                 count="4"  value="0x0B00">
+        <size name="Get" mode="get"/>
     </enum>
-
-    <enum name="OBJECT_PLANE" value="0x2501">
-        <size name="TexGendv" count="4"/>
-        <size name="TexGenfv" count="4"/>
-        <size name="TexGeniv" count="4"/>
+    <enum name="CURRENT_INDEX"                 count="1"  value="0x0B01">
+        <size name="Get" mode="get"/>
     </enum>
-
-    <enum name="EYE_PLANE" value="0x2502">
-        <size name="TexGendv" count="4"/>
-        <size name="TexGenfv" count="4"/>
-        <size name="TexGeniv" count="4"/>
+    <enum name="CURRENT_NORMAL"                count="3"  value="0x0B02">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_TEXTURE_COORDS"        count="4"  value="0x0B03">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_COLOR"          count="4"  value="0x0B04">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_INDEX"          count="1"  value="0x0B05">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_TEXTURE_COORDS" count="4"  value="0x0B06">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_POSITION"       count="4"  value="0x0B07">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_POSITION_VALID" count="1"  value="0x0B08">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_DISTANCE"       count="1"  value="0x0B09">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SMOOTH"                  count="1"  value="0x0B10">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SIZE"                    count="1"  value="0x0B11">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SIZE_RANGE"              count="2"  value="0x0B12">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SIZE_GRANULARITY"        count="1"  value="0x0B13">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_SMOOTH"                   count="1"  value="0x0B20">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_WIDTH"                    count="1"  value="0x0B21">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_WIDTH_RANGE"              count="2"  value="0x0B22">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_WIDTH_GRANULARITY"        count="1"  value="0x0B23">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_STIPPLE"                  count="1"  value="0x0B24">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_STIPPLE_PATTERN"          count="1"  value="0x0B25">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_STIPPLE_REPEAT"           count="1"  value="0x0B26">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIST_MODE"                     count="1"  value="0x0B30">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_LIST_NESTING"              count="1"  value="0x0B31">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIST_BASE"                     count="1"  value="0x0B32">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIST_INDEX"                    count="1"  value="0x0B33">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_MODE"                  count="2"  value="0x0B40">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_SMOOTH"                count="1"  value="0x0B41">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_STIPPLE"               count="1"  value="0x0B42">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="EDGE_FLAG"                     count="1"  value="0x0B43">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CULL_FACE"                     count="1"  value="0x0B44">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CULL_FACE_MODE"                count="1"  value="0x0B45">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FRONT_FACE"                    count="1"  value="0x0B46">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHTING"                      count="1"  value="0x0B50">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT_MODEL_LOCAL_VIEWER"      count="1"  value="0x0B51">
+        <size name="LightModelfv"/>
+        <size name="LightModeliv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT_MODEL_TWO_SIDE"          count="1"  value="0x0B52">
+        <size name="LightModelfv"/>
+        <size name="LightModeliv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT_MODEL_AMBIENT"           count="4"  value="0x0B53">
+        <size name="LightModelfv"/>
+        <size name="LightModeliv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SHADE_MODEL"                   count="1"  value="0x0B54">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_MATERIAL_FACE"           count="1"  value="0x0B55">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_MATERIAL_PARAMETER"      count="1"  value="0x0B56">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_MATERIAL"                count="1"  value="0x0B57">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG"                           count="1"  value="0x0B60">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_INDEX"                     count="1"  value="0x0B61">
+        <size name="Fogfv"/>
+        <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_DENSITY"                   count="1"  value="0x0B62">
+        <size name="Fogfv"/>
+        <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_START"                     count="1"  value="0x0B63">
+        <size name="Fogfv"/>
+        <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_END"                       count="1"  value="0x0B64">
+        <size name="Fogfv"/>
+        <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_MODE"                      count="1"  value="0x0B65">
+        <size name="Fogfv"/>
+        <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COLOR"                     count="4"  value="0x0B66">
+        <size name="Fogfv"/>
+        <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_RANGE"                   count="2"  value="0x0B70">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_TEST"                    count="1"  value="0x0B71">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_WRITEMASK"               count="1"  value="0x0B72">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_CLEAR_VALUE"             count="1"  value="0x0B73">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_FUNC"                    count="1"  value="0x0B74">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_CLEAR_VALUE"             count="4"  value="0x0B80">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_TEST"                  count="1"  value="0x0B90">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_CLEAR_VALUE"           count="1"  value="0x0B91">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_FUNC"                  count="1"  value="0x0B92">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_VALUE_MASK"            count="1"  value="0x0B93">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_FAIL"                  count="1"  value="0x0B94">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_PASS_DEPTH_FAIL"       count="1"  value="0x0B95">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_PASS_DEPTH_PASS"       count="1"  value="0x0B96">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_REF"                   count="1"  value="0x0B97">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_WRITEMASK"             count="1"  value="0x0B98">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_MODE"                   count="1"  value="0x0BA0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NORMALIZE"                     count="1"  value="0x0BA1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VIEWPORT"                      count="4"  value="0x0BA2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW_STACK_DEPTH"         count="1"  value="0x0BA3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROJECTION_STACK_DEPTH"        count="1"  value="0x0BA4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_STACK_DEPTH"           count="1"  value="0x0BA5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW_MATRIX"              count="16" value="0x0BA6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROJECTION_MATRIX"             count="16" value="0x0BA7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_MATRIX"                count="16" value="0x0BA8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ATTRIB_STACK_DEPTH"            count="1"  value="0x0BB0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIENT_ATTRIB_STACK_DEPTH"                value="0x0BB1"/>
+    <enum name="ALPHA_TEST"                    count="1"  value="0x0BC0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_TEST_FUNC"               count="1"  value="0x0BC1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_TEST_REF"                count="1"  value="0x0BC2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DITHER"                        count="1"  value="0x0BD0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_DST"                     count="1"  value="0x0BE0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_SRC"                     count="1"  value="0x0BE1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND"                         count="1"  value="0x0BE2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LOGIC_OP_MODE"                 count="1"  value="0x0BF0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LOGIC_OP"                      count="1"  value="0x0BF1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="AUX_BUFFERS"                   count="1"  value="0x0C00">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER"                   count="1"  value="0x0C01">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="READ_BUFFER"                   count="1"  value="0x0C02">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SCISSOR_BOX"                   count="4"  value="0x0C10">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SCISSOR_TEST"                  count="1"  value="0x0C11">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_CLEAR_VALUE"             count="1"  value="0x0C20">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_WRITEMASK"               count="1"  value="0x0C21">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_CLEAR_VALUE"             count="4"  value="0x0C22">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_WRITEMASK"               count="4"  value="0x0C23">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_MODE"                    count="1"  value="0x0C30">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RGBA_MODE"                     count="1"  value="0x0C31">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DOUBLEBUFFER"                  count="1"  value="0x0C32">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STEREO"                        count="1"  value="0x0C33">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RENDER_MODE"                   count="1"  value="0x0C40">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PERSPECTIVE_CORRECTION_HINT"   count="1"  value="0x0C50">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SMOOTH_HINT"             count="1"  value="0x0C51">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_SMOOTH_HINT"              count="1"  value="0x0C52">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_SMOOTH_HINT"           count="1"  value="0x0C53">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_HINT"                      count="1"  value="0x0C54">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GEN_S"                 count="1"  value="0x0C60">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GEN_T"                 count="1"  value="0x0C61">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GEN_R"                 count="1"  value="0x0C62">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GEN_Q"                 count="1"  value="0x0C63">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_I"              count="1"  value="0x0C70">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_S_TO_S"                         value="0x0C71"/>
+    <enum name="PIXEL_MAP_I_TO_R"                         value="0x0C72"/>
+    <enum name="PIXEL_MAP_I_TO_G"                         value="0x0C73"/>
+    <enum name="PIXEL_MAP_I_TO_B"                         value="0x0C74"/>
+    <enum name="PIXEL_MAP_I_TO_A"                         value="0x0C75"/>
+    <enum name="PIXEL_MAP_R_TO_R"                         value="0x0C76"/>
+    <enum name="PIXEL_MAP_G_TO_G"                         value="0x0C77"/>
+    <enum name="PIXEL_MAP_B_TO_B"                         value="0x0C78"/>
+    <enum name="PIXEL_MAP_A_TO_A"                         value="0x0C79"/>
+    <enum name="PIXEL_MAP_I_TO_I_SIZE"         count="1"  value="0x0CB0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_S_TO_S_SIZE"         count="1"  value="0x0CB1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_R_SIZE"         count="1"  value="0x0CB2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_G_SIZE"         count="1"  value="0x0CB3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_B_SIZE"         count="1"  value="0x0CB4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_A_SIZE"         count="1"  value="0x0CB5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_R_TO_R_SIZE"         count="1"  value="0x0CB6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_G_TO_G_SIZE"         count="1"  value="0x0CB7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_B_TO_B_SIZE"         count="1"  value="0x0CB8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_A_TO_A_SIZE"         count="1"  value="0x0CB9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_SWAP_BYTES"             count="1"  value="0x0CF0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_LSB_FIRST"              count="1"  value="0x0CF1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_ROW_LENGTH"             count="1"  value="0x0CF2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_SKIP_PIXELS"            count="1"  value="0x0CF4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_SKIP_ROWS"              count="1"  value="0x0CF3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_ALIGNMENT"              count="1"  value="0x0CF5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_SWAP_BYTES"               count="1"  value="0x0D00">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_LSB_FIRST"                count="1"  value="0x0D01">
+        <size name="Get" mode="get"/>
     </enum>
+    <enum name="PACK_ROW_LENGTH"               count="1"  value="0x0D02">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_SKIP_ROWS"                count="1"  value="0x0D03">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_SKIP_PIXELS"              count="1"  value="0x0D04">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_ALIGNMENT"                count="1"  value="0x0D05">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP_COLOR"                     count="1"  value="0x0D10">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP_STENCIL"                   count="1"  value="0x0D11">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_SHIFT"                   count="1"  value="0x0D12">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_OFFSET"                  count="1"  value="0x0D13">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RED_SCALE"                     count="1"  value="0x0D14">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RED_BIAS"                      count="1"  value="0x0D15">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ZOOM_X"                        count="1"  value="0x0D16">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ZOOM_Y"                        count="1"  value="0x0D17">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="GREEN_SCALE"                   count="1"  value="0x0D18">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="GREEN_BIAS"                    count="1"  value="0x0D19">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLUE_SCALE"                    count="1"  value="0x0D1A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLUE_BIAS"                     count="1"  value="0x0D1B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_SCALE"                   count="1"  value="0x0D1C">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_BIAS"                    count="1"  value="0x0D1D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_SCALE"                   count="1"  value="0x0D1E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_BIAS"                    count="1"  value="0x0D1F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_EVAL_ORDER"                count="1"  value="0x0D30">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_LIGHTS"                    count="1"  value="0x0D31">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_CLIP_PLANES"               count="1"  value="0x0D32">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_SIZE"              count="1"  value="0x0D33">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_PIXEL_MAP_TABLE"           count="1"  value="0x0D34">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_ATTRIB_STACK_DEPTH"        count="1"  value="0x0D35">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_MODELVIEW_STACK_DEPTH"     count="1"  value="0x0D36">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_NAME_STACK_DEPTH"          count="1"  value="0x0D37">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_PROJECTION_STACK_DEPTH"    count="1"  value="0x0D38">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_STACK_DEPTH"       count="1"  value="0x0D39">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_VIEWPORT_DIMS"             count="2"  value="0x0D3A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_CLIENT_ATTRIB_STACK_DEPTH"            value="0x0D3B"/>
+    <enum name="SUBPIXEL_BITS"                 count="1"  value="0x0D50">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_BITS"                    count="1"  value="0x0D51">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RED_BITS"                      count="1"  value="0x0D52">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="GREEN_BITS"                    count="1"  value="0x0D53">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLUE_BITS"                     count="1"  value="0x0D54">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_BITS"                    count="1"  value="0x0D55">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_BITS"                    count="1"  value="0x0D56">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_BITS"                  count="1"  value="0x0D57">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_RED_BITS"                count="1"  value="0x0D58">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_GREEN_BITS"              count="1"  value="0x0D59">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_BLUE_BITS"               count="1"  value="0x0D5A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_ALPHA_BITS"              count="1"  value="0x0D5B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NAME_STACK_DEPTH"              count="1"  value="0x0D70">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="AUTO_NORMAL"                   count="1"  value="0x0D80">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP1_COLOR_4"                  count="4"  value="0x0D90">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_INDEX"                    count="1"  value="0x0D91">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_NORMAL"                   count="3"  value="0x0D92">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_TEXTURE_COORD_1"          count="1"  value="0x0D93">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_TEXTURE_COORD_2"          count="2"  value="0x0D94">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_TEXTURE_COORD_3"          count="3"  value="0x0D95">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_TEXTURE_COORD_4"          count="4"  value="0x0D96">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_VERTEX_3"                 count="3"  value="0x0D97">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_VERTEX_4"                 count="4"  value="0x0D98">
+        <size name="Map1d"/>
+        <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_COLOR_4"                  count="4"  value="0x0DB0">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_INDEX"                    count="1"  value="0x0DB1">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_NORMAL"                   count="3"  value="0x0DB2">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_TEXTURE_COORD_1"          count="1"  value="0x0DB3">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_TEXTURE_COORD_2"          count="2"  value="0x0DB4">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_TEXTURE_COORD_3"          count="3"  value="0x0DB5">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_TEXTURE_COORD_4"          count="4"  value="0x0DB6">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_VERTEX_3"                 count="3"  value="0x0DB7">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP2_VERTEX_4"                 count="4"  value="0x0DB8">
+        <size name="Map2d"/>
+        <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_GRID_DOMAIN"              count="2"  value="0x0DD0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP1_GRID_SEGMENTS"            count="1"  value="0x0DD1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP2_GRID_DOMAIN"              count="4"  value="0x0DD2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP2_GRID_SEGMENTS"            count="2"  value="0x0DD3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_1D"                    count="1"  value="0x0DE0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_2D"                    count="1"  value="0x0DE1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FEEDBACK_BUFFER_POINTER"                  value="0x0DF0"/>
+    <enum name="FEEDBACK_BUFFER_SIZE"                     value="0x0DF1"/>
+    <enum name="FEEDBACK_BUFFER_TYPE"                     value="0x0DF2"/>
+    <enum name="SELECTION_BUFFER_POINTER"                 value="0x0DF3"/>
+    <enum name="SELECTION_BUFFER_SIZE"                    value="0x0DF4"/>
+    <enum name="TEXTURE_WIDTH"                 count="1"  value="0x1000">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_HEIGHT"                count="1"  value="0x1001">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BORDER"                count="1"  value="0x1005">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPONENTS"            count="1"  value="0x1003">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BORDER_COLOR"          count="4"  value="0x1004">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="DONT_CARE"                                value="0x1100"/>
+    <enum name="FASTEST"                                  value="0x1101"/>
+    <enum name="NICEST"                                   value="0x1102"/>
+    <enum name="AMBIENT"                       count="4"  value="0x1200">
+        <size name="Materialfv"/>
+        <size name="Materialiv"/>
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="DIFFUSE"                       count="4"  value="0x1201">
+        <size name="Materialfv"/>
+        <size name="Materialiv"/>
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="SPECULAR"                      count="4"  value="0x1202">
+        <size name="Materialfv"/>
+        <size name="Materialiv"/>
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="POSITION"                      count="4"  value="0x1203">
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="SPOT_DIRECTION"                count="3"  value="0x1204">
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="SPOT_EXPONENT"                 count="1"  value="0x1205">
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="SPOT_CUTOFF"                   count="1"  value="0x1206">
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="CONSTANT_ATTENUATION"          count="1"  value="0x1207">
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="LINEAR_ATTENUATION"            count="1"  value="0x1208">
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="QUADRATIC_ATTENUATION"         count="1"  value="0x1209">
+        <size name="Lightfv"/>
+        <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
+    </enum>
+    <enum name="COMPILE"                                  value="0x1300"/>
+    <enum name="COMPILE_AND_EXECUTE"                      value="0x1301"/>
+    <enum name="BYTE"                          count="1"  value="0x1400">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="UNSIGNED_BYTE"                 count="1"  value="0x1401">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="SHORT"                         count="2"  value="0x1402">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="UNSIGNED_SHORT"                count="2"  value="0x1403">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="INT"                           count="4"  value="0x1404">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="UNSIGNED_INT"                  count="4"  value="0x1405">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="FLOAT"                         count="4"  value="0x1406">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="2_BYTES"                       count="2"  value="0x1407">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="3_BYTES"                       count="3"  value="0x1408">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="4_BYTES"                       count="4"  value="0x1409">
+        <size name="CallLists"/>
+    </enum>
+    <enum name="CLEAR"                                    value="0x1500"/>
+    <enum name="AND"                                      value="0x1501"/>
+    <enum name="AND_REVERSE"                              value="0x1502"/>
+    <enum name="COPY"                                     value="0x1503"/>
+    <enum name="AND_INVERTED"                             value="0x1504"/>
+    <enum name="NOOP"                                     value="0x1505"/>
+    <enum name="XOR"                                      value="0x1506"/>
+    <enum name="OR"                                       value="0x1507"/>
+    <enum name="NOR"                                      value="0x1508"/>
+    <enum name="EQUIV"                                    value="0x1509"/>
+    <enum name="INVERT"                                   value="0x150A"/>
+    <enum name="OR_REVERSE"                               value="0x150B"/>
+    <enum name="COPY_INVERTED"                            value="0x150C"/>
+    <enum name="OR_INVERTED"                              value="0x150D"/>
+    <enum name="NAND"                                     value="0x150E"/>
+    <enum name="SET"                                      value="0x150F"/>
+    <enum name="EMISSION"                      count="4"  value="0x1600">
+        <size name="Materialfv"/>
+        <size name="Materialiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+    </enum>
+    <enum name="SHININESS"                     count="1"  value="0x1601">
+        <size name="Materialfv"/>
+        <size name="Materialiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+    </enum>
+    <enum name="AMBIENT_AND_DIFFUSE"           count="4"  value="0x1602">
+        <size name="Materialfv"/>
+        <size name="Materialiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+    </enum>
+    <enum name="COLOR_INDEXES"                 count="3"  value="0x1603">
+        <size name="Materialfv"/>
+        <size name="Materialiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW"                                value="0x1700"/>
+    <enum name="PROJECTION"                               value="0x1701"/>
+    <enum name="TEXTURE"                                  value="0x1702"/>
+    <enum name="COLOR"                                    value="0x1800"/>
+    <enum name="DEPTH"                                    value="0x1801"/>
+    <enum name="STENCIL"                                  value="0x1802"/>
+    <enum name="COLOR_INDEX"                              value="0x1900"/>
+    <enum name="STENCIL_INDEX"                            value="0x1901"/>
+    <enum name="DEPTH_COMPONENT"                          value="0x1902"/>
+    <enum name="RED"                                      value="0x1903"/>
+    <enum name="GREEN"                                    value="0x1904"/>
+    <enum name="BLUE"                                     value="0x1905"/>
+    <enum name="ALPHA"                                    value="0x1906"/>
+    <enum name="RGBA"                                     value="0x1908"/>
+    <enum name="RGB"                                      value="0x1907"/>
+    <enum name="LUMINANCE"                                value="0x1909"/>
+    <enum name="LUMINANCE_ALPHA"                          value="0x190A"/>
+    <enum name="BITMAP"                                   value="0x1A00"/>
+    <enum name="POINT"                                    value="0x1B00"/>
+    <enum name="LINE"                                     value="0x1B01"/>
+    <enum name="FILL"                                     value="0x1B02"/>
+    <enum name="FEEDBACK"                                 value="0x1C01"/>
+    <enum name="RENDER"                                   value="0x1C00"/>
+    <enum name="SELECT"                                   value="0x1C02"/>
+    <enum name="FLAT"                                     value="0x1D00"/>
+    <enum name="SMOOTH"                                   value="0x1D01"/>
+    <enum name="KEEP"                                     value="0x1E00"/>
+    <enum name="REPLACE"                                  value="0x1E01"/>
+    <enum name="INCR"                                     value="0x1E02"/>
+    <enum name="DECR"                                     value="0x1E03"/>
+    <enum name="VENDOR"                                   value="0x1F00"/>
+    <enum name="RENDERER"                                 value="0x1F01"/>
+    <enum name="VERSION"                                  value="0x1F02"/>
+    <enum name="EXTENSIONS"                               value="0x1F03"/>
+    <enum name="S"                                        value="0x2000"/>
+    <enum name="T"                                        value="0x2001"/>
+    <enum name="R"                                        value="0x2002"/>
+    <enum name="Q"                                        value="0x2003"/>
+    <enum name="MODULATE"                                 value="0x2100"/>
+    <enum name="DECAL"                                    value="0x2101"/>
+    <enum name="TEXTURE_ENV_MODE"              count="1"  value="0x2200">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_ENV_COLOR"             count="4"  value="0x2201">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_ENV"                              value="0x2300"/>
+    <enum name="EYE_LINEAR"                               value="0x2400"/>
+    <enum name="OBJECT_LINEAR"                            value="0x2401"/>
+    <enum name="SPHERE_MAP"                               value="0x2402"/>
+    <enum name="TEXTURE_GEN_MODE"              count="1"  value="0x2500">
+        <size name="TexGendv"/>
+        <size name="TexGenfv"/>
+        <size name="TexGeniv"/>
+        <size name="GetTexGendv" mode="get"/>
+        <size name="GetTexGenfv" mode="get"/>
+        <size name="GetTexGeniv" mode="get"/>
+    </enum>
+    <enum name="OBJECT_PLANE"                  count="4"  value="0x2501">
+        <size name="TexGendv"/>
+        <size name="TexGenfv"/>
+        <size name="TexGeniv"/>
+        <size name="GetTexGendv" mode="get"/>
+        <size name="GetTexGenfv" mode="get"/>
+        <size name="GetTexGeniv" mode="get"/>
+    </enum>
+    <enum name="EYE_PLANE"                     count="4"  value="0x2502">
+        <size name="TexGendv"/>
+        <size name="TexGenfv"/>
+        <size name="TexGeniv"/>
+        <size name="GetTexGendv" mode="get"/>
+        <size name="GetTexGenfv" mode="get"/>
+        <size name="GetTexGeniv" mode="get"/>
+    </enum>
+    <enum name="NEAREST"                                  value="0x2600"/>
+    <enum name="LINEAR"                                   value="0x2601"/>
+    <enum name="NEAREST_MIPMAP_NEAREST"                   value="0x2700"/>
+    <enum name="LINEAR_MIPMAP_NEAREST"                    value="0x2701"/>
+    <enum name="NEAREST_MIPMAP_LINEAR"                    value="0x2702"/>
+    <enum name="LINEAR_MIPMAP_LINEAR"                     value="0x2703"/>
+    <enum name="TEXTURE_MAG_FILTER"            count="1"  value="0x2800">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_MIN_FILTER"            count="1"  value="0x2801">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_WRAP_S"                count="1"  value="0x2802">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_WRAP_T"                count="1"  value="0x2803">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="CLAMP"                                    value="0x2900"/>
+    <enum name="REPEAT"                                   value="0x2901"/>
+    <enum name="CLIP_PLANE0"                   count="1"  value="0x3000">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE1"                   count="1"  value="0x3001">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE2"                   count="1"  value="0x3002">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE3"                   count="1"  value="0x3003">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE4"                   count="1"  value="0x3004">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE5"                   count="1"  value="0x3005">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT0"                        count="1"  value="0x4000">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT1"                        count="1"  value="0x4001">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT2"                        count="1"  value="0x4002">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT3"                        count="1"  value="0x4003">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT4"                        count="1"  value="0x4004">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT5"                        count="1"  value="0x4005">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT6"                        count="1"  value="0x4006">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT7"                        count="1"  value="0x4007">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_BIT"                              value="0x00000001"/>
+    <enum name="POINT_BIT"                                value="0x00000002"/>
+    <enum name="LINE_BIT"                                 value="0x00000004"/>
+    <enum name="POLYGON_BIT"                              value="0x00000008"/>
+    <enum name="POLYGON_STIPPLE_BIT"                      value="0x00000010"/>
+    <enum name="PIXEL_MODE_BIT"                           value="0x00000020"/>
+    <enum name="LIGHTING_BIT"                             value="0x00000040"/>
+    <enum name="FOG_BIT"                                  value="0x00000080"/>
+    <enum name="DEPTH_BUFFER_BIT"                         value="0x00000100"/>
+    <enum name="ACCUM_BUFFER_BIT"                         value="0x00000200"/>
+    <enum name="STENCIL_BUFFER_BIT"                       value="0x00000400"/>
+    <enum name="VIEWPORT_BIT"                             value="0x00000800"/>
+    <enum name="TRANSFORM_BIT"                            value="0x00001000"/>
+    <enum name="ENABLE_BIT"                               value="0x00002000"/>
+    <enum name="COLOR_BUFFER_BIT"                         value="0x00004000"/>
+    <enum name="HINT_BIT"                                 value="0x00008000"/>
+    <enum name="EVAL_BIT"                                 value="0x00010000"/>
+    <enum name="LIST_BIT"                                 value="0x00020000"/>
+    <enum name="TEXTURE_BIT"                              value="0x00040000"/>
+    <enum name="SCISSOR_BIT"                              value="0x00080000"/>
+    <enum name="ALL_ATTRIB_BITS"                          value="0x000FFFFF"/>
+
+    <type name="double"  size="8"  float="true"    glx_name="FLOAT64"/>
+    <type name="clampd"  size="8"  float="true"    glx_name="FLOAT64"/>
+
+    <type name="float"   size="4"  float="true"    glx_name="FLOAT32"/>
+    <type name="clampf"  size="4"  float="true"    glx_name="FLOAT32"/>
+
+    <type name="int"     size="4"                  glx_name="CARD32"/>
+    <type name="uint"    size="4"  unsigned="true" glx_name="CARD32"/>
+    <type name="sizei"   size="4"  unsigned="true" glx_name="CARD32"/>
+    <type name="enum"    size="4"  unsigned="true" glx_name="ENUM"/>
+    <type name="bitfield" size="4" unsigned="true" glx_name="CARD32"/>
+
+    <type name="short"   size="2"                  glx_name="CARD16"/>
+    <type name="ushort"  size="2"  unsigned="true" glx_name="CARD16"/>
+
+    <type name="byte"    size="1"                  glx_name="CARD8"/>
+    <type name="ubyte"   size="1"  unsigned="true" glx_name="CARD8"/>
+    <type name="boolean" size="1"  unsigned="true" glx_name="CARD8"/>
+    
+    <type name="void"    size="1"/>
 
     <function name="NewList" offset="0">
         <param name="list" type="GLuint"/>
         <param name="mode" type="GLenum"/>
-       <glx sop="101"/>
+        <glx sop="101"/>
     </function>
 
     <function name="EndList" offset="1">
-       <glx sop="102"/>
+        <glx sop="102"/>
     </function>
 
     <function name="CallList" offset="2">
     </function>
 
     <function name="CallLists" offset="3">
-        <param name="n" type="GLsizei"/>
+        <param name="n" type="GLsizei" counter="true"/>
         <param name="type" type="GLenum"/>
-        <param name="lists" type="const GLvoid *" variable_count="n, type"/>
-       <glx rop="2" handcode="true"/>
+        <param name="lists" type="const GLvoid *" variable_param="type" count="n"/>
+        <glx rop="2" large="true"/>
     </function>
 
     <function name="DeleteLists" offset="4">
         <param name="list" type="GLuint"/>
         <param name="range" type="GLsizei"/>
-       <glx sop="103"/>
+        <glx sop="103"/>
     </function>
 
     <function name="GenLists" offset="5">
         <param name="range" type="GLsizei"/>
         <return type="GLuint"/>
-       <glx sop="104"/>
+        <glx sop="104"/>
     </function>
 
     <function name="ListBase" offset="6">
         <param name="yorig" type="GLfloat"/>
         <param name="xmove" type="GLfloat"/>
         <param name="ymove" type="GLfloat"/>
-        <param name="bitmap" type="const GLubyte *"/>
-       <glx rop="5" handcode="true"/>
+        <param name="bitmap" type="const GLubyte *" img_width="width" img_height="height" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP" img_target="0" img_pad_dimensions="false"/>
+        <glx rop="5" large="true"/>
     </function>
 
     <function name="Color3b" offset="9" vectorequiv="Color3bv">
 
     <function name="EdgeFlagv" offset="42">
         <param name="flag" type="const GLboolean *" count="1"/>
-       <glx rop="22"/>
+        <glx rop="22"/>
     </function>
 
     <function name="End" offset="43">
     <function name="Rectdv" offset="87">
         <param name="v1" type="const GLdouble *" count="2"/>
         <param name="v2" type="const GLdouble *" count="2"/>
-       <glx rop="45"/>
+        <glx rop="45"/>
     </function>
 
     <function name="Rectf" offset="88" vectorequiv="Rectfv">
     <function name="Rectfv" offset="89">
         <param name="v1" type="const GLfloat *" count="2"/>
         <param name="v2" type="const GLfloat *" count="2"/>
-       <glx rop="46"/>
+        <glx rop="46"/>
     </function>
 
     <function name="Recti" offset="90" vectorequiv="Rectiv">
     <function name="Rectiv" offset="91">
         <param name="v1" type="const GLint *" count="2"/>
         <param name="v2" type="const GLint *" count="2"/>
-       <glx rop="47"/>
+        <glx rop="47"/>
     </function>
 
     <function name="Rects" offset="92" vectorequiv="Rectsv">
     <function name="Rectsv" offset="93">
         <param name="v1" type="const GLshort *" count="2"/>
         <param name="v2" type="const GLshort *" count="2"/>
-       <glx rop="48"/>
+        <glx rop="48"/>
     </function>
 
     <function name="TexCoord1d" offset="94" vectorequiv="TexCoord1dv">
 
     <function name="TexCoord1dv" offset="95">
         <param name="v" type="const GLdouble *" count="1"/>
-       <glx rop="49"/>
+        <glx rop="49"/>
     </function>
 
     <function name="TexCoord1f" offset="96" vectorequiv="TexCoord1fv">
 
     <function name="TexCoord1fv" offset="97">
         <param name="v" type="const GLfloat *" count="1"/>
-       <glx rop="50"/>
+        <glx rop="50"/>
     </function>
 
     <function name="TexCoord1i" offset="98" vectorequiv="TexCoord1iv">
 
     <function name="TexCoord1iv" offset="99">
         <param name="v" type="const GLint *" count="1"/>
-       <glx rop="51"/>
+        <glx rop="51"/>
     </function>
 
     <function name="TexCoord1s" offset="100" vectorequiv="TexCoord1sv">
 
     <function name="TexCoord1sv" offset="101">
         <param name="v" type="const GLshort *" count="1"/>
-       <glx rop="52"/>
+        <glx rop="52"/>
     </function>
 
     <function name="TexCoord2d" offset="102" vectorequiv="TexCoord2dv">
 
     <function name="TexCoord2dv" offset="103">
         <param name="v" type="const GLdouble *" count="2"/>
-       <glx rop="53"/>
+        <glx rop="53"/>
     </function>
 
     <function name="TexCoord2f" offset="104" vectorequiv="TexCoord2fv">
 
     <function name="TexCoord2fv" offset="105">
         <param name="v" type="const GLfloat *" count="2"/>
-       <glx rop="54"/>
+        <glx rop="54"/>
     </function>
 
     <function name="TexCoord2i" offset="106" vectorequiv="TexCoord2iv">
 
     <function name="TexCoord2iv" offset="107">
         <param name="v" type="const GLint *" count="2"/>
-       <glx rop="55"/>
+        <glx rop="55"/>
     </function>
 
     <function name="TexCoord2s" offset="108" vectorequiv="TexCoord2sv">
 
     <function name="TexCoord2sv" offset="109">
         <param name="v" type="const GLshort *" count="2"/>
-       <glx rop="56"/>
+        <glx rop="56"/>
     </function>
 
     <function name="TexCoord3d" offset="110" vectorequiv="TexCoord3dv">
 
     <function name="TexCoord3dv" offset="111">
         <param name="v" type="const GLdouble *" count="3"/>
-       <glx rop="57"/>
+        <glx rop="57"/>
     </function>
 
     <function name="TexCoord3f" offset="112" vectorequiv="TexCoord3fv">
 
     <function name="TexCoord3fv" offset="113">
         <param name="v" type="const GLfloat *" count="3"/>
-       <glx rop="58"/>
+        <glx rop="58"/>
     </function>
 
     <function name="TexCoord3i" offset="114" vectorequiv="TexCoord3iv">
 
     <function name="TexCoord3iv" offset="115">
         <param name="v" type="const GLint *" count="3"/>
-       <glx rop="59"/>
+        <glx rop="59"/>
     </function>
 
     <function name="TexCoord3s" offset="116" vectorequiv="TexCoord3sv">
 
     <function name="TexCoord3sv" offset="117">
         <param name="v" type="const GLshort *" count="3"/>
-       <glx rop="60"/>
+        <glx rop="60"/>
     </function>
 
     <function name="TexCoord4d" offset="118" vectorequiv="TexCoord4dv">
 
     <function name="TexCoord4dv" offset="119">
         <param name="v" type="const GLdouble *" count="4"/>
-       <glx rop="61"/>
+        <glx rop="61"/>
     </function>
 
     <function name="TexCoord4f" offset="120" vectorequiv="TexCoord4fv">
 
     <function name="TexCoord4fv" offset="121">
         <param name="v" type="const GLfloat *" count="4"/>
-       <glx rop="62"/>
+        <glx rop="62"/>
     </function>
 
     <function name="TexCoord4i" offset="122" vectorequiv="TexCoord4iv">
 
     <function name="TexCoord4iv" offset="123">
         <param name="v" type="const GLint *" count="4"/>
-       <glx rop="63"/>
+        <glx rop="63"/>
     </function>
 
     <function name="TexCoord4s" offset="124" vectorequiv="TexCoord4sv">
 
     <function name="TexCoord4sv" offset="125">
         <param name="v" type="const GLshort *" count="4"/>
-       <glx rop="64"/>
+        <glx rop="64"/>
     </function>
 
     <function name="Vertex2d" offset="126" vectorequiv="Vertex2dv">
 
     <function name="Vertex2dv" offset="127">
         <param name="v" type="const GLdouble *" count="2"/>
-       <glx rop="65"/>
+        <glx rop="65"/>
     </function>
 
     <function name="Vertex2f" offset="128" vectorequiv="Vertex2fv">
 
     <function name="Vertex2fv" offset="129">
         <param name="v" type="const GLfloat *" count="2"/>
-       <glx rop="66"/>
+        <glx rop="66"/>
     </function>
 
     <function name="Vertex2i" offset="130" vectorequiv="Vertex2iv">
 
     <function name="Vertex2iv" offset="131">
         <param name="v" type="const GLint *" count="2"/>
-       <glx rop="67"/>
+        <glx rop="67"/>
     </function>
 
     <function name="Vertex2s" offset="132" vectorequiv="Vertex2sv">
 
     <function name="Vertex2sv" offset="133">
         <param name="v" type="const GLshort *" count="2"/>
-       <glx rop="68"/>
+        <glx rop="68"/>
     </function>
 
     <function name="Vertex3d" offset="134" vectorequiv="Vertex3dv">
 
     <function name="Vertex3dv" offset="135">
         <param name="v" type="const GLdouble *" count="3"/>
-       <glx rop="69"/>
+        <glx rop="69"/>
     </function>
 
     <function name="Vertex3f" offset="136" vectorequiv="Vertex3fv">
 
     <function name="Vertex3fv" offset="137">
         <param name="v" type="const GLfloat *" count="3"/>
-       <glx rop="70"/>
+        <glx rop="70"/>
     </function>
 
     <function name="Vertex3i" offset="138" vectorequiv="Vertex3iv">
 
     <function name="Vertex3iv" offset="139">
         <param name="v" type="const GLint *" count="3"/>
-       <glx rop="71"/>
+        <glx rop="71"/>
     </function>
 
     <function name="Vertex3s" offset="140" vectorequiv="Vertex3sv">
 
     <function name="Vertex3sv" offset="141">
         <param name="v" type="const GLshort *" count="3"/>
-       <glx rop="72"/>
+        <glx rop="72"/>
     </function>
 
     <function name="Vertex4d" offset="142" vectorequiv="Vertex4dv">
 
     <function name="Vertex4dv" offset="143">
         <param name="v" type="const GLdouble *" count="4"/>
-       <glx rop="73"/>
+        <glx rop="73"/>
     </function>
 
     <function name="Vertex4f" offset="144" vectorequiv="Vertex4fv">
 
     <function name="Vertex4fv" offset="145">
         <param name="v" type="const GLfloat *" count="4"/>
-       <glx rop="74"/>
+        <glx rop="74"/>
     </function>
 
     <function name="Vertex4i" offset="146" vectorequiv="Vertex4iv">
 
     <function name="Vertex4iv" offset="147">
         <param name="v" type="const GLint *" count="4"/>
-       <glx rop="75"/>
+        <glx rop="75"/>
     </function>
 
     <function name="Vertex4s" offset="148" vectorequiv="Vertex4sv">
 
     <function name="Vertex4sv" offset="149">
         <param name="v" type="const GLshort *" count="4"/>
-       <glx rop="76"/>
+        <glx rop="76"/>
     </function>
 
     <function name="ClipPlane" offset="150">
         <param name="plane" type="GLenum"/>
         <param name="equation" type="const GLdouble *" count="4"/>
-       <glx rop="77"/>
+        <glx rop="77"/>
     </function>
 
     <function name="ColorMaterial" offset="151">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
-       <glx rop="78"/>
+        <glx rop="78"/>
     </function>
 
     <function name="CullFace" offset="152">
         <param name="mode" type="GLenum"/>
-       <glx rop="79"/>
+        <glx rop="79"/>
     </function>
 
     <function name="Fogf" offset="153">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="80"/>
+        <glx rop="80"/>
     </function>
 
     <function name="Fogfv" offset="154">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="81"/>
+        <glx rop="81"/>
     </function>
 
     <function name="Fogi" offset="155">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="82"/>
+        <glx rop="82"/>
     </function>
 
     <function name="Fogiv" offset="156">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="83"/>
+        <glx rop="83"/>
     </function>
 
     <function name="FrontFace" offset="157">
         <param name="mode" type="GLenum"/>
-       <glx rop="84"/>
+        <glx rop="84"/>
     </function>
 
     <function name="Hint" offset="158">
         <param name="target" type="GLenum"/>
         <param name="mode" type="GLenum"/>
-       <glx rop="85"/>
+        <glx rop="85"/>
     </function>
 
     <function name="Lightf" offset="159">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="86"/>
+        <glx rop="86"/>
     </function>
 
     <function name="Lightfv" offset="160">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="87"/>
+        <glx rop="87"/>
     </function>
 
     <function name="Lighti" offset="161">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="88"/>
+        <glx rop="88"/>
     </function>
 
     <function name="Lightiv" offset="162">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="89"/>
+        <glx rop="89"/>
     </function>
 
     <function name="LightModelf" offset="163">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="90"/>
+        <glx rop="90"/>
     </function>
 
     <function name="LightModelfv" offset="164">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="91"/>
+        <glx rop="91"/>
     </function>
 
     <function name="LightModeli" offset="165">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="92"/>
+        <glx rop="92"/>
     </function>
 
     <function name="LightModeliv" offset="166">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="93"/>
+        <glx rop="93"/>
     </function>
 
     <function name="LineStipple" offset="167">
         <param name="factor" type="GLint"/>
         <param name="pattern" type="GLushort"/>
-       <glx rop="94"/>
+        <glx rop="94"/>
     </function>
 
     <function name="LineWidth" offset="168">
         <param name="width" type="GLfloat"/>
-       <glx rop="95"/>
+        <glx rop="95"/>
     </function>
 
     <function name="Materialf" offset="169">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="96"/>
+        <glx rop="96"/>
     </function>
 
     <function name="Materialfv" offset="170">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="97"/>
+        <glx rop="97"/>
     </function>
 
     <function name="Materiali" offset="171">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="98"/>
+        <glx rop="98"/>
     </function>
 
     <function name="Materialiv" offset="172">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="99"/>
+        <glx rop="99"/>
     </function>
 
     <function name="PointSize" offset="173">
         <param name="size" type="GLfloat"/>
-       <glx rop="100"/>
+        <glx rop="100"/>
     </function>
 
     <function name="PolygonMode" offset="174">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
-       <glx rop="101"/>
+        <glx rop="101"/>
     </function>
 
     <function name="PolygonStipple" offset="175">
-        <param name="mask" type="const GLubyte *"/>
-       <glx rop="102" handcode="true"/>
+        <param name="mask" type="const GLubyte *" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP" img_target="0" img_pad_dimensions="false"/>
+        <glx rop="102"/>
     </function>
 
     <function name="Scissor" offset="176">
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
-       <glx rop="103"/>
+        <glx rop="103"/>
     </function>
 
     <function name="ShadeModel" offset="177">
         <param name="mode" type="GLenum"/>
-       <glx rop="104"/>
+        <glx rop="104"/>
     </function>
 
     <function name="TexParameterf" offset="178">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="105"/>
+        <glx rop="105"/>
     </function>
 
     <function name="TexParameterfv" offset="179">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="106"/>
+        <glx rop="106"/>
     </function>
 
     <function name="TexParameteri" offset="180">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="107"/>
+        <glx rop="107"/>
     </function>
 
     <function name="TexParameteriv" offset="181">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="108"/>
+        <glx rop="108"/>
     </function>
 
     <function name="TexImage1D" offset="182">
         <param name="border" type="GLint"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="109" handcode="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_format="format" img_type="type" img_target="target" img_send_null="true" img_pad_dimensions="true"/>
+        <glx rop="109" large="true"/>
     </function>
 
     <function name="TexImage2D" offset="183">
         <param name="border" type="GLint"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="110" handcode="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="target" img_send_null="true" img_pad_dimensions="true"/>
+        <glx rop="110" large="true"/>
     </function>
 
     <function name="TexEnvf" offset="184">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="111"/>
+        <glx rop="111"/>
     </function>
 
     <function name="TexEnvfv" offset="185">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="112"/>
+        <glx rop="112"/>
     </function>
 
     <function name="TexEnvi" offset="186">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="113"/>
+        <glx rop="113"/>
     </function>
 
     <function name="TexEnviv" offset="187">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="114"/>
+        <glx rop="114"/>
     </function>
 
     <function name="TexGend" offset="188">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLdouble"/>
-       <glx rop="115"/>
+        <glx rop="115"/>
     </function>
 
     <function name="TexGendv" offset="189">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLdouble *" variable_param="pname"/>
-       <glx rop="116"/>
+        <glx rop="116"/>
     </function>
 
     <function name="TexGenf" offset="190">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="117"/>
+        <glx rop="117"/>
     </function>
 
     <function name="TexGenfv" offset="191">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="118"/>
+        <glx rop="118"/>
     </function>
 
     <function name="TexGeni" offset="192">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="119"/>
+        <glx rop="119"/>
     </function>
 
     <function name="TexGeniv" offset="193">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="120"/>
+        <glx rop="120"/>
     </function>
 
     <function name="FeedbackBuffer" offset="194">
         <param name="size" type="GLsizei"/>
         <param name="type" type="GLenum"/>
-        <param name="buffer" type="GLfloat *"/>
-       <glx sop="105" handcode="true"/>
+        <param name="buffer" type="GLfloat *" output="true"/>
+        <glx sop="105" handcode="true"/>
     </function>
 
     <function name="SelectBuffer" offset="195">
         <param name="size" type="GLsizei"/>
-        <param name="buffer" type="GLuint *"/>
-       <glx sop="106" handcode="true"/>
+        <param name="buffer" type="GLuint *" output="true"/>
+        <glx sop="106" handcode="true"/>
     </function>
 
     <function name="RenderMode" offset="196">
         <param name="mode" type="GLenum"/>
         <return type="GLint"/>
-       <glx sop="107" handcode="true"/>
+        <glx sop="107" handcode="true"/>
     </function>
 
     <function name="InitNames" offset="197">
-       <glx rop="121"/>
+        <glx rop="121"/>
     </function>
 
     <function name="LoadName" offset="198">
         <param name="name" type="GLuint"/>
-       <glx rop="122"/>
+        <glx rop="122"/>
     </function>
 
     <function name="PassThrough" offset="199">
         <param name="token" type="GLfloat"/>
-       <glx rop="123"/>
+        <glx rop="123"/>
     </function>
 
     <function name="PopName" offset="200">
-       <glx rop="124"/>
+        <glx rop="124"/>
     </function>
 
     <function name="PushName" offset="201">
         <param name="name" type="GLuint"/>
-       <glx rop="125"/>
+        <glx rop="125"/>
     </function>
 
     <function name="DrawBuffer" offset="202">
         <param name="mode" type="GLenum"/>
-       <glx rop="126"/>
+        <glx rop="126"/>
     </function>
 
     <function name="Clear" offset="203">
         <param name="mask" type="GLbitfield"/>
-       <glx rop="127"/>
+        <glx rop="127"/>
     </function>
 
     <function name="ClearAccum" offset="204">
         <param name="green" type="GLfloat"/>
         <param name="blue" type="GLfloat"/>
         <param name="alpha" type="GLfloat"/>
-       <glx rop="128"/>
+        <glx rop="128"/>
     </function>
 
     <function name="ClearIndex" offset="205">
         <param name="c" type="GLfloat"/>
-       <glx rop="129"/>
+        <glx rop="129"/>
     </function>
 
     <function name="ClearColor" offset="206">
         <param name="green" type="GLclampf"/>
         <param name="blue" type="GLclampf"/>
         <param name="alpha" type="GLclampf"/>
-       <glx rop="130"/>
+        <glx rop="130"/>
     </function>
 
     <function name="ClearStencil" offset="207">
         <param name="s" type="GLint"/>
-       <glx rop="131"/>
+        <glx rop="131"/>
     </function>
 
     <function name="ClearDepth" offset="208">
         <param name="depth" type="GLclampd"/>
-       <glx rop="132"/>
+        <glx rop="132"/>
     </function>
 
     <function name="StencilMask" offset="209">
         <param name="mask" type="GLuint"/>
-       <glx rop="133"/>
+        <glx rop="133"/>
     </function>
 
     <function name="ColorMask" offset="210">
         <param name="green" type="GLboolean"/>
         <param name="blue" type="GLboolean"/>
         <param name="alpha" type="GLboolean"/>
-       <glx rop="134"/>
+        <glx rop="134"/>
     </function>
 
     <function name="DepthMask" offset="211">
         <param name="flag" type="GLboolean"/>
-       <glx rop="135"/>
+        <glx rop="135"/>
     </function>
 
     <function name="IndexMask" offset="212">
         <param name="mask" type="GLuint"/>
-       <glx rop="136"/>
+        <glx rop="136"/>
     </function>
 
     <function name="Accum" offset="213">
         <param name="op" type="GLenum"/>
         <param name="value" type="GLfloat"/>
-       <glx rop="137"/>
+        <glx rop="137"/>
     </function>
 
     <function name="Disable" offset="214">
         <param name="cap" type="GLenum"/>
-       <glx rop="138"/>
+        <glx rop="138" handcode="client"/>
     </function>
 
     <function name="Enable" offset="215">
         <param name="cap" type="GLenum"/>
-       <glx rop="139"/>
+        <glx rop="139" handcode="client"/>
     </function>
 
     <function name="Finish" offset="216">
     </function>
 
     <function name="PopAttrib" offset="218">
-       <glx rop="141"/>
+        <glx rop="141"/>
     </function>
 
     <function name="PushAttrib" offset="219">
         <param name="mask" type="GLbitfield"/>
-       <glx rop="142"/>
+        <glx rop="142"/>
     </function>
 
     <function name="Map1d" offset="220">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
-        <param name="stride" type="GLint"/>
+        <param name="stride" type="GLint" client_only="true"/>
         <param name="order" type="GLint"/>
-        <param name="points" type="const GLdouble *"/>
-       <glx rop="143" handcode="true"/>
+        <param name="points" type="const GLdouble *" variable_param="order"/>
+        <glx rop="143" handcode="true"/>
     </function>
 
     <function name="Map1f" offset="221">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
-        <param name="stride" type="GLint"/>
+        <param name="stride" type="GLint" client_only="true"/>
         <param name="order" type="GLint"/>
-        <param name="points" type="const GLfloat *"/>
-       <glx rop="144" handcode="true"/>
+        <param name="points" type="const GLfloat *" variable_param="order"/>
+        <glx rop="144" handcode="true"/>
     </function>
 
     <function name="Map2d" offset="222">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
-        <param name="ustride" type="GLint"/>
+        <param name="ustride" type="GLint" client_only="true"/>
         <param name="uorder" type="GLint"/>
         <param name="v1" type="GLdouble"/>
         <param name="v2" type="GLdouble"/>
-        <param name="vstride" type="GLint"/>
+        <param name="vstride" type="GLint" client_only="true"/>
         <param name="vorder" type="GLint"/>
-        <param name="points" type="const GLdouble *"/>
-       <glx rop="145" handcode="true"/>
+        <param name="points" type="const GLdouble *" variable_param="uorder"/>
+        <glx rop="145" handcode="true"/>
     </function>
 
     <function name="Map2f" offset="223">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
-        <param name="ustride" type="GLint"/>
+        <param name="ustride" type="GLint" client_only="true"/>
         <param name="uorder" type="GLint"/>
         <param name="v1" type="GLfloat"/>
         <param name="v2" type="GLfloat"/>
-        <param name="vstride" type="GLint"/>
+        <param name="vstride" type="GLint" client_only="true"/>
         <param name="vorder" type="GLint"/>
-        <param name="points" type="const GLfloat *"/>
-       <glx rop="146" handcode="true"/>
+        <param name="points" type="const GLfloat *" variable_param="uorder"/>
+        <glx rop="146" handcode="true"/>
     </function>
 
     <function name="MapGrid1d" offset="224">
         <param name="un" type="GLint"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
-       <glx rop="147"/>
+        <glx rop="147"/>
     </function>
 
     <function name="MapGrid1f" offset="225">
         <param name="un" type="GLint"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
-       <glx rop="148"/>
+        <glx rop="148"/>
     </function>
 
     <function name="MapGrid2d" offset="226">
         <param name="vn" type="GLint"/>
         <param name="v1" type="GLdouble"/>
         <param name="v2" type="GLdouble"/>
-       <glx rop="149"/>
+        <glx rop="149"/>
     </function>
 
     <function name="MapGrid2f" offset="227">
         <param name="vn" type="GLint"/>
         <param name="v1" type="GLfloat"/>
         <param name="v2" type="GLfloat"/>
-       <glx rop="150"/>
+        <glx rop="150"/>
     </function>
 
     <function name="EvalCoord1d" offset="228" vectorequiv="EvalCoord1dv">
 
     <function name="EvalCoord1dv" offset="229">
         <param name="u" type="const GLdouble *" count="1"/>
-       <glx rop="151"/>
+        <glx rop="151"/>
     </function>
 
     <function name="EvalCoord1f" offset="230" vectorequiv="EvalCoord1fv">
 
     <function name="EvalCoord1fv" offset="231">
         <param name="u" type="const GLfloat *" count="1"/>
-       <glx rop="152"/>
+        <glx rop="152"/>
     </function>
 
     <function name="EvalCoord2d" offset="232" vectorequiv="EvalCoord2dv">
 
     <function name="EvalCoord2dv" offset="233">
         <param name="u" type="const GLdouble *" count="2"/>
-       <glx rop="153"/>
+        <glx rop="153"/>
     </function>
 
     <function name="EvalCoord2f" offset="234" vectorequiv="EvalCoord2fv">
 
     <function name="EvalCoord2fv" offset="235">
         <param name="u" type="const GLfloat *" count="2"/>
-       <glx rop="154"/>
+        <glx rop="154"/>
     </function>
 
     <function name="EvalMesh1" offset="236">
         <param name="mode" type="GLenum"/>
         <param name="i1" type="GLint"/>
         <param name="i2" type="GLint"/>
-       <glx rop="155"/>
+        <glx rop="155"/>
     </function>
 
     <function name="EvalPoint1" offset="237">
         <param name="i" type="GLint"/>
-       <glx rop="156"/>
+        <glx rop="156"/>
     </function>
 
     <function name="EvalMesh2" offset="238">
         <param name="i2" type="GLint"/>
         <param name="j1" type="GLint"/>
         <param name="j2" type="GLint"/>
-       <glx rop="157"/>
+        <glx rop="157"/>
     </function>
 
     <function name="EvalPoint2" offset="239">
         <param name="i" type="GLint"/>
         <param name="j" type="GLint"/>
-       <glx rop="158"/>
+        <glx rop="158"/>
     </function>
 
     <function name="AlphaFunc" offset="240">
         <param name="func" type="GLenum"/>
         <param name="ref" type="GLclampf"/>
-       <glx rop="159"/>
+        <glx rop="159"/>
     </function>
 
     <function name="BlendFunc" offset="241">
         <param name="sfactor" type="GLenum"/>
         <param name="dfactor" type="GLenum"/>
-       <glx rop="160"/>
+        <glx rop="160"/>
     </function>
 
     <function name="LogicOp" offset="242">
         <param name="opcode" type="GLenum"/>
-       <glx rop="161"/>
+        <glx rop="161"/>
     </function>
 
     <function name="StencilFunc" offset="243">
         <param name="func" type="GLenum"/>
         <param name="ref" type="GLint"/>
         <param name="mask" type="GLuint"/>
-       <glx rop="162"/>
+        <glx rop="162"/>
     </function>
 
     <function name="StencilOp" offset="244">
         <param name="fail" type="GLenum"/>
         <param name="zfail" type="GLenum"/>
         <param name="zpass" type="GLenum"/>
-       <glx rop="163"/>
+        <glx rop="163"/>
     </function>
 
     <function name="DepthFunc" offset="245">
         <param name="func" type="GLenum"/>
-       <glx rop="164"/>
+        <glx rop="164"/>
     </function>
 
     <function name="PixelZoom" offset="246">
         <param name="xfactor" type="GLfloat"/>
         <param name="yfactor" type="GLfloat"/>
-       <glx rop="165"/>
+        <glx rop="165"/>
     </function>
 
     <function name="PixelTransferf" offset="247">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="166"/>
+        <glx rop="166"/>
     </function>
 
     <function name="PixelTransferi" offset="248">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="167"/>
+        <glx rop="167"/>
     </function>
 
     <function name="PixelStoref" offset="249">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="109" handcode="true"/>
+        <glx sop="109" handcode="client"/>
     </function>
 
     <function name="PixelStorei" offset="250">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="110" handcode="true"/>
+        <glx sop="110" handcode="client"/>
     </function>
 
     <function name="PixelMapfv" offset="251">
         <param name="map" type="GLenum"/>
-        <param name="mapsize" type="GLsizei"/>
-        <param name="values" type="const GLfloat *"/>
-       <glx sop="125" handcode="true"/>
+        <param name="mapsize" type="GLsizei" counter="true"/>
+        <param name="values" type="const GLfloat *" count="mapsize"/>
+        <glx rop="168" large="true"/>
     </function>
 
     <function name="PixelMapuiv" offset="252">
         <param name="map" type="GLenum"/>
-        <param name="mapsize" type="GLsizei"/>
-        <param name="values" type="const GLuint *"/>
-       <glx sop="126" handcode="true"/>
+        <param name="mapsize" type="GLsizei" counter="true"/>
+        <param name="values" type="const GLuint *" count="mapsize"/>
+        <glx rop="169" large="true"/>
     </function>
 
     <function name="PixelMapusv" offset="253">
         <param name="map" type="GLenum"/>
-        <param name="mapsize" type="GLsizei"/>
-        <param name="values" type="const GLushort *"/>
-       <glx sop="127" handcode="true"/>
+        <param name="mapsize" type="GLsizei" counter="true"/>
+        <param name="values" type="const GLushort *" count="mapsize"/>
+        <glx rop="170" large="true"/>
     </function>
 
     <function name="ReadBuffer" offset="254">
         <param name="mode" type="GLenum"/>
-       <glx rop="171"/>
+        <glx rop="171"/>
     </function>
 
     <function name="CopyPixels" offset="255">
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="type" type="GLenum"/>
-       <glx rop="172"/>
+        <glx rop="172"/>
     </function>
 
     <function name="ReadPixels" offset="256">
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="GLvoid *"/>
-       <glx sop="111" handcode="true"/>
+        <param name="pixels" type="GLvoid *" output="true"  img_width="width" img_height="height" img_format="format" img_type="type" img_target="0"/>
+        <glx sop="111"/>
     </function>
 
     <function name="DrawPixels" offset="257">
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="173" handcode="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="0" img_pad_dimensions="false"/>
+        <glx rop="173" large="true"/>
     </function>
 
     <function name="GetBooleanv" offset="258">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLboolean *"/>
-       <glx sop="112" handcode="true"/>
+        <param name="params" type="GLboolean *" output="true" variable_param="pname"/>
+        <glx sop="112" handcode="client"/>
     </function>
 
     <function name="GetClipPlane" offset="259">
         <param name="plane" type="GLenum"/>
-        <param name="equation" type="GLdouble *" output="true"/>
-       <glx sop="113" handcode="true"/>
+        <param name="equation" type="GLdouble *" output="true" count="4"/>
+        <glx sop="113" always_array="true"/>
     </function>
 
     <function name="GetDoublev" offset="260">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *"/>
-       <glx sop="114" handcode="true"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx sop="114" handcode="client"/>
     </function>
 
     <function name="GetError" offset="261">
         <return type="GLenum"/>
-       <glx sop="115" handcode="true"/>
+        <glx sop="115" handcode="client"/>
     </function>
 
     <function name="GetFloatv" offset="262">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
-       <glx sop="116" handcode="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="116" handcode="client"/>
     </function>
 
     <function name="GetIntegerv" offset="263">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
-       <glx sop="117" handcode="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="117" handcode="client"/>
     </function>
 
     <function name="GetLightfv" offset="264">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="118"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="118"/>
     </function>
 
     <function name="GetLightiv" offset="265">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="119"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="119"/>
     </function>
 
     <function name="GetMapdv" offset="266">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
-        <param name="v" type="GLdouble *" output="true"/>
-       <glx sop="120"/>
+        <param name="v" type="GLdouble *" output="true" variable_param="target query"/>
+        <glx sop="120"/>
     </function>
 
     <function name="GetMapfv" offset="267">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
-        <param name="v" type="GLfloat *" output="true"/>
-       <glx sop="121"/>
+        <param name="v" type="GLfloat *" output="true" variable_param="target query"/>
+        <glx sop="121"/>
     </function>
 
     <function name="GetMapiv" offset="268">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
-        <param name="v" type="GLint *" output="true"/>
-       <glx sop="122"/>
+        <param name="v" type="GLint *" output="true" variable_param="target query"/>
+        <glx sop="122"/>
     </function>
 
     <function name="GetMaterialfv" offset="269">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="123"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="123"/>
     </function>
 
     <function name="GetMaterialiv" offset="270">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="124"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="124"/>
     </function>
 
     <function name="GetPixelMapfv" offset="271">
         <param name="map" type="GLenum"/>
-        <param name="values" type="GLfloat *" output="true"/>
-       <glx sop="125"/>
+        <param name="values" type="GLfloat *" output="true" variable_param="map"/>
+        <glx sop="125"/>
     </function>
 
     <function name="GetPixelMapuiv" offset="272">
         <param name="map" type="GLenum"/>
-        <param name="values" type="GLuint *" output="true"/>
-       <glx sop="126"/>
+        <param name="values" type="GLuint *" output="true" variable_param="map"/>
+        <glx sop="126"/>
     </function>
 
     <function name="GetPixelMapusv" offset="273">
         <param name="map" type="GLenum"/>
-        <param name="values" type="GLushort *" output="true"/>
-       <glx sop="127"/>
+        <param name="values" type="GLushort *" output="true" variable_param="map"/>
+        <glx sop="127"/>
     </function>
 
     <function name="GetPolygonStipple" offset="274">
-        <param name="mask" type="GLubyte *"/>
-       <glx sop="128" handcode="true"/>
+        <param name="mask" type="GLubyte *" output="true" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP"/>
+        <glx sop="128"/>
     </function>
 
     <function name="GetString" offset="275">
         <param name="name" type="GLenum"/>
         <return type="const GLubyte *"/>
-       <glx sop="129" handcode="true"/>
+        <glx sop="129" handcode="true"/>
     </function>
 
     <function name="GetTexEnvfv" offset="276">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="130"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="130"/>
     </function>
 
     <function name="GetTexEnviv" offset="277">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="131"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="131"/>
     </function>
 
     <function name="GetTexGendv" offset="278">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *" output="true"/>
-       <glx sop="132"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx sop="132"/>
     </function>
 
     <function name="GetTexGenfv" offset="279">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="133"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="133"/>
     </function>
 
     <function name="GetTexGeniv" offset="280">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="134"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="134"/>
     </function>
 
     <function name="GetTexImage" offset="281">
         <param name="level" type="GLint"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="GLvoid *"/>
-       <glx sop="135" handcode="true"/>
+        <param name="pixels" type="GLvoid *" output="true" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type"/>
+        <glx sop="135" dimensions_in_reply="true"/>
     </function>
 
     <function name="GetTexParameterfv" offset="282">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="136"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="136"/>
     </function>
 
     <function name="GetTexParameteriv" offset="283">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="137"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="137"/>
     </function>
 
     <function name="GetTexLevelParameterfv" offset="284">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="138"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="138"/>
     </function>
 
     <function name="GetTexLevelParameteriv" offset="285">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="139"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="139"/>
     </function>
 
     <function name="IsEnabled" offset="286">
         <param name="cap" type="GLenum"/>
         <return type="GLboolean"/>
-       <glx sop="140" handcode="true"/>
+        <glx sop="140" handcode="client"/>
     </function>
 
     <function name="IsList" offset="287">
         <param name="list" type="GLuint"/>
         <return type="GLboolean"/>
-       <glx sop="141"/>
+        <glx sop="141"/>
     </function>
 
     <function name="DepthRange" offset="288">
         <param name="zNear" type="GLclampd"/>
         <param name="zFar" type="GLclampd"/>
-       <glx rop="174"/>
+        <glx rop="174"/>
     </function>
 
     <function name="Frustum" offset="289">
         <param name="top" type="GLdouble"/>
         <param name="zNear" type="GLdouble"/>
         <param name="zFar" type="GLdouble"/>
-       <glx rop="175"/>
+        <glx rop="175"/>
     </function>
 
     <function name="LoadIdentity" offset="290">
-       <glx rop="176"/>
+        <glx rop="176"/>
     </function>
 
     <function name="LoadMatrixf" offset="291">
         <param name="m" type="const GLfloat *" count="16"/>
-       <glx rop="177"/>
+        <glx rop="177"/>
     </function>
 
     <function name="LoadMatrixd" offset="292">
         <param name="m" type="const GLdouble *" count="16"/>
-       <glx rop="178"/>
+        <glx rop="178"/>
     </function>
 
     <function name="MatrixMode" offset="293">
         <param name="mode" type="GLenum"/>
-       <glx rop="179"/>
+        <glx rop="179"/>
     </function>
 
     <function name="MultMatrixf" offset="294">
         <param name="m" type="const GLfloat *" count="16"/>
-       <glx rop="180"/>
+        <glx rop="180"/>
     </function>
 
     <function name="MultMatrixd" offset="295">
         <param name="m" type="const GLdouble *" count="16"/>
-       <glx rop="181"/>
+        <glx rop="181"/>
     </function>
 
     <function name="Ortho" offset="296">
         <param name="top" type="GLdouble"/>
         <param name="zNear" type="GLdouble"/>
         <param name="zFar" type="GLdouble"/>
-       <glx rop="182"/>
+        <glx rop="182"/>
     </function>
 
     <function name="PopMatrix" offset="297">
-       <glx rop="183"/>
+        <glx rop="183"/>
     </function>
 
     <function name="PushMatrix" offset="298">
-       <glx rop="184"/>
+        <glx rop="184"/>
     </function>
 
     <function name="Rotated" offset="299">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
-       <glx rop="185"/>
+        <glx rop="185"/>
     </function>
 
     <function name="Rotatef" offset="300">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
-       <glx rop="186"/>
+        <glx rop="186"/>
     </function>
 
     <function name="Scaled" offset="301">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
-       <glx rop="187"/>
+        <glx rop="187"/>
     </function>
 
     <function name="Scalef" offset="302">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
-       <glx rop="188"/>
+        <glx rop="188"/>
     </function>
 
     <function name="Translated" offset="303">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
-       <glx rop="189"/>
+        <glx rop="189"/>
     </function>
 
     <function name="Translatef" offset="304">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
-       <glx rop="190"/>
+        <glx rop="190"/>
     </function>
 
     <function name="Viewport" offset="305">
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
-       <glx rop="191"/>
+        <glx rop="191"/>
     </function>
 </category>
 
 <category name="1.1">
+    <enum name="INDEX_LOGIC_OP"                           value="0x0BF1"/>
+    <enum name="COLOR_LOGIC_OP"                           value="0x0BF2"/>
+    <enum name="TEXTURE_INTERNAL_FORMAT"                  value="0x1003"/>
+    <enum name="DOUBLE"                                   value="0x140A"/>
+    <enum name="POLYGON_OFFSET_UNITS"          count="1"  value="0x2A00">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_OFFSET_POINT"                     value="0x2A01"/>
+    <enum name="POLYGON_OFFSET_LINE"                      value="0x2A02"/>
+    <enum name="R3_G3_B2"                                 value="0x2A10"/>
+    <enum name="V2F"                                      value="0x2A20"/>
+    <enum name="V3F"                                      value="0x2A21"/>
+    <enum name="C4UB_V2F"                                 value="0x2A22"/>
+    <enum name="C4UB_V3F"                                 value="0x2A23"/>
+    <enum name="C3F_V3F"                                  value="0x2A24"/>
+    <enum name="N3F_V3F"                                  value="0x2A25"/>
+    <enum name="C4F_N3F_V3F"                              value="0x2A26"/>
+    <enum name="T2F_V3F"                                  value="0x2A27"/>
+    <enum name="T4F_V4F"                                  value="0x2A28"/>
+    <enum name="T2F_C4UB_V3F"                             value="0x2A29"/>
+    <enum name="T2F_C3F_V3F"                              value="0x2A2A"/>
+    <enum name="T2F_N3F_V3F"                              value="0x2A2B"/>
+    <enum name="T2F_C4F_N3F_V3F"                          value="0x2A2C"/>
+    <enum name="T4F_C4F_N3F_V4F"                          value="0x2A2D"/>
+    <enum name="POLYGON_OFFSET_FILL"                      value="0x8037"/>
+    <enum name="POLYGON_OFFSET_FACTOR"         count="1"  value="0x8038">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_OFFSET_BIAS"                      value="0x8039"/>
+    <enum name="ALPHA4"                                   value="0x803B"/>
+    <enum name="ALPHA8"                                   value="0x803C"/>
+    <enum name="ALPHA12"                                  value="0x803D"/>
+    <enum name="ALPHA16"                                  value="0x803E"/>
+    <enum name="LUMINANCE4"                               value="0x803F"/>
+    <enum name="LUMINANCE8"                               value="0x8040"/>
+    <enum name="LUMINANCE12"                              value="0x8041"/>
+    <enum name="LUMINANCE16"                              value="0x8042"/>
+    <enum name="LUMINANCE4_ALPHA4"                        value="0x8043"/>
+    <enum name="LUMINANCE6_ALPHA2"                        value="0x8044"/>
+    <enum name="LUMINANCE8_ALPHA8"                        value="0x8045"/>
+    <enum name="LUMINANCE12_ALPHA4"                       value="0x8046"/>
+    <enum name="LUMINANCE12_ALPHA12"                      value="0x8047"/>
+    <enum name="LUMINANCE16_ALPHA16"                      value="0x8048"/>
+    <enum name="INTENSITY"                                value="0x8049"/>
+    <enum name="INTENSITY4"                               value="0x804A"/>
+    <enum name="INTENSITY8"                               value="0x804B"/>
+    <enum name="INTENSITY12"                              value="0x804C"/>
+    <enum name="INTENSITY16"                              value="0x804D"/>
+    <enum name="RGB4"                                     value="0x804F"/>
+    <enum name="RGB5"                                     value="0x8050"/>
+    <enum name="RGB8"                                     value="0x8051"/>
+    <enum name="RGB10"                                    value="0x8052"/>
+    <enum name="RGB12"                                    value="0x8053"/>
+    <enum name="RGB16"                                    value="0x8054"/>
+    <enum name="RGBA2"                                    value="0x8055"/>
+    <enum name="RGBA4"                                    value="0x8056"/>
+    <enum name="RGB5_A1"                                  value="0x8057"/>
+    <enum name="RGBA8"                                    value="0x8058"/>
+    <enum name="RGB10_A2"                                 value="0x8059"/>
+    <enum name="RGBA12"                                   value="0x805A"/>
+    <enum name="RGBA16"                                   value="0x805B"/>
+    <enum name="TEXTURE_RED_SIZE"              count="1"  value="0x805C">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GREEN_SIZE"            count="1"  value="0x805D">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BLUE_SIZE"             count="1"  value="0x805E">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_ALPHA_SIZE"            count="1"  value="0x805F">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_LUMINANCE_SIZE"        count="1"  value="0x8060">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_INTENSITY_SIZE"        count="1"  value="0x8061">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="PROXY_TEXTURE_1D"                         value="0x8063"/>
+    <enum name="PROXY_TEXTURE_2D"                         value="0x8064"/>
+    <enum name="TEXTURE_PRIORITY"              count="1"  value="0x8066">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_RESIDENT"              count="1"  value="0x8067">
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_1D"            count="1"  value="0x8068">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_2D"            count="1"  value="0x8069">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY"                  count="1"  value="0x8074">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NORMAL_ARRAY"                  count="1"  value="0x8075">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_ARRAY"                   count="1"  value="0x8076">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_ARRAY"                   count="1"  value="0x8077">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COORD_ARRAY"           count="1"  value="0x8078">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="EDGE_FLAG_ARRAY"               count="1"  value="0x8079">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY_SIZE"             count="1"  value="0x807A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY_TYPE"             count="1"  value="0x807B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY_STRIDE"           count="1"  value="0x807C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NORMAL_ARRAY_TYPE"             count="1"  value="0x807E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NORMAL_ARRAY_STRIDE"           count="1"  value="0x807F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_ARRAY_SIZE"              count="1"  value="0x8081">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_ARRAY_TYPE"              count="1"  value="0x8082">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_ARRAY_STRIDE"            count="1"  value="0x8083">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_ARRAY_TYPE"              count="1"  value="0x8085">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_ARRAY_STRIDE"            count="1"  value="0x8086">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COORD_ARRAY_SIZE"      count="1"  value="0x8088">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COORD_ARRAY_TYPE"      count="1"  value="0x8089">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COORD_ARRAY_STRIDE"    count="1"  value="0x808A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="EDGE_FLAG_ARRAY_STRIDE"        count="1"  value="0x808C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY_POINTER"                     value="0x808E"/>
+    <enum name="NORMAL_ARRAY_POINTER"                     value="0x808F"/>
+    <enum name="COLOR_ARRAY_POINTER"                      value="0x8090"/>
+    <enum name="INDEX_ARRAY_POINTER"                      value="0x8091"/>
+    <enum name="TEXTURE_COORD_ARRAY_POINTER"              value="0x8092"/>
+    <enum name="EDGE_FLAG_ARRAY_POINTER"                  value="0x8093"/>
+    <enum name="CLIENT_PIXEL_STORE_BIT"                   value="0x00000001"/>
+    <enum name="CLIENT_VERTEX_ARRAY_BIT"                  value="0x00000002"/>
+    <enum name="ALL_CLIENT_ATTRIB_BITS"                   value="0xFFFFFFFF"/>
+    <enum name="CLIENT_ALL_ATTRIB_BITS"                   value="0xFFFFFFFF"/>
+
     <function name="ArrayElement" offset="306">
         <param name="i" type="GLint"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="ColorPointer" offset="308">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="DisableClientState" offset="309">
         <param name="array" type="GLenum"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="DrawArrays" offset="310">
         <param name="mode" type="GLenum"/>
         <param name="first" type="GLint"/>
         <param name="count" type="GLsizei"/>
-       <glx handcode="true"/>
+        <glx rop="193" handcode="true"/>
     </function>
 
     <function name="DrawElements" offset="311">
         <param name="count" type="GLsizei"/>
         <param name="type" type="GLenum"/>
         <param name="indices" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="EdgeFlagPointer" offset="312">
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="EnableClientState" offset="313">
         <param name="array" type="GLenum"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="GetPointerv" offset="329">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **"/>
-       <glx handcode="true"/>
+        <param name="params" type="GLvoid **" output="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="IndexPointer" offset="314">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="InterleavedArrays" offset="317">
         <param name="format" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="NormalPointer" offset="318">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="TexCoordPointer" offset="320">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="VertexPointer" offset="321">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="PolygonOffset" offset="319">
         <param name="factor" type="GLfloat"/>
         <param name="units" type="GLfloat"/>
-       <glx rop="192"/>
+        <glx rop="192"/>
     </function>
 
     <function name="CopyTexImage1D" offset="323">
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="border" type="GLint"/>
-       <glx rop="4119"/>
+        <glx rop="4119"/>
     </function>
 
     <function name="CopyTexImage2D" offset="324">
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="border" type="GLint"/>
-       <glx rop="4120"/>
+        <glx rop="4120"/>
     </function>
 
     <function name="CopyTexSubImage1D" offset="325">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
-       <glx rop="4121"/>
+        <glx rop="4121"/>
     </function>
 
     <function name="CopyTexSubImage2D" offset="326">
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
-       <glx rop="4122"/>
+        <glx rop="4122"/>
     </function>
 
     <function name="TexSubImage1D" offset="332">
         <param name="width" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="4099" handcode="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_xoff="xoffset" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/>
+        <glx rop="4099" large="true"/>
     </function>
 
     <function name="TexSubImage2D" offset="333">
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="4100" handcode="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_xoff="xoffset" img_yoff="yoffset" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/>
+        <glx rop="4100" large="true"/>
     </function>
 
     <function name="AreTexturesResident" offset="322">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="const GLuint *"/>
-        <param name="residences" type="GLboolean *"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="const GLuint *" count="n"/>
+        <param name="residences" type="GLboolean *" output="true" count="n"/>
         <return type="GLboolean"/>
-       <glx sop="143" handcode="true"/>
+        <glx sop="143" always_array="true"/>
     </function>
 
     <function name="BindTexture" offset="307">
         <param name="target" type="GLenum"/>
         <param name="texture" type="GLuint"/>
-       <glx rop="4117"/>
+        <glx rop="4117"/>
     </function>
 
     <function name="DeleteTextures" offset="327">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="const GLuint *" count="n"/>
-       <glx sop="144"/>
+        <glx sop="144"/>
     </function>
 
     <function name="GenTextures" offset="328">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="GLuint *" output="true"/>
-       <glx sop="145" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="GLuint *" output="true" count="n"/>
+        <glx sop="145" always_array="true"/>
     </function>
 
     <function name="IsTexture" offset="330">
         <param name="texture" type="GLuint"/>
         <return type="GLboolean"/>
-       <glx sop="146"/>
+        <glx sop="146"/>
     </function>
 
     <function name="PrioritizeTextures" offset="331">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="const GLuint *"/>
-        <param name="priorities" type="const GLclampf *"/>
-       <glx rop="4118" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="const GLuint *" count="n"/>
+        <param name="priorities" type="const GLclampf *" count="n"/>
+        <glx rop="4118"/>
     </function>
 
     <function name="Indexub" offset="315" vectorequiv="Indexubv">
 
     <function name="Indexubv" offset="316">
         <param name="c" type="const GLubyte *" count="1"/>
-       <glx rop="194"/>
+        <glx rop="194"/>
     </function>
 
     <function name="PopClientAttrib" offset="334">
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="PushClientAttrib" offset="335">
         <param name="mask" type="GLbitfield"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 </category>
 
 <category name="1.2">
+    <enum name="UNSIGNED_BYTE_3_3_2"                      value="0x8032"/>
+    <enum name="UNSIGNED_SHORT_4_4_4_4"                   value="0x8033"/>
+    <enum name="UNSIGNED_SHORT_5_5_5_1"                   value="0x8034"/>
+    <enum name="UNSIGNED_INT_8_8_8_8"                     value="0x8035"/>
+    <enum name="UNSIGNED_INT_10_10_10_2"                  value="0x8036"/>
+    <enum name="RESCALE_NORMAL"                count="1"  value="0x803A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_3D"            count="1"  value="0x806A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_SKIP_IMAGES"              count="1"  value="0x806B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_IMAGE_HEIGHT"             count="1"  value="0x806C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_SKIP_IMAGES"            count="1"  value="0x806D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_IMAGE_HEIGHT"           count="1"  value="0x806E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_3D"                    count="1"  value="0x806F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROXY_TEXTURE_3D"                         value="0x8070"/>
+    <enum name="TEXTURE_DEPTH"                 count="1"  value="0x8071">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_WRAP_R"                count="1"  value="0x8072">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="MAX_3D_TEXTURE_SIZE"                      value="0x8073"/>
+    <enum name="UNSIGNED_BYTE_2_3_3_REV"                  value="0x8362"/>
+    <enum name="UNSIGNED_SHORT_5_6_5"                     value="0x8363"/>
+    <enum name="UNSIGNED_SHORT_5_6_5_REV"                 value="0x8364"/>
+    <enum name="UNSIGNED_SHORT_4_4_4_4_REV"               value="0x8365"/>
+    <enum name="UNSIGNED_SHORT_1_5_5_5_REV"               value="0x8366"/>
+    <enum name="UNSIGNED_INT_8_8_8_8_REV"                 value="0x8367"/>
+    <enum name="UNSIGNED_INT_2_10_10_10_REV"              value="0x8368"/>
+    <enum name="BGR"                                      value="0x80E0"/>
+    <enum name="BGRA"                                     value="0x80E1"/>
+    <enum name="MAX_ELEMENTS_VERTICES"         count="1"  value="0x80E8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_ELEMENTS_INDICES"          count="1"  value="0x80E9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLAMP_TO_EDGE"                            value="0x812F"/>
+    <enum name="TEXTURE_MIN_LOD"               count="1"  value="0x813A">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_MAX_LOD"               count="1"  value="0x813B">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BASE_LEVEL"            count="1"  value="0x813C">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_MAX_LEVEL"             count="1"  value="0x813D">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="LIGHT_MODEL_COLOR_CONTROL"     count="1"  value="0x81F8">
+        <size name="LightModelfv"/>
+        <size name="LightModeliv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SINGLE_COLOR"                             value="0x81F9"/>
+    <enum name="SEPARATE_SPECULAR_COLOR"                  value="0x81FA"/>
+    <enum name="SMOOTH_POINT_SIZE_RANGE"       count="2"  value="0x0B12">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SMOOTH_POINT_SIZE_GRANULARITY" count="1"  value="0x0B13">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SMOOTH_LINE_WIDTH_RANGE"       count="2"  value="0x0B22">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SMOOTH_LINE_WIDTH_GRANULARITY" count="1"  value="0x0B23">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALIASED_POINT_SIZE_RANGE"      count="2"  value="0x846D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALIASED_LINE_WIDTH_RANGE"      count="2"  value="0x846E">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <!-- These enums are actually part of the ARB_imaging subset. -->
+
+    <enum name="CONSTANT_COLOR"                           value="0x8001"/>
+    <enum name="ONE_MINUS_CONSTANT_COLOR"                 value="0x8002"/>
+    <enum name="CONSTANT_ALPHA"                           value="0x8003"/>
+    <enum name="ONE_MINUS_CONSTANT_ALPHA"                 value="0x8004"/>
+    <enum name="BLEND_COLOR"                   count="4"  value="0x8005">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FUNC_ADD"                                 value="0x8006"/>
+    <enum name="MIN"                                      value="0x8007"/>
+    <enum name="MAX"                                      value="0x8008"/>
+    <enum name="BLEND_EQUATION"                count="1"  value="0x8009">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FUNC_SUBTRACT"                            value="0x800A"/>
+    <enum name="FUNC_REVERSE_SUBTRACT"                    value="0x800B"/>
+    <enum name="CONVOLUTION_1D"                count="1"  value="0x8010">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_2D"                count="1"  value="0x8011">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SEPARABLE_2D"                  count="1"  value="0x8012">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="CONVOLUTION_BORDER_MODE"       count="1"  value="0x8013">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_BORDER_COLOR"      count="4"  value="0x8154">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_FILTER_SCALE"      count="4"  value="0x8014">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_FILTER_BIAS"       count="4"  value="0x8015">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="REDUCE"                                   value="0x8016"/>
+    <enum name="CONVOLUTION_FORMAT"            count="1"  value="0x8017">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_WIDTH"             count="1"  value="0x8018">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_HEIGHT"            count="1"  value="0x8019">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="MAX_CONVOLUTION_WIDTH"         count="1"  value="0x801A">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_CONVOLUTION_HEIGHT"        count="1"  value="0x801B">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_RED_SCALE"    count="1"  value="0x801C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_GREEN_SCALE"  count="1"  value="0x801D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_BLUE_SCALE"   count="1"  value="0x801E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_ALPHA_SCALE"  count="1"  value="0x801F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_RED_BIAS"     count="1"  value="0x8020">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_GREEN_BIAS"   count="1"  value="0x8021">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_BLUE_BIAS"    count="1"  value="0x8022">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_ALPHA_BIAS"   count="1"  value="0x8023">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="HISTOGRAM"                     count="1"  value="0x8024">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROXY_HISTOGRAM"                          value="0x8025"/>
+    <enum name="HISTOGRAM_WIDTH"               count="1"  value="0x8026">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_FORMAT"              count="1"  value="0x8027">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_RED_SIZE"            count="1"  value="0x8028">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_GREEN_SIZE"          count="1"  value="0x8029">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_BLUE_SIZE"           count="1"  value="0x802A">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_ALPHA_SIZE"          count="1"  value="0x802B">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_LUMINANCE_SIZE"      count="1"  value="0x802C">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_SINK"                count="1"  value="0x802D">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="MINMAX"                        count="1"  value="0x802E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MINMAX_FORMAT"                 count="1"  value="0x802F">
+        <size name="GetMinmaxParameterfv" mode="get"/>
+        <size name="GetMinmaxParameteriv" mode="get"/>
+    </enum>
+    <enum name="MINMAX_SINK"                   count="1"  value="0x8030">
+        <size name="GetMinmaxParameterfv" mode="get"/>
+        <size name="GetMinmaxParameteriv" mode="get"/>
+    </enum>
+
+    <enum name="COLOR_MATRIX"                  count="16" value="0x80B1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_MATRIX_STACK_DEPTH"      count="1"  value="0x80B2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_COLOR_MATRIX_STACK_DEPTH"  count="1"  value="0x80B3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_RED_SCALE"   count="1"  value="0x80B4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_GREEN_SCALE" count="1"  value="0x80B5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_BLUE_SCALE"  count="1"  value="0x80B6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_ALPHA_SCALE" count="1"  value="0x80B7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_RED_BIAS"    count="1"  value="0x80B8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_GREEN_BIAS"  count="1"  value="0x80B9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_BLUE_BIAS"   count="1"  value="0x80BA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_ALPHA_BIAS"  count="1"  value="0x80BB">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="COLOR_TABLE"                   count="1"  value="0x80D0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_COLOR_TABLE"  count="1"  value="0x80D1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_COLOR_TABLE" count="1"  value="0x80D2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROXY_COLOR_TABLE"                              value="0x80D3"/>
+    <enum name="PROXY_POST_CONVOLUTION_COLOR_TABLE"             value="0x80D4"/>
+    <enum name="PROXY_POST_COLOR_MATRIX_COLOR_TABLE"            value="0x80D5"/>
+
+    <enum name="COLOR_TABLE_SCALE"             count="4"  value="0x80D6">
+        <size name="ColorTableParameterfv"/>
+        <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_BIAS"              count="4"  value="0x80D7">
+        <size name="ColorTableParameterfv"/>
+        <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_FORMAT"            count="1"  value="0x80D8">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_WIDTH"             count="1"  value="0x80D9">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_RED_SIZE"          count="1"  value="0x80DA">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_GREEN_SIZE"        count="1"  value="0x80DB">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_BLUE_SIZE"         count="1"  value="0x80DC">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_ALPHA_SIZE"        count="1"  value="0x80DD">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_LUMINANCE_SIZE"    count="1"  value="0x80DE">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_INTENSITY_SIZE"    count="1"  value="0x80DF">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+
+
     <function name="BlendColor" offset="336">
         <param name="red" type="GLclampf"/>
         <param name="green" type="GLclampf"/>
         <param name="blue" type="GLclampf"/>
         <param name="alpha" type="GLclampf"/>
-       <glx rop="4096"/>
+        <glx rop="4096"/>
     </function>
 
     <function name="BlendEquation" offset="337">
         <param name="mode" type="GLenum"/>
-       <glx rop="4097"/>
+        <glx rop="4097"/>
     </function>
 
     <function name="DrawRangeElements" offset="338">
         <param name="count" type="GLsizei"/>
         <param name="type" type="GLenum"/>
         <param name="indices" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="ColorTable" offset="339">
         <param name="width" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="table" type="const GLvoid *"/>
-       <glx rop="2053" handcode="true"/>
+        <param name="table" type="const GLvoid *" img_width="width" img_pad_dimensions="false" img_format="format" img_type="type" img_target="target"/>
+        <glx rop="2053" large="true"/>
     </function>
 
     <function name="ColorTableParameterfv" offset="340">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="2054"/>
+        <glx rop="2054"/>
     </function>
 
     <function name="ColorTableParameteriv" offset="341">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="2055"/>
+        <glx rop="2055"/>
     </function>
 
     <function name="CopyColorTable" offset="342">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
-       <glx rop="2056"/>
+        <glx rop="2056"/>
     </function>
 
     <function name="GetColorTable" offset="343">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="table" type="GLvoid *"/>
-       <glx sop="147" handcode="true"/>
+        <param name="table" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx sop="147" dimensions_in_reply="true"/>
     </function>
 
     <function name="GetColorTableParameterfv" offset="344">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="148"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="148"/>
     </function>
 
     <function name="GetColorTableParameteriv" offset="345">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="149"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="149"/>
     </function>
 
     <function name="ColorSubTable" offset="346">
         <param name="count" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="data" type="const GLvoid *"/>
-       <glx rop="195" handcode="true"/>
+        <param name="data" type="const GLvoid *" img_width="count" img_pad_dimensions="false" img_format="format" img_type="type" img_target="target"/>
+        <glx rop="195" large="true"/>
     </function>
 
     <function name="CopyColorSubTable" offset="347">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
-       <glx rop="196"/>
+        <glx rop="196"/>
     </function>
 
     <function name="ConvolutionFilter1D" offset="348">
         <param name="width" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="image" type="const GLvoid *"/>
-       <glx rop="4101" handcode="true"/>
+        <param name="image" type="const GLvoid *" img_width="width" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/>
+        <glx rop="4101" large="true"/>
     </function>
 
     <function name="ConvolutionFilter2D" offset="349">
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="image" type="const GLvoid *"/>
-       <glx rop="4102" handcode="true"/>
+        <param name="image" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/>
+        <glx rop="4102" large="true"/>
     </function>
 
     <function name="ConvolutionParameterf" offset="350">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat"/>
-       <glx rop="4103"/>
+        <glx rop="4103"/>
     </function>
 
     <function name="ConvolutionParameterfv" offset="351">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="4104"/>
+        <glx rop="4104"/>
     </function>
 
     <function name="ConvolutionParameteri" offset="352">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint"/>
-       <glx rop="4105"/>
+        <glx rop="4105"/>
     </function>
 
     <function name="ConvolutionParameteriv" offset="353">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="4106"/>
+        <glx rop="4106"/>
     </function>
 
     <function name="CopyConvolutionFilter1D" offset="354">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
-       <glx rop="4107"/>
+        <glx rop="4107"/>
     </function>
 
     <function name="CopyConvolutionFilter2D" offset="355">
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
-       <glx rop="4108"/>
+        <glx rop="4108"/>
     </function>
 
     <function name="GetConvolutionFilter" offset="356">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="image" type="GLvoid *"/>
-       <glx sop="150" handcode="true"/>
+        <param name="image" type="GLvoid *" output="true" img_width="width" img_height="height" img_format="format" img_type="type"/>
+        <glx sop="150" dimensions_in_reply="true"/>
     </function>
 
     <function name="GetConvolutionParameterfv" offset="357">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="151"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="151"/>
     </function>
 
     <function name="GetConvolutionParameteriv" offset="358">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="152"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="152"/>
     </function>
 
     <function name="GetSeparableFilter" offset="359">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="row" type="GLvoid *"/>
-        <param name="column" type="GLvoid *"/>
-        <param name="span" type="GLvoid *"/>
-       <glx sop="153" handcode="true"/>
+        <param name="row" type="GLvoid *" output="true"/>
+        <param name="column" type="GLvoid *" output="true"/>
+        <param name="span" type="GLvoid *" output="true"/>
+        <glx sop="153" handcode="true"/>
     </function>
 
     <function name="SeparableFilter2D" offset="360">
         <param name="type" type="GLenum"/>
         <param name="row" type="const GLvoid *"/>
         <param name="column" type="const GLvoid *"/>
-       <glx rop="4109" handcode="true"/>
+        <glx rop="4109" handcode="true"/>
     </function>
 
     <function name="GetHistogram" offset="361">
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *" output="true"/>
-       <glx sop="154" handcode="true"/>
+        <param name="values" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx sop="154" dimensions_in_reply="true" img_reset="reset"/>
     </function>
 
     <function name="GetHistogramParameterfv" offset="362">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="155"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="155"/>
     </function>
 
     <function name="GetHistogramParameteriv" offset="363">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="156"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="156"/>
     </function>
 
     <function name="GetMinmax" offset="364">
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *"/>
-       <glx sop="157" handcode="true"/>
+        <param name="values" type="GLvoid *" output="true" img_width="2" img_format="format" img_type="type"/>
+        <glx sop="157" img_reset="reset"/>
     </function>
 
     <function name="GetMinmaxParameterfv" offset="365">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="158"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="158"/>
     </function>
 
     <function name="GetMinmaxParameteriv" offset="366">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="159"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="159"/>
     </function>
 
     <function name="Histogram" offset="367">
         <param name="width" type="GLsizei"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
-       <glx rop="4110"/>
+        <glx rop="4110"/>
     </function>
 
     <function name="Minmax" offset="368">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
-       <glx rop="4111"/>
+        <glx rop="4111"/>
     </function>
 
     <function name="ResetHistogram" offset="369">
         <param name="target" type="GLenum"/>
-       <glx rop="4112"/>
+        <glx rop="4112"/>
     </function>
 
     <function name="ResetMinmax" offset="370">
         <param name="target" type="GLenum"/>
-       <glx rop="4113"/>
+        <glx rop="4113"/>
     </function>
 
     <function name="TexImage3D" offset="371">
         <param name="border" type="GLint"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="4114" handcode="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/>
+        <glx rop="4114" large="true"/>
     </function>
 
     <function name="TexSubImage3D" offset="372">
         <param name="depth" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="4115" handcode="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_xoff="xoffset" img_yoff="yoffset" img_zoff="zoffset" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/>
+        <glx rop="4115" large="true"/>
     </function>
 
     <function name="CopyTexSubImage3D" offset="373">
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
-       <glx rop="4123"/>
+        <glx rop="4123"/>
     </function>
 </category>
 
 <category name="1.3">
+    <enum name="TEXTURE0"                                 value="0x84C0"/>
+    <enum name="TEXTURE1"                                 value="0x84C1"/>
+    <enum name="TEXTURE2"                                 value="0x84C2"/>
+    <enum name="TEXTURE3"                                 value="0x84C3"/>
+    <enum name="TEXTURE4"                                 value="0x84C4"/>
+    <enum name="TEXTURE5"                                 value="0x84C5"/>
+    <enum name="TEXTURE6"                                 value="0x84C6"/>
+    <enum name="TEXTURE7"                                 value="0x84C7"/>
+    <enum name="TEXTURE8"                                 value="0x84C8"/>
+    <enum name="TEXTURE9"                                 value="0x84C9"/>
+    <enum name="TEXTURE10"                                value="0x84CA"/>
+    <enum name="TEXTURE11"                                value="0x84CB"/>
+    <enum name="TEXTURE12"                                value="0x84CC"/>
+    <enum name="TEXTURE13"                                value="0x84CD"/>
+    <enum name="TEXTURE14"                                value="0x84CE"/>
+    <enum name="TEXTURE15"                                value="0x84CF"/>
+    <enum name="TEXTURE16"                                value="0x84D0"/>
+    <enum name="TEXTURE17"                                value="0x84D1"/>
+    <enum name="TEXTURE18"                                value="0x84D2"/>
+    <enum name="TEXTURE19"                                value="0x84D3"/>
+    <enum name="TEXTURE20"                                value="0x84D4"/>
+    <enum name="TEXTURE21"                                value="0x84D5"/>
+    <enum name="TEXTURE22"                                value="0x84D6"/>
+    <enum name="TEXTURE23"                                value="0x84D7"/>
+    <enum name="TEXTURE24"                                value="0x84D8"/>
+    <enum name="TEXTURE25"                                value="0x84D9"/>
+    <enum name="TEXTURE26"                                value="0x84DA"/>
+    <enum name="TEXTURE27"                                value="0x84DB"/>
+    <enum name="TEXTURE28"                                value="0x84DC"/>
+    <enum name="TEXTURE29"                                value="0x84DD"/>
+    <enum name="TEXTURE30"                                value="0x84DE"/>
+    <enum name="TEXTURE31"                                value="0x84DF"/>
+    <enum name="ACTIVE_TEXTURE"                count="1"  value="0x84E0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIENT_ACTIVE_TEXTURE"         count="1"  value="0x84E1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_UNITS"             count="1"  value="0x84E2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TRANSPOSE_MODELVIEW_MATRIX"               value="0x84E3"/>
+    <enum name="TRANSPOSE_PROJECTION_MATRIX"              value="0x84E4"/>
+    <enum name="TRANSPOSE_TEXTURE_MATRIX"                 value="0x84E5"/>
+    <enum name="TRANSPOSE_COLOR_MATRIX"                   value="0x84E6"/>
+    <enum name="MULTISAMPLE"                   count="1"  value="0x809D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_ALPHA_TO_COVERAGE"      count="1"  value="0x809E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_ALPHA_TO_ONE"           count="1"  value="0x809F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE"               count="1"  value="0x80A0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_BUFFERS"                count="1"  value="0x80A8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLES"                       count="1"  value="0x80A9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_VALUE"         count="1"  value="0x80AA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_INVERT"        count="1"  value="0x80AB">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MULTISAMPLE_BIT"                          value="0x20000000"/>
+    <enum name="NORMAL_MAP"                               value="0x8511"/>
+    <enum name="REFLECTION_MAP"                           value="0x8512"/>
+    <enum name="TEXTURE_CUBE_MAP"              count="1"  value="0x8513">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_CUBE_MAP"      count="1"  value="0x8514">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_CUBE_MAP_POSITIVE_X"              value="0x8515"/>
+    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_X"              value="0x8516"/>
+    <enum name="TEXTURE_CUBE_MAP_POSITIVE_Y"              value="0x8517"/>
+    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Y"              value="0x8518"/>
+    <enum name="TEXTURE_CUBE_MAP_POSITIVE_Z"              value="0x8519"/>
+    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Z"              value="0x851A"/>
+    <enum name="PROXY_TEXTURE_CUBE_MAP"                   value="0x851B"/>
+    <enum name="MAX_CUBE_MAP_TEXTURE_SIZE"     count="1"  value="0x851C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COMPRESSED_ALPHA"                         value="0x84E9"/>
+    <enum name="COMPRESSED_LUMINANCE"                     value="0x84EA"/>
+    <enum name="COMPRESSED_LUMINANCE_ALPHA"               value="0x84EB"/>
+    <enum name="COMPRESSED_INTENSITY"                     value="0x84EC"/>
+    <enum name="COMPRESSED_RGB"                           value="0x84ED"/>
+    <enum name="COMPRESSED_RGBA"                          value="0x84EE"/>
+    <enum name="TEXTURE_COMPRESSION_HINT"      count="1"  value="0x84EF">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED_IMAGE_SIZE" count="1"  value="0x86A0">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED"            count="1"  value="0x86A1">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="NUM_COMPRESSED_TEXTURE_FORMATS" count="1" value="0x86A2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COMPRESSED_TEXTURE_FORMATS"    count="-1"  value="0x86A3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLAMP_TO_BORDER"                          value="0x812D"/>
+    <enum name="COMBINE"                                  value="0x8570"/>
+    <enum name="COMBINE_RGB"                   count="1"  value="0x8571">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="COMBINE_ALPHA"                 count="1"  value="0x8572">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="SOURCE0_RGB"                   count="1"  value="0x8580">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="SOURCE1_RGB"                   count="1"  value="0x8581">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="SOURCE2_RGB"                   count="1"  value="0x8582">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="SOURCE0_ALPHA"                 count="1"  value="0x8588">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="SOURCE1_ALPHA"                 count="1"  value="0x8589">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="SOURCE2_ALPHA"                 count="1"  value="0x858A">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="OPERAND0_RGB"                  count="1"  value="0x8590">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="OPERAND1_RGB"                  count="1"  value="0x8591">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="OPERAND2_RGB"                  count="1"  value="0x8592">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="OPERAND0_ALPHA"                count="1"  value="0x8598">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="OPERAND1_ALPHA"                count="1"  value="0x8599">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="OPERAND2_ALPHA"                count="1"  value="0x859A">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="RGB_SCALE"                     count="1"  value="0x8573">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="ADD_SIGNED"                               value="0x8574"/>
+    <enum name="INTERPOLATE"                              value="0x8575"/>
+    <enum name="SUBTRACT"                                 value="0x84E7"/>
+    <enum name="CONSTANT"                                 value="0x8576"/>
+    <enum name="PRIMARY_COLOR"                            value="0x8577"/>
+    <enum name="PREVIOUS"                                 value="0x8578"/>
+    <enum name="DOT3_RGB"                                 value="0x86AE"/>
+    <enum name="DOT3_RGBA"                                value="0x86AF"/>
+
     <function name="ActiveTexture" alias="ActiveTextureARB">
         <param name="texture" type="GLenum"/>
     </function>
     <function name="GetCompressedTexImage" alias="GetCompressedTexImageARB">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
-        <param name="img" type="GLvoid *"/>
+        <param name="img" type="GLvoid *" output="true"/>
     </function>
 </category>
 
 <category name="1.4">
+    <enum name="BLEND_DST_RGB"                 count="1"  value="0x80C8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_SRC_RGB"                 count="1"  value="0x80C9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_DST_ALPHA"               count="1"  value="0x80CA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_SRC_ALPHA"               count="1"  value="0x80CB">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SIZE_MIN"                count="1"  value="0x8126">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_SIZE_MAX"                count="1"  value="0x8127">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_FADE_THRESHOLD_SIZE"     count="1"  value="0x8128">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_DISTANCE_ATTENUATION"    count="3"  value="0x8129">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="GENERATE_MIPMAP"               count="1"  value="0x8191">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="GENERATE_MIPMAP_HINT"                     value="0x8192"/>
+    <enum name="DEPTH_COMPONENT16"                        value="0x81A5"/>
+    <enum name="DEPTH_COMPONENT24"                        value="0x81A6"/>
+    <enum name="DEPTH_COMPONENT32"                        value="0x81A7"/>
+    <enum name="MIRRORED_REPEAT"                          value="0x8370"/>
+    <enum name="FOG_COORDINATE_SOURCE"         count="1"  value="0x8450">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORDINATE"                           value="0x8451"/>
+    <enum name="FRAGMENT_DEPTH"                           value="0x8452"/>
+    <enum name="CURRENT_FOG_COORDINATE"        count="1"  value="0x8453">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORDINATE_ARRAY_TYPE"     count="1"  value="0x8454">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORDINATE_ARRAY_STRIDE"   count="1"  value="0x8455">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORDINATE_ARRAY_POINTER"             value="0x8456"/>
+    <enum name="FOG_COORDINATE_ARRAY"          count="1"  value="0x8457">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_SUM"                                value="0x8458"/>
+    <enum name="CURRENT_SECONDARY_COLOR"       count="4"  value="0x8459">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SECONDARY_COLOR_ARRAY_SIZE"    count="1"  value="0x845A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SECONDARY_COLOR_ARRAY_TYPE"    count="1"  value="0x845B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SECONDARY_COLOR_ARRAY_STRIDE"  count="1"  value="0x845C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SECONDARY_COLOR_ARRAY_POINTER"            value="0x845D"/>
+    <enum name="SECONDARY_COLOR_ARRAY"         count="1"  value="0x845E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_LOD_BIAS"          count="1"  value="0x84FD">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_FILTER_CONTROL"                   value="0x8500"/>
+    <enum name="TEXTURE_LOD_BIAS"              count="1"  value="0x8501">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="INCR_WRAP"                                value="0x8507"/>
+    <enum name="DECR_WRAP"                                value="0x8508"/>
+    <enum name="TEXTURE_DEPTH_SIZE"            count="1"  value="0x884A">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="DEPTH_TEXTURE_MODE"            count="1"  value="0x884B">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPARE_MODE"          count="1"  value="0x884C">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPARE_FUNC"          count="1"  value="0x884D">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="COMPARE_R_TO_TEXTURE"                     value="0x884E"/>
+
     <function name="BlendFuncSeparate" alias="BlendFuncSeparateEXT">
         <param name="sfactorRGB" type="GLenum"/>
         <param name="dfactorRGB" type="GLenum"/>
 
     <function name="MultiDrawArrays" alias="MultiDrawArraysEXT">
         <param name="mode" type="GLenum"/>
-        <param name="first" type="GLint *"/>
-        <param name="count" type="GLsizei *"/>
+        <param name="first" type="GLint *"/> <!-- Spec bug. Should be const. -->
+        <param name="count" type="GLsizei *"/> <!-- Spec bug. Should be const. -->
         <param name="primcount" type="GLsizei"/>
     </function>
 
 </category>
 
 <category name="1.5">
+    <enum name="BUFFER_SIZE"                              value="0x8764"/>
+    <enum name="BUFFER_USAGE"                             value="0x8765"/>
+    <enum name="QUERY_COUNTER_BITS"                       value="0x8864"/>
+    <enum name="CURRENT_QUERY"                            value="0x8865"/>
+    <enum name="QUERY_RESULT"                             value="0x8866"/>
+    <enum name="QUERY_RESULT_AVAILABLE"                   value="0x8867"/>
+    <enum name="ARRAY_BUFFER"                             value="0x8892"/>
+    <enum name="ELEMENT_ARRAY_BUFFER"                     value="0x8893"/>
+    <enum name="ARRAY_BUFFER_BINDING"                     value="0x8894"/>
+    <enum name="ELEMENT_ARRAY_BUFFER_BINDING"             value="0x8895"/>
+    <enum name="VERTEX_ARRAY_BUFFER_BINDING"              value="0x8896"/>
+    <enum name="NORMAL_ARRAY_BUFFER_BINDING"              value="0x8897"/>
+    <enum name="COLOR_ARRAY_BUFFER_BINDING"               value="0x8898"/>
+    <enum name="INDEX_ARRAY_BUFFER_BINDING"               value="0x8899"/>
+    <enum name="TEXTURE_COORD_ARRAY_BUFFER_BINDING"       value="0x889A"/>
+    <enum name="EDGE_FLAG_ARRAY_BUFFER_BINDING"           value="0x889B"/>
+    <enum name="SECONDARY_COLOR_ARRAY_BUFFER_BINDING"     value="0x889C"/>
+    <enum name="FOG_COORDINATE_ARRAY_BUFFER_BINDING"      value="0x889D"/>
+    <enum name="WEIGHT_ARRAY_BUFFER_BINDING"              value="0x889E"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"       value="0x889F"/>
+    <enum name="READ_ONLY"                                value="0x88B8"/>
+    <enum name="WRITE_ONLY"                               value="0x88B9"/>
+    <enum name="READ_WRITE"                               value="0x88BA"/>
+    <enum name="BUFFER_ACCESS"                            value="0x88BB"/>
+    <enum name="BUFFER_MAPPED"                            value="0x88BC"/>
+    <enum name="BUFFER_MAP_POINTER"                       value="0x88BD"/>
+    <enum name="STREAM_DRAW"                              value="0x88E0"/>
+    <enum name="STREAM_READ"                              value="0x88E1"/>
+    <enum name="STREAM_COPY"                              value="0x88E2"/>
+    <enum name="STATIC_DRAW"                              value="0x88E4"/>
+    <enum name="STATIC_READ"                              value="0x88E5"/>
+    <enum name="STATIC_COPY"                              value="0x88E6"/>
+    <enum name="DYNAMIC_DRAW"                             value="0x88E8"/>
+    <enum name="DYNAMIC_READ"                             value="0x88E9"/>
+    <enum name="DYNAMIC_COPY"                             value="0x88EA"/>
+    <enum name="SAMPLES_PASSED"                count="1"  value="0x8914"/>
+    <enum name="FOG_COORD_SRC"                            value="0x8450">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORD"                                value="0x8451"/>
+    <enum name="CURRENT_FOG_COORD"             count="1"  value="0x8453">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORD_ARRAY_TYPE"          count="1"  value="0x8454">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORD_ARRAY_STRIDE"        count="1"  value="0x8455">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORD_ARRAY_POINTER"                  value="0x8456"/>
+    <enum name="FOG_COORD_ARRAY"               count="1"  value="0x8457">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORD_ARRAY_BUFFER_BINDING"           value="0x889D"/>
+    <enum name="SRC0_RGB"                                 value="0x8580"/>
+    <enum name="SRC1_RGB"                                 value="0x8581"/>
+    <enum name="SRC2_RGB"                                 value="0x8582"/>
+    <enum name="SRC0_ALPHA"                               value="0x8588"/>
+    <enum name="SRC1_ALPHA"                               value="0x8589"/>
+    <enum name="SRC2_ALPHA"                               value="0x858A"/>
+
+    <type name="intptr"   size="4"                  glx_name="CARD32"/>
+    <type name="sizeiptr" size="4"  unsigned="true" glx_name="CARD32"/>
+
     <function name="BindBuffer" alias="BindBufferARB">
         <param name="target" type="GLenum"/>
         <param name="buffer" type="GLuint"/>
 
     <function name="BufferData" alias="BufferDataARB">
         <param name="target" type="GLenum"/>
-        <param name="size" type="GLsizeiptrARB"/>
+        <param name="size" type="GLsizeiptr"/>
         <param name="data" type="const GLvoid *"/>
         <param name="usage" type="GLenum"/>
     </function>
 
     <function name="BufferSubData" alias="BufferSubDataARB">
         <param name="target" type="GLenum"/>
-        <param name="offset" type="GLintptrARB"/>
-        <param name="size" type="GLsizeiptrARB"/>
+        <param name="offset" type="GLintptr"/>
+        <param name="size" type="GLsizeiptr"/>
         <param name="data" type="const GLvoid *"/>
     </function>
 
     </function>
 
     <function name="GenBuffers" alias="GenBuffersARB">
-        <param name="n" type="GLsizei"/>
-        <param name="buffer" type="GLuint *"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="buffer" type="GLuint *" output="true" count="n"/>
     </function>
 
     <function name="GetBufferParameteriv" alias="GetBufferParameterivARB">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
     </function>
 
     <function name="GetBufferPointerv" alias="GetBufferPointervARB">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **"/>
+        <param name="params" type="GLvoid **" output="true"/>
     </function>
 
     <function name="GetBufferSubData" alias="GetBufferSubDataARB">
         <param name="target" type="GLenum"/>
-        <param name="offset" type="GLintptrARB"/>
-        <param name="size" type="GLsizeiptrARB"/>
-        <param name="data" type="GLvoid *"/>
+        <param name="offset" type="GLintptr"/>
+        <param name="size" type="GLsizeiptr"/>
+        <param name="data" type="GLvoid *" output="true"/>
     </function>
 
     <function name="IsBuffer" alias="IsBufferARB">
     <function name="MapBuffer" alias="MapBufferARB">
         <param name="target" type="GLenum"/>
         <param name="access" type="GLenum"/>
+        <return type="GLvoid *"/>
     </function>
 
     <function name="UnmapBuffer" alias="UnmapBufferARB">
     </function>
 
     <function name="GenQueries" alias="GenQueriesARB">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="GLuint *" output="true" count="n"/>
     </function>
 
     <function name="DeleteQueries" alias="DeleteQueriesARB">
     <function name="GetQueryiv" alias="GetQueryivARB">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
     </function>
 
     <function name="GetQueryObjectiv" alias="GetQueryObjectivARB">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
     </function>
 
     <function name="GetQueryObjectuiv" alias="GetQueryObjectuivARB">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLuint *"/>
+        <param name="params" type="GLuint *" output="true" variable_param="pname"/>
     </function>
 </category>
 
 
+<category name="2.0">
+    <!-- XXX some of the enums and functions probably need additional -->
+    <!-- flags/attributes. -->
+
+    <type name="char"   size="1" glx_name="CARD8"/>
+
+    <enum name="GL_BLEND_EQUATION_RGB"            value="0x8009"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_ENABLED"      value="0x8622"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_SIZE"         value="0x8623"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_STRIDE"       value="0x8624"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_TYPE"         value="0x8625"/>
+    <enum name="CURRENT_VERTEX_ATTRIB"            value="0x8626"/>
+    <enum name="VERTEX_PROGRAM_POINT_SIZE"        value="0x8642"/>
+    <enum name="VERTEX_PROGRAM_TWO_SIDE"          value="0x8643"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_POINTER"      value="0x8645"/>
+    <enum name="STENCIL_BACK_FUNC"                value="0x8800"/>
+    <enum name="STENCIL_BACK_FAIL"                value="0x8801"/>
+    <enum name="STENCIL_BACK_PASS_DEPTH_FAIL"     value="0x8802"/>
+    <enum name="STENCIL_BACK_PASS_DEPTH_PASS"     value="0x8803"/>
+    <enum name="MAX_DRAW_BUFFERS"                 value="0x8824"/>
+    <enum name="DRAW_BUFFER0"                     value="0x8825"/>
+    <enum name="DRAW_BUFFER1"                     value="0x8826"/>
+    <enum name="DRAW_BUFFER2"                     value="0x8827"/>
+    <enum name="DRAW_BUFFER3"                     value="0x8828"/>
+    <enum name="DRAW_BUFFER4"                     value="0x8829"/>
+    <enum name="DRAW_BUFFER5"                     value="0x882A"/>
+    <enum name="DRAW_BUFFER6"                     value="0x882B"/>
+    <enum name="DRAW_BUFFER7"                     value="0x882C"/>
+    <enum name="DRAW_BUFFER8"                     value="0x882D"/>
+    <enum name="DRAW_BUFFER9"                     value="0x882E"/>
+    <enum name="DRAW_BUFFER10"                    value="0x882F"/>
+    <enum name="DRAW_BUFFER11"                    value="0x8830"/>
+    <enum name="DRAW_BUFFER12"                    value="0x8831"/>
+    <enum name="DRAW_BUFFER13"                    value="0x8832"/>
+    <enum name="DRAW_BUFFER14"                    value="0x8833"/>
+    <enum name="DRAW_BUFFER15"                    value="0x8834"/>
+    <enum name="BLEND_EQUATION_ALPHA"             value="0x883D"/>
+    <enum name="POINT_SPRITE"                     value="0x8861"/>
+    <enum name="COORD_REPLACE"                    value="0x8862"/>
+    <enum name="MAX_VERTEX_ATTRIBS"               value="0x8869"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_NORMALIZED"   value="0x886A"/>
+    <enum name="MAX_TEXTURE_COORDS"               value="0x8871"/>
+    <enum name="MAX_TEXTURE_IMAGE_UNITS"          value="0x8872"/>
+    <enum name="FRAGMENT_SHADER"                  value="0x8B30"/>
+    <enum name="VERTEX_SHADER"                    value="0x8B31"/>
+    <enum name="MAX_FRAGMENT_UNIFORM_COMPONENTS"  value="0x8B49"/>
+    <enum name="MAX_VERTEX_UNIFORM_COMPONENTS"    value="0x8B4A"/>
+    <enum name="MAX_VARYING_FLOATS"               value="0x8B4B"/>
+    <enum name="MAX_VERTEX_TEXTURE_IMAGE_UNITS"   value="0x8B4C"/>
+    <enum name="MAX_COMBINED_TEXTURE_IMAGE_UNITS" value="0x8B4D"/>
+    <enum name="SHADER_TYPE"                      value="0x8B4F"/>
+    <enum name="FLOAT_VEC2"                       value="0x8B50"/>
+    <enum name="FLOAT_VEC3"                       value="0x8B51"/>
+    <enum name="FLOAT_VEC4"                       value="0x8B52"/>
+    <enum name="INT_VEC2"                         value="0x8B53"/>
+    <enum name="INT_VEC3"                         value="0x8B54"/>
+    <enum name="INT_VEC4"                         value="0x8B55"/>
+    <enum name="BOOL"                             value="0x8B56"/>
+    <enum name="BOOL_VEC2"                        value="0x8B57"/>
+    <enum name="BOOL_VEC3"                        value="0x8B58"/>
+    <enum name="BOOL_VEC4"                        value="0x8B59"/>
+    <enum name="FLOAT_MAT2"                       value="0x8B5A"/>
+    <enum name="FLOAT_MAT3"                       value="0x8B5B"/>
+    <enum name="FLOAT_MAT4"                       value="0x8B5C"/>
+    <enum name="SAMPLER_1D"                       value="0x8B5D"/>
+    <enum name="SAMPLER_2D"                       value="0x8B5E"/>
+    <enum name="SAMPLER_3D"                       value="0x8B5F"/>
+    <enum name="SAMPLER_CUBE"                     value="0x8B60"/>
+    <enum name="SAMPLER_1D_SHADOW"                value="0x8B61"/>
+    <enum name="SAMPLER_2D_SHADOW"                value="0x8B62"/>
+    <enum name="DELETE_STATUS"                    value="0x8B80"/>
+    <enum name="COMPILE_STATUS"                   value="0x8B81"/>
+    <enum name="LINK_STATUS"                      value="0x8B82"/>
+    <enum name="VALIDATE_STATUS"                  value="0x8B83"/>
+    <enum name="INFO_LOG_LENGTH"                  value="0x8B84"/>
+    <enum name="ATTACHED_SHADERS"                 value="0x8B85"/>
+    <enum name="ACTIVE_UNIFORMS"                  value="0x8B86"/>
+    <enum name="ACTIVE_UNIFORM_MAX_LENGTH"        value="0x8B87"/>
+    <enum name="SHADER_SOURCE_LENGTH"             value="0x8B88"/>
+    <enum name="ACTIVE_ATTRIBUTES"                value="0x8B89"/>
+    <enum name="ACTIVE_ATTRIBUTE_MAX_LENGTH"      value="0x8B8A"/>
+    <enum name="FRAGMENT_SHADER_DERIVATIVE_HINT"  value="0x8B8B"/>
+    <enum name="SHADING_LANGUAGE_VERSION"         value="0x8B8C"/>
+    <enum name="CURRENT_PROGRAM"                  value="0x8B8D"/>
+    <enum name="POINT_SPRITE_COORD_ORIGIN" count="1"  value="0x8CA0">
+        <size name="PointParameterfvEXT"/>
+        <size name="PointParameterivNV"/>
+    </enum>
+    <enum name="LOWER_LEFT"                       value="0x8CA1"/>
+    <enum name="UPPER_LEFT"                       value="0x8CA2"/>
+    <enum name="STENCIL_BACK_REF"                 value="0x8CA3"/>
+    <enum name="STENCIL_BACK_VALUE_MASK"          value="0x8CA4"/>
+    <enum name="STENCIL_BACK_WRITEMASK"           value="0x8CA5"/>
+
+    <function name="BlendEquationSeparate" alias="BlendEquationSeparateEXT">
+        <param name="modeRGB" type="GLenum"/>
+        <param name="modeA" type="GLenum"/>
+    </function>
+
+    <function name="DrawBuffers" alias="DrawBuffersARB">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="bufs" type="const GLenum *" count="n"/>
+    </function>
+
+    <function name="StencilFuncSeparate" offset="assign">
+        <param name="face" type="GLenum"/>
+        <param name="func" type="GLenum"/>
+        <param name="ref" type="GLint"/>
+        <param name="mask" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="StencilOpSeparate" offset="assign">
+        <param name="face" type="GLenum"/>
+        <param name="fail" type="GLenum"/>
+        <param name="zfail" type="GLenum"/>
+        <param name="zpass" type="GLenum"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="StencilMaskSeparate" offset="assign">
+        <param name="face" type="GLenum"/>
+        <param name="mask" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="AttachShader" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="shader" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="BindAttribLocation" alias="BindAttribLocationARB">
+        <param name="program" type="GLuint"/>
+        <param name="index" type="GLuint"/>
+        <param name="name" type="const GLchar *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CompileShader" alias="CompileShaderARB">
+        <param name="shader" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CreateProgram" offset="assign">
+        <return type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CreateShader" offset="assign">
+        <param name="type" type="GLenum"/>
+        <return type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DeleteProgram" offset="assign">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DeleteShader" offset="assign">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DetachShader" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="shader" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DisableVertexAttribArray" alias="DisableVertexAttribArrayARB">
+        <param name="index" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="EnableVertexAttribArray" alias="EnableVertexAttribArrayARB">
+        <param name="index" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetActiveAttrib" alias="GetActiveAttribARB">
+        <param name="program" type="GLuint"/>
+        <param name="index" type="GLuint"/>
+        <param name="bufSize" type="GLsizei "/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="size" type="GLint *" output="true"/>
+        <param name="type" type="GLenum *" output="true"/>
+        <param name="name" type="GLchar *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetActiveUniform" alias="GetActiveUniformARB">
+        <param name="program" type="GLuint"/>
+        <param name="index" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="size" type="GLint *" output="true"/>
+        <param name="type" type="GLenum *" output="true"/>
+        <param name="name" type="GLchar *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetAttachedShaders" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="maxCount" type="GLsizei"/>
+        <param name="count" type="GLsizei *" output="true"/>
+        <param name="obj" type="GLuint *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetAttribLocation" alias="GetAttribLocationARB">
+        <param name="program" type="GLuint"/>
+        <param name="name" type="const GLchar *"/>
+        <return type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetProgramiv" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetProgramInfoLog" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *"/>
+        <param name="infoLog" type="GLchar *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetShaderiv" offset="assign">
+        <param name="shader" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetShaderInfoLog" offset="assign">
+        <param name="shader" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *"/>
+        <param name="infoLog" type="GLchar *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetShaderSource" alias="GetShaderSourceARB">
+        <param name="shader" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="source" type="GLchar *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformLocation" alias="GetUniformLocationARB">
+        <param name="program" type="GLuint"/>
+        <param name="name" type="const GLchar *"/>
+        <return type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformfv" alias="GetUniformfvARB">
+        <param name="program" type="GLuint"/>
+        <param name="location" type="GLint"/>
+        <param name="params" type="GLfloat *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformiv" alias="GetUniformivARB">
+        <param name="program" type="GLuint"/>
+        <param name="location" type="GLint"/>
+        <param name="params" type="GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetVertexAttribdv" alias="GetVertexAttribdvARB">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetVertexAttribfv" alias="GetVertexAttribfvARB">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetVertexAttribiv" alias="GetVertexAttribivARB">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetVertexAttribPointerv" alias="GetVertexAttribPointervNV">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="pointer" type="GLvoid **" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="IsProgram" offset="assign">
+        <param name="program" type="GLuint"/>
+        <return type="GLboolean"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="IsShader" offset="assign">
+        <param name="shader" type="GLuint"/>
+        <return type="GLboolean"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="LinkProgram" alias="LinkProgramARB">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="ShaderSource" alias="ShaderSourceARB">
+        <param name="shader" type="GLuint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="string" type="const GLchar **"/>
+        <param name="length" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="UseProgram" alias="UseProgramObjectARB">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1f" alias="Uniform1fARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform2f" alias="Uniform2fARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform3f" alias="Uniform3fARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform4f" alias="Uniform4fARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+        <param name="v3" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1i" alias="Uniform1iARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform2i" alias="Uniform2iARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform3i" alias="Uniform3iARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <param name="v2" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform4i" alias="Uniform4iARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <param name="v2" type="GLint"/>
+        <param name="v3" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1fv" alias="Uniform1fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform2fv" alias="Uniform2fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform3fv" alias="Uniform3fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform4fv" alias="Uniform4fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1iv" alias="Uniform1ivARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform2iv" alias="Uniform2ivARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform3iv" alias="Uniform3ivARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform4iv" alias="Uniform4ivARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="UniformMatrix2fv" alias="UniformMatrix2fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix3fv" alias="UniformMatrix3fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix4fv" alias="UniformMatrix4fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="ValidateProgram" alias="ValidateProgramARB">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib1d" alias="VertexAttrib1dARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+    </function>
+    <function name="VertexAttrib1dv" alias="VertexAttrib1dvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+    <function name="VertexAttrib1f" alias="VertexAttrib1fARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+    </function>
+    <function name="VertexAttrib1fv" alias="VertexAttrib1fvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+    <function name="VertexAttrib1s" alias="VertexAttrib1sARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+    </function>
+    <function name="VertexAttrib1sv" alias="VertexAttrib1svARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="VertexAttrib2d" alias="VertexAttrib2dARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+    </function>
+    <function name="VertexAttrib2dv" alias="VertexAttrib2dvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+    <function name="VertexAttrib2f" alias="VertexAttrib2fARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+    <function name="VertexAttrib2fv" alias="VertexAttrib2fvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+    <function name="VertexAttrib2s" alias="VertexAttrib2sARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+    <function name="VertexAttrib2sv" alias="VertexAttrib2svARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="VertexAttrib3d" alias="VertexAttrib3dARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+    </function>
+    <function name="VertexAttrib3dv" alias="VertexAttrib3dvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+    <function name="VertexAttrib3f" alias="VertexAttrib3fARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+    <function name="VertexAttrib3fv" alias="VertexAttrib3fvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+    <function name="VertexAttrib3s" alias="VertexAttrib3sARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+    </function>
+    <function name="VertexAttrib3sv" alias="VertexAttrib3svARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="VertexAttrib4Nbv" alias="VertexAttrib4NbvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLbyte *"/>
+    </function>
+    <function name="VertexAttrib4Niv" alias="VertexAttrib4NivARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLint *"/>
+    </function>
+    <function name="VertexAttrib4Nsv" alias="VertexAttrib4NsvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+    <function name="VertexAttrib4Nub" alias="VertexAttrib4NubARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLubyte"/>
+        <param name="y" type="GLubyte"/>
+        <param name="z" type="GLubyte"/>
+        <param name="w" type="GLubyte"/>
+    </function>
+    <function name="VertexAttrib4Nubv" alias="VertexAttrib4NubvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLubyte *"/>
+    </function>
+    <function name="VertexAttrib4Nuiv" alias="VertexAttrib4NuivARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLuint *"/>
+    </function>
+    <function name="VertexAttrib4Nusv" alias="VertexAttrib4NusvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLushort *"/>
+    </function>
+
+    <function name="VertexAttrib4d" alias="VertexAttrib4dARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+        <param name="w" type="GLdouble"/>
+    </function>
+    <function name="VertexAttrib4dv" alias="VertexAttrib4dvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+    <function name="VertexAttrib4f" alias="VertexAttrib4fARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+        <param name="w" type="GLfloat"/>
+    </function>
+    <function name="VertexAttrib4fv" alias="VertexAttrib4fvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+    <function name="VertexAttrib4s" alias="VertexAttrib4sARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+        <param name="w" type="GLshort"/>
+    </function>
+    <function name="VertexAttrib4sv" alias="VertexAttrib4svARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="VertexAttribPointer" alias="VertexAttribPointerARB">
+        <param name="index" type="GLuint"/>
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="normalized" type="GLboolean"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+    </function>
+
+</category>
+
+
+<category name="2.1">
+    <!-- XXX some of the enums and functions probably need additional -->
+    <!-- flags/attributes. -->
+
+    <enum name="GL_CURRENT_RASTER_SECONDARY_COLOR" value="0x845F"/>
+    <enum name="GL_PIXEL_PACK_BUFFER"              value="0x88EB"/>
+    <enum name="GL_PIXEL_UNPACK_BUFFER"            value="0x88EC"/>
+    <enum name="GL_PIXEL_PACK_BUFFER_BINDING"      value="0x88ED"/>
+    <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING"    value="0x88EF"/>
+    <enum name="GL_FLOAT_MAT2x3"                   value="0x8B65"/>
+    <enum name="GL_FLOAT_MAT2x4"                   value="0x8B66"/>
+    <enum name="GL_FLOAT_MAT3x2"                   value="0x8B67"/>
+    <enum name="GL_FLOAT_MAT3x4"                   value="0x8B68"/>
+    <enum name="GL_FLOAT_MAT4x2"                   value="0x8B69"/>
+    <enum name="GL_FLOAT_MAT4x3"                   value="0x8B6A"/>
+    <enum name="GL_SRGB"                           value="0x8C40"/>
+    <enum name="GL_SRGB8"                          value="0x8C41"/>
+    <enum name="GL_SRGB_ALPHA"                     value="0x8C42"/>
+    <enum name="GL_SRGB8_ALPHA8"                   value="0x8C43"/>
+    <enum name="GL_SLUMINANCE_ALPHA"               value="0x8C44"/>
+    <enum name="GL_SLUMINANCE8_ALPHA8"             value="0x8C45"/>
+    <enum name="GL_SLUMINANCE"                     value="0x8C46"/>
+    <enum name="GL_SLUMINANCE8"                    value="0x8C47"/>
+    <enum name="GL_COMPRESSED_SRGB"                value="0x8C48"/>
+    <enum name="GL_COMPRESSED_SRGB_ALPHA"          value="0x8C49"/>
+    <enum name="GL_COMPRESSED_SLUMINANCE"          value="0x8C4A"/>
+    <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA"    value="0x8C4B"/>
+
+    <function name="UniformMatrix2x3fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix3x2fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix2x4fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix4x2fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix3x4fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix4x3fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+</category>
+
 
 <!-- ARB extensions sorted by extension number. -->
 
-<category name="GL_ARB_multitexture" number="1">
+<category name="GL_ARB_multitexture" number="1">
+    <enum name="TEXTURE0_ARB"                             value="0x84C0"/>
+    <enum name="TEXTURE1_ARB"                             value="0x84C1"/>
+    <enum name="TEXTURE2_ARB"                             value="0x84C2"/>
+    <enum name="TEXTURE3_ARB"                             value="0x84C3"/>
+    <enum name="TEXTURE4_ARB"                             value="0x84C4"/>
+    <enum name="TEXTURE5_ARB"                             value="0x84C5"/>
+    <enum name="TEXTURE6_ARB"                             value="0x84C6"/>
+    <enum name="TEXTURE7_ARB"                             value="0x84C7"/>
+    <enum name="TEXTURE8_ARB"                             value="0x84C8"/>
+    <enum name="TEXTURE9_ARB"                             value="0x84C9"/>
+    <enum name="TEXTURE10_ARB"                            value="0x84CA"/>
+    <enum name="TEXTURE11_ARB"                            value="0x84CB"/>
+    <enum name="TEXTURE12_ARB"                            value="0x84CC"/>
+    <enum name="TEXTURE13_ARB"                            value="0x84CD"/>
+    <enum name="TEXTURE14_ARB"                            value="0x84CE"/>
+    <enum name="TEXTURE15_ARB"                            value="0x84CF"/>
+    <enum name="TEXTURE16_ARB"                            value="0x84D0"/>
+    <enum name="TEXTURE17_ARB"                            value="0x84D1"/>
+    <enum name="TEXTURE18_ARB"                            value="0x84D2"/>
+    <enum name="TEXTURE19_ARB"                            value="0x84D3"/>
+    <enum name="TEXTURE20_ARB"                            value="0x84D4"/>
+    <enum name="TEXTURE21_ARB"                            value="0x84D5"/>
+    <enum name="TEXTURE22_ARB"                            value="0x84D6"/>
+    <enum name="TEXTURE23_ARB"                            value="0x84D7"/>
+    <enum name="TEXTURE24_ARB"                            value="0x84D8"/>
+    <enum name="TEXTURE25_ARB"                            value="0x84D9"/>
+    <enum name="TEXTURE26_ARB"                            value="0x84DA"/>
+    <enum name="TEXTURE27_ARB"                            value="0x84DB"/>
+    <enum name="TEXTURE28_ARB"                            value="0x84DC"/>
+    <enum name="TEXTURE29_ARB"                            value="0x84DD"/>
+    <enum name="TEXTURE30_ARB"                            value="0x84DE"/>
+    <enum name="TEXTURE31_ARB"                            value="0x84DF"/>
+    <enum name="ACTIVE_TEXTURE_ARB"            count="1"  value="0x84E0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIENT_ACTIVE_TEXTURE_ARB"     count="1"  value="0x84E1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_UNITS_ARB"         count="1"  value="0x84E2">
+        <size name="Get" mode="get"/>
+    </enum>
+
     <function name="ActiveTextureARB" offset="374">
         <param name="texture" type="GLenum"/>
-       <glx rop="197"/>
+        <glx rop="197"/>
     </function>
 
     <function name="ClientActiveTextureARB" offset="375">
         <param name="texture" type="GLenum"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="MultiTexCoord1dARB" offset="376" vectorequiv="MultiTexCoord1dvARB">
     <function name="MultiTexCoord1dvARB" offset="377">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="1"/>
-       <glx rop="198"/>
+        <glx rop="198"/>
     </function>
 
     <function name="MultiTexCoord1fARB" offset="378" vectorequiv="MultiTexCoord1fvARB">
     <function name="MultiTexCoord1fvARB" offset="379">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLfloat *" count="1"/>
-       <glx rop="199"/>
+        <glx rop="199"/>
     </function>
 
     <function name="MultiTexCoord1iARB" offset="380" vectorequiv="MultiTexCoord1ivARB">
     <function name="MultiTexCoord1ivARB" offset="381">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="1"/>
-       <glx rop="200"/>
+        <glx rop="200"/>
     </function>
 
     <function name="MultiTexCoord1sARB" offset="382" vectorequiv="MultiTexCoord1svARB">
     <function name="MultiTexCoord1svARB" offset="383">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="1"/>
-       <glx rop="201"/>
+        <glx rop="201"/>
     </function>
 
     <function name="MultiTexCoord2dARB" offset="384" vectorequiv="MultiTexCoord2dvARB">
     <function name="MultiTexCoord2dvARB" offset="385">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="2"/>
-       <glx rop="202"/>
+        <glx rop="202"/>
     </function>
 
     <function name="MultiTexCoord2fARB" offset="386" vectorequiv="MultiTexCoord2fvARB">
     <function name="MultiTexCoord2fvARB" offset="387">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLfloat *" count="2"/>
-       <glx rop="203"/>
+        <glx rop="203"/>
     </function>
 
     <function name="MultiTexCoord2iARB" offset="388" vectorequiv="MultiTexCoord2ivARB">
     <function name="MultiTexCoord2ivARB" offset="389">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="2"/>
-       <glx rop="204"/>
+        <glx rop="204"/>
     </function>
 
     <function name="MultiTexCoord2sARB" offset="390" vectorequiv="MultiTexCoord2svARB">
     <function name="MultiTexCoord2svARB" offset="391">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="2"/>
-       <glx rop="205"/>
+        <glx rop="205"/>
     </function>
 
     <function name="MultiTexCoord3dARB" offset="392" vectorequiv="MultiTexCoord3dvARB">
     <function name="MultiTexCoord3dvARB" offset="393">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="3"/>
-       <glx rop="206"/>
+        <glx rop="206"/>
     </function>
 
     <function name="MultiTexCoord3fARB" offset="394" vectorequiv="MultiTexCoord3fvARB">
     <function name="MultiTexCoord3fvARB" offset="395">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLfloat *" count="3"/>
-       <glx rop="207"/>
+        <glx rop="207"/>
     </function>
 
     <function name="MultiTexCoord3iARB" offset="396" vectorequiv="MultiTexCoord3ivARB">
     <function name="MultiTexCoord3ivARB" offset="397">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="3"/>
-       <glx rop="208"/>
+        <glx rop="208"/>
     </function>
 
     <function name="MultiTexCoord3sARB" offset="398" vectorequiv="MultiTexCoord3svARB">
     <function name="MultiTexCoord3svARB" offset="399">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="3"/>
-       <glx rop="209"/>
+        <glx rop="209"/>
     </function>
 
     <function name="MultiTexCoord4dARB" offset="400" vectorequiv="MultiTexCoord4dvARB">
     <function name="MultiTexCoord4dvARB" offset="401">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="4"/>
-       <glx rop="210"/>
+        <glx rop="210"/>
     </function>
 
     <function name="MultiTexCoord4fARB" offset="402" vectorequiv="MultiTexCoord4fvARB">
     <function name="MultiTexCoord4fvARB" offset="403">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLfloat *" count="4"/>
-       <glx rop="211"/>
+        <glx rop="211"/>
     </function>
 
     <function name="MultiTexCoord4iARB" offset="404" vectorequiv="MultiTexCoord4ivARB">
     <function name="MultiTexCoord4ivARB" offset="405">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="4"/>
-       <glx rop="212"/>
+        <glx rop="212"/>
     </function>
 
     <function name="MultiTexCoord4sARB" offset="406" vectorequiv="MultiTexCoord4svARB">
     <function name="MultiTexCoord4svARB" offset="407">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="4"/>
-       <glx rop="213"/>
+        <glx rop="213"/>
     </function>
 </category>
 
 <!-- ARB extension number 2 is a GLX extension. -->
 
 <category name="GL_ARB_transpose_matrix" number="3">
-    <enum name="TRANSPOSE_MODELVIEW_MATRIX_ARB"  value="0x84E3"/>
-    <enum name="TRANSPOSE_PROJECTION_MATRIX_ARB" value="0x84E4"/>
-    <enum name="TRANSPOSE_TEXTURE_MATRIX_ARB"    value="0x84E5"/>
-    <enum name="TRANSPOSE_COLOR_MATRIX_ARB"      value="0x84E6"/>
+    <enum name="TRANSPOSE_MODELVIEW_MATRIX_ARB"           value="0x84E3"/>
+    <enum name="TRANSPOSE_PROJECTION_MATRIX_ARB"          value="0x84E4"/>
+    <enum name="TRANSPOSE_TEXTURE_MATRIX_ARB"             value="0x84E5"/>
+    <enum name="TRANSPOSE_COLOR_MATRIX_ARB"               value="0x84E6"/>
 
-    <function name="LoadTransposeMatrixfARB" offset="408">
+    <function name="LoadTransposeMatrixfARB" offset="assign">
         <param name="m" type="const GLfloat *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="LoadTransposeMatrixdARB" offset="409">
+    <function name="LoadTransposeMatrixdARB" offset="assign">
         <param name="m" type="const GLdouble *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="MultTransposeMatrixfARB" offset="410">
+    <function name="MultTransposeMatrixfARB" offset="assign">
         <param name="m" type="const GLfloat *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="MultTransposeMatrixdARB" offset="411">
+    <function name="MultTransposeMatrixdARB" offset="assign">
         <param name="m" type="const GLdouble *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 </category>
 
 <!-- ARB extension number 4 is a WGL extension. -->
 
 <category name="GL_ARB_multisample" number="5">
-    <enum name="MULTISAMPLE_ARB"              value="0x809D"/>
-    <enum name="SAMPLE_ALPHA_TO_COVERAGE_ARB" value="0x809E"/>
-    <enum name="SAMPLE_ALPHA_TO_ONE_ARB"      value="0x809F"/>
-    <enum name="SAMPLE_COVERAGE_ARB"          value="0x80A0"/>
-
-    <enum name="SAMPLE_BUFFERS_ARB"           value="0x80A8"/>
-    <enum name="SAMPLES_ARB"                  value="0x80A9"/>
-    <enum name="SAMPLE_COVERAGE_VALUE_ARB"    value="0x80AA"/>
-    <enum name="SAMPLE_COVERAGE_INVERT_ARB"   value="0x80AB"/>
-
-    <enum name="MULTISAMPLE_BIT_ARB"          value="0x20000000"/>
+    <enum name="MULTISAMPLE_ARB"               count="1"  value="0x809D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_ALPHA_TO_COVERAGE_ARB"  count="1"  value="0x809E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_ALPHA_TO_ONE_ARB"       count="1"  value="0x809F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_ARB"           count="1"  value="0x80A0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_BUFFERS_ARB"            count="1"  value="0x80A8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLES_ARB"                   count="1"  value="0x80A9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_VALUE_ARB"     count="1"  value="0x80AA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_INVERT_ARB"    count="1"  value="0x80AB">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MULTISAMPLE_BIT_ARB"                      value="0x20000000"/>
 
-    <function name="SampleCoverageARB" offset="412">
+    <function name="SampleCoverageARB" offset="assign">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
-       <glx rop="229"/>
+        <glx rop="229"/>
     </function>
 </category>
 
+<category name="GL_ARB_texture_env_add" number="6">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_ARB_texture_cube_map" number="7">
+    <enum name="NORMAL_MAP_ARB"                           value="0x8511"/>
+    <enum name="REFLECTION_MAP_ARB"                       value="0x8512"/>
+    <enum name="TEXTURE_CUBE_MAP_ARB"          count="1"  value="0x8513">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_CUBE_MAP_ARB"  count="1"  value="0x8514">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_CUBE_MAP_POSITIVE_X_ARB"          value="0x8515"/>
+    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"          value="0x8516"/>
+    <enum name="TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"          value="0x8517"/>
+    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"          value="0x8518"/>
+    <enum name="TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"          value="0x8519"/>
+    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"          value="0x851A"/>
+    <enum name="PROXY_TEXTURE_CUBE_MAP_ARB"               value="0x851B"/>
+    <enum name="MAX_CUBE_MAP_TEXTURE_SIZE_ARB" count="1"  value="0x851C">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <!-- ARB extension number 8 is a WGL extension. -->
 <!-- ARB extension number 9 is a WGL extension. -->
 <!-- ARB extension number 10 is a WGL extension. -->
 <!-- ARB extension number 11 is a WGL extension. -->
 
 <category name="GL_ARB_texture_compression" number="12">
-    <enum name="COMPRESSED_ALPHA_ARB"               value="0x84E9"/>
-    <enum name="COMPRESSED_LUMINANCE_ARB"           value="0x84EA"/>
-    <enum name="COMPRESSED_LUMINANCE_ALPHA_ARB"     value="0x84EB"/>
-    <enum name="COMPRESSED_INTENSITY_ARB"           value="0x84EC"/>
-    <enum name="COMPRESSED_RGB_ARB"                 value="0x84ED"/>
-    <enum name="COMPRESSED_RGBA_ARB"                value="0x84EE"/>
-    <enum name="TEXTURE_COMPRESSION_HINT_ARB"       value="0x84EF"/>
-    <enum name="TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"  value="0x86A0"/>
-    <enum name="TEXTURE_COMPRESSED_ARB"             value="0x86A1"/>
-    <enum name="NUM_TEXTURE_COMPRESSED_FORMATS_ARB" value="0x86A2"/>
-    <enum name="TEXTURE_COMPRESSED_FORMATS_ARB"     value="0x86A3"/>
-
-    <function name="CompressedTexImage3DARB" offset="554">
+    <enum name="COMPRESSED_ALPHA_ARB"                     value="0x84E9"/>
+    <enum name="COMPRESSED_LUMINANCE_ARB"                 value="0x84EA"/>
+    <enum name="COMPRESSED_LUMINANCE_ALPHA_ARB"           value="0x84EB"/>
+    <enum name="COMPRESSED_INTENSITY_ARB"                 value="0x84EC"/>
+    <enum name="COMPRESSED_RGB_ARB"                       value="0x84ED"/>
+    <enum name="COMPRESSED_RGBA_ARB"                      value="0x84EE"/>
+    <enum name="TEXTURE_COMPRESSION_HINT_ARB"  count="1"  value="0x84EF">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED_IMAGE_SIZE_ARB" count="1" value="0x86A0">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED_ARB"        count="1"  value="0x86A1">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="NUM_COMPRESSED_TEXTURE_FORMATS_ARB" count="1" value="0x86A2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED_FORMATS_ARB"           value="0x86A3"/>
+
+    <function name="CompressedTexImage3DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <param name="height" type="GLsizei"/>
         <param name="depth" type="GLsizei"/>
         <param name="border" type="GLint"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-       <glx rop="216" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="216" handcode="client"/>
     </function>
 
-    <function name="CompressedTexImage2DARB" offset="555">
+    <function name="CompressedTexImage2DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="border" type="GLint"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-       <glx rop="215" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="215" handcode="client"/>
     </function>
 
-    <function name="CompressedTexImage1DARB" offset="556">
+    <function name="CompressedTexImage1DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="border" type="GLint"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-       <glx rop="214" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="214" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage3DARB" offset="557">
+    <function name="CompressedTexSubImage3DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <param name="height" type="GLsizei"/>
         <param name="depth" type="GLsizei"/>
         <param name="format" type="GLenum"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-       <glx rop="219" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="219" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage2DARB" offset="558">
+    <function name="CompressedTexSubImage2DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-       <glx rop="218" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="218" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage1DARB" offset="559">
+    <function name="CompressedTexSubImage1DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="format" type="GLenum"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-       <glx rop="217" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="217" handcode="client"/>
     </function>
 
-    <function name="GetCompressedTexImageARB" offset="560">
+    <function name="GetCompressedTexImageARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
-        <param name="img" type="GLvoid *"/>
-       <glx sop="160" handcode="true"/>
+        <param name="img" type="GLvoid *" output="true"/>
+
+        <!-- This has to be hand coded because the image size is in the
+             "wrong" place.  Technically, this should be a
+             'always_array="true"' case.  The size field in the reply would
+             be at offset 12.  However, the size is actually at offset 16.
+             This is where the 'width' is in a GetTexImage reply. -->
+        <glx sop="160" handcode="true"/>
     </function>
 </category>
 
+<category name="GL_ARB_texture_border_clamp" number="13">
+    <enum name="CLAMP_TO_BORDER_ARB"                      value="0x812D"/>
+</category>
+
 <category name="GL_ARB_point_parameters" number="14">
+    <enum name="POINT_SIZE_MIN_ARB"            count="1"  value="0x8126">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_SIZE_MAX_ARB"            count="1"  value="0x8127">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_FADE_THRESHOLD_SIZE_ARB" count="1"  value="0x8128">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_DISTANCE_ATTENUATION_ARB" count="3" value="0x8129">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+
     <function name="PointParameterfARB" alias="PointParameterfEXT">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="2065"/>
+        <glx rop="2065"/>
     </function>
 
     <function name="PointParameterfvARB" alias="PointParameterfvEXT">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="2066"/>
+        <glx rop="2066"/>
     </function>
 </category>
 
 <category name="GL_ARB_vertex_blend" number="15">
-    <function name="WeightbvARB" offset="?">
+    <enum name="MAX_VERTEX_UNITS_ARB"          count="1"  value="0x86A4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACTIVE_VERTEX_UNITS_ARB"       count="1"  value="0x86A5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_SUM_UNITY_ARB"          count="1"  value="0x86A6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_BLEND_ARB"              count="1"  value="0x86A7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_WEIGHT_ARB"            count="1"  value="0x86A8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_ARRAY_TYPE_ARB"         count="1"  value="0x86A9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_ARRAY_STRIDE_ARB"       count="1"  value="0x86AA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_ARRAY_SIZE_ARB"         count="1"  value="0x86AB">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_ARRAY_POINTER_ARB"                 value="0x86AC"/>
+    <enum name="WEIGHT_ARRAY_ARB"              count="1"  value="0x86AD">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW0_ARB"                count="16" value="0x1700">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW1_ARB"                count="16" value="0x850A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW2_ARB"                count="16" value="0x8722">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW3_ARB"                count="16" value="0x8723">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW4_ARB"                count="16" value="0x8724">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW5_ARB"                count="16" value="0x8725">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW6_ARB"                count="16" value="0x8726">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW7_ARB"                count="16" value="0x8727">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW8_ARB"                count="16" value="0x8728">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW9_ARB"                count="16" value="0x8729">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW10_ARB"               count="16" value="0x872A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW11_ARB"               count="16" value="0x872B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW12_ARB"               count="16" value="0x872C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW13_ARB"               count="16" value="0x872D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW14_ARB"               count="16" value="0x872E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW15_ARB"               count="16" value="0x872F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW16_ARB"               count="16" value="0x8730">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW17_ARB"               count="16" value="0x8731">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW18_ARB"               count="16" value="0x8732">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW19_ARB"               count="16" value="0x8733">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW20_ARB"               count="16" value="0x8734">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW21_ARB"               count="16" value="0x8735">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW22_ARB"               count="16" value="0x8736">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW23_ARB"               count="16" value="0x8737">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW24_ARB"               count="16" value="0x8738">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW25_ARB"               count="16" value="0x8739">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW26_ARB"               count="16" value="0x873A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW27_ARB"               count="16" value="0x873B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW28_ARB"               count="16" value="0x873C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW29_ARB"               count="16" value="0x873D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW30_ARB"               count="16" value="0x873E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW31_ARB"               count="16" value="0x873F">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="WeightbvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLbyte *"/>
     </function>
 
-    <function name="WeightsvARB" offset="?">
+    <function name="WeightsvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLshort *"/>
     </function>
 
-    <function name="WeightivARB" offset="?">
+    <function name="WeightivARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLint *"/>
     </function>
 
-    <function name="WeightfvARB" offset="?">
+    <function name="WeightfvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLfloat *"/>
     </function>
 
-    <function name="WeightdvARB" offset="?">
+    <function name="WeightdvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLdouble *"/>
     </function>
 
-    <function name="WeightubvARB" offset="?">
+    <function name="WeightubvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLubyte *"/>
     </function>
 
-    <function name="WeightusvARB" offset="?">
+    <function name="WeightusvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLushort *"/>
     </function>
 
-    <function name="WeightuivARB" offset="?">
+    <function name="WeightuivARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLuint *"/>
     </function>
 
-    <function name="WeightPointerARB" offset="?">
+    <function name="WeightPointerARB">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="VertexBlendARB" offset="?">
+    <function name="VertexBlendARB">
         <param name="count" type="GLint"/>
     </function>
 </category>
 
 <category name="GL_ARB_matrix_palette" number="16">
-    <function name="CurrentPaletteMatrixARB" offset="?">
+    <enum name="MATRIX_PALETTE_ARB"            count="1"  value="0x8840">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_MATRIX_PALETTE_STACK_DEPTH_ARB" count="1" value="0x8841">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_PALETTE_MATRICES_ARB"      count="1"  value="0x8842">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_PALETTE_MATRIX_ARB"    count="1"  value="0x8843">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_ARB"        count="1"  value="0x8844">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_MATRIX_INDEX_ARB"      count="1"  value="0x8845">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_SIZE_ARB"   count="1"  value="0x8846">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_TYPE_ARB"   count="1"  value="0x8847">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_STRIDE_ARB" count="1"  value="0x8848">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_POINTER_ARB"           value="0x8849"/>
+
+    <function name="CurrentPaletteMatrixARB">
         <param name="index" type="GLint"/>
+        <glx ignore="true" rop="4329"/>
     </function>
 
-    <function name="MatrixIndexubvARB" offset="?">
-        <param name="size" type="GLint"/>
-        <param name="indices" type="const GLubyte *"/>
+    <function name="MatrixIndexubvARB">
+        <param name="size" type="GLint" counter="true"/>
+        <param name="indices" type="const GLubyte *" count="size"/>
+        <glx ignore="true" rop="4326"/>
     </function>
 
-    <function name="MatrixIndexusvARB" offset="?">
-        <param name="size" type="GLint"/>
-        <param name="indices" type="const GLushort *"/>
+    <function name="MatrixIndexusvARB">
+        <param name="size" type="GLint" counter="true"/>
+        <param name="indices" type="const GLushort *" count="size"/>
+        <glx ignore="true" rop="4327"/>
     </function>
 
-    <function name="MatrixIndexuivARB" offset="?">
-        <param name="size" type="GLint"/>
-        <param name="indices" type="const GLuint *"/>
+    <function name="MatrixIndexuivARB">
+        <param name="size" type="GLint" counter="true"/>
+        <param name="indices" type="const GLuint *" count="size"/>
+        <glx ignore="true" rop="4328"/>
     </function>
 
-    <function name="MatrixIndexPointerARB" offset="?">
+    <function name="MatrixIndexPointerARB">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 </category>
 
+<category name="GL_ARB_texture_env_combine" number="17">
+    <enum name="COMBINE_ARB"                              value="0x8570"/>
+    <enum name="COMBINE_RGB_ARB"                          value="0x8571"/>
+    <enum name="COMBINE_ALPHA_ARB"                        value="0x8572"/>
+    <enum name="SOURCE0_RGB_ARB"                          value="0x8580"/>
+    <enum name="SOURCE1_RGB_ARB"                          value="0x8581"/>
+    <enum name="SOURCE2_RGB_ARB"                          value="0x8582"/>
+    <enum name="SOURCE0_ALPHA_ARB"                        value="0x8588"/>
+    <enum name="SOURCE1_ALPHA_ARB"                        value="0x8589"/>
+    <enum name="SOURCE2_ALPHA_ARB"                        value="0x858A"/>
+    <enum name="OPERAND0_RGB_ARB"                         value="0x8590"/>
+    <enum name="OPERAND1_RGB_ARB"                         value="0x8591"/>
+    <enum name="OPERAND2_RGB_ARB"                         value="0x8592"/>
+    <enum name="OPERAND0_ALPHA_ARB"                       value="0x8598"/>
+    <enum name="OPERAND1_ALPHA_ARB"                       value="0x8599"/>
+    <enum name="OPERAND2_ALPHA_ARB"                       value="0x859A"/>
+    <enum name="RGB_SCALE_ARB"                            value="0x8573"/>
+    <enum name="ADD_SIGNED_ARB"                           value="0x8574"/>
+    <enum name="INTERPOLATE_ARB"                          value="0x8575"/>
+    <enum name="SUBTRACT_ARB"                             value="0x84E7"/>
+    <enum name="CONSTANT_ARB"                             value="0x8576"/>
+    <enum name="PRIMARY_COLOR_ARB"                        value="0x8577"/>
+    <enum name="PREVIOUS_ARB"                             value="0x8578"/>
+</category>
+
+<category name="GL_ARB_texture_env_crossbar" number="18">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_ARB_texture_env_dot3" number="19">
+    <enum name="DOT3_RGB_ARB"                             value="0x86AE"/>
+    <enum name="DOT3_RGBA_ARB"                            value="0x86AF"/>
+</category>
+
 <!-- ARB extension number 20 is a WGL extension. -->
 
+<category name="GL_ARB_texture_mirrored_repeat" number="21">
+    <enum name="MIRRORED_REPEAT_ARB"                      value="0x8370"/>
+</category>
+
+<category name="GL_ARB_depth_texture" number="22">
+    <enum name="DEPTH_COMPONENT16_ARB"                    value="0x81A5"/>
+    <enum name="DEPTH_COMPONENT24_ARB"                    value="0x81A6"/>
+    <enum name="DEPTH_COMPONENT32_ARB"                    value="0x81A7"/>
+    <enum name="TEXTURE_DEPTH_SIZE_ARB"        count="1"  value="0x884A">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="DEPTH_TEXTURE_MODE_ARB"        count="1"  value="0x884B">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_ARB_shadow" number="23">
+    <enum name="TEXTURE_COMPARE_MODE_ARB"      count="1"  value="0x884C">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPARE_FUNC_ARB"      count="1"  value="0x884D">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="COMPARE_R_TO_TEXTURE_ARB"                 value="0x884E"/>
+</category>
+
+<category name="GL_ARB_shadow_ambient" number="24">
+    <enum name="TEXTURE_COMPARE_FAIL_VALUE_ARB" count="1" value="0x80BF">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_ARB_window_pos" number="25">
     <function name="WindowPos2dARB" alias="WindowPos2dMESA">
         <param name="x" type="GLdouble"/>
     </function>
 
     <function name="WindowPos2dvARB" alias="WindowPos2dvMESA">
-        <param name="p" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *"/>
     </function>
 
     <function name="WindowPos2fvARB" alias="WindowPos2fvMESA">
-        <param name="p" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
     </function>
 
     <function name="WindowPos2ivARB" alias="WindowPos2ivMESA">
-        <param name="p" type="const GLint *"/>
+        <param name="v" type="const GLint *"/>
     </function>
 
     <function name="WindowPos2svARB" alias="WindowPos2svMESA">
-        <param name="p" type="const GLshort *"/>
+        <param name="v" type="const GLshort *"/>
     </function>
 
     <function name="WindowPos3dARB" alias="WindowPos3dMESA">
     </function>
 
     <function name="WindowPos3dvARB" alias="WindowPos3dvMESA">
-        <param name="p" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *"/>
     </function>
 
     <function name="WindowPos3fvARB" alias="WindowPos3fvMESA">
-        <param name="p" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
     </function>
 
     <function name="WindowPos3ivARB" alias="WindowPos3ivMESA">
-        <param name="p" type="const GLint *"/>
+        <param name="v" type="const GLint *"/>
     </function>
 
     <function name="WindowPos3svARB" alias="WindowPos3svMESA">
-        <param name="p" type="const GLshort *"/>
+        <param name="v" type="const GLshort *"/>
     </function>
 </category>
 
 <category name="GL_ARB_vertex_program" number="26">
-    <function name="VertexAttrib1sARB" alias="VertexAttrib1sNV">
+    <enum name="COLOR_SUM_ARB"                 count="1"  value="0x8458">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_PROGRAM_ARB"            count="1"  value="0x8620">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_ENABLED_ARB" count="1" value="0x8622">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_SIZE_ARB"  count="1"  value="0x8623">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_STRIDE_ARB" count="1" value="0x8624">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_TYPE_ARB"  count="1"  value="0x8625">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="CURRENT_VERTEX_ATTRIB_ARB"     count="1"  value="0x8626">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_LENGTH_ARB"            count="1"  value="0x8627">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_STRING_ARB"                       value="0x8628"/>
+    <enum name="MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB" count="1" value="0x862E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_MATRICES_ARB"      count="1"  value="0x862F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_MATRIX_STACK_DEPTH_ARB" count="1" value="0x8640">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_MATRIX_ARB"            count="16" value="0x8641">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_PROGRAM_POINT_SIZE_ARB" count="1"  value="0x8642">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_PROGRAM_TWO_SIDE_ARB"   count="1"  value="0x8643">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_POINTER_ARB"          value="0x8645"/>
+    <enum name="PROGRAM_ERROR_POSITION_ARB"    count="1"  value="0x864B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_BINDING_ARB"           count="1"  value="0x8677">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_VERTEX_ATTRIBS_ARB"        count="1"  value="0x8869">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"       value="0x886A"/>
+    <enum name="PROGRAM_ERROR_STRING_ARB"                 value="0x8874"/>
+    <enum name="PROGRAM_FORMAT_ASCII_ARB"                 value="0x8875"/>
+    <enum name="PROGRAM_FORMAT_ARB"            count="1"  value="0x8876">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_INSTRUCTIONS_ARB"      count="1"  value="0x88A0">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_INSTRUCTIONS_ARB"  count="1"  value="0x88A1">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_INSTRUCTIONS_ARB" count="1" value="0x88A2">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB" count="1" value="0x88A3">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_TEMPORARIES_ARB"       count="1"  value="0x88A4">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_TEMPORARIES_ARB"   count="1"  value="0x88A5">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_TEMPORARIES_ARB" count="1" value="0x88A6">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_TEMPORARIES_ARB" count="1" value="0x88A7">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_PARAMETERS_ARB"        count="1"  value="0x88A8">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_PARAMETERS_ARB"    count="1"  value="0x88A9">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_PARAMETERS_ARB" count="1"  value="0x88AA">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_PARAMETERS_ARB" count="1" value="0x88AB">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_ATTRIBS_ARB"           count="1"  value="0x88AC">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_ATTRIBS_ARB"       count="1"  value="0x88AD">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_ATTRIBS_ARB"    count="1"  value="0x88AE">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_ATTRIBS_ARB" count="1" value="0x88AF">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_ADDRESS_REGISTERS_ARB" count="1"  value="0x88B0">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_ADDRESS_REGISTERS_ARB" count="1" value="0x88B1">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB" count="1" value="0x88B2">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB" count="1" value="0x88B3">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_LOCAL_PARAMETERS_ARB" count="1" value="0x88B4">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_ENV_PARAMETERS_ARB" count="1" value="0x88B5">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_UNDER_NATIVE_LIMITS_ARB" count="1" value="0x88B6">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="TRANSPOSE_CURRENT_MATRIX_ARB"  count="16" value="0x88B7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX0_ARB"                              value="0x88C0"/>
+    <enum name="MATRIX1_ARB"                              value="0x88C1"/>
+    <enum name="MATRIX2_ARB"                              value="0x88C2"/>
+    <enum name="MATRIX3_ARB"                              value="0x88C3"/>
+    <enum name="MATRIX4_ARB"                              value="0x88C4"/>
+    <enum name="MATRIX5_ARB"                              value="0x88C5"/>
+    <enum name="MATRIX6_ARB"                              value="0x88C6"/>
+    <enum name="MATRIX7_ARB"                              value="0x88C7"/>
+    <enum name="MATRIX8_ARB"                              value="0x88C8"/>
+    <enum name="MATRIX9_ARB"                              value="0x88C9"/>
+    <enum name="MATRIX10_ARB"                             value="0x88CA"/>
+    <enum name="MATRIX11_ARB"                             value="0x88CB"/>
+    <enum name="MATRIX12_ARB"                             value="0x88CC"/>
+    <enum name="MATRIX13_ARB"                             value="0x88CD"/>
+    <enum name="MATRIX14_ARB"                             value="0x88CE"/>
+    <enum name="MATRIX15_ARB"                             value="0x88CF"/>
+    <enum name="MATRIX16_ARB"                             value="0x88D0"/>
+    <enum name="MATRIX17_ARB"                             value="0x88D1"/>
+    <enum name="MATRIX18_ARB"                             value="0x88D2"/>
+    <enum name="MATRIX19_ARB"                             value="0x88D3"/>
+    <enum name="MATRIX20_ARB"                             value="0x88D4"/>
+    <enum name="MATRIX21_ARB"                             value="0x88D5"/>
+    <enum name="MATRIX22_ARB"                             value="0x88D6"/>
+    <enum name="MATRIX23_ARB"                             value="0x88D7"/>
+    <enum name="MATRIX24_ARB"                             value="0x88D8"/>
+    <enum name="MATRIX25_ARB"                             value="0x88D9"/>
+    <enum name="MATRIX26_ARB"                             value="0x88DA"/>
+    <enum name="MATRIX27_ARB"                             value="0x88DB"/>
+    <enum name="MATRIX28_ARB"                             value="0x88DC"/>
+    <enum name="MATRIX29_ARB"                             value="0x88DD"/>
+    <enum name="MATRIX30_ARB"                             value="0x88DE"/>
+    <enum name="MATRIX31_ARB"                             value="0x88DF"/>
+
+    <function name="GetVertexAttribdvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx handcode="client" vendorpriv="1301"/>
     </function>
 
-    <function name="VertexAttrib1fARB" alias="VertexAttrib1fNV">
+    <function name="GetVertexAttribfvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLfloat"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx handcode="client" vendorpriv="1302"/>
+    </function>
+
+    <function name="GetVertexAttribivARB" offset="assign">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx handcode="client" vendorpriv="1303"/>
     </function>
 
-    <function name="VertexAttrib1dARB" alias="VertexAttrib1dNV">
+    <function name="VertexAttrib1dARB" offset="assign" vectorequiv="VertexAttrib1dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib2sARB" alias="VertexAttrib2sNV">
+    <function name="VertexAttrib1dvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
+        <param name="v" type="const GLdouble *" count="1"/>
+        <glx rop="4197" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib2fARB" alias="VertexAttrib2fNV">
+    <function name="VertexAttrib1fARB" offset="assign" vectorequiv="VertexAttrib1fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
-        <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2dARB" alias="VertexAttrib2dNV">
+    <function name="VertexAttrib1fvARB" offset="assign">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="1"/>
+        <glx rop="4193"/>
+    </function>
+
+    <function name="VertexAttrib1sARB" offset="assign" vectorequiv="VertexAttrib1svARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+    </function>
+
+    <function name="VertexAttrib1svARB" offset="assign">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="1"/>
+        <glx rop="4189"/>
+    </function>
+
+    <function name="VertexAttrib2dARB" offset="assign" vectorequiv="VertexAttrib2dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib3sARB" alias="VertexAttrib3sNV">
+    <function name="VertexAttrib2dvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
-        <param name="z" type="GLshort"/>
+        <param name="v" type="const GLdouble *" count="2"/>
+        <glx rop="4198" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib3fARB" alias="VertexAttrib3fNV">
+    <function name="VertexAttrib2fARB" offset="assign" vectorequiv="VertexAttrib2fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
-        <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3dARB" alias="VertexAttrib3dNV">
+    <function name="VertexAttrib2fvARB" offset="assign">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="2"/>
+        <glx rop="4194"/>
+    </function>
+
+    <function name="VertexAttrib2sARB" offset="assign" vectorequiv="VertexAttrib2svARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+
+    <function name="VertexAttrib2svARB" offset="assign">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="2"/>
+        <glx rop="4190"/>
+    </function>
+
+    <function name="VertexAttrib3dARB" offset="assign" vectorequiv="VertexAttrib3dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4sARB" alias="VertexAttrib4sNV">
+    <function name="VertexAttrib3dvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
-        <param name="z" type="GLshort"/>
-        <param name="w" type="GLshort"/>
+        <param name="v" type="const GLdouble *" count="3"/>
+        <glx rop="4199" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4fARB" alias="VertexAttrib4fNV">
+    <function name="VertexAttrib3fARB" offset="assign" vectorequiv="VertexAttrib3fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
-        <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib4dARB" alias="VertexAttrib4dNV">
+    <function name="VertexAttrib3fvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLdouble"/>
-        <param name="y" type="GLdouble"/>
-        <param name="z" type="GLdouble"/>
-        <param name="w" type="GLdouble"/>
+        <param name="v" type="const GLfloat *" count="3"/>
+        <glx rop="4195"/>
     </function>
 
-    <function name="VertexAttrib4NubARB" alias="VertexAttrib4ubNV">
+    <function name="VertexAttrib3sARB" offset="assign" vectorequiv="VertexAttrib3svARB">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLubyte"/>
-        <param name="y" type="GLubyte"/>
-        <param name="z" type="GLubyte"/>
-        <param name="w" type="GLubyte"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1svARB" alias="VertexAttrib1svNV">
+    <function name="VertexAttrib3svARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="1"/>
+        <param name="v" type="const GLshort *" count="3"/>
+        <glx rop="4191"/>
     </function>
 
-    <function name="VertexAttrib1fvARB" alias="VertexAttrib1fvNV">
+    <function name="VertexAttrib4dARB" offset="assign" vectorequiv="VertexAttrib4dvARB">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="1"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+        <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib1dvARB" alias="VertexAttrib1dvNV">
+    <function name="VertexAttrib4dvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="1"/>
+        <param name="v" type="const GLdouble *" count="4"/>
+        <glx rop="4200" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib2svARB" alias="VertexAttrib2svNV">
+    <function name="VertexAttrib4fARB" offset="assign" vectorequiv="VertexAttrib4fvARB">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="2"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+        <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2fvARB" alias="VertexAttrib2fvNV">
+    <function name="VertexAttrib4fvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="2"/>
+        <param name="v" type="const GLfloat *" count="4"/>
+        <glx rop="4196"/>
     </function>
 
-    <function name="VertexAttrib2dvARB" alias="VertexAttrib2dvNV">
+    <function name="VertexAttrib4sARB" offset="assign" vectorequiv="VertexAttrib4svARB">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="2"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+        <param name="w" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib3svARB" alias="VertexAttrib3svNV">
+    <function name="VertexAttrib4svARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="3"/>
+        <param name="v" type="const GLshort *" count="4"/>
+        <glx rop="4192"/>
     </function>
 
-    <function name="VertexAttrib3fvARB" alias="VertexAttrib3fvNV">
+    <function name="VertexAttrib4NubARB" offset="assign" vectorequiv="VertexAttrib4NubvARB">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="3"/>
+        <param name="x" type="GLubyte"/>
+        <param name="y" type="GLubyte"/>
+        <param name="z" type="GLubyte"/>
+        <param name="w" type="GLubyte"/>
     </function>
 
-    <function name="VertexAttrib3dvARB" alias="VertexAttrib3dvNV">
+    <function name="VertexAttrib4NubvARB" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="3"/>
+        <param name="v" type="const GLubyte *" count="4"/>
+        <glx rop="4201"/>
     </function>
 
-    <function name="VertexAttrib4bvARB" offset="654">
+    <function name="VertexAttrib4bvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
-       <glx rop="4230"/>
-    </function>
-
-    <function name="VertexAttrib4svARB" alias="VertexAttrib4svNV">
-        <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="4"/>
+        <glx rop="4230"/>
     </function>
 
-    <function name="VertexAttrib4ivARB" offset="655">
+    <function name="VertexAttrib4ivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
-       <glx rop="4231"/>
+        <glx rop="4231"/>
     </function>
 
-    <function name="VertexAttrib4ubvARB" offset="656">
+    <function name="VertexAttrib4ubvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
-       <glx rop="4232"/>
+        <glx rop="4232"/>
     </function>
 
-    <function name="VertexAttrib4usvARB" offset="657">
+    <function name="VertexAttrib4usvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
-       <glx rop="4233"/>
+        <glx rop="4233"/>
     </function>
 
-    <function name="VertexAttrib4uivARB" offset="658">
+    <function name="VertexAttrib4uivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
-       <glx rop="4234"/>
-    </function>
-
-    <function name="VertexAttrib4fvARB" alias="VertexAttrib4fvNV">
-        <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="4"/>
-    </function>
-
-    <function name="VertexAttrib4dvARB" alias="VertexAttrib4dvNV">
-        <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="4"/>
+        <glx rop="4234"/>
     </function>
 
-    <function name="VertexAttrib4NbvARB" offset="659">
+    <function name="VertexAttrib4NbvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
-       <glx rop="4235"/>
+        <glx rop="4235"/>
     </function>
 
-    <function name="VertexAttrib4NsvARB" offset="660">
+    <function name="VertexAttrib4NsvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
-       <glx rop="4236"/>
+        <glx rop="4236"/>
     </function>
 
-    <function name="VertexAttrib4NivARB" offset="661">
+    <function name="VertexAttrib4NivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
-       <glx rop="4237"/>
-    </function>
-
-    <function name="VertexAttrib4NubvARB" alias="VertexAttrib4ubvNV">
-        <param name="index" type="GLuint"/>
-        <param name="v" type="const GLubyte *" count="4"/>
+        <glx rop="4237"/>
     </function>
 
-    <function name="VertexAttrib4NusvARB" offset="662">
+    <function name="VertexAttrib4NusvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
-       <glx rop="4238"/>
+        <glx rop="4238"/>
     </function>
 
-    <function name="VertexAttrib4NuivARB" offset="663">
+    <function name="VertexAttrib4NuivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
-       <glx rop="4239"/>
+        <glx rop="4239"/>
     </function>
 
-    <function name="VertexAttribPointerARB" offset="664">
+    <function name="VertexAttribPointerARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="normalized" type="GLboolean"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="EnableVertexAttribArrayARB" offset="665">
+    <function name="EnableVertexAttribArrayARB" offset="assign">
         <param name="index" type="GLuint"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="DisableVertexAttribArrayARB" offset="666">
+    <function name="DisableVertexAttribArrayARB" offset="assign">
         <param name="index" type="GLuint"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="ProgramStringARB" offset="667">
+    <function name="ProgramStringARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
-        <param name="len" type="GLsizei"/>
-        <param name="string" type="const GLvoid *"/>
-       <glx rop="4217" handcode="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="string" type="const GLvoid *" count="len"/>
+        <glx rop="4217" large="true"/>
     </function>
 
     <function name="BindProgramARB" alias="BindProgramNV">
     </function>
 
     <function name="GenProgramsARB" alias="GenProgramsNV">
-        <param name="n" type="GLsizei"/>
-        <param name="programs" type="GLuint *"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="programs" type="GLuint *" output="true" count="n"/>
     </function>
 
     <function name="IsProgramARB" alias="IsProgramNV">
         <return type="GLboolean"/>
     </function>
 
-    <!-- FIXME: This should alias to ProgramParameter*NV -->
-    <function name="ProgramEnvParameter4dARB" offset="668" vectorequiv="ProgramEnvParameter4dvARB">
+    <function name="ProgramEnvParameter4dARB" offset="assign" vectorequiv="ProgramEnvParameter4dvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <!-- FIXME: This should alias to ProgramParameter*NV -->
-    <function name="ProgramEnvParameter4dvARB" offset="669">
+    <function name="ProgramEnvParameter4dvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLdouble *" count="4"/>
-       <glx rop="4185" doubles_in_order="true"/>
+        <glx rop="4185" doubles_in_order="true"/>
     </function>
 
-    <!-- FIXME: This should alias to ProgramParameter*NV -->
-    <function name="ProgramEnvParameter4fARB" offset="670" vectorequiv="ProgramEnvParameter4fvARB">
+    <function name="ProgramEnvParameter4fARB" offset="assign" vectorequiv="ProgramEnvParameter4fvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <!-- FIXME: This should alias to ProgramParameter*NV -->
-    <function name="ProgramEnvParameter4fvARB" offset="671">
+    <function name="ProgramEnvParameter4fvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
-       <glx rop="4184"/>
+        <glx rop="4184"/>
     </function>
 
-    <function name="ProgramLocalParameter4dARB" offset="672" vectorequiv="ProgramLocalParameter4dvARB">
+    <function name="ProgramLocalParameter4dARB" offset="assign" vectorequiv="ProgramLocalParameter4dvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramLocalParameter4dvARB" offset="673">
+    <function name="ProgramLocalParameter4dvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLdouble *" count="4"/>
-       <glx rop="4216" doubles_in_order="true"/>
+        <glx rop="4216" doubles_in_order="true"/>
     </function>
 
-    <function name="ProgramLocalParameter4fARB" offset="674" vectorequiv="ProgramLocalParameter4fvARB">
+    <function name="ProgramLocalParameter4fARB" offset="assign" vectorequiv="ProgramLocalParameter4fvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramLocalParameter4fvARB" offset="675">
+    <function name="ProgramLocalParameter4fvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
-       <glx rop="4215"/>
+        <glx rop="4215"/>
     </function>
 
-    <!-- FIXME: This should alias to GetProgramParameter*NV -->
-    <function name="GetProgramEnvParameterdvARB" offset="676">
+    <!-- The GetProgramEnvParameter[df]vARB are handcoded because there
+         is an extra CARD32 of padding after the "index" field.  Originally,
+         GetProgranEnvParameter[df]vARB and GetProgramParameter[df]vNV
+         shared the same GLX protocol.  The pad field was where the pname
+         parameter was in the NV functions.  When this error was discovered
+         and fixed, there was already at least one implementation of
+         GLX protocol for ARB_vertex_program, but there were no
+         implementations of NV_vertex_program.  The sollution was to renumber
+         the opcodes for NV_vertex_program and convert the unused field in
+         the ARB_vertex_program protocol to unused padding.
+      -->
+
+    <function name="GetProgramEnvParameterdvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="params" type="GLdouble *" output="true"/>
-       <glx vendorpriv="1297" doubles_in_order="true"/>
+        <param name="params" type="GLdouble *" output="true" count="4"/>
+        <glx vendorpriv="1297" handcode="client" doubles_in_order="true"/>
     </function>
 
-    <!-- FIXME: This should alias to GetProgramParameter*NV -->
-    <function name="GetProgramEnvParameterfvARB" offset="677">
+    <function name="GetProgramEnvParameterfvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="1296"/>
+        <param name="params" type="GLfloat *" output="true" count="4"/>
+        <glx vendorpriv="1296" handcode="client"/>
     </function>
 
-    <function name="GetProgramLocalParameterdvARB" offset="678">
+    <function name="GetProgramLocalParameterdvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="params" type="GLdouble *" output="true"/>
-       <glx vendorpriv="1306" doubles_in_order="true"/>
+        <param name="params" type="GLdouble *" output="true" count="4"/>
+        <glx vendorpriv="1306" handcode="client" doubles_in_order="true"/>
     </function>
 
-    <function name="GetProgramLocalParameterfvARB" offset="679">
+    <function name="GetProgramLocalParameterfvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="1305"/>
+        <param name="params" type="GLfloat *" output="true" count="4"/>
+        <glx vendorpriv="1305" handcode="client"/>
     </function>
 
-    <!-- FIXME: This should alias to GetProgramivNV -->
-    <function name="GetProgramivARB" offset="680">
-        <param name="target" type="GLenum"/>
-        <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="1307"/>
-    </function>
 
-    <!-- FIXME: This should alias to GetProgramStringNV -->
-    <function name="GetProgramStringARB" offset="681">
+    <function name="GetProgramivARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="string" type="GLvoid *"/>
-       <glx vendorpriv="1308" handcode="true"/>
-    </function>
-
-    <function name="GetVertexAttribdvARB" alias="GetVertexAttribdvNV">
-        <param name="index" type="GLuint"/>
-        <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1307"/>
     </function>
 
-    <function name="GetVertexAttribfvARB" alias="GetVertexAttribfvNV">
-        <param name="index" type="GLuint"/>
-        <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
-    </function>
-
-    <function name="GetVertexAttribivARB" alias="GetVertexAttribivNV">
-        <param name="index" type="GLuint"/>
+    <function name="GetProgramStringARB" offset="assign">
+        <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="string" type="GLvoid *" output="true"/>
+        <glx vendorpriv="1308" handcode="server" always_array="true"/>
     </function>
 
     <function name="GetVertexAttribPointervARB" alias="GetVertexAttribPointervNV">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **"/>
+        <param name="pointer" type="GLvoid **" output="true"/>
     </function>
 </category>
 
+<category name="GL_ARB_fragment_program" number="27">
+    <enum name="FRAGMENT_PROGRAM_ARB"          count="1"  value="0x8804">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_ALU_INSTRUCTIONS_ARB"  count="1"  value="0x8805">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_TEX_INSTRUCTIONS_ARB"  count="1"  value="0x8806">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_TEX_INDIRECTIONS_ARB"  count="1"  value="0x8807">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB" count="1" value="0x8808">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB" count="1" value="0x8809">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB" count="1" value="0x880A">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_ALU_INSTRUCTIONS_ARB" count="1" value="0x880B">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_TEX_INSTRUCTIONS_ARB" count="1" value="0x880C">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_TEX_INDIRECTIONS_ARB" count="1" value="0x880D">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB" count="1" value="0x880E">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB" count="1" value="0x880F">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB" count="1" value="0x8810">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_COORDS_ARB"        count="1"  value="0x8871">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_IMAGE_UNITS_ARB"   count="1"  value="0x8872">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_ARB_vertex_buffer_object" number="28">
-    <function name="BindBufferARB" offset="688">
+    <enum name="BUFFER_SIZE_ARB"                          value="0x8764"/>
+    <enum name="BUFFER_USAGE_ARB"                         value="0x8765"/>
+    <enum name="ARRAY_BUFFER_ARB"                         value="0x8892"/>
+    <enum name="ELEMENT_ARRAY_BUFFER_ARB"                 value="0x8893"/>
+    <enum name="ARRAY_BUFFER_BINDING_ARB"                 value="0x8894"/>
+    <enum name="ELEMENT_ARRAY_BUFFER_BINDING_ARB"         value="0x8895"/>
+    <enum name="VERTEX_ARRAY_BUFFER_BINDING_ARB"          value="0x8896"/>
+    <enum name="NORMAL_ARRAY_BUFFER_BINDING_ARB"          value="0x8897"/>
+    <enum name="COLOR_ARRAY_BUFFER_BINDING_ARB"           value="0x8898"/>
+    <enum name="INDEX_ARRAY_BUFFER_BINDING_ARB"           value="0x8899"/>
+    <enum name="TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB"   value="0x889A"/>
+    <enum name="EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB"       value="0x889B"/>
+    <enum name="SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB" value="0x889C"/>
+    <enum name="FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB"  value="0x889D"/>
+    <enum name="WEIGHT_ARRAY_BUFFER_BINDING_ARB"          value="0x889E"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB"   value="0x889F"/>
+    <enum name="READ_ONLY_ARB"                            value="0x88B8"/>
+    <enum name="WRITE_ONLY_ARB"                           value="0x88B9"/>
+    <enum name="READ_WRITE_ARB"                           value="0x88BA"/>
+    <enum name="BUFFER_ACCESS_ARB"                        value="0x88BB"/>
+    <enum name="BUFFER_MAPPED_ARB"                        value="0x88BC"/>
+    <enum name="BUFFER_MAP_POINTER_ARB"                   value="0x88BD"/>
+    <enum name="STREAM_DRAW_ARB"                          value="0x88E0"/>
+    <enum name="STREAM_READ_ARB"                          value="0x88E1"/>
+    <enum name="STREAM_COPY_ARB"                          value="0x88E2"/>
+    <enum name="STATIC_DRAW_ARB"                          value="0x88E4"/>
+    <enum name="STATIC_READ_ARB"                          value="0x88E5"/>
+    <enum name="STATIC_COPY_ARB"                          value="0x88E6"/>
+    <enum name="DYNAMIC_DRAW_ARB"                         value="0x88E8"/>
+    <enum name="DYNAMIC_READ_ARB"                         value="0x88E9"/>
+    <enum name="DYNAMIC_COPY_ARB"                         value="0x88EA"/>
+
+    <type name="intptrARB"                   size="4"/>
+    <type name="sizeiptrARB" unsigned="true" size="4"/>
+
+    <function name="BindBufferARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="buffer" type="GLuint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="BufferDataARB" offset="689">
+    <function name="BufferDataARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="size" type="GLsizeiptrARB"/>
         <param name="data" type="const GLvoid *"/>
         <param name="usage" type="GLenum"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="BufferSubDataARB" offset="690">
+    <function name="BufferSubDataARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="offset" type="GLintptrARB"/>
         <param name="size" type="GLsizeiptrARB"/>
         <param name="data" type="const GLvoid *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="DeleteBuffersARB" offset="691">
+    <function name="DeleteBuffersARB" offset="assign">
         <param name="n" type="GLsizei"/>
         <param name="buffer" type="const GLuint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GenBuffersARB" offset="692">
-        <param name="n" type="GLsizei"/>
-        <param name="buffer" type="GLuint *"/>
-       <glx ignore="true"/>
+    <function name="GenBuffersARB" offset="assign">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="buffer" type="GLuint *" output="true" count="n"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferParameterivARB" offset="693">
+    <function name="GetBufferParameterivARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferPointervARB" offset="694">
+    <function name="GetBufferPointervARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLvoid **" output="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferSubDataARB" offset="695">
+    <function name="GetBufferSubDataARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="offset" type="GLintptrARB"/>
         <param name="size" type="GLsizeiptrARB"/>
-        <param name="data" type="GLvoid *"/>
-       <glx ignore="true"/>
+        <param name="data" type="GLvoid *" output="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="IsBufferARB" offset="696">
+    <function name="IsBufferARB" offset="assign">
         <param name="buffer" type="GLuint"/>
         <return type="GLboolean"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="MapBufferARB" offset="697">
+    <function name="MapBufferARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="access" type="GLenum"/>
         <return type="GLvoid *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="UnmapBufferARB" offset="698">
+    <function name="UnmapBufferARB" offset="assign">
         <param name="target" type="GLenum"/>
         <return type="GLboolean"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_ARB_occlusion_query" number="29">
-    <function name="GenQueriesARB" offset="700">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *"/>
-       <glx ignore="true"/>
+    <enum name="QUERY_COUNTER_BITS_ARB"        count="1"  value="0x8864">
+        <size name="GetQueryivARB" mode="get"/>
+    </enum>
+    <enum name="CURRENT_QUERY_ARB"             count="1"  value="0x8865">
+        <size name="GetQueryivARB" mode="get"/>
+    </enum>
+    <enum name="QUERY_RESULT_ARB"              count="1"  value="0x8866">
+        <size name="GetQueryObjectivARB" mode="get"/>
+        <size name="GetQueryObjectuivARB" mode="get"/>
+    </enum>
+    <enum name="QUERY_RESULT_AVAILABLE_ARB"    count="1"  value="0x8867">
+        <size name="GetQueryObjectivARB" mode="get"/>
+        <size name="GetQueryObjectuivARB" mode="get"/>
+    </enum>
+    <enum name="SAMPLES_PASSED_ARB"                       value="0x8914"/>
+
+    <function name="GenQueriesARB" offset="assign">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="GLuint *" output="true" count="n"/>
+        <glx sop="162" always_array="true"/>
     </function>
 
-    <function name="DeleteQueriesARB" offset="701">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="const GLuint *"/>
-       <glx ignore="true"/>
+    <function name="DeleteQueriesARB" offset="assign">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="const GLuint *" count="n"/>
+        <glx sop="161"/>
     </function>
 
-    <function name="IsQueryARB" offset="702">
+    <function name="IsQueryARB" offset="assign">
         <param name="id" type="GLuint"/>
         <return type="GLboolean"/>
-       <glx ignore="true"/>
+        <glx sop="163"/>
     </function>
 
-    <function name="BeginQueryARB" offset="703">
+    <function name="BeginQueryARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
-       <glx ignore="true"/>
+        <glx rop="231"/>
     </function>
 
-    <function name="EndQueryARB" offset="704">
+    <function name="EndQueryARB" offset="assign">
         <param name="target" type="GLenum"/>
-       <glx ignore="true"/>
+        <glx rop="232"/>
     </function>
 
-    <function name="GetQueryivARB" offset="705">
+    <function name="GetQueryivARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="164"/>
     </function>
 
-    <function name="GetQueryObjectivARB" offset="706">
+    <function name="GetQueryObjectivARB" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="165"/>
     </function>
 
-    <function name="GetQueryObjectuivARB" offset="707">
+    <function name="GetQueryObjectuivARB" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLuint *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLuint *" output="true" variable_param="pname"/>
+        <glx sop="166"/>
+    </function>
+</category>
+
+<category name="GL_ARB_shader_objects" number="30">
+    <enum name="PROGRAM_OBJECT_ARB"                       value="0x8B40"/>
+    <enum name="SHADER_OBJECT_ARB"                        value="0x8B48"/>
+    <enum name="OBJECT_TYPE_ARB"                          value="0x8B4E"/>
+    <enum name="OBJECT_SUBTYPE_ARB"                       value="0x8B4F"/>
+    <enum name="FLOAT_VEC2_ARB"                           value="0x8B50"/>
+    <enum name="FLOAT_VEC3_ARB"                           value="0x8B51"/>
+    <enum name="FLOAT_VEC4_ARB"                           value="0x8B52"/>
+    <enum name="INT_VEC2_ARB"                             value="0x8B53"/>
+    <enum name="INT_VEC3_ARB"                             value="0x8B54"/>
+    <enum name="INT_VEC4_ARB"                             value="0x8B55"/>
+    <enum name="BOOL_ARB"                                 value="0x8B56"/>
+    <enum name="BOOL_VEC2_ARB"                            value="0x8B57"/>
+    <enum name="BOOL_VEC3_ARB"                            value="0x8B58"/>
+    <enum name="BOOL_VEC4_ARB"                            value="0x8B59"/>
+    <enum name="FLOAT_MAT2_ARB"                           value="0x8B5A"/>
+    <enum name="FLOAT_MAT3_ARB"                           value="0x8B5B"/>
+    <enum name="FLOAT_MAT4_ARB"                           value="0x8B5C"/>
+    <enum name="OBJECT_DELETE_STATUS_ARB"                 value="0x8B80"/>
+    <enum name="OBJECT_COMPILE_STATUS_ARB"                value="0x8B81"/>
+    <enum name="OBJECT_LINK_STATUS_ARB"                   value="0x8B82"/>
+    <enum name="OBJECT_VALIDATE_STATUS_ARB"               value="0x8B83"/>
+    <enum name="OBJECT_INFO_LOG_LENGTH_ARB"               value="0x8B84"/>
+    <enum name="OBJECT_ATTACHED_OBJECTS_ARB"              value="0x8B85"/>
+    <enum name="OBJECT_ACTIVE_UNIFORMS_ARB"               value="0x8B86"/>
+    <enum name="OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"     value="0x8B87"/>
+    <enum name="OBJECT_SHADER_SOURCE_LENGTH_ARB"          value="0x8B88"/>
+
+    <type name="charARB"   size="1" glx_name="CARD8"/>
+    <type name="handleARB" size="4" glx_name="CARD32"/>
+
+    <function name="DeleteObjectARB" offset="assign">
+        <param name="obj" type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetHandleARB" offset="assign">
+        <param name="pname" type="GLenum"/>
+        <return type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DetachObjectARB" offset="assign">
+        <param name="containerObj" type="GLhandleARB"/>
+        <param name="attachedObj" type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CreateShaderObjectARB" offset="assign">
+        <param name="shaderType" type="GLenum"/>
+        <return type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="ShaderSourceARB" offset="assign">
+        <param name="shader" type="GLhandleARB"/>
+        <param name="count" type="GLsizei"/>
+        <param name="string" type="const GLcharARB **"/>
+        <param name="length" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CompileShaderARB" offset="assign">
+        <param name="shader" type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CreateProgramObjectARB" offset="assign">
+        <return type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="AttachObjectARB" offset="assign">
+        <param name="containerObj" type="GLhandleARB"/>
+        <param name="obj" type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="LinkProgramARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="UseProgramObjectARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="ValidateProgramARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1fARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform2fARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform3fARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform4fARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+        <param name="v3" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1iARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform2iARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform3iARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <param name="v2" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform4iARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <param name="v2" type="GLint"/>
+        <param name="v3" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1fvARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform2fvARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform3fvARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform4fvARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1ivARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform2ivARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform3ivARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform4ivARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="UniformMatrix2fvARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="UniformMatrix3fvARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="UniformMatrix4fvARB" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetObjectParameterfvARB" offset="assign">
+        <param name="obj" type="GLhandleARB"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetObjectParameterivARB" offset="assign">
+        <param name="obj" type="GLhandleARB"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetInfoLogARB" offset="assign">
+        <param name="obj" type="GLhandleARB"/>
+        <param name="maxLength" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="infoLog" type="GLcharARB *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetAttachedObjectsARB" offset="assign">
+        <param name="containerObj" type="GLhandleARB"/>
+        <param name="maxLength" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="infoLog" type="GLhandleARB *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformLocationARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <param name="name" type="const GLcharARB *"/>
+        <return type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetActiveUniformARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <param name="index" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="size" type="GLint *" output="true"/>
+        <param name="type" type="GLenum *" output="true"/>
+        <param name="name" type="GLcharARB *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformfvARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <param name="location" type="GLint"/>
+        <param name="params" type="GLfloat *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformivARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <param name="location" type="GLint"/>
+        <param name="params" type="GLint *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetShaderSourceARB" offset="assign">
+        <param name="shader" type="GLhandleARB"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="source" type="GLcharARB *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_ARB_vertex_shader" number="31">
+    <enum name="VERTEX_SHADER_ARB"                        value="0x8B31"/>
+    <enum name="MAX_VERTEX_UNIFORM_COMPONENTS_ARB"        value="0x8B4A"/>
+    <enum name="MAX_VARYING_FLOATS_ARB"                   value="0x8B4B"/>
+    <enum name="MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"       value="0x8B4C"/>
+    <enum name="MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB"     value="0x8B4D"/>
+    <enum name="OBJECT_ACTIVE_ATTRIBUTES_ARB"             value="0x8B89"/>
+    <enum name="OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"   value="0x8B8A"/>
+
+    <function name="BindAttribLocationARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <param name="index" type="GLuint"/>
+        <param name="name" type="const GLcharARB *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetActiveAttribARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <param name="index" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="size" type="GLint *" output="true"/>
+        <param name="type" type="GLenum *" output="true"/>
+        <param name="name" type="GLcharARB *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetAttribLocationARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
+        <param name="name" type="const GLcharARB *"/>
+        <return type="GLint"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
+<category name="GL_ARB_fragment_shader" number="32">
+    <enum name="FRAGMENT_SHADER_ARB"                      value="0x8B30"/>
+    <enum name="MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"      value="0x8B49"/>
+</category>
+
+<category name="GL_ARB_shading_language_100" number="33">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_ARB_texture_non_power_of_two" number="34">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_ARB_point_sprite" number="35">
+    <enum name="POINT_SPRITE_ARB"              count="1"  value="0x8861">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COORD_REPLACE_ARB"             count="1"  value="0x8862">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_ARB_fragment_program_shadow" number="36">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_ARB_draw_buffers" number="37">
+    <enum name="MAX_DRAW_BUFFERS_ARB"          count="1"  value="0x8824">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER0_ARB"              count="1"  value="0x8825">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER1_ARB"              count="1"  value="0x8826">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER2_ARB"              count="1"  value="0x8827">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER3_ARB"              count="1"  value="0x8828">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER4_ARB"              count="1"  value="0x8829">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER5_ARB"              count="1"  value="0x882A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER6_ARB"              count="1"  value="0x882B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER7_ARB"              count="1"  value="0x882C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER8_ARB"              count="1"  value="0x882D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER9_ARB"              count="1"  value="0x882E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER10_ARB"             count="1"  value="0x882F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER11_ARB"             count="1"  value="0x8830">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER12_ARB"             count="1"  value="0x8831">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER13_ARB"             count="1"  value="0x8832">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER14_ARB"             count="1"  value="0x8833">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER15_ARB"             count="1"  value="0x8834">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="DrawBuffersARB" offset="assign">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="bufs" type="const GLenum *" count="n"/>
+        <glx rop="233" large="true"/>
+    </function>
+</category>
 
+<category name="GL_ARB_texture_rectangle" number="38">
+    <enum name="TEXTURE_RECTANGLE_ARB"         count="1"  value="0x84F5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_RECTANGLE_ARB" count="1"  value="0x84F6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROXY_TEXTURE_RECTANGLE_ARB"              value="0x84F7"/>
+    <enum name="MAX_RECTANGLE_TEXTURE_SIZE_ARB" count="1" value="0x84F8">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
 
 <!-- Non-ARB extensions sorted by extension number. -->
 
 <category name="GL_EXT_blend_color" number="2">
-    <enum name="CONSTANT_COLOR_EXT"           value="0x8001"/>
-    <enum name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002"/>
-    <enum name="CONSTANT_ALPHA_EXT"           value="0x8003"/>
-    <enum name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004"/>
-    <enum name="BLEND_COLOR_EXT"              value="0x8005"/>
+    <enum name="CONSTANT_COLOR_EXT"                       value="0x8001"/>
+    <enum name="ONE_MINUS_CONSTANT_COLOR_EXT"             value="0x8002"/>
+    <enum name="CONSTANT_ALPHA_EXT"                       value="0x8003"/>
+    <enum name="ONE_MINUS_CONSTANT_ALPHA_EXT"             value="0x8004"/>
+    <enum name="BLEND_COLOR_EXT"               count="4"  value="0x8005">
+        <size name="Get" mode="get"/>
+    </enum>
 
     <function name="BlendColorEXT" alias="BlendColor">
         <param name="red" type="GLclampf"/>
 </category>
 
 <category name="GL_EXT_polygon_offset" number="3">
-    <function name="PolygonOffsetEXT" offset="414">
+    <function name="PolygonOffsetEXT" offset="assign">
         <param name="factor" type="GLfloat"/>
         <param name="bias" type="GLfloat"/>
-       <glx rop="4098"/>
+        <glx rop="4098" ignore="true"/>
     </function>
 </category>
 
+<category name="GL_EXT_texture" number="4">
+    <enum name="ALPHA4_EXT"                               value="0x803B"/>
+    <enum name="ALPHA8_EXT"                               value="0x803C"/>
+    <enum name="ALPHA12_EXT"                              value="0x803D"/>
+    <enum name="ALPHA16_EXT"                              value="0x803E"/>
+    <enum name="LUMINANCE4_EXT"                           value="0x803F"/>
+    <enum name="LUMINANCE8_EXT"                           value="0x8040"/>
+    <enum name="LUMINANCE12_EXT"                          value="0x8041"/>
+    <enum name="LUMINANCE16_EXT"                          value="0x8042"/>
+    <enum name="LUMINANCE4_ALPHA4_EXT"                    value="0x8043"/>
+    <enum name="LUMINANCE6_ALPHA2_EXT"                    value="0x8044"/>
+    <enum name="LUMINANCE8_ALPHA8_EXT"                    value="0x8045"/>
+    <enum name="LUMINANCE12_ALPHA4_EXT"                   value="0x8046"/>
+    <enum name="LUMINANCE12_ALPHA12_EXT"                  value="0x8047"/>
+    <enum name="LUMINANCE16_ALPHA16_EXT"                  value="0x8048"/>
+    <enum name="INTENSITY_EXT"                            value="0x8049"/>
+    <enum name="INTENSITY4_EXT"                           value="0x804A"/>
+    <enum name="INTENSITY8_EXT"                           value="0x804B"/>
+    <enum name="INTENSITY12_EXT"                          value="0x804C"/>
+    <enum name="INTENSITY16_EXT"                          value="0x804D"/>
+    <enum name="RGB2_EXT"                                 value="0x804E"/>
+    <enum name="RGB4_EXT"                                 value="0x804F"/>
+    <enum name="RGB5_EXT"                                 value="0x8050"/>
+    <enum name="RGB8_EXT"                                 value="0x8051"/>
+    <enum name="RGB10_EXT"                                value="0x8052"/>
+    <enum name="RGB12_EXT"                                value="0x8053"/>
+    <enum name="RGB16_EXT"                                value="0x8054"/>
+    <enum name="RGBA2_EXT"                                value="0x8055"/>
+    <enum name="RGBA4_EXT"                                value="0x8056"/>
+    <enum name="RGB5_A1_EXT"                              value="0x8057"/>
+    <enum name="RGBA8_EXT"                                value="0x8058"/>
+    <enum name="RGB10_A2_EXT"                             value="0x8059"/>
+    <enum name="RGBA12_EXT"                               value="0x805A"/>
+    <enum name="RGBA16_EXT"                               value="0x805B"/>
+    <enum name="TEXTURE_RED_SIZE_EXT"          count="1"  value="0x805C">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GREEN_SIZE_EXT"        count="1"  value="0x805D">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BLUE_SIZE_EXT"         count="1"  value="0x805E">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_ALPHA_SIZE_EXT"        count="1"  value="0x805F">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_LUMINANCE_SIZE_EXT"    count="1"  value="0x8060">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_INTENSITY_SIZE_EXT"    count="1"  value="0x8061">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="REPLACE_EXT"                              value="0x8062"/>
+    <enum name="PROXY_TEXTURE_1D_EXT"                     value="0x8063"/>
+    <enum name="PROXY_TEXTURE_2D_EXT"                     value="0x8064"/>
+    <enum name="TEXTURE_TOO_LARGE_EXT"                    value="0x8065"/>
+</category>
+
+<!-- Extension number 5 is not listed in the extension registry. -->
+
 <category name="GL_EXT_texture3D" number="6">
     <function name="TexImage3DEXT" alias="TexImage3D">
         <param name="target" type="GLenum"/>
 </category>
 
 <category name="GL_SGIS_texture_filter4" number="7">
-    <function name="GetTexFilterFuncSGIS" offset="415">
+    <function name="GetTexFilterFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="filter" type="GLenum"/>
         <param name="weights" type="GLfloat *" output="true"/>
-       <glx vendorpriv="4101"/>
+        <glx vendorpriv="4101" ignore="true"/>
     </function>
 
-    <function name="TexFilterFuncSGIS" offset="416">
+    <function name="TexFilterFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="filter" type="GLenum"/>
-        <param name="n" type="GLsizei"/>
-        <param name="weights" type="const GLfloat *"/>
-       <glx rop="2064" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="weights" type="const GLfloat *" count="n"/>
+        <glx rop="2064" ignore="true"/>
     </function>
 </category>
 
 </category>
 
 <category name="GL_EXT_histogram" number="11">
-    <function name="GetHistogramEXT" offset="417">
+    <enum name="HISTOGRAM_EXT"                            value="0x8024"/>
+    <enum name="PROXY_HISTOGRAM_EXT"                      value="0x8025"/>
+    <enum name="HISTOGRAM_WIDTH_EXT"           count="1"  value="0x8026">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_FORMAT_EXT"          count="1"  value="0x8027">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_RED_SIZE_EXT"        count="1"  value="0x8028">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_GREEN_SIZE_EXT"      count="1"  value="0x8029">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_BLUE_SIZE_EXT"       count="1"  value="0x802A">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_ALPHA_SIZE_EXT"      count="1"  value="0x802B">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_LUMINANCE_SIZE_EXT"  count="1"  value="0x802C">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_SINK_EXT"            count="1"  value="0x802D">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="MINMAX_EXT"                               value="0x802E"/>
+    <enum name="MINMAX_FORMAT_EXT"             count="1"  value="0x802F">
+        <size name="GetMinmaxParameterfvEXT" mode="get"/>
+        <size name="GetMinmaxParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="MINMAX_SINK_EXT"               count="1"  value="0x8030">
+        <size name="GetMinmaxParameterfvEXT" mode="get"/>
+        <size name="GetMinmaxParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="TABLE_TOO_LARGE_EXT"                      value="0x8031"/>
+
+    <function name="GetHistogramEXT" alias="GetHistogram" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *" output="true"/>
-       <glx vendorpriv="5" handcode="true"/>
+        <param name="values" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx vendorpriv="5" dimensions_in_reply="true" img_reset="reset"/>
     </function>
 
-    <function name="GetHistogramParameterfvEXT" offset="418">
+    <function name="GetHistogramParameterfvEXT" alias="GetHistogramParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="6"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx vendorpriv="6"/>
     </function>
 
-    <function name="GetHistogramParameterivEXT" offset="419">
+    <function name="GetHistogramParameterivEXT" alias="GetHistogramParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="7"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="7"/>
     </function>
 
-    <function name="GetMinmaxEXT" offset="420">
+    <function name="GetMinmaxEXT" alias="GetMinmax" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *" output="true"/>
-       <glx vendorpriv="8" handcode="true"/>
+        <param name="values" type="GLvoid *" output="true" img_width="2" img_format="format" img_type="type"/>
+        <glx vendorpriv="8" img_reset="reset"/>
     </function>
 
-    <function name="GetMinmaxParameterfvEXT" offset="421">
+    <function name="GetMinmaxParameterfvEXT" alias="GetMinmaxParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="9"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx vendorpriv="9"/>
     </function>
 
-    <function name="GetMinmaxParameterivEXT" offset="422">
+    <function name="GetMinmaxParameterivEXT" alias="GetMinmaxParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="10"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="10"/>
     </function>
 
-    <function name="HistogramEXT" alias="Histogram">
+    <function name="HistogramEXT" alias="Histogram" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
     </function>
 
-    <function name="MinmaxEXT" alias="Minmax">
+    <function name="MinmaxEXT" alias="Minmax" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
     </function>
 
-    <function name="ResetHistogramEXT" alias="ResetHistogram">
+    <function name="ResetHistogramEXT" alias="ResetHistogram" static_dispatch="false">
         <param name="target" type="GLenum"/>
     </function>
 
-    <function name="ResetMinmaxEXT" alias="ResetMinmax">
+    <function name="ResetMinmaxEXT" alias="ResetMinmax" static_dispatch="false">
         <param name="target" type="GLenum"/>
     </function>
 </category>
 
-<category name="GL_EXT_convolution" number="12">
-    <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D">
+<category name="GL_EXT_convolution" number="12">
+    <enum name="CONVOLUTION_BORDER_MODE_EXT"   count="1"  value="0x8013">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_FILTER_SCALE_EXT"  count="4"  value="0x8014">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_FILTER_BIAS_EXT"   count="4"  value="0x8015">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="REDUCE_EXT"                               value="0x8016"/>
+    <enum name="CONVOLUTION_FORMAT_EXT"        count="1"  value="0x8017">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_WIDTH_EXT"         count="1"  value="0x8018">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_HEIGHT_EXT"        count="1"  value="0x8019">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="MAX_CONVOLUTION_WIDTH_EXT"     count="1"  value="0x801A">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_CONVOLUTION_HEIGHT_EXT"    count="1"  value="0x801B">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_RED_SCALE_EXT" count="1" value="0x801C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_GREEN_SCALE_EXT" count="1" value="0x801D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_BLUE_SCALE_EXT" count="1" value="0x801E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_ALPHA_SCALE_EXT" count="1" value="0x801F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_RED_BIAS_EXT" count="1"  value="0x8020">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_GREEN_BIAS_EXT" count="1" value="0x8021">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_BLUE_BIAS_EXT" count="1" value="0x8022">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_ALPHA_BIAS_EXT" count="1" value="0x8023">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="image" type="const GLvoid *"/>
     </function>
 
-    <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D">
+    <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="image" type="const GLvoid *"/>
     </function>
 
-    <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf">
+    <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat"/>
     </function>
 
-    <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv">
+    <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri">
+    <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint"/>
     </function>
 
-    <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv">
+    <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D">
+    <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <param name="width" type="GLsizei"/>
     </function>
 
-    <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D">
+    <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <param name="height" type="GLsizei"/>
     </function>
 
-    <function name="GetConvolutionFilterEXT" offset="423">
+    <function name="GetConvolutionFilterEXT" alias="GetConvolutionFilter" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="image" type="GLvoid *"/>
-       <glx sop="1" handcode="true"/>
+        <param name="image" type="GLvoid *" output="true" img_width="width" img_height="height" img_format="format" img_type="type"/>
+        <glx vendorpriv="1" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetConvolutionParameterfvEXT" offset="424">
+    <function name="GetConvolutionParameterfvEXT" alias="GetConvolutionParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx sop="2"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx vendorpriv="2"/>
     </function>
 
-    <function name="GetConvolutionParameterivEXT" offset="425">
+    <function name="GetConvolutionParameterivEXT" alias="GetConvolutionParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx sop="3"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="3"/>
     </function>
 
-    <function name="GetSeparableFilterEXT" offset="426">
+    <function name="GetSeparableFilterEXT" alias="GetSeparableFilter" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <param name="row" type="GLvoid *" output="true"/>
         <param name="column" type="GLvoid *" output="true"/>
         <param name="span" type="GLvoid *" output="true"/>
-       <glx sop="4" handcode="true"/>
+        <glx vendorpriv="4" handcode="true"/>
     </function>
 
-    <function name="SeparableFilter2DEXT" alias="SeparableFilter2D">
+    <function name="SeparableFilter2DEXT" alias="SeparableFilter2D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
     </function>
 </category>
 
+<category name="GL_SGI_color_matrix" number="13">
+    <enum name="COLOR_MATRIX_SGI"                         value="0x80B1"/>
+    <enum name="COLOR_MATRIX_STACK_DEPTH_SGI"             value="0x80B2"/>
+    <enum name="MAX_COLOR_MATRIX_STACK_DEPTH_SGI"         value="0x80B3"/>
+    <enum name="POST_COLOR_MATRIX_RED_SCALE_SGI"          value="0x80B4"/>
+    <enum name="POST_COLOR_MATRIX_GREEN_SCALE_SGI"        value="0x80B5"/>
+    <enum name="POST_COLOR_MATRIX_BLUE_SCALE_SGI"         value="0x80B6"/>
+    <enum name="POST_COLOR_MATRIX_ALPHA_SCALE_SGI"        value="0x80B7"/>
+    <enum name="POST_COLOR_MATRIX_RED_BIAS_SGI"           value="0x80B8"/>
+    <enum name="POST_COLOR_MATRIX_GREEN_BIAS_SGI"         value="0x80B9"/>
+    <enum name="POST_COLOR_MATRIX_BLUE_BIAS_SGI"          value="0x80BA"/>
+    <enum name="POST_COLOR_MATRIX_ALPHA_BIAS_SGI"         value="0x80BB"/>
+</category>
+
 <category name="GL_SGI_color_table" number="14">
-    <function name="ColorTableSGI" alias="ColorTable">
+    <enum name="COLOR_TABLE_SCALE_SGI"         count="4"  value="0x80D6">
+        <size name="ColorTableParameterfvSGI"/>
+        <size name="ColorTableParameterivSGI"/>
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_BIAS_SGI"          count="4"  value="0x80D7">
+        <size name="ColorTableParameterfvSGI"/>
+        <size name="ColorTableParameterivSGI"/>
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_FORMAT_SGI"        count="1"  value="0x80D8">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_WIDTH_SGI"         count="1"  value="0x80D9">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_RED_SIZE_SGI"      count="1"  value="0x80DA">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_GREEN_SIZE_SGI"    count="1"  value="0x80DB">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_BLUE_SIZE_SGI"     count="1"  value="0x80DC">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_ALPHA_SIZE_SGI"    count="1"  value="0x80DD">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_LUMINANCE_SIZE_SGI" count="1" value="0x80DE">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_INTENSITY_SIZE_SGI" count="1" value="0x80DF">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+
+    <function name="ColorTableSGI" alias="ColorTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="table" type="const GLvoid *"/>
     </function>
 
-    <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv">
+    <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv">
+    <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="CopyColorTableSGI" alias="CopyColorTable">
+    <function name="CopyColorTableSGI" alias="CopyColorTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <param name="width" type="GLsizei"/>
     </function>
 
-    <function name="GetColorTableSGI" offset="427">
+    <function name="GetColorTableSGI" alias="GetColorTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="table" type="GLvoid *" output="true"/>
-       <glx vendorpriv="4098" handcode="true"/>
+        <param name="table" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx vendorpriv="4098" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetColorTableParameterfvSGI" offset="428">
+    <function name="GetColorTableParameterfvSGI" alias="GetColorTableParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="4099"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx vendorpriv="4099"/>
     </function>
 
-    <function name="GetColorTableParameterivSGI" offset="429">
+    <function name="GetColorTableParameterivSGI" alias="GetColorTableParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="4100"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="4100"/>
     </function>
 </category>
 
 <category name="GL_SGIS_pixel_texture" number="15">
-    <function name="PixelTexGenParameteriSGIS" offset="431">
+    <function name="PixelTexGenParameteriSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="PixelTexGenParameterivSGIS" offset="432">
+    <function name="PixelTexGenParameterivSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="PixelTexGenParameterfSGIS" offset="433">
+    <function name="PixelTexGenParameterfSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="PixelTexGenParameterfvSGIS" offset="434">
+    <function name="PixelTexGenParameterfvSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetPixelTexGenParameterivSGIS" offset="435">
+    <function name="GetPixelTexGenParameterivSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetPixelTexGenParameterfvSGIS" offset="436">
+    <function name="GetPixelTexGenParameterfvSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_SGIS_texture4D" number="16">
-    <function name="TexImage4DSGIS" offset="437">
+    <function name="TexImage4DSGIS">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <param name="border" type="GLint"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="2057" ignore="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_extent="size4d" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/>
+        <glx rop="2057" ignore="true"/>
     </function>
 
-    <function name="TexSubImage4DSGIS" offset="438">
+    <function name="TexSubImage4DSGIS">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <param name="size4d" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="const GLvoid *"/>
-       <glx rop="2058" ignore="true"/>
+        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_extent="size4d" img_xoff="xoffset" img_yoff="yoffset" img_zoff="zoffset" img_woff="woffset" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/>
+        <glx rop="2058" ignore="true"/>
     </function>
 </category>
 
+<category name="GL_SGI_texture_color_table" number="17">
+    <enum name="TEXTURE_COLOR_TABLE_SGI"                  value="0x80BC"/>
+    <enum name="PROXY_TEXTURE_COLOR_TABLE_SGI"            value="0x80BD"/>
+</category>
+
 <!-- Extension number 19 is not listed in the extension registry. -->
 
 <category name="GL_EXT_texture_object" number="20">
-    <function name="AreTexturesResidentEXT" offset="439">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="const GLuint *"/>
-        <param name="residences" type="GLboolean *" output="true"/>
+    <function name="AreTexturesResidentEXT" alias="AreTexturesResident">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="const GLuint *" count="n"/>
+        <param name="residences" type="GLboolean *" output="true" count="n"/>
         <return type="GLboolean"/>
-       <glx vendorpriv="11" handcode="true"/>
+        <glx vendorpriv="11" always_array="true"/>
     </function>
 
     <function name="BindTextureEXT" alias="BindTexture">
     </function>
 
     <function name="DeleteTexturesEXT" alias="DeleteTextures">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="const GLuint *"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="const GLuint *" count="n"/>
+        <glx vendorpriv="12"/>
     </function>
 
-    <function name="GenTexturesEXT" offset="440">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="GLuint *" output="true"/>
-       <glx vendorpriv="13" handcode="true"/>
+    <function name="GenTexturesEXT" alias="GenTextures">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="GLuint *" output="true" count="n"/>
+        <glx vendorpriv="13" always_array="true"/>
     </function>
 
-    <function name="IsTextureEXT" offset="441">
+    <function name="IsTextureEXT" alias="IsTexture">
         <param name="texture" type="GLuint"/>
         <return type="GLboolean"/>
-       <glx vendorpriv="14"/>
+        <glx vendorpriv="14"/>
     </function>
 
     <function name="PrioritizeTexturesEXT" alias="PrioritizeTextures">
 </category>
 
 <category name="GL_SGIS_detail_texture" number="21">
-    <function name="DetailTexFuncSGIS" offset="442">
+    <function name="DetailTexFuncSGIS">
         <param name="target" type="GLenum"/>
-        <param name="n" type="GLsizei"/>
-        <param name="points" type="const GLfloat *"/>
-       <glx rop="2051" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="points" type="const GLfloat *" count="n"/>
+        <glx rop="2051" ignore="true"/>
     </function>
 
-    <function name="GetDetailTexFuncSGIS" offset="443">
+    <function name="GetDetailTexFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="points" type="GLfloat *" output="true"/>
-       <glx vendorpriv="4096"/>
+        <glx vendorpriv="4096" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_SGIS_sharpen_texture" number="22">
-    <function name="SharpenTexFuncSGIS" offset="444">
+    <function name="SharpenTexFuncSGIS">
         <param name="target" type="GLenum"/>
-        <param name="n" type="GLsizei"/>
-        <param name="points" type="const GLfloat *"/>
-       <glx rop="2052" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="points" type="const GLfloat *" count="n" count_scale="2"/>
+        <glx rop="2052" ignore="true"/>
     </function>
 
-    <function name="GetSharpenTexFuncSGIS" offset="445">
+    <function name="GetSharpenTexFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="points" type="GLfloat *" output="true"/>
-       <glx vendorpriv="4097"/>
+        <glx vendorpriv="4097" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_SGIS_multisample" number="25">
-    <function name="SampleMaskSGIS" offset="446">
+    <function name="SampleMaskSGIS" offset="assign" static_dispatch="false">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
-       <glx rop="2048"/>
+        <glx rop="2048"/>
     </function>
 
-    <function name="SamplePatternSGIS" offset="447">
+    <function name="SamplePatternSGIS" offset="assign" static_dispatch="false">
         <param name="pattern" type="GLenum"/>
-       <glx rop="2049"/>
+        <glx rop="2049"/>
     </function>
 </category>
 
+<!-- Extension number 26 is not listed in the extension registry. -->
+
+<category name="GL_EXT_rescale_normal" number="27">
+    <enum name="RESCALE_NORMAL_EXT"            count="1"  value="0x803A">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <!-- Extension number 28 is a GLX extension. -->
 <!-- Extension number 29 is not listed in the extension registry. -->
 
         <param name="i" type="GLint"/>
     </function>
 
-    <function name="ColorPointerEXT" offset="448">
+    <function name="ColorPointerEXT" offset="assign">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="DrawArraysEXT" alias="DrawArrays">
         <param name="count" type="GLsizei"/>
     </function>
 
-    <function name="EdgeFlagPointerEXT" offset="449">
+    <function name="EdgeFlagPointerEXT" offset="assign">
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="pointer" type="const GLboolean *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="GetPointervEXT" alias="GetPointerv">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **"/>
+        <param name="params" type="GLvoid **" output="true"/>
     </function>
 
-    <function name="IndexPointerEXT" offset="450">
+    <function name="IndexPointerEXT" offset="assign">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="NormalPointerEXT" offset="451">
+    <function name="NormalPointerEXT" offset="assign">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="TexCoordPointerEXT" offset="452">
+    <function name="TexCoordPointerEXT" offset="assign">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="VertexPointerEXT" offset="453">
+    <function name="VertexPointerEXT" offset="assign">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 </category>
 
+<category name="GL_SGIS_generate_mipmap" number="32">
+    <enum name="GENERATE_MIPMAP_SGIS"          count="1"  value="0x8191">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="GENERATE_MIPMAP_HINT_SGIS"                value="0x8192"/>
+</category>
+
+<category name="GL_SGIX_clipmap" number="33">
+    <enum name="LINEAR_CLIPMAP_LINEAR_SGIX"               value="0x8170"/>
+    <enum name="TEXTURE_CLIPMAP_CENTER_SGIX"   count="2"  value="0x8171">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_CLIPMAP_FRAME_SGIX"    count="1"  value="0x8172">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_CLIPMAP_OFFSET_SGIX"   count="2"  value="0x8173">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX" count="3" value="0x8174">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"          value="0x8175"/>
+    <enum name="TEXTURE_CLIPMAP_DEPTH_SGIX"               value="0x8176"/>
+    <enum name="MAX_CLIPMAP_DEPTH_SGIX"                   value="0x8177"/>
+    <enum name="MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"           value="0x8178"/>
+    <enum name="NEAREST_CLIPMAP_NEAREST_SGIX"             value="0x844D"/>
+    <enum name="NEAREST_CLIPMAP_LINEAR_SGIX"              value="0x844E"/>
+    <enum name="LINEAR_CLIPMAP_NEAREST_SGIX"              value="0x844F"/>
+</category>
+
+<category name="GL_SGIX_shadow" number="34">
+    <enum name="TEXTURE_COMPARE_SGIX"          count="1"  value="0x819A">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPARE_OPERATOR_SGIX" count="1"  value="0x819B">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_LEQUAL_R_SGIX"                    value="0x819C"/>
+    <enum name="TEXTURE_GEQUAL_R_SGIX"                    value="0x819D"/>
+</category>
+
+<category name="GL_SGIS_texture_edge_clamp" number="35">
+    <enum name="CLAMP_TO_EDGE_SGIS"                       value="0x812F"/>
+</category>
+
+<category name="GL_SGIS_texture_border_clamp" number="36">
+    <enum name="CLAMP_TO_BORDER_SGIS"                     value="0x812D"/>
+</category>
+
 <category name="GL_EXT_blend_minmax" number="37">
+    <enum name="FUNC_ADD_EXT"                             value="0x8006"/>
+    <enum name="MIN_EXT"                                  value="0x8007"/>
+    <enum name="MAX_EXT"                                  value="0x8008"/>
+    <enum name="BLEND_EQUATION_EXT"            count="1"  value="0x8009">
+        <size name="Get" mode="get"/>
+    </enum>
+
     <function name="BlendEquationEXT" alias="BlendEquation">
         <param name="mode" type="GLenum"/>
     </function>
 </category>
 
+<category name="GL_EXT_blend_subtract" number="38">
+    <enum name="FUNC_SUBTRACT_EXT"                        value="0x800A"/>
+    <enum name="FUNC_REVERSE_SUBTRACT_EXT"                value="0x800B"/>
+
+    <!-- <function name="BlendEquationEXT" alias="BlendEquation">
+        <param name="mode" type="GLenum"/>
+    </function> -->
+</category>
+
 <!-- Extension number 40 is a GLX extension. -->
 <!-- Extension number 41 is a GLX extension. -->
 <!-- Extension number 42 is a GLX extension. -->
 <!-- Extension number 50 is a GLX extension. -->
 
 <category name="GL_SGIX_sprite" number="52">
-    <function name="SpriteParameterfSGIX" offset="454">
+    <function name="SpriteParameterfSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="SpriteParameterfvSGIX" offset="455">
+    <function name="SpriteParameterfvSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="SpriteParameteriSGIX" offset="456">
+    <function name="SpriteParameteriSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="SpriteParameterivSGIX" offset="457">
+    <function name="SpriteParameterivSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_point_parameters" number="54">
-    <function name="PointParameterfEXT" offset="458">
+    <enum name="POINT_SIZE_MIN_EXT"            count="1"  value="0x8126">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_SIZE_MAX_EXT"            count="1"  value="0x8127">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1"  value="0x8128">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+
+    <function name="PointParameterfEXT" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="2065"/>
+        <glx rop="2065"/>
     </function>
 
-    <function name="PointParameterfvEXT" offset="459">
+    <function name="PointParameterfvEXT" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="2066"/>
+        <glx rop="2066"/>
     </function>
 </category>
 
 <category name="GL_SGIX_instruments" number="55">
-    <function name="GetInstrumentsSGIX" offset="460">
+    <function name="GetInstrumentsSGIX">
         <return type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="InstrumentsBufferSGIX" offset="461">
+    <function name="InstrumentsBufferSGIX">
         <param name="size" type="GLsizei"/>
-        <param name="buffer" type="GLint *"/>
-       <glx ignore="true"/>
+        <param name="buffer" type="GLint *" output="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="PollInstrumentsSGIX" offset="462">
-        <param name="marker_p" type="GLint *"/>
+    <function name="PollInstrumentsSGIX">
+        <param name="marker_p" type="GLint *" output="true"/>
         <return type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="ReadInstrumentsSGIX" offset="463">
+    <function name="ReadInstrumentsSGIX">
         <param name="marker" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="StartInstrumentsSGIX" offset="464">
-       <glx ignore="true"/>
+    <function name="StartInstrumentsSGIX">
+        <glx ignore="true"/>
     </function>
 
-    <function name="StopInstrumentsSGIX" offset="465">
+    <function name="StopInstrumentsSGIX">
         <param name="marker" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
+<category name="GL_SGIX_texture_scale_bias" number="56">
+    <enum name="POST_TEXTURE_FILTER_BIAS_SGIX"  count="4" value="0x8179">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="POST_TEXTURE_FILTER_SCALE_SGIX" count="4" value="0x817A">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"      value="0x817B"/>
+    <enum name="POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"     value="0x817C"/>
+</category>
+
 <category name="GL_SGIX_framezoom" number="57">
-    <function name="FrameZoomSGIX" offset="466">
+    <function name="FrameZoomSGIX">
         <param name="factor" type="GLint"/>
-       <glx rop="2072"/>
+        <glx rop="2072" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_SGIX_tag_sample_buffer" number="58">
-    <function name="TagSampleBufferSGIX" offset="467">
-       <glx rop="2050"/>
+    <function name="TagSampleBufferSGIX">
+        <glx rop="2050" ignore="true"/>
     </function>
 </category>
 
 <!-- Extension number 59 is not listed in the extension registry. -->
 
 <category name="GL_SGIX_reference_plane" number="60">
-    <function name="ReferencePlaneSGIX" offset="468">
+    <function name="ReferencePlaneSGIX">
         <param name="equation" type="const GLdouble *" count="4"/>
-       <glx rop="2071"/>
+        <glx rop="2071" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_SGIX_flush_raster" number="61">
-    <function name="FlushRasterSGIX" offset="469">
-       <glx vendorpriv="4105" ignore="true"/>
+    <function name="FlushRasterSGIX">
+        <glx vendorpriv="4105" ignore="true"/>
     </function>
 </category>
 
 <!-- Extension number 62 is a GLX extension. -->
 
+<category name="GL_SGIX_depth_texture" number="63">
+    <enum name="DEPTH_COMPONENT16_SGIX"                   value="0x81A5"/>
+    <enum name="DEPTH_COMPONENT24_SGIX"                   value="0x81A6"/>
+    <enum name="DEPTH_COMPONENT32_SGIX"                   value="0x81A7"/>
+</category>
+
 <category name="GL_SGIS_fog_function" number="64">
-    <function name="FogFuncSGIS" offset="?">
-        <param name="n" type="GLsizei"/>
-        <param name="points" type="const GLfloat *"/>
-       <glx rop="2067" handcode="true"/>
+    <function name="FogFuncSGIS">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="points" type="const GLfloat *" count="n" count_scale="2"/>
+        <glx rop="2067" ignore="true"/>
     </function>
 
-    <function name="GetFogFuncSGIS" offset="?">
+    <function name="GetFogFuncSGIS">
         <param name="points" type="GLfloat *" output="true"/>
-       <!-- GLX protocol for this function is unknown. -->
+        <!-- GLX protocol for this function is unknown. -->
     </function>
 </category>
 
+<category name="GL_SGIX_fog_offset" number="65">
+    <enum name="FOG_OFFSET_SGIX"                          value="0x8198"/>
+    <enum name="FOG_OFFSET_VALUE_SGIX"         count="1"  value="0x8199">
+        <size name="Fogfv"/>
+        <size name="Fogiv"/>
+    </enum>
+</category>
+
 <category name="GL_HP_image_transform" number="66">
-    <function name="ImageTransformParameteriHP" offset="?">
+    <function name="ImageTransformParameteriHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
     </function>
 
-    <function name="ImageTransformParameterfHP" offset="?">
+    <function name="ImageTransformParameterfHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
     </function>
 
-    <function name="ImageTransformParameterivHP" offset="?">
+    <function name="ImageTransformParameterivHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="ImageTransformParameterfvHP" offset="?">
+    <function name="ImageTransformParameterfvHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="GetImageTransformParameterivHP" offset="?">
+    <function name="GetImageTransformParameterivHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
     </function>
 
-    <function name="GetImageTransformParameterfvHP" offset="?">
+    <function name="GetImageTransformParameterfvHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
     </function>
 </category>
 
+<category name="GL_HP_convolution_border_modes" number="67">
+    <enum name="IGNORE_BORDER_HP"                         value="0x8150"/>
+    <enum name="CONSTANT_BORDER_HP"                       value="0x8151"/>
+    <enum name="REPLICATE_BORDER_HP"                      value="0x8153"/>
+    <enum name="CONVOLUTION_BORDER_COLOR_HP"   count="4"  value="0x8154">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+</category>
+
 <!-- Extension number 68 is not listed in the extension registry. -->
 <!-- Extension number 70 is not listed in the extension registry. -->
 <!-- Extension number 71 is not listed in the extension registry. -->
 <!-- Extension number 73 is not listed in the extension registry. -->
 
 <category name="GL_EXT_color_subtable" number="74">
-    <function name="ColorSubTableEXT" alias="ColorSubTable">
+    <function name="ColorSubTableEXT" alias="ColorSubTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="start" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="data" type="const GLvoid *"/>
     </function>
 
-    <function name="CopyColorSubTableEXT" alias="CopyColorSubTable">
+    <function name="CopyColorSubTableEXT" alias="CopyColorSubTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="start" type="GLsizei"/>
         <param name="x" type="GLint"/>
 <!-- Extension number 75 is a GLU extension. -->
 
 <category name="GL_PGI_misc_hints" number="77">
-    <function name="HintPGI" offset="544">
+    <function name="HintPGI">
         <param name="target" type="GLenum"/>
         <param name="mode" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_paletted_texture" number="78">
+    <enum name="COLOR_TABLE_FORMAT_EXT"        count="1"  value="0x80D8">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_WIDTH_EXT"         count="1"  value="0x80D9">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_RED_SIZE_EXT"      count="1"  value="0x80DA">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_GREEN_SIZE_EXT"    count="1"  value="0x80DB">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_BLUE_SIZE_EXT"     count="1"  value="0x80DC">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_ALPHA_SIZE_EXT"    count="1"  value="0x80DD">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_LUMINANCE_SIZE_EXT" count="1" value="0x80DE">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_INTENSITY_SIZE_EXT" count="1" value="0x80DF">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_INDEX_SIZE_EXT"        count="1"  value="0x80ED">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+
     <function name="ColorTableEXT" alias="ColorTable">
         <param name="target" type="GLenum"/>
-        <param name="internalFormat" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <param name="table" type="const GLvoid *"/>
     </function>
 
-    <function name="GetColorTableEXT" offset="550">
+    <function name="GetColorTableEXT" alias="GetColorTable">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="data" type="GLvoid *" output="true"/>
-       <glx ignore="true"/>
+        <param name="table" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx vendorpriv="4098" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetColorTableParameterivEXT" offset="551">
+    <function name="GetColorTableParameterivEXT" alias="GetColorTableParameteriv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="4100"/>
     </function>
 
-    <function name="GetColorTableParameterfvEXT" offset="552">
+    <function name="GetColorTableParameterfvEXT" alias="GetColorTableParameterfv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx vendorpriv="4099"/>
     </function>
 </category>
 
+<category name="GL_EXT_clip_volume_hint" number="79">
+    <enum name="CLIP_VOLUME_CLIPPING_HINT_EXT" count="1"  value="0x80F0">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_SGIX_list_priority" number="80">
-    <function name="GetListParameterfvSGIX" offset="470">
+    <function name="GetListParameterfvSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetListParameterivSGIX" offset="471">
+    <function name="GetListParameterivSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="ListParameterfSGIX" offset="472">
+    <function name="ListParameterfSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="ListParameterfvSGIX" offset="473">
+    <function name="ListParameterfvSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="ListParameteriSGIX" offset="474">
+    <function name="ListParameteriSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="ListParameterivSGIX" offset="475">
+    <function name="ListParameterivSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <!-- Extension number 82 is not listed in the extension registry. -->
 <!-- Extension number 83 is a GLX extension. -->
+
+<category name="GL_SGIX_texture_lod_bias" number="84">
+    <enum name="TEXTURE_LOD_BIAS_S_SGIX"       count="1"  value="0x818E">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_LOD_BIAS_T_SGIX"       count="1"  value="0x818F">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_LOD_BIAS_R_SGIX"       count="1"  value="0x8190">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+</category>
+
 <!-- Extension number 85 is a GLU extension. -->
 <!-- Extension number 86 is a GLX extension. -->
 <!-- Extension number 87 is not listed in the extension registry. -->
 <!-- Extension number 88 is not listed in the extension registry. -->
 <!-- Extension number 89 is not listed in the extension registry. -->
+
+
+<category name="GL_SGIX_shadow_ambient" number="90">
+    <enum name="SHADOW_AMBIENT_SGIX"           count="1"  value="0x80BF">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+</category>
+
 <!-- Extension number 91 is a GLX extension. -->
 <!-- Extension number 92 is a GLX extension. -->
 
 <category name="GL_EXT_index_material" number="94">
-    <function name="IndexMaterialEXT" offset="538">
+    <function name="IndexMaterialEXT">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_index_func" number="95">
-    <function name="IndexFuncEXT" offset="539">
+    <function name="IndexFuncEXT">
         <param name="func" type="GLenum"/>
         <param name="ref" type="GLclampf"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_compiled_vertex_array" number="97">
-    <function name="LockArraysEXT" offset="540">
+    <function name="LockArraysEXT" offset="assign">
         <param name="first" type="GLint"/>
         <param name="count" type="GLsizei"/>
-       <glx handcode="true"/>
+        <glx handcode="true" ignore="true"/>
     </function>
 
-    <function name="UnlockArraysEXT" offset="541">
-       <glx handcode="true"/>
+    <function name="UnlockArraysEXT" offset="assign">
+        <glx handcode="true" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_cull_vertex" number="98">
-    <function name="CullParameterdvEXT" offset="542">
+    <enum name="CULL_VERTEX_EXT"                          value="0x81AA"/>
+    <enum name="CULL_VERTEX_OBJECT_POSITION_EXT" count="4" value="0x81AB">
+        <size name="CullParameterfv"/>
+        <size name="CullParameterdv"/>
+    </enum>
+    <enum name="CULL_VERTEX_EYE_POSITION_EXT"  count="4"  value="0x81AC">
+        <size name="CullParameterfv"/>
+        <size name="CullParameterdv"/>
+    </enum>
+
+    <function name="CullParameterdvEXT" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLdouble *"/> <!-- Spec bug. Should be const. -->
+        <glx ignore="true"/>
     </function>
 
-    <function name="CullParameterfvEXT" offset="543">
+    <function name="CullParameterfvEXT" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLfloat *"/> <!-- Spec bug. Should be const. -->
+        <glx ignore="true"/>
     </function>
 </category>
 
 
 <!-- Shouldn't this be EXT_fragment_lighting? -->
 <category name="GL_SGIX_fragment_lighting" number="102">
-    <function name="FragmentColorMaterialSGIX" offset="476">
+    <function name="FragmentColorMaterialSGIX">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightfSGIX" offset="477">
+    <function name="FragmentLightfSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightfvSGIX" offset="478">
+    <function name="FragmentLightfvSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightiSGIX" offset="479">
+    <function name="FragmentLightiSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightivSGIX" offset="480">
+    <function name="FragmentLightivSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightModelfSGIX" offset="481">
+    <function name="FragmentLightModelfSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightModelfvSGIX" offset="482">
+    <function name="FragmentLightModelfvSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightModeliSGIX" offset="483">
+    <function name="FragmentLightModeliSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightModelivSGIX" offset="484">
+    <function name="FragmentLightModelivSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentMaterialfSGIX" offset="485">
+    <function name="FragmentMaterialfSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentMaterialfvSGIX" offset="486">
+    <function name="FragmentMaterialfvSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentMaterialiSGIX" offset="487">
+    <function name="FragmentMaterialiSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FragmentMaterialivSGIX" offset="488">
+    <function name="FragmentMaterialivSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetFragmentLightfvSGIX" offset="489">
+    <function name="GetFragmentLightfvSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetFragmentLightivSGIX" offset="490">
+    <function name="GetFragmentLightivSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetFragmentMaterialfvSGIX" offset="491">
+    <function name="GetFragmentMaterialfvSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetFragmentMaterialivSGIX" offset="492">
+    <function name="GetFragmentMaterialivSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="LightEnviSGIX" offset="493">
+    <function name="LightEnviSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <!-- Extension number 108 is not listed in the extension registry. -->
 <!-- Extension number 109 is not listed in the extension registry. -->
 
+<category name="GL_IBM_rasterpos_clip" number="110">
+    <enum name="RASTER_POSITION_UNCLIPPED_IBM"  count="1" value="0x19262">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_EXT_draw_range_elements" number="112">
     <function name="DrawRangeElementsEXT" alias="DrawRangeElements">
         <param name="mode" type="GLenum"/>
         <param name="count" type="GLsizei"/>
         <param name="type" type="GLenum"/>
         <param name="indices" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 </category>
 
 <!-- Extension number 116 is not listed in the extension registry. -->
 
 <category name="GL_EXT_light_texture" number="117">
-    <function name="ApplyTextureEXT" offset="?">
+    <function name="ApplyTextureEXT">
         <param name="mode" type="GLenum"/>
     </function>
 
-    <function name="TextureLightEXT" offset="?">
+    <function name="TextureLightEXT">
         <param name="pname" type="GLenum"/>
     </function>
 
-    <function name="TextureMaterialEXT" offset="?">
+    <function name="TextureMaterialEXT">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
     </function>
 <!-- Extension number 131 is not listed in the extension registry. -->
 
 <category name="GL_SGIX_async" number="132">
-    <function name="AsyncMarkerSGIX" offset="?">
+    <function name="AsyncMarkerSGIX">
         <param name="marker" type="GLuint"/>
     </function>
 
-    <function name="FinishAsyncSGIX" offset="?">
-        <param name="markerp" type="GLuint *"/>
+    <function name="FinishAsyncSGIX">
+        <param name="markerp" type="GLuint *"/> <!-- Spec bug. Should be const. -->
         <return type="GLint"/>
     </function>
 
-    <function name="PollAsyncSGIX" offset="?">
-        <param name="markerp" type="GLuint *"/>
+    <function name="PollAsyncSGIX">
+        <param name="markerp" type="GLuint *"/> <!-- Spec bug. Should be const. -->
         <return type="GLint"/>
     </function>
 
-    <function name="GenAsyncMarkersSGIX" offset="?">
+    <function name="GenAsyncMarkersSGIX">
         <param name="range" type="GLsizei"/>
         <return type="GLuint"/>
     </function>
 
-    <function name="DeleteAsyncMarkersSGIX" offset="?">
+    <function name="DeleteAsyncMarkersSGIX">
         <param name="marker" type="GLuint"/>
         <param name="range" type="GLsizei"/>
     </function>
 
-    <function name="IsAsyncMarkerSGIX" offset="?">
+    <function name="IsAsyncMarkerSGIX">
         <param name="marker" type="GLuint"/>
         <return type="GLboolean"/>
     </function>
 </category>
 
 <category name="GL_INTEL_parallel_arrays" number="136">
-    <function name="VertexPointervINTEL" offset="?">
+    <function name="VertexPointervINTEL">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="pointer" type="const GLvoid **"/>
     </function>
 
-    <function name="NormalPointervINTEL" offset="?">
+    <function name="NormalPointervINTEL">
         <param name="type" type="GLenum"/>
         <param name="pointer" type="const GLvoid **"/>
     </function>
 
-    <function name="ColorPointervINTEL" offset="?">
+    <function name="ColorPointervINTEL">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="pointer" type="const GLvoid **"/>
     </function>
 
-    <function name="TexCoordPointervINTEL" offset="?">
+    <function name="TexCoordPointervINTEL">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="pointer" type="const GLvoid **"/>
     </function>
 </category>
 
+<category name="GL_HP_occlusion_test" number="137">
+    <enum name="OCCLUSION_TEST_HP"             count="1"  value="0x8165">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="OCCLUSION_TEST_RESULT_HP"      count="1"  value="0x8166">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_EXT_pixel_transform" number="138">
-    <function name="PixelTransformParameteriEXT" offset="?">
+    <function name="PixelTransformParameteriEXT">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
     </function>
 
-    <function name="PixelTransformParameterfEXT" offset="?">
+    <function name="PixelTransformParameterfEXT">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
     </function>
 
-    <function name="PixelTransformParameterivEXT" offset="?">
+    <function name="PixelTransformParameterivEXT">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="PixelTransformParameterfvEXT" offset="?">
+    <function name="PixelTransformParameterfvEXT">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
 </category>
 
 <!-- Extension number 140 is not listed in the extension registry. -->
+
+<category name="GL_EXT_shared_texture_palette" number="141">
+    <enum name="SHARED_TEXTURE_PALETTE_EXT"    count="1"  value="0x81FB"/>
+</category>
+
 <!-- Extension number 142 is a GLX extension. -->
 <!-- Extension number 143 is not listed in the extension registry. -->
 
+<category name="GL_EXT_separate_specular_color" number="144">
+    <enum name="LIGHT_MODEL_COLOR_CONTROL_EXT" count="1"  value="0x81F8">
+        <size name="LightModelfv"/>
+        <size name="LightModeliv"/>
+    </enum>
+    <enum name="SINGLE_COLOR_EXT"                         value="0x81F9"/>
+    <enum name="SEPARATE_SPECULAR_COLOR_EXT"              value="0x81FA"/>
+</category>
+
 <category name="GL_EXT_secondary_color" number="145">
-    <function name="SecondaryColor3bEXT" offset="561" vectorequiv="SecondaryColor3bvEXT">
+    <function name="SecondaryColor3bEXT" offset="assign" vectorequiv="SecondaryColor3bvEXT">
         <param name="red" type="GLbyte"/>
         <param name="green" type="GLbyte"/>
         <param name="blue" type="GLbyte"/>
     </function>
 
-    <function name="SecondaryColor3bvEXT" offset="562">
+    <function name="SecondaryColor3bvEXT" offset="assign">
         <param name="v" type="const GLbyte *" count="3"/>
-       <glx rop="4126"/>
+        <glx rop="4126"/>
     </function>
 
-    <function name="SecondaryColor3dEXT" offset="563" vectorequiv="SecondaryColor3dvEXT">
+    <function name="SecondaryColor3dEXT" offset="assign" vectorequiv="SecondaryColor3dvEXT">
         <param name="red" type="GLdouble"/>
         <param name="green" type="GLdouble"/>
         <param name="blue" type="GLdouble"/>
     </function>
 
-    <function name="SecondaryColor3dvEXT" offset="564">
+    <function name="SecondaryColor3dvEXT" offset="assign">
         <param name="v" type="const GLdouble *" count="3"/>
-       <glx rop="4130"/>
+        <glx rop="4130"/>
     </function>
 
-    <function name="SecondaryColor3fEXT" offset="565" vectorequiv="SecondaryColor3fvEXT">
+    <function name="SecondaryColor3fEXT" offset="assign" vectorequiv="SecondaryColor3fvEXT">
         <param name="red" type="GLfloat"/>
         <param name="green" type="GLfloat"/>
         <param name="blue" type="GLfloat"/>
     </function>
 
-    <function name="SecondaryColor3fvEXT" offset="566">
+    <function name="SecondaryColor3fvEXT" offset="assign">
         <param name="v" type="const GLfloat *" count="3"/>
-       <glx rop="4129"/>
+        <glx rop="4129"/>
     </function>
 
-    <function name="SecondaryColor3iEXT" offset="567" vectorequiv="SecondaryColor3ivEXT">
+    <function name="SecondaryColor3iEXT" offset="assign" vectorequiv="SecondaryColor3ivEXT">
         <param name="red" type="GLint"/>
         <param name="green" type="GLint"/>
         <param name="blue" type="GLint"/>
     </function>
 
-    <function name="SecondaryColor3ivEXT" offset="568">
+    <function name="SecondaryColor3ivEXT" offset="assign">
         <param name="v" type="const GLint *" count="3"/>
-       <glx rop="4128"/>
+        <glx rop="4128"/>
     </function>
 
-    <function name="SecondaryColor3sEXT" offset="569" vectorequiv="SecondaryColor3svEXT">
+    <function name="SecondaryColor3sEXT" offset="assign" vectorequiv="SecondaryColor3svEXT">
         <param name="red" type="GLshort"/>
         <param name="green" type="GLshort"/>
         <param name="blue" type="GLshort"/>
     </function>
 
-    <function name="SecondaryColor3svEXT" offset="570">
+    <function name="SecondaryColor3svEXT" offset="assign">
         <param name="v" type="const GLshort *" count="3"/>
-       <glx rop="4128"/>
+        <glx rop="4127"/>
     </function>
 
-    <function name="SecondaryColor3ubEXT" offset="571" vectorequiv="SecondaryColor3ubvEXT">
+    <function name="SecondaryColor3ubEXT" offset="assign" vectorequiv="SecondaryColor3ubvEXT">
         <param name="red" type="GLubyte"/>
         <param name="green" type="GLubyte"/>
         <param name="blue" type="GLubyte"/>
     </function>
 
-    <function name="SecondaryColor3ubvEXT" offset="572">
+    <function name="SecondaryColor3ubvEXT" offset="assign">
         <param name="v" type="const GLubyte *" count="3"/>
-       <glx rop="4131"/>
+        <glx rop="4131"/>
     </function>
 
-    <function name="SecondaryColor3uiEXT" offset="573" vectorequiv="SecondaryColor3uivEXT">
+    <function name="SecondaryColor3uiEXT" offset="assign" vectorequiv="SecondaryColor3uivEXT">
         <param name="red" type="GLuint"/>
         <param name="green" type="GLuint"/>
         <param name="blue" type="GLuint"/>
     </function>
 
-    <function name="SecondaryColor3uivEXT" offset="574">
+    <function name="SecondaryColor3uivEXT" offset="assign">
         <param name="v" type="const GLuint *" count="3"/>
-       <glx rop="4133"/>
+        <glx rop="4133"/>
     </function>
 
-    <function name="SecondaryColor3usEXT" offset="575" vectorequiv="SecondaryColor3usvEXT">
+    <function name="SecondaryColor3usEXT" offset="assign" vectorequiv="SecondaryColor3usvEXT">
         <param name="red" type="GLushort"/>
         <param name="green" type="GLushort"/>
         <param name="blue" type="GLushort"/>
     </function>
 
-    <function name="SecondaryColor3usvEXT" offset="576">
+    <function name="SecondaryColor3usvEXT" offset="assign">
         <param name="v" type="const GLushort *" count="3"/>
-       <glx rop="4132"/>
+        <glx rop="4132"/>
     </function>
 
-    <function name="SecondaryColorPointerEXT" offset="577">
+    <function name="SecondaryColorPointerEXT" offset="assign">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_texture_perturb_normal" number="147">
-    <function name="TextureNormalEXT" offset="?">
+    <function name="TextureNormalEXT">
         <param name="mode" type="GLenum"/>
     </function>
 </category>
 
 <category name="GL_EXT_multi_draw_arrays" number="148">
-    <function name="MultiDrawArraysEXT" offset="644">
+    <function name="MultiDrawArraysEXT" offset="assign">
         <param name="mode" type="GLenum"/>
-        <param name="first" type="GLint *"/>
-        <param name="count" type="GLsizei *"/>
+        <param name="first" type="GLint *"/> <!-- Spec bug. Should be const. -->
+        <param name="count" type="GLsizei *"/> <!-- Spec bug. Should be const. -->
         <param name="primcount" type="GLsizei"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="MultiDrawElementsEXT" offset="645">
+    <function name="MultiDrawElementsEXT" offset="assign">
         <param name="mode" type="GLenum"/>
         <param name="count" type="const GLsizei *"/>
         <param name="type" type="GLenum"/>
         <param name="indices" type="const GLvoid **"/>
         <param name="primcount" type="GLsizei"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_fog_coord" number="149">
-    <function name="FogCoordfEXT" offset="545" vectorequiv="FogCoordfvEXT">
+    <function name="FogCoordfEXT" offset="assign" vectorequiv="FogCoordfvEXT">
         <param name="coord" type="GLfloat"/>
     </function>
 
-    <function name="FogCoordfvEXT" offset="546">
+    <function name="FogCoordfvEXT" offset="assign">
         <param name="coord" type="const GLfloat *" count="1"/>
-       <glx rop="4124"/>
+        <glx rop="4124"/>
     </function>
 
-    <function name="FogCoorddEXT" offset="547" vectorequiv="FogCoorddvEXT">
+    <function name="FogCoorddEXT" offset="assign" vectorequiv="FogCoorddvEXT">
         <param name="coord" type="GLdouble"/>
     </function>
 
-    <function name="FogCoorddvEXT" offset="548">
+    <function name="FogCoorddvEXT" offset="assign">
         <param name="coord" type="const GLdouble *" count="1"/>
-       <glx rop="4125"/>
+        <glx rop="4125"/>
     </function>
 
-    <function name="FogCoordPointerEXT" offset="549">
+    <function name="FogCoordPointerEXT" offset="assign">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 </category>
 
 <!-- Extension number 154 is not listed in the extension registry. -->
 
 <category name="GL_EXT_coordinate_frame" number="156">
-    <function name="Tangent3bEXT" offset="?">
+    <function name="Tangent3bEXT">
         <param name="tx" type="GLbyte"/>
         <param name="ty" type="GLbyte"/>
         <param name="tz" type="GLbyte"/>
     </function>
 
-    <function name="Tangent3bvEXT" offset="?">
+    <function name="Tangent3bvEXT">
         <param name="v" type="const GLbyte *"/>
     </function>
 
-    <function name="Tangent3dEXT" offset="?">
+    <function name="Tangent3dEXT">
         <param name="tx" type="GLdouble"/>
         <param name="ty" type="GLdouble"/>
         <param name="tz" type="GLdouble"/>
     </function>
 
-    <function name="Tangent3dvEXT" offset="?">
+    <function name="Tangent3dvEXT">
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="Tangent3fEXT" offset="?">
+    <function name="Tangent3fEXT">
         <param name="tx" type="GLfloat"/>
         <param name="ty" type="GLfloat"/>
         <param name="tz" type="GLfloat"/>
     </function>
 
-    <function name="Tangent3fvEXT" offset="?">
+    <function name="Tangent3fvEXT">
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Tangent3iEXT" offset="?">
+    <function name="Tangent3iEXT">
         <param name="tx" type="GLint"/>
         <param name="ty" type="GLint"/>
         <param name="tz" type="GLint"/>
     </function>
 
-    <function name="Tangent3ivEXT" offset="?">
+    <function name="Tangent3ivEXT">
         <param name="v" type="const GLint *"/>
     </function>
 
-    <function name="Tangent3sEXT" offset="?">
+    <function name="Tangent3sEXT">
         <param name="tx" type="GLshort"/>
         <param name="ty" type="GLshort"/>
         <param name="tz" type="GLshort"/>
     </function>
 
-    <function name="Tangent3svEXT" offset="?">
+    <function name="Tangent3svEXT">
         <param name="v" type="const GLshort *"/>
     </function>
 
-    <function name="Binormal3bEXT" offset="?">
+    <function name="Binormal3bEXT">
         <param name="bx" type="GLbyte"/>
         <param name="by" type="GLbyte"/>
         <param name="bz" type="GLbyte"/>
     </function>
 
-    <function name="Binormal3bvEXT" offset="?">
+    <function name="Binormal3bvEXT">
         <param name="v" type="const GLbyte *"/>
     </function>
 
-    <function name="Binormal3dEXT" offset="?">
+    <function name="Binormal3dEXT">
         <param name="bx" type="GLdouble"/>
         <param name="by" type="GLdouble"/>
         <param name="bz" type="GLdouble"/>
     </function>
 
-    <function name="Binormal3dvEXT" offset="?">
+    <function name="Binormal3dvEXT">
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="Binormal3fEXT" offset="?">
+    <function name="Binormal3fEXT">
         <param name="bx" type="GLfloat"/>
         <param name="by" type="GLfloat"/>
         <param name="bz" type="GLfloat"/>
     </function>
 
-    <function name="Binormal3fvEXT" offset="?">
+    <function name="Binormal3fvEXT">
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Binormal3iEXT" offset="?">
+    <function name="Binormal3iEXT">
         <param name="bx" type="GLint"/>
         <param name="by" type="GLint"/>
         <param name="bz" type="GLint"/>
     </function>
 
-    <function name="Binormal3ivEXT" offset="?">
+    <function name="Binormal3ivEXT">
         <param name="v" type="const GLint *"/>
     </function>
 
-    <function name="Binormal3sEXT" offset="?">
+    <function name="Binormal3sEXT">
         <param name="bx" type="GLshort"/>
         <param name="by" type="GLshort"/>
         <param name="bz" type="GLshort"/>
     </function>
 
-    <function name="Binormal3svEXT" offset="?">
+    <function name="Binormal3svEXT">
         <param name="v" type="const GLshort *"/>
     </function>
 
-    <function name="TangentPointerEXT" offset="?">
+    <function name="TangentPointerEXT">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
     </function>
 
-    <function name="BinormalPointerEXT" offset="?">
+    <function name="BinormalPointerEXT">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
 
 <!-- Extension number 157 is not listed in the extension registry. -->
 
+<category name="GL_EXT_texture_env_combine" number="158">
+    <enum name="COMBINE_EXT"                              value="0x8570"/>
+    <enum name="COMBINE_RGB_EXT"               count="1"  value="0x8571"/>
+    <enum name="COMBINE_ALPHA_EXT"             count="1"  value="0x8572"/>
+    <enum name="RGB_SCALE_EXT"                 count="1"  value="0x8573"/>
+    <enum name="ADD_SIGNED_EXT"                           value="0x8574"/>
+    <enum name="INTERPOLATE_EXT"                          value="0x8575"/>
+    <enum name="CONSTANT_EXT"                             value="0x8576"/>
+    <enum name="PRIMARY_COLOR_EXT"                        value="0x8577"/>
+    <enum name="PREVIOUS_EXT"                             value="0x8578"/>
+    <enum name="SOURCE0_RGB_EXT"               count="1"  value="0x8580"/>
+    <enum name="SOURCE1_RGB_EXT"               count="1"  value="0x8581"/>
+    <enum name="SOURCE2_RGB_EXT"               count="1"  value="0x8582"/>
+    <enum name="SOURCE0_ALPHA_EXT"             count="1"  value="0x8588"/>
+    <enum name="SOURCE1_ALPHA_EXT"             count="1"  value="0x8589"/>
+    <enum name="SOURCE2_ALPHA_EXT"             count="1"  value="0x858A"/>
+    <enum name="OPERAND0_RGB_EXT"              count="1"  value="0x8590"/>
+    <enum name="OPERAND1_RGB_EXT"              count="1"  value="0x8591"/>
+    <enum name="OPERAND2_RGB_EXT"              count="1"  value="0x8592"/>
+    <enum name="OPERAND0_ALPHA_EXT"            count="1"  value="0x8598"/>
+    <enum name="OPERAND1_ALPHA_EXT"            count="1"  value="0x8599"/>
+    <enum name="OPERAND2_ALPHA_EXT"            count="1"  value="0x859A"/>
+</category>
+
 <category name="GL_SGIX_pixel_texture" number="160">
-    <function name="PixelTexGenSGIX" offset="430">
+    <function name="PixelTexGenSGIX" offset="assign" static_dispatch="false">
         <param name="mode" type="GLenum"/>
-       <glx rop="2059"/>
+        <glx rop="2059" ignore="true"/>
     </function>
 </category>
 
 <!-- Extension number 162 is not listed in the extension registry. -->
 
 <category name="GL_SUNX_constant_data" number="163">
-    <function name="FinishTextureSUNX" offset="?">
+    <function name="FinishTextureSUNX">
     </function>
 </category>
 
 <category name="GL_SUN_global_alpha" number="164">
-    <function name="GlobalAlphaFactorbSUN" offset="?">
+    <function name="GlobalAlphaFactorbSUN">
         <param name="factor" type="GLbyte"/>
     </function>
 
-    <function name="GlobalAlphaFactorsSUN" offset="?">
+    <function name="GlobalAlphaFactorsSUN">
         <param name="factor" type="GLshort"/>
     </function>
 
-    <function name="GlobalAlphaFactoriSUN" offset="?">
+    <function name="GlobalAlphaFactoriSUN">
         <param name="factor" type="GLint"/>
     </function>
 
-    <function name="GlobalAlphaFactorfSUN" offset="?">
+    <function name="GlobalAlphaFactorfSUN">
         <param name="factor" type="GLfloat"/>
     </function>
 
-    <function name="GlobalAlphaFactordSUN" offset="?">
+    <function name="GlobalAlphaFactordSUN">
         <param name="factor" type="GLdouble"/>
     </function>
 
-    <function name="GlobalAlphaFactorubSUN" offset="?">
+    <function name="GlobalAlphaFactorubSUN">
         <param name="factor" type="GLubyte"/>
     </function>
 
-    <function name="GlobalAlphaFactorusSUN" offset="?">
+    <function name="GlobalAlphaFactorusSUN">
         <param name="factor" type="GLushort"/>
     </function>
 
-    <function name="GlobalAlphaFactoruiSUN" offset="?">
+    <function name="GlobalAlphaFactoruiSUN">
         <param name="factor" type="GLuint"/>
     </function>
 </category>
 
 <category name="GL_SUN_triangle_list" number="165">
-    <function name="ReplacementCodeuiSUN" offset="?">
+    <function name="ReplacementCodeuiSUN">
         <param name="code" type="GLuint"/>
     </function>
 
-    <function name="ReplacementCodeusSUN" offset="?">
+    <function name="ReplacementCodeusSUN">
         <param name="code" type="GLushort"/>
     </function>
 
-    <function name="ReplacementCodeubSUN" offset="?">
+    <function name="ReplacementCodeubSUN">
         <param name="code" type="GLubyte"/>
     </function>
 
-    <function name="ReplacementCodeuivSUN" offset="?">
+    <function name="ReplacementCodeuivSUN">
         <param name="code" type="const GLuint *"/>
     </function>
 
-    <function name="ReplacementCodeusvSUN" offset="?">
+    <function name="ReplacementCodeusvSUN">
         <param name="code" type="const GLushort *"/>
     </function>
 
-    <function name="ReplacementCodeubvSUN" offset="?">
+    <function name="ReplacementCodeubvSUN">
         <param name="code" type="const GLubyte *"/>
     </function>
 
-    <function name="ReplacementCodePointerSUN" offset="?">
+    <function name="ReplacementCodePointerSUN">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
 </category>
 
 <category name="GL_SUN_vertex" number="166">
-    <function name="Color4ubVertex2fSUN" offset="?">
+    <function name="Color4ubVertex2fSUN">
         <param name="r" type="GLubyte"/>
         <param name="g" type="GLubyte"/>
         <param name="b" type="GLubyte"/>
         <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="Color4ubVertex2fvSUN" offset="?">
+    <function name="Color4ubVertex2fvSUN">
         <param name="c" type="const GLubyte *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Color4ubVertex3fSUN" offset="?">
+    <function name="Color4ubVertex3fSUN">
         <param name="r" type="GLubyte"/>
         <param name="g" type="GLubyte"/>
         <param name="b" type="GLubyte"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Color4ubVertex3fvSUN" offset="?">
+    <function name="Color4ubVertex3fvSUN">
         <param name="c" type="const GLubyte *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Color3fVertex3fSUN" offset="?">
+    <function name="Color3fVertex3fSUN">
         <param name="r" type="GLfloat"/>
         <param name="g" type="GLfloat"/>
         <param name="b" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Color3fVertex3fvSUN" offset="?">
+    <function name="Color3fVertex3fvSUN">
         <param name="c" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Normal3fVertex3fSUN" offset="?">
+    <function name="Normal3fVertex3fSUN">
         <param name="nx" type="GLfloat"/>
         <param name="ny" type="GLfloat"/>
         <param name="nz" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Normal3fVertex3fvSUN" offset="?">
+    <function name="Normal3fVertex3fvSUN">
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Color4fNormal3fVertex3fSUN" offset="?">
+    <function name="Color4fNormal3fVertex3fSUN">
         <param name="r" type="GLfloat"/>
         <param name="g" type="GLfloat"/>
         <param name="b" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Color4fNormal3fVertex3fvSUN" offset="?">
+    <function name="Color4fNormal3fVertex3fvSUN">
         <param name="c" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fVertex3fSUN" offset="?">
+    <function name="TexCoord2fVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="x" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fVertex3fvSUN" offset="?">
+    <function name="TexCoord2fVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord4fVertex4fSUN" offset="?">
+    <function name="TexCoord4fVertex4fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="p" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord4fVertex4fvSUN" offset="?">
+    <function name="TexCoord4fVertex4fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fColor4ubVertex3fSUN" offset="?">
+    <function name="TexCoord2fColor4ubVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="r" type="GLubyte"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fColor4ubVertex3fvSUN" offset="?">
+    <function name="TexCoord2fColor4ubVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLubyte *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fColor3fVertex3fSUN" offset="?">
+    <function name="TexCoord2fColor3fVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="r" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fColor3fVertex3fvSUN" offset="?">
+    <function name="TexCoord2fColor3fVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fNormal3fVertex3fSUN" offset="?">
+    <function name="TexCoord2fNormal3fVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="nx" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fNormal3fVertex3fvSUN" offset="?">
+    <function name="TexCoord2fNormal3fVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fColor4fNormal3fVertex3fSUN" offset="?">
+    <function name="TexCoord2fColor4fNormal3fVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="r" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fColor4fNormal3fVertex3fvSUN" offset="?">
+    <function name="TexCoord2fColor4fNormal3fVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord4fColor4fNormal3fVertex4fSUN" offset="?">
+    <function name="TexCoord4fColor4fNormal3fVertex4fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="p" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord4fColor4fNormal3fVertex4fvSUN" offset="?">
+    <function name="TexCoord4fColor4fNormal3fVertex4fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiColor4ubVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiColor4ubVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="r" type="GLubyte"/>
         <param name="g" type="GLubyte"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiColor4ubVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiColor4ubVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="c" type="const GLubyte *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiColor3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiColor3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="r" type="GLfloat"/>
         <param name="g" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiColor3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiColor3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiNormal3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiNormal3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="nx" type="GLfloat"/>
         <param name="ny" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiNormal3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiNormal3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiColor4fNormal3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiColor4fNormal3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="r" type="GLfloat"/>
         <param name="g" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiColor4fNormal3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiColor4fNormal3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="tc" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="tc" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLfloat *"/>
 <!-- Extension number 172 is a WGL extension. -->
 
 <category name="GL_EXT_blend_func_separate" number="173">
-    <function name="BlendFuncSeparateEXT" offset="537">
+    <function name="BlendFuncSeparateEXT" offset="assign">
         <param name="sfactorRGB" type="GLenum"/>
         <param name="dfactorRGB" type="GLenum"/>
         <param name="sfactorAlpha" type="GLenum"/>
         <param name="dfactorAlpha" type="GLenum"/>
-       <glx rop="4134"/>
+        <glx rop="4134"/>
     </function>
 </category>
 
+<category name="GL_EXT_stencil_wrap" number="176">
+    <enum name="INCR_WRAP_EXT"                            value="0x8507"/>
+    <enum name="DECR_WRAP_EXT"                            value="0x8508"/>
+</category>
+
 <!-- Extension number 177 is a WGL extension. -->
+
+<category name="GL_NV_texgen_reflection" number="179">
+    <enum name="NORMAL_MAP_NV"                            value="0x8511"/>
+    <enum name="REFLECTION_MAP_NV"                        value="0x8512"/>
+</category>
+
 <!-- Extension number 180 is not listed in the extension registry. -->
+
+<category name="GL_SUN_convolution_border_modes" number="182">
+    <enum name="WRAP_BORDER_SUN"                          value="0x81D4"/>
+</category>
+
 <!-- Extension number 183 is a GLX extension. -->
 <!-- Extension number 184 is not listed in the extension registry. -->
 
+<category name="GL_EXT_texture_env_add" number="185">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_EXT_texture_lod_bias" number="186">
+    <enum name="TEXTURE_LOD_BIAS_EXT"          count="1"  value="0x8501">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_EXT_texture_filter_anisotropic" number="187">
+    <enum name="TEXTURE_MAX_ANISOTROPY_EXT"    count="1"  value="0x84FE">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_MAX_ANISOTROPY_EXT" count="1" value="0x84FF">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_EXT_vertex_weighting" number="188">
-    <function name="VertexWeightfEXT" offset="494" vectorequiv="VertexWeightfvEXT">
+    <function name="VertexWeightfEXT" vectorequiv="VertexWeightfvEXT">
         <param name="weight" type="GLfloat"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexWeightfvEXT" offset="495">
+    <function name="VertexWeightfvEXT">
         <param name="weight" type="const GLfloat *" count="1"/>
-       <glx rop="4135"/>
+        <glx rop="4135" ignore="true"/>
     </function>
 
-    <function name="VertexWeightPointerEXT" offset="496">
+    <function name="VertexWeightPointerEXT">
         <param name="size" type="GLsizei"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true" ignore="true"/>
     </function>
 </category>
 
+<category name="GL_NV_light_max_exponent" number="189">
+    <enum name="MAX_SHININESS_NV"              count="1"  value="0x8504">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_SPOT_EXPONENT_NV"          count="1"  value="0x8505">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_NV_vertex_array_range" number="190">
-    <function name="FlushVertexArrayRangeNV" offset="497">
-       <glx ignore="true"/>
+    <function name="FlushVertexArrayRangeNV" offset="assign">
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexArrayRangeNV" offset="498">
+    <function name="VertexArrayRangeNV" offset="assign">
         <param name="length" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_NV_register_combiners" number="191">
-    <function name="CombinerParameterfvNV" offset="499">
+    <function name="CombinerParameterfvNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
-       <glx rop="4137"/>
+        <glx rop="4137" ignore="true"/>
     </function>
 
-    <function name="CombinerParameterfNV" offset="500">
+    <function name="CombinerParameterfNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-       <glx rop="4136"/>
+        <glx rop="4136" ignore="true"/>
     </function>
 
-    <function name="CombinerParameterivNV" offset="501">
+    <function name="CombinerParameterivNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="4139"/>
+        <glx rop="4139" ignore="true"/>
     </function>
 
-    <function name="CombinerParameteriNV" offset="502">
+    <function name="CombinerParameteriNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-       <glx rop="4138"/>
+        <glx rop="4138" ignore="true"/>
     </function>
 
-    <function name="CombinerInputNV" offset="503">
+    <function name="CombinerInputNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="variable" type="GLenum"/>
         <param name="input" type="GLenum"/>
         <param name="mapping" type="GLenum"/>
         <param name="componentUsage" type="GLenum"/>
-       <glx rop="4140"/>
+        <glx rop="4140" ignore="true"/>
     </function>
 
-    <function name="CombinerOutputNV" offset="504">
+    <function name="CombinerOutputNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="abOutput" type="GLenum"/>
         <param name="abDotProduct" type="GLboolean"/>
         <param name="cdDotProduct" type="GLboolean"/>
         <param name="muxSum" type="GLboolean"/>
-       <glx rop="4141"/>
+        <glx rop="4141" ignore="true"/>
     </function>
 
-    <function name="FinalCombinerInputNV" offset="505">
+    <function name="FinalCombinerInputNV" offset="assign">
         <param name="variable" type="GLenum"/>
         <param name="input" type="GLenum"/>
         <param name="mapping" type="GLenum"/>
         <param name="componentUsage" type="GLenum"/>
-       <glx rop="4142"/>
+        <glx rop="4142" ignore="true"/>
     </function>
 
-    <function name="GetCombinerInputParameterfvNV" offset="506">
+    <function name="GetCombinerInputParameterfvNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="variable" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="1270"/>
+        <glx vendorpriv="1270" ignore="true"/>
     </function>
 
-    <function name="GetCombinerInputParameterivNV" offset="507">
+    <function name="GetCombinerInputParameterivNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="variable" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="1271"/>
+        <glx vendorpriv="1271" ignore="true"/>
     </function>
 
-    <function name="GetCombinerOutputParameterfvNV" offset="508">
+    <function name="GetCombinerOutputParameterfvNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="1272"/>
+        <glx vendorpriv="1272" ignore="true"/>
     </function>
 
-    <function name="GetCombinerOutputParameterivNV" offset="509">
+    <function name="GetCombinerOutputParameterivNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="1273"/>
+        <glx vendorpriv="1273" ignore="true"/>
     </function>
 
-    <function name="GetFinalCombinerInputParameterfvNV" offset="510">
+    <function name="GetFinalCombinerInputParameterfvNV" offset="assign">
         <param name="variable" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="1274"/>
+        <glx vendorpriv="1274" ignore="true"/>
     </function>
 
-    <function name="GetFinalCombinerInputParameterivNV" offset="511">
+    <function name="GetFinalCombinerInputParameterivNV" offset="assign">
         <param name="variable" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="1275"/>
+        <glx vendorpriv="1275" ignore="true"/>
     </function>
 </category>
 
+<category name="GL_NV_fog_distance" number="192">
+    <enum name="FOG_DISTANCE_MODE_NV"          count="1"  value="0x855A">
+        <size name="Fogfv"/>
+        <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="EYE_RADIAL_NV"                            value="0x855B"/>
+    <enum name="EYE_PLANE_ABSOLUTE_NV"                    value="0x855C"/>
+</category>
+
+<category name="GL_NV_blend_square" number="194">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_NV_texture_env_combine4" number="195">
+    <enum name="COMBINE4"                                 value="0x8503"/>
+    <enum name="SOURCE3_RGB_NV"                count="1"  value="0x8583">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="SOURCE3_ALPHA_NV"              count="1"  value="0x858B">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="OPERAND3_RGB_NV"               count="1"  value="0x8593">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="OPERAND3_ALPHA_NV"             count="1"  value="0x859B">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_MESA_resize_buffers" number="196">
-    <function name="ResizeBuffersMESA" offset="512">
-       <glx ignore="true"/>
+    <function name="ResizeBuffersMESA" offset="assign">
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_MESA_window_pos" number="197">
-    <function name="WindowPos2dMESA" offset="513">
+    <function name="WindowPos2dMESA" offset="assign">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2dvMESA" offset="514">
+    <function name="WindowPos2dvMESA" offset="assign">
         <param name="v" type="const GLdouble *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2fMESA" offset="515">
+    <function name="WindowPos2fMESA" offset="assign">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2fvMESA" offset="516">
+    <function name="WindowPos2fvMESA" offset="assign">
         <param name="v" type="const GLfloat *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2iMESA" offset="517">
+    <function name="WindowPos2iMESA" offset="assign">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2ivMESA" offset="518">
+    <function name="WindowPos2ivMESA" offset="assign">
         <param name="v" type="const GLint *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2sMESA" offset="519">
+    <function name="WindowPos2sMESA" offset="assign">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2svMESA" offset="520">
+    <function name="WindowPos2svMESA" offset="assign">
         <param name="v" type="const GLshort *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3dMESA" offset="521">
+    <function name="WindowPos3dMESA" offset="assign">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3dvMESA" offset="522">
+    <function name="WindowPos3dvMESA" offset="assign">
         <param name="v" type="const GLdouble *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3fMESA" offset="523" vectorequiv="WindowPos3fvMESA">
+    <function name="WindowPos3fMESA" offset="assign" vectorequiv="WindowPos3fvMESA">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
-       <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3fvMESA" offset="524">
+    <function name="WindowPos3fvMESA" offset="assign">
         <param name="v" type="const GLfloat *" count="3"/>
-       <glx rop="230"/>
+        <glx rop="230"/>
     </function>
 
-    <function name="WindowPos3iMESA" offset="525">
+    <function name="WindowPos3iMESA" offset="assign">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3ivMESA" offset="526">
+    <function name="WindowPos3ivMESA" offset="assign">
         <param name="v" type="const GLint *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3sMESA" offset="527">
+    <function name="WindowPos3sMESA" offset="assign">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3svMESA" offset="528">
+    <function name="WindowPos3svMESA" offset="assign">
         <param name="v" type="const GLshort *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos4dMESA" offset="529">
+    <function name="WindowPos4dMESA" offset="assign">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4dvMESA" offset="530">
+    <function name="WindowPos4dvMESA" offset="assign">
         <param name="v" type="const GLdouble *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4fMESA" offset="531">
+    <function name="WindowPos4fMESA" offset="assign">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4fvMESA" offset="532">
+    <function name="WindowPos4fvMESA" offset="assign">
         <param name="v" type="const GLfloat *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4iMESA" offset="533">
+    <function name="WindowPos4iMESA" offset="assign">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
         <param name="w" type="GLint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4ivMESA" offset="534">
+    <function name="WindowPos4ivMESA" offset="assign">
         <param name="v" type="const GLint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4sMESA" offset="535">
+    <function name="WindowPos4sMESA" offset="assign">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <param name="w" type="GLshort"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4svMESA" offset="536">
+    <function name="WindowPos4svMESA" offset="assign">
         <param name="v" type="const GLshort *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
+<category name="GL_EXT_texture_compression_s3tc" number="198">
+    <enum name="COMPRESSED_RGB_S3TC_DXT1_EXT"             value="0x83F0"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT1_EXT"            value="0x83F1"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT3_EXT"            value="0x83F2"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT5_EXT"            value="0x83F3"/>
+</category>
+
 <category name="GL_IBM_multimode_draw_arrays" number="200">
-    <function name="MultiModeDrawArraysIBM" offset="708">
+    <function name="MultiModeDrawArraysIBM" offset="assign" static_dispatch="false">
         <param name="mode" type="const GLenum *"/>
         <param name="first" type="const GLint *"/>
         <param name="count" type="const GLsizei *"/>
         <param name="primcount" type="GLsizei"/>
         <param name="modestride" type="GLint"/>
-       <glx handcode="true"/>
+        <glx handcode="true" ignore="true"/>
     </function>
 
-    <function name="MultiModeDrawElementsIBM" offset="709">
+    <function name="MultiModeDrawElementsIBM" offset="assign" static_dispatch="false">
         <param name="mode" type="const GLenum *"/>
         <param name="count" type="const GLsizei *"/>
         <param name="type" type="GLenum"/>
         <param name="indices" type="const GLvoid * const *"/>
         <param name="primcount" type="GLsizei"/>
         <param name="modestride" type="GLint"/>
-       <glx handcode="true"/>
+        <glx handcode="true" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_IBM_vertex_array_lists" number="201">
-    <function name="ColorPointerListIBM" offset="?">
+    <function name="ColorPointerListIBM">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="SecondaryColorPointerListIBM" offset="?">
+    <function name="SecondaryColorPointerListIBM">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="EdgeFlagPointerListIBM" offset="?">
+    <function name="EdgeFlagPointerListIBM">
         <param name="stride" type="GLint"/>
         <param name="pointer" type="const GLboolean **"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="FogCoordPointerListIBM" offset="?">
+    <function name="FogCoordPointerListIBM">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="pointer" type="const GLvoid **"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="IndexPointerListIBM" offset="?">
+    <function name="IndexPointerListIBM">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="pointer" type="const GLvoid **"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="NormalPointerListIBM" offset="?">
+    <function name="NormalPointerListIBM">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="pointer" type="const GLvoid **"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="TexCoordPointerListIBM" offset="?">
+    <function name="TexCoordPointerListIBM">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="VertexPointerListIBM" offset="?">
+    <function name="VertexPointerListIBM">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
 <!-- Extension number 204 is not listed in the extension registry. -->
 <!-- Extension number 205 is not listed in the extension registry. -->
 
+<category name="GL_3DFX_texture_compression_FXT1" number="206">
+    <enum name="COMPRESSED_RGB_FXT1_3DFX"                 value="0x86B0"/>
+    <enum name="COMPRESSED_RGBA_FXT1_3DFX"                value="0x86B1"/>
+</category>
+
+<category name="GL_3DFX_multisample" number="207">
+    <enum name="MULTISAMPLE_3DFX"                         value="0x86B2"/>
+    <enum name="SAMPLE_BUFFERS_3DFX"                      value="0x86B3"/>
+    <enum name="SAMPLES_3DFX"                             value="0x86B4"/>
+    <enum name="MULTISAMPLE_BIT_3DFX"                     value="0x20000000"/>
+</category>
+
 <category name="GL_3DFX_tbuffer" number="208">
-    <function name="TbufferMask3DFX" offset="553">
+    <function name="TbufferMask3DFX">
         <param name="mask" type="GLuint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_multisample" number="209">
-    <function name="SampleMaskEXT" alias="SampleMaskSGIS">
+    <function name="SampleMaskEXT" alias="SampleMaskSGIS" static_dispatch="false">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
     </function>
 
-    <function name="SamplePatternEXT" alias="SamplePatternSGIS">
+    <function name="SamplePatternEXT" alias="SamplePatternSGIS" static_dispatch="false">
         <param name="pattern" type="GLenum"/>
     </function>
 </category>
 <!-- Extension number 213 is not listed in the extension registry. -->
 
 <category name="GL_SGIS_texture_color_mask" number="214">
-    <function name="TextureColorMaskSGIS" offset="?">
+    <enum name="TEXTURE_COLOR_WRITEMASK_SGIS"             value="0x81EF"/>
+
+    <function name="TextureColorMaskSGIS">
         <param name="red" type="GLboolean"/>
         <param name="green" type="GLboolean"/>
         <param name="blue" type="GLboolean"/>
         <param name="alpha" type="GLboolean"/>
+        <glx rop="2082" ignore="true"/>
     </function>
 </category>
 
 <!-- Extension number 218 is a GLX extension. -->
 <!-- Extension number 219 is not listed in the extension registry. -->
 
+<category name="GL_EXT_texture_env_dot3" number="220">
+    <enum name="DOT3_RGB_EXT"                             value="0x8740"/>
+    <enum name="DOT3_RGBA_EXT"                            value="0x8741"/>
+</category>
+
+<category name="GL_ATI_texture_mirror_once" number="221">
+    <enum name="MIRROR_CLAMP_ATI"                         value="0x8742"/>
+    <enum name="MIRROR_CLAMP_TO_EDGE_ATI"                 value="0x8743"/>
+</category>
+
 <category name="GL_NV_fence" number="222">
-    <function name="DeleteFencesNV" offset="647">
+    <function name="DeleteFencesNV" offset="assign" static_dispatch="false">
         <param name="n" type="GLsizei"/>
         <param name="fences" type="const GLuint *"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GenFencesNV" offset="648">
-        <param name="n" type="GLsizei"/>
-        <param name="fences" type="GLuint *"/>
-       <glx ignore="true"/>
+    <function name="GenFencesNV" offset="assign" static_dispatch="false">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="fences" type="GLuint *" output="true" count="n"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="IsFenceNV" offset="649">
+    <function name="IsFenceNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <return type="GLboolean"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="TestFenceNV" offset="650">
+    <function name="TestFenceNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <return type="GLboolean"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="GetFenceivNV" offset="651">
+    <function name="GetFenceivNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
-       <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="FinishFenceNV" offset="652">
+    <function name="FinishFenceNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="SetFenceNV" offset="653">
+    <function name="SetFenceNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <param name="condition" type="GLenum"/>
-       <glx ignore="true"/>
+        <glx ignore="true"/>
     </function>
 </category>
 
+<category name="GL_IBM_texture_mirrored_repeat" number="224">
+    <enum name="MIRRORED_REPEAT_IBM"                      value="0x8370"/>
+</category>
+
 <category name="GL_NV_evaluators" number="225">
-    <function name="MapControlPointsNV" offset="?">
+    <function name="MapControlPointsNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="type" type="GLenum"/>
         <param name="points" type="const GLvoid *"/>
     </function>
 
-    <function name="MapParameterivNV" offset="?">
+    <function name="MapParameterivNV">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="MapParameterfvNV" offset="?">
+    <function name="MapParameterfvNV">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="GetMapControlPointsNV" offset="?">
+    <function name="GetMapControlPointsNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="type" type="GLenum"/>
         <param name="ustride" type="GLsizei"/>
         <param name="vstride" type="GLsizei"/>
         <param name="packed" type="GLboolean"/>
-        <param name="points" type="GLvoid *"/>
+        <param name="points" type="GLvoid *" output="true"/>
     </function>
 
-    <function name="GetMapParameterivNV" offset="?">
+    <function name="GetMapParameterivNV">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
     </function>
 
-    <function name="GetMapParameterfvNV" offset="?">
+    <function name="GetMapParameterfvNV">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
     </function>
 
-    <function name="GetMapAttribParameterivNV" offset="?">
+    <function name="GetMapAttribParameterivNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
     </function>
 
-    <function name="GetMapAttribParameterfvNV" offset="?">
+    <function name="GetMapAttribParameterfvNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
     </function>
 
-    <function name="EvalMapsNV" offset="?">
+    <function name="EvalMapsNV">
         <param name="target" type="GLenum"/>
         <param name="mode" type="GLenum"/>
     </function>
 </category>
 
+<category name="GL_NV_packed_depth_stencil" number="226">
+    <enum name="DEPTH_STENCIL_NV"                         value="0x84F9"/>
+    <enum name="UNSIGNED_INT_24_8_NV"                     value="0x84FA"/>
+</category>
+
 <category name="GL_NV_register_combiners2" number="227">
-    <function name="CombinerStageParameterfvNV" offset="?">
+    <function name="CombinerStageParameterfvNV">
         <param name="stage" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="GetCombinerStageParameterfvNV" offset="?">
+    <function name="GetCombinerStageParameterfvNV">
         <param name="stage" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
     </function>
 </category>
 
+<category name="GL_NV_texture_compression_vtc" number="228">
+    <enum name="COMPRESSED_RGB_S3TC_DXT1_EXT"             value="0x83F0"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT1_EXT"            value="0x83F1"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT3_EXT"            value="0x83F2"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT5_EXT"            value="0x83F3"/>
+</category>
+
+<category name="GL_NV_texture_rectangle" number="229">
+    <enum name="TEXTURE_RECTANGLE_NV"          count="1"  value="0x84F5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_RECTANGLE_NV"  count="1"  value="0x84F6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROXY_TEXTURE_RECTANGLE_NV"               value="0x84F7"/>
+    <enum name="MAX_RECTANGLE_TEXTURE_SIZE_NV" count="1"  value="0x84F8">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_NV_vertex_program" number="233">
-    <function name="AreProgramsResidentNV" offset="578">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="const GLuint *"/>
-        <param name="residences" type="GLboolean *"/>
+    <enum name="VERTEX_PROGRAM_NV"                        value="0x8620"/>
+    <enum name="VERTEX_STATE_PROGRAM_NV"                  value="0x8621"/>
+    <enum name="ATTRIB_ARRAY_SIZE_NV"          count="1"  value="0x8623">
+        <size name="GetVertexAttribdvNV" mode="get"/>
+        <size name="GetVertexAttribfvNV" mode="get"/>
+        <size name="GetVertexAttribivNV" mode="get"/>
+    </enum>
+    <enum name="ATTRIB_ARRAY_STRIDE_NV"        count="1"  value="0x8624">
+        <size name="GetVertexAttribdvNV" mode="get"/>
+        <size name="GetVertexAttribfvNV" mode="get"/>
+        <size name="GetVertexAttribivNV" mode="get"/>
+    </enum>
+    <enum name="ATTRIB_ARRAY_TYPE_NV"          count="1"  value="0x8625">
+        <size name="GetVertexAttribdvNV" mode="get"/>
+        <size name="GetVertexAttribfvNV" mode="get"/>
+        <size name="GetVertexAttribivNV" mode="get"/>
+    </enum>
+    <enum name="CURRENT_ATTRIB_NV"             count="1"  value="0x8626">
+        <size name="GetVertexAttribdvNV" mode="get"/>
+        <size name="GetVertexAttribfvNV" mode="get"/>
+        <size name="GetVertexAttribivNV" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_LENGTH_NV"             count="1"  value="0x8627">
+        <size name="GetProgramivNV" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_STRING_NV"                        value="0x8628"/>
+    <enum name="MODELVIEW_PROJECTION_NV"                  value="0x8629"/>
+    <enum name="IDENTITY_NV"                              value="0x862A"/>
+    <enum name="INVERSE_NV"                               value="0x862B"/>
+    <enum name="TRANSPOSE_NV"                             value="0x862C"/>
+    <enum name="INVERSE_TRANSPOSE_NV"                     value="0x862D"/>
+    <enum name="MAX_TRACK_MATRIX_STACK_DEPTH_NV"          value="0x862E"/>
+    <enum name="MAX_TRACK_MATRICES_NV"                    value="0x862F"/>
+    <enum name="MATRIX0_NV"                               value="0x8630"/>
+    <enum name="MATRIX1_NV"                               value="0x8631"/>
+    <enum name="MATRIX2_NV"                               value="0x8632"/>
+    <enum name="MATRIX3_NV"                               value="0x8633"/>
+    <enum name="MATRIX4_NV"                               value="0x8634"/>
+    <enum name="MATRIX5_NV"                               value="0x8635"/>
+    <enum name="MATRIX6_NV"                               value="0x8636"/>
+    <enum name="MATRIX7_NV"                               value="0x8637"/>
+    <enum name="CURRENT_MATRIX_STACK_DEPTH_NV"            value="0x8640"/>
+    <enum name="CURRENT_MATRIX_NV"                        value="0x8641"/>
+    <enum name="VERTEX_PROGRAM_POINT_SIZE_NV"             value="0x8642"/>
+    <enum name="VERTEX_PROGRAM_TWO_SIDE_NV"               value="0x8643"/>
+    <enum name="PROGRAM_PARAMETER_NV"                     value="0x8644"/>
+    <enum name="ATTRIB_ARRAY_POINTER_NV"                  value="0x8645"/>
+    <enum name="PROGRAM_TARGET_NV"             count="1"  value="0x8646">
+        <size name="GetProgramivNV" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_RESIDENT_NV"           count="1"  value="0x8647">
+        <size name="GetProgramivNV" mode="get"/>
+    </enum>
+    <enum name="TRACK_MATRIX_NV"                          value="0x8648"/>
+    <enum name="TRACK_MATRIX_TRANSFORM_NV"                value="0x8649"/>
+    <enum name="VERTEX_PROGRAM_BINDING_NV"                value="0x864A"/>
+    <enum name="PROGRAM_ERROR_POSITION_NV"                value="0x864B"/>
+    <enum name="VERTEX_ATTRIB_ARRAY0_NV"                  value="0x8650"/>
+    <enum name="VERTEX_ATTRIB_ARRAY1_NV"                  value="0x8651"/>
+    <enum name="VERTEX_ATTRIB_ARRAY2_NV"                  value="0x8652"/>
+    <enum name="VERTEX_ATTRIB_ARRAY3_NV"                  value="0x8653"/>
+    <enum name="VERTEX_ATTRIB_ARRAY4_NV"                  value="0x8654"/>
+    <enum name="VERTEX_ATTRIB_ARRAY5_NV"                  value="0x8655"/>
+    <enum name="VERTEX_ATTRIB_ARRAY6_NV"                  value="0x8656"/>
+    <enum name="VERTEX_ATTRIB_ARRAY7_NV"                  value="0x8657"/>
+    <enum name="VERTEX_ATTRIB_ARRAY8_NV"                  value="0x8658"/>
+    <enum name="VERTEX_ATTRIB_ARRAY9_NV"                  value="0x8659"/>
+    <enum name="VERTEX_ATTRIB_ARRAY10_NV"                 value="0x865A"/>
+    <enum name="VERTEX_ATTRIB_ARRAY11_NV"                 value="0x865B"/>
+    <enum name="VERTEX_ATTRIB_ARRAY12_NV"                 value="0x865C"/>
+    <enum name="VERTEX_ATTRIB_ARRAY13_NV"                 value="0x865D"/>
+    <enum name="VERTEX_ATTRIB_ARRAY14_NV"                 value="0x865E"/>
+    <enum name="VERTEX_ATTRIB_ARRAY15_NV"                 value="0x865F"/>
+    <enum name="MAP1_VERTEX_ATTRIB0_4_NV"                 value="0x8660"/>
+    <enum name="MAP1_VERTEX_ATTRIB1_4_NV"                 value="0x8661"/>
+    <enum name="MAP1_VERTEX_ATTRIB2_4_NV"                 value="0x8662"/>
+    <enum name="MAP1_VERTEX_ATTRIB3_4_NV"                 value="0x8663"/>
+    <enum name="MAP1_VERTEX_ATTRIB4_4_NV"                 value="0x8664"/>
+    <enum name="MAP1_VERTEX_ATTRIB5_4_NV"                 value="0x8665"/>
+    <enum name="MAP1_VERTEX_ATTRIB6_4_NV"                 value="0x8666"/>
+    <enum name="MAP1_VERTEX_ATTRIB7_4_NV"                 value="0x8667"/>
+    <enum name="MAP1_VERTEX_ATTRIB8_4_NV"                 value="0x8668"/>
+    <enum name="MAP1_VERTEX_ATTRIB9_4_NV"                 value="0x8669"/>
+    <enum name="MAP1_VERTEX_ATTRIB10_4_NV"                value="0x866A"/>
+    <enum name="MAP1_VERTEX_ATTRIB11_4_NV"                value="0x866B"/>
+    <enum name="MAP1_VERTEX_ATTRIB12_4_NV"                value="0x866C"/>
+    <enum name="MAP1_VERTEX_ATTRIB13_4_NV"                value="0x866D"/>
+    <enum name="MAP1_VERTEX_ATTRIB14_4_NV"                value="0x866E"/>
+    <enum name="MAP1_VERTEX_ATTRIB15_4_NV"                value="0x866F"/>
+    <enum name="MAP2_VERTEX_ATTRIB0_4_NV"                 value="0x8670"/>
+    <enum name="MAP2_VERTEX_ATTRIB1_4_NV"                 value="0x8671"/>
+    <enum name="MAP2_VERTEX_ATTRIB2_4_NV"                 value="0x8672"/>
+    <enum name="MAP2_VERTEX_ATTRIB3_4_NV"                 value="0x8673"/>
+    <enum name="MAP2_VERTEX_ATTRIB4_4_NV"                 value="0x8674"/>
+    <enum name="MAP2_VERTEX_ATTRIB5_4_NV"                 value="0x8675"/>
+    <enum name="MAP2_VERTEX_ATTRIB6_4_NV"                 value="0x8676"/>
+    <enum name="MAP2_VERTEX_ATTRIB7_4_NV"                 value="0x8677"/>
+    <enum name="MAP2_VERTEX_ATTRIB8_4_NV"                 value="0x8678"/>
+    <enum name="MAP2_VERTEX_ATTRIB9_4_NV"                 value="0x8679"/>
+    <enum name="MAP2_VERTEX_ATTRIB10_4_NV"                value="0x867A"/>
+    <enum name="MAP2_VERTEX_ATTRIB11_4_NV"                value="0x867B"/>
+    <enum name="MAP2_VERTEX_ATTRIB12_4_NV"                value="0x867C"/>
+    <enum name="MAP2_VERTEX_ATTRIB13_4_NV"                value="0x867D"/>
+    <enum name="MAP2_VERTEX_ATTRIB14_4_NV"                value="0x867E"/>
+    <enum name="MAP2_VERTEX_ATTRIB15_4_NV"                value="0x867F"/>
+
+    <function name="AreProgramsResidentNV" offset="assign">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="const GLuint *" count="n"/>
+        <param name="residences" type="GLboolean *" output="true" count="n"/>
         <return type="GLboolean"/>
-       <glx vendorpriv="1293" handcode="true"/>
+        <glx vendorpriv="1293"/>
     </function>
 
-    <function name="BindProgramNV" offset="579">
+    <function name="BindProgramNV" offset="assign">
         <param name="target" type="GLenum"/>
-        <param name="id" type="GLuint"/>
-       <glx rop="4108"/>
+        <param name="program" type="GLuint"/>
+        <glx rop="4180"/>
     </function>
 
-    <function name="DeleteProgramsNV" offset="580">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="const GLuint *"/>
-       <glx vendorpriv="1294" handcode="true"/>
+    <function name="DeleteProgramsNV" offset="assign">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="programs" type="const GLuint *" count="n"/>
+        <glx vendorpriv="1294"/>
     </function>
 
-    <function name="ExecuteProgramNV" offset="581">
+    <function name="ExecuteProgramNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
-        <param name="params" type="const GLfloat *" variable_param="target"/>
-       <glx rop="4181"/>
+        <param name="params" type="const GLfloat *" count="4"/>
+        <glx rop="4181"/>
     </function>
 
-    <function name="GenProgramsNV" offset="582">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *"/>
-       <glx vendorpriv="1295" handcode="true"/>
-    </function>
+    <function name="GenProgramsNV" offset="assign">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="programs" type="GLuint *" output="true" count="n"/>
+        <glx vendorpriv="1295" always_array="true"/>
+     </function>
+
+    <!-- This isn't 100% correct.  Currently, the only valid value of pname
+         is GL_PROGRAM_PARAMETER_NV, and the count for that pname is always
+         4.  This is why the pname parameter was removed in the ARB version
+         of these functions.
+      -->
 
-    <function name="GetProgramParameterdvNV" offset="583">
+    <function name="GetProgramParameterdvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *" output="true"/>
-       <glx vendorpriv="1297"/>
+        <param name="params" type="GLdouble *" output="true" count="4"/>
+        <glx vendorpriv="1297"/>
     </function>
 
-    <function name="GetProgramParameterfvNV" offset="584">
+    <function name="GetProgramParameterfvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="1296"/>
+        <param name="params" type="GLfloat *" output="true" count="4"/>
+        <glx vendorpriv="1296"/>
     </function>
 
-    <function name="GetProgramivNV" offset="585">
+    <function name="GetProgramivNV" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="1307"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1298"/>
     </function>
 
-    <function name="GetProgramStringNV" offset="586">
+    <function name="GetProgramStringNV" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="program" type="GLubyte *" output="true"/>
-       <glx vendorpriv="1308" handcode="true"/>
+        <glx vendorpriv="1299" handcode="server" always_array="true"/>
     </function>
 
-    <function name="GetTrackMatrixivNV" offset="587">
+    <function name="GetTrackMatrixivNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="address" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="1300"/>
+        <param name="params" type="GLint *" output="true" count="1"/>
+        <glx vendorpriv="1300"/>
     </function>
 
-    <function name="GetVertexAttribdvNV" offset="588">
+    <function name="GetVertexAttribdvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *" output="true"/>
-       <glx vendorpriv="1301"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1301"/>
     </function>
 
-    <function name="GetVertexAttribfvNV" offset="589">
+    <function name="GetVertexAttribfvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-       <glx vendorpriv="1302"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1302"/>
     </function>
 
-    <function name="GetVertexAttribivNV" offset="590">
+    <function name="GetVertexAttribivNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-       <glx vendorpriv="1303"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1303"/>
     </function>
 
-    <function name="GetVertexAttribPointervNV" offset="591">
+    <function name="GetVertexAttribPointervNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="pointer" type="GLvoid **" output="true"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="IsProgramNV" offset="592">
-        <param name="id" type="GLuint"/>
+    <function name="IsProgramNV" offset="assign">
+        <param name="program" type="GLuint"/>
         <return type="GLboolean"/>
-       <glx vendorpriv="1304"/>
+        <glx vendorpriv="1304"/>
     </function>
 
-    <function name="LoadProgramNV" offset="593">
+    <function name="LoadProgramNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="program" type="const GLubyte *"/>
-       <glx rop="4183" handcode="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="program" type="const GLubyte *" count="len"/>
+        <glx rop="4183"/>
     </function>
 
-    <function name="ProgramParameter4dNV" offset="594" vectorequiv="ProgramParameter4dvNV">
+    <function name="ProgramParameter4dNV" offset="assign" vectorequiv="ProgramParameter4dvNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramParameter4dvNV" offset="595">
+    <function name="ProgramParameter4dvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLdouble *" count="4"/>
-       <glx rop="4185" doubles_in_order="true"/>
+        <glx rop="4185" doubles_in_order="true"/>
     </function>
 
-    <function name="ProgramParameter4fNV" offset="596" vectorequiv="ProgramParameter4fvNV">
+    <function name="ProgramParameter4fNV" offset="assign" vectorequiv="ProgramParameter4fvNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramParameter4fvNV" offset="597">
+    <function name="ProgramParameter4fvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
-       <glx rop="4184"/>
+        <glx rop="4184"/>
     </function>
 
-    <function name="ProgramParameters4dvNV" offset="598">
+    <function name="ProgramParameters4dvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="num" type="GLuint"/>
-        <param name="params" type="const GLdouble *"/>
-       <glx rop="4187" handcode="true"/>
+        <param name="num" type="GLuint" counter="true"/>
+        <param name="params" type="const GLdouble *" count="num" count_scale="4"/>
+        <glx rop="4187"/>
     </function>
 
-    <function name="ProgramParameters4fvNV" offset="599">
+    <function name="ProgramParameters4fvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="num" type="GLuint"/>
-        <param name="params" type="const GLfloat *"/>
-       <glx rop="4186" handcode="true"/>
+        <param name="num" type="GLuint" counter="true"/>
+        <param name="params" type="const GLfloat *" count="num" count_scale="4"/>
+        <glx rop="4186"/>
     </function>
 
-    <function name="RequestResidentProgramsNV" offset="600">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="const GLuint *"/>
-       <glx rop="4182" handcode="true"/>
+    <function name="RequestResidentProgramsNV" offset="assign">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="const GLuint *" count="n"/>
+        <glx rop="4182"/>
     </function>
 
-    <function name="TrackMatrixNV" offset="601">
+    <function name="TrackMatrixNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="address" type="GLuint"/>
         <param name="matrix" type="GLenum"/>
         <param name="transform" type="GLenum"/>
-       <glx rop="4188"/>
+        <glx rop="4188"/>
     </function>
 
-    <function name="VertexAttribPointerNV" offset="602">
+    <function name="VertexAttribPointerNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-       <glx handcode="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="VertexAttrib1dNV" offset="603" vectorequiv="VertexAttrib1dvNV">
+    <function name="VertexAttrib1sNV" offset="assign" vectorequiv="VertexAttrib1svNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLdouble"/>
+        <param name="x" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1dvNV" offset="604">
+    <function name="VertexAttrib1svNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="1"/>
-       <glx rop="4197" doubles_in_order="true"/>
+        <param name="v" type="const GLshort *" count="1"/>
+        <glx rop="4265"/>
     </function>
 
-    <function name="VertexAttrib1fNV" offset="605" vectorequiv="VertexAttrib1fvNV">
+    <function name="VertexAttrib2sNV" offset="assign" vectorequiv="VertexAttrib2svNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLfloat"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1fvNV" offset="606">
+    <function name="VertexAttrib2svNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="1"/>
-       <glx rop="4193"/>
+        <param name="v" type="const GLshort *" count="2"/>
+        <glx rop="4266"/>
     </function>
 
-    <function name="VertexAttrib1sNV" offset="607" vectorequiv="VertexAttrib1svNV">
+    <function name="VertexAttrib3sNV" offset="assign" vectorequiv="VertexAttrib3svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1svNV" offset="608">
+    <function name="VertexAttrib3svNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="1"/>
-       <glx rop="4189"/>
+        <param name="v" type="const GLshort *" count="3"/>
+        <glx rop="4267"/>
     </function>
 
-    <function name="VertexAttrib2dNV" offset="609" vectorequiv="VertexAttrib2dvNV">
+    <function name="VertexAttrib4sNV" offset="assign" vectorequiv="VertexAttrib4svNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLdouble"/>
-        <param name="y" type="GLdouble"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+        <param name="w" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib2dvNV" offset="610">
+    <function name="VertexAttrib4svNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="2"/>
-       <glx rop="4198" doubles_in_order="true"/>
+        <param name="v" type="const GLshort *" count="4"/>
+        <glx rop="4268"/>
     </function>
 
-    <function name="VertexAttrib2fNV" offset="611" vectorequiv="VertexAttrib2fvNV">
+    <function name="VertexAttrib1fNV" offset="assign" vectorequiv="VertexAttrib1fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
-        <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2fvNV" offset="612">
+    <function name="VertexAttrib1fvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="2"/>
-       <glx rop="4194"/>
+        <param name="v" type="const GLfloat *" count="1"/>
+        <glx rop="4269"/>
     </function>
 
-    <function name="VertexAttrib2sNV" offset="613" vectorequiv="VertexAttrib2svNV">
+    <function name="VertexAttrib2fNV" offset="assign" vectorequiv="VertexAttrib2fvNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2svNV" offset="614">
+    <function name="VertexAttrib2fvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="2"/>
-       <glx rop="4190"/>
+        <param name="v" type="const GLfloat *" count="2"/>
+        <glx rop="4270"/>
     </function>
 
-    <function name="VertexAttrib3dNV" offset="615" vectorequiv="VertexAttrib3dvNV">
+    <function name="VertexAttrib3fNV" offset="assign" vectorequiv="VertexAttrib3fvNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLdouble"/>
-        <param name="y" type="GLdouble"/>
-        <param name="z" type="GLdouble"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3dvNV" offset="616">
+    <function name="VertexAttrib3fvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="3"/>
-       <glx rop="4199" doubles_in_order="true"/>
+        <param name="v" type="const GLfloat *" count="3"/>
+        <glx rop="4271"/>
     </function>
 
-    <function name="VertexAttrib3fNV" offset="617" vectorequiv="VertexAttrib3fvNV">
+    <function name="VertexAttrib4fNV" offset="assign" vectorequiv="VertexAttrib4fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
+        <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3fvNV" offset="618">
+    <function name="VertexAttrib4fvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="3"/>
-       <glx rop="4195"/>
+        <param name="v" type="const GLfloat *" count="4"/>
+        <glx rop="4272"/>
     </function>
 
-    <function name="VertexAttrib3sNV" offset="619" vectorequiv="VertexAttrib3svNV">
+    <function name="VertexAttrib1dNV" offset="assign" vectorequiv="VertexAttrib1dvNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
-        <param name="z" type="GLshort"/>
+        <param name="x" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib3svNV" offset="620">
+    <function name="VertexAttrib1dvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="3"/>
-       <glx rop="4191"/>
+        <param name="v" type="const GLdouble *" count="1"/>
+        <glx rop="4273" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4dNV" offset="621" vectorequiv="VertexAttrib4dvNV">
+    <function name="VertexAttrib2dNV" offset="assign" vectorequiv="VertexAttrib2dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
-        <param name="z" type="GLdouble"/>
-        <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4dvNV" offset="622">
+    <function name="VertexAttrib2dvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="4"/>
-       <glx rop="4200" doubles_in_order="true"/>
+        <param name="v" type="const GLdouble *" count="2"/>
+        <glx rop="4274" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4fNV" offset="623" vectorequiv="VertexAttrib4fvNV">
+    <function name="VertexAttrib3dNV" offset="assign" vectorequiv="VertexAttrib3dvNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLfloat"/>
-        <param name="y" type="GLfloat"/>
-        <param name="z" type="GLfloat"/>
-        <param name="w" type="GLfloat"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4fvNV" offset="624">
+    <function name="VertexAttrib3dvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="4"/>
-       <glx rop="4196"/>
+        <param name="v" type="const GLdouble *" count="3"/>
+        <glx rop="4275" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4sNV" offset="625" vectorequiv="VertexAttrib4svNV">
+    <function name="VertexAttrib4dNV" offset="assign" vectorequiv="VertexAttrib4dvNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
-        <param name="z" type="GLshort"/>
-        <param name="w" type="GLshort"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+        <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4svNV" offset="626">
+    <function name="VertexAttrib4dvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="4"/>
-       <glx rop="4192"/>
+        <param name="v" type="const GLdouble *" count="4"/>
+        <glx rop="4276" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4ubNV" offset="627" vectorequiv="VertexAttrib4ubvNV">
+    <function name="VertexAttrib4ubNV" offset="assign" vectorequiv="VertexAttrib4ubvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLubyte"/>
         <param name="y" type="GLubyte"/>
         <param name="w" type="GLubyte"/>
     </function>
 
-    <function name="VertexAttrib4ubvNV" offset="628">
+    <function name="VertexAttrib4ubvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
-       <glx rop="4201"/>
+        <glx rop="4277"/>
     </function>
 
-    <function name="VertexAttribs1dvNV" offset="629">
+    <function name="VertexAttribs1svNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLdouble *"/>
-       <glx rop="4210" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLshort *" count="n"/>
+        <glx rop="4202"/>
     </function>
 
-    <function name="VertexAttribs1fvNV" offset="630">
+    <function name="VertexAttribs2svNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLfloat *"/>
-       <glx rop="4206" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLshort *" count="n" count_scale="2"/>
+        <glx rop="4203"/>
     </function>
 
-    <function name="VertexAttribs1svNV" offset="631">
+    <function name="VertexAttribs3svNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLshort *"/>
-       <glx rop="4202" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLshort *" count="n" count_scale="3"/>
+        <glx rop="4204"/>
     </function>
 
-    <function name="VertexAttribs2dvNV" offset="632">
+    <function name="VertexAttribs4svNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLdouble *"/>
-       <glx rop="4211" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLshort *" count="n" count_scale="4"/>
+        <glx rop="4205"/>
     </function>
 
-    <function name="VertexAttribs2fvNV" offset="633">
+    <function name="VertexAttribs1fvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLfloat *"/>
-       <glx rop="4207" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLfloat *" count="n"/>
+        <glx rop="4206"/>
     </function>
 
-    <function name="VertexAttribs2svNV" offset="634">
+    <function name="VertexAttribs2fvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLshort *"/>
-       <glx rop="4203" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLfloat *" count="n" count_scale="2"/>
+        <glx rop="4207"/>
     </function>
 
-    <function name="VertexAttribs3dvNV" offset="635">
+    <function name="VertexAttribs3fvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLdouble *"/>
-       <glx rop="4212" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLfloat *" count="n" count_scale="3"/>
+        <glx rop="4208"/>
     </function>
 
-    <function name="VertexAttribs3fvNV" offset="636">
+    <function name="VertexAttribs4fvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLfloat *"/>
-       <glx rop="4208" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLfloat *" count="n" count_scale="4"/>
+        <glx rop="4209"/>
     </function>
 
-    <function name="VertexAttribs3svNV" offset="637">
+    <function name="VertexAttribs1dvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLshort *"/>
-       <glx rop="4204" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLdouble *" count="n"/>
+        <glx rop="4210" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs4dvNV" offset="638">
+    <function name="VertexAttribs2dvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLdouble *"/>
-       <glx rop="4213" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLdouble *" count="n" count_scale="2"/>
+        <glx rop="4211" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs4fvNV" offset="639">
+    <function name="VertexAttribs3dvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLfloat *"/>
-       <glx rop="4209" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLdouble *" count="n" count_scale="3"/>
+        <glx rop="4212" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs4svNV" offset="640">
+    <function name="VertexAttribs4dvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLshort *"/>
-       <glx rop="4205" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLdouble *" count="n" count_scale="4"/>
+        <glx rop="4213" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs4ubvNV" offset="641">
+    <function name="VertexAttribs4ubvNV" offset="assign">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLubyte *"/>
-       <glx rop="4214" handcode="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLubyte *" count="n" count_scale="4"/>
+        <glx rop="4214"/>
     </function>
 </category>
 
 <!-- Extension number 234 is a GLX extension. -->
+
+<category name="GL_SGIX_texture_coordinate_clamp" number="235">
+    <enum name="TEXTURE_MAX_CLAMP_S_SGIX"      count="1"  value="0x8369">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_MAX_CLAMP_T_SGIX"      count="1"  value="0x836A">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_MAX_CLAMP_R_SGIX"      count="1"  value="0x836B">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+</category>
+
 <!-- Extension number 236 is not listed in the extension registry. -->
 <!-- Extension number 237 is a GLX extension. -->
 <!-- Extension number 238 is a GLX extension. -->
 <!-- Extension number 242 is a WGL extension. -->
+
+<category name="GL_NV_copy_depth_to_color" number="243">
+    <enum name="DEPTH_STENCIL_TO_RGBA_NV"                 value="0x886E"/>
+    <enum name="DEPTH_STENCIL_TO_BGRA_NV"                 value="0x886F"/>
+</category>
+
+<category name="GL_ATI_fragment_shader" number="245">
+    <function name="GenFragmentShadersATI" offset="assign">
+      <return type="GLuint"/>
+      <param name="range" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+    
+    <function name="BindFragmentShaderATI" offset="assign">
+      <param name="id" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="DeleteFragmentShaderATI" offset="assign">
+      <param name="id" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="BeginFragmentShaderATI" offset="assign">
+      <glx ignore="true"/>
+    </function>
+
+    <function name="EndFragmentShaderATI" offset="assign">
+      <glx ignore="true"/>
+    </function>
+    
+    <function name="PassTexCoordATI" offset="assign">
+      <param name="dst" type="GLuint"/>
+      <param name="coord" type="GLuint"/>
+      <param name="swizzle" type="GLenum"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="SampleMapATI" offset="assign">
+      <param name="dst" type="GLuint"/>
+      <param name="interp" type="GLuint"/>
+      <param name="swizzle" type="GLenum"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="ColorFragmentOp1ATI" offset="assign">
+      <param name="op" type="GLenum"/>
+      <param name="dst" type="GLuint"/>
+      <param name="dstMask" type="GLuint"/>
+      <param name="dstMod" type="GLuint"/>
+      <param name="arg1" type="GLuint"/>
+      <param name="arg1Rep" type="GLuint"/>
+      <param name="arg1Mod" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="ColorFragmentOp2ATI" offset="assign">
+      <param name="op" type="GLenum"/>
+      <param name="dst" type="GLuint"/>
+      <param name="dstMask" type="GLuint"/>
+      <param name="dstMod" type="GLuint"/>
+      <param name="arg1" type="GLuint"/>
+      <param name="arg1Rep" type="GLuint"/>
+      <param name="arg1Mod" type="GLuint"/>
+      <param name="arg2" type="GLuint"/>
+      <param name="arg2Rep" type="GLuint"/>
+      <param name="arg2Mod" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="ColorFragmentOp3ATI" offset="assign">
+      <param name="op" type="GLenum"/>
+      <param name="dst" type="GLuint"/>
+      <param name="dstMask" type="GLuint"/>
+      <param name="dstMod" type="GLuint"/>
+      <param name="arg1" type="GLuint"/>
+      <param name="arg1Rep" type="GLuint"/>
+      <param name="arg1Mod" type="GLuint"/>
+      <param name="arg2" type="GLuint"/>
+      <param name="arg2Rep" type="GLuint"/>
+      <param name="arg2Mod" type="GLuint"/>
+      <param name="arg3" type="GLuint"/>
+      <param name="arg3Rep" type="GLuint"/>
+      <param name="arg3Mod" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="AlphaFragmentOp1ATI" offset="assign">
+      <param name="op" type="GLenum"/>
+      <param name="dst" type="GLuint"/>
+      <param name="dstMod" type="GLuint"/>
+      <param name="arg1" type="GLuint"/>
+      <param name="arg1Rep" type="GLuint"/>
+      <param name="arg1Mod" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="AlphaFragmentOp2ATI" offset="assign">
+      <param name="op" type="GLenum"/>
+      <param name="dst" type="GLuint"/>
+      <param name="dstMod" type="GLuint"/>
+      <param name="arg1" type="GLuint"/>
+      <param name="arg1Rep" type="GLuint"/>
+      <param name="arg1Mod" type="GLuint"/>
+      <param name="arg2" type="GLuint"/>
+      <param name="arg2Rep" type="GLuint"/>
+      <param name="arg2Mod" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="AlphaFragmentOp3ATI" offset="assign">
+      <param name="op" type="GLenum"/>
+      <param name="dst" type="GLuint"/>
+      <param name="dstMod" type="GLuint"/>
+      <param name="arg1" type="GLuint"/>
+      <param name="arg1Rep" type="GLuint"/>
+      <param name="arg1Mod" type="GLuint"/>
+      <param name="arg2" type="GLuint"/>
+      <param name="arg2Rep" type="GLuint"/>
+      <param name="arg2Mod" type="GLuint"/>
+      <param name="arg3" type="GLuint"/>
+      <param name="arg3Rep" type="GLuint"/>
+      <param name="arg3Mod" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="SetFragmentShaderConstantATI" offset="assign">
+      <param name="dst" type="GLuint"/>
+      <param name="value" type="const GLfloat *"/>
+      <glx ignore="true"/>
+    </function>
+</category>
+
 <!-- Extension number 250 is a WGL extension. -->
 <!-- Extension number 251 is a WGL extension. -->
 <!-- Extension number 252 is a WGL extension. -->
 <!-- Extension number 254 is a WGL extension. -->
 <!-- Extension number 255 is a WGL extension. -->
 
+<category name="GL_SUN_mesh_array" number="257">
+    <enum name="QUAD_MESH_SUN"                            value="0x8614"/>
+    <enum name="TRIANGLE_MESH_SUN"                        value="0x8615"/>
+
+    <function name="DrawMeshArraysSUN">
+        <param name="mode" type="GLenum"/>
+        <param name="first" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="width" type="GLsizei"/>
+    </function>
+</category>
+
+<category name="GL_SUN_slice_accum" number="258">
+    <enum name="SLICE_ACCUM_SUN"                          value="0x85CC"/>
+</category>
+
+<category name="GL_NV_multisample_filter_hint" number="259">
+    <enum name="MULTISAMPLE_FILTER_HINT_NV"    count="1"  value="0x8534">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_NV_depth_clamp" number="260">
+    <enum name="DEPTH_CLAMP_NV"                count="1"  value="0x864F">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_NV_point_sprite" number="262">
-    <function name="PointParameteriNV" offset="642">
+    <!-- These existing enums can be passed as a parameter to the function
+         added for this extension. -->
+
+    <enum name="POINT_SIZE_MIN_EXT"            count="1"  value="0x8126">
+        <size name="PointParameterivNV"/>
+    </enum>
+    <enum name="POINT_SIZE_MAX_EXT"            count="1"  value="0x8127">
+        <size name="PointParameterivNV"/>
+    </enum>
+    <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1"  value="0x8128">
+        <size name="PointParameterivNV"/>
+    </enum>
+    <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129">
+        <size name="PointParameterivNV"/>
+    </enum>
+
+    <enum name="POINT_SPRITE_NV"               count="1"  value="0x8861">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COORD_REPLACE_NV"              count="1"  value="0x8862">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="POINT_SPRITE_R_MODE_NV"        count="1"  value="0x8863">
+        <size name="PointParameterfvEXT"/>
+        <size name="PointParameterivNV"/>
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="PointParameteriNV" offset="assign">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint"/>
-       <glx rop="4221"/>
+        <param name="param" type="GLint"/>
+        <glx rop="4221"/>
     </function>
 
-    <function name="PointParameterivNV" offset="643">
+    <function name="PointParameterivNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
-       <glx rop="4222"/>
+        <glx rop="4222"/>
     </function>
 </category>
 
 <!-- Extension number 263 is a WGL extension. -->
 <!-- Extension number 264 is a WGL extension. -->
 
-<category name="EXT_stencil_two_side" number="268">
-    <function name="ActiveStencilFaceEXT" offset="646">
+<category name="GL_EXT_shadow_funcs" number="267">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_EXT_stencil_two_side" number="268">
+    <enum name="STENCIL_TEST_TWO_SIDE_EXT"     count="1"  value="0x8910">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACTIVE_STENCIL_FACE_EXT"       count="1"  value="0x8911">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="ActiveStencilFaceEXT" offset="assign" static_dispatch="false">
         <param name="face" type="GLenum"/>
-       <glx rop="4220"/>
+        <glx rop="4220"/>
     </function>
 </category>
 
+<xi:include href="APPLE_vertex_array_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<category name="GL_APPLE_ycbcr_422" number="275">
+    <enum name="YCBCR_422_APPLE"                          value="0x85B9"/>
+    <enum name="UNSIGNED_SHORT_8_8_APPLE"                 value="0x85BA"/>
+    <enum name="UNSIGNED_SHORT_8_8_REV_APPLE"             value="0x85BB"/>
+</category>
+
+<category name="GL_S3_s3tc" number="276">
+    <enum name="RGB_S3TC"                                 value="0x83A0"/>
+    <enum name="RGB4_S3TC"                                value="0x83A1"/>
+    <enum name="RGBA_S3TC"                                value="0x83A2"/>
+    <enum name="RGBA4_S3TC"                               value="0x83A3"/>
+    <enum name="RGBA_DXT5_S3TC"                           value="0x83A4"/>
+    <enum name="RGBA4_DXT5_S3TC"                          value="0x83A5"/>
+</category>
+
 <category name="GL_ATI_draw_buffers" number="277">
-    <function name="DrawBuffersATI" offset="?">
-        <param name="n" type="GLsizei"/>
-       <param name="bufs" type="const GLenum *"/>
-       <glx handcode="true"/>
+    <enum name="MAX_DRAW_BUFFERS_ATI"          count="1"  value="0x8824">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER0_ATI"              count="1"  value="0x8825">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER1_ATI"              count="1"  value="0x8826">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER2_ATI"              count="1"  value="0x8827">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER3_ATI"              count="1"  value="0x8828">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER4_ATI"              count="1"  value="0x8829">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER5_ATI"              count="1"  value="0x882A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER6_ATI"              count="1"  value="0x882B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER7_ATI"              count="1"  value="0x882C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER8_ATI"              count="1"  value="0x882D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER9_ATI"              count="1"  value="0x882E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER10_ATI"             count="1"  value="0x882F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER11_ATI"             count="1"  value="0x8830">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER12_ATI"             count="1"  value="0x8831">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER13_ATI"             count="1"  value="0x8832">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER14_ATI"             count="1"  value="0x8833">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER15_ATI"             count="1"  value="0x8834">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="DrawBuffersATI" alias="DrawBuffersARB">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="bufs" type="const GLenum *" count="n"/>
     </function>
 </category>
 
 <!-- Extension number 278 is a WGL extension. -->
 
+<category name="GL_ATI_texture_env_combine3" number="279">
+    <enum name="MODULATE_ADD_ATI"                         value="0x8744"/>
+    <enum name="MODULATE_SIGNED_ADD_ATI"                  value="0x8745"/>
+    <enum name="MODULATE_SUBTRACT_ATI"                    value="0x8746"/>
+</category>
+
 <category name="GL_NV_fragment_program" number="282">
-    <function name="ProgramNamedParameter4fNV" offset="682" vectorequiv="ProgramNamedParameter4fvNV">
+    <function name="ProgramNamedParameter4fNV" offset="assign" vectorequiv="ProgramNamedParameter4fvNV">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
-       <glx rop="4218" handcode="true"/>
     </function>
 
-    <function name="ProgramNamedParameter4dNV" offset="683" vectorequiv="ProgramNamedParameter4dvNV">
+    <function name="ProgramNamedParameter4dNV" offset="assign" vectorequiv="ProgramNamedParameter4dvNV">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *" variable_param="len"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramNamedParameter4fvNV" offset="684">
+    <function name="ProgramNamedParameter4fvNV" offset="assign">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
-        <param name="v" type="const GLfloat *"/>
-       <glx rop="4218" handcode="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
+        <param name="v" type="const GLfloat *" count="4"/>
+        <glx rop="4218"/>
     </function>
 
-    <function name="ProgramNamedParameter4dvNV" offset="685">
+    <function name="ProgramNamedParameter4dvNV" offset="assign">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
-        <param name="v" type="const GLdouble *"/>
-       <glx rop="4219" handcode="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
+        <param name="v" type="const GLdouble *" count="4"/>
+        <glx rop="4219"/>
     </function>
 
-    <function name="GetProgramNamedParameterfvNV" offset="686">
+    <function name="GetProgramNamedParameterfvNV" offset="assign">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
-        <param name="params" type="GLfloat *"/>
-       <glx vendorpriv="1310" handcode="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
+        <param name="params" type="GLfloat *" output="true" count="4"/>
+        <glx vendorpriv="1310" always_array="true"/>
     </function>
 
-    <function name="GetProgramNamedParameterdvNV" offset="687">
+    <function name="GetProgramNamedParameterdvNV" offset="assign">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
-        <param name="params" type="GLdouble *"/>
-       <glx vendorpriv="1311" handcode="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
+        <param name="params" type="GLdouble *" output="true" count="4"/>
+        <glx vendorpriv="1311" always_array="true"/>
     </function>
 </category>
 
+<category name="GL_NV_texture_expand_normal" number="286">
+    <enum name="TEXTURE_UNSIGNED_REMAP_MODE_NV" count="1" value="0x888F">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_OES_compressed_paletted_texture" number="294">
+    <enum name="PALETTE4_RGB8_OES"                        value="0x8B90"/>
+    <enum name="PALETTE4_RGBA8_OES"                       value="0x8B91"/>
+    <enum name="PALETTE4_R5_G6_B5_OES"                    value="0x8B92"/>
+    <enum name="PALETTE4_RGBA4_OES"                       value="0x8B93"/>
+    <enum name="PALETTE4_RGB5_A1_OES"                     value="0x8B94"/>
+    <enum name="PALETTE8_RGB8_OES"                        value="0x8B95"/>
+    <enum name="PALETTE8_RGBA8_OES"                       value="0x8B96"/>
+    <enum name="PALETTE8_R5_G6_B5_OES"                    value="0x8B97"/>
+    <enum name="PALETTE8_RGBA4_OES"                       value="0x8B98"/>
+    <enum name="PALETTE8_RGB5_A1_OES"                     value="0x8B99"/>
+</category>
+
+<category name="GL_OES_read_format" number="295">
+    <enum name="IMPLEMENTATION_COLOR_READ_TYPE_OES"       value="0x8B9A"/>
+    <enum name="IMPLEMENTATION_COLOR_READ_FORMAT_OES"     value="0x8B9B"/>
+</category>
+
 <category name="GL_EXT_depth_bounds_test" number="297">
-    <function name="DepthBoundsEXT" offset="699">
+    <enum name="DEPTH_BOUNDS_TEST_EXT"         count="1"  value="0x8890">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_BOUNDS_EXT"              count="2"  value="0x8891">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="DepthBoundsEXT" offset="assign" static_dispatch="false">
         <param name="zmin" type="GLclampd"/>
         <param name="zmax" type="GLclampd"/>
-       <glx rop="4229"/>
+        <glx rop="4229" ignore="true"/>
     </function>
 </category>
 
+<category name="GL_EXT_texture_mirror_clamp" number="298">
+    <enum name="MIRROR_CLAMP_EXT"                         value="0x8742"/>
+    <enum name="MIRROR_CLAMP_TO_EDGE_EXT"                 value="0x8743"/>
+    <enum name="MIRROR_CLAMP_TO_BORDER_EXT"               value="0x8912"/>
+</category>
+
 <category name="GL_EXT_blend_equation_separate" number="299">
-    <function name="BlendEquationSeparateEXT" offset="710">
+    <enum name="BLEND_EQUATION_RGB_EXT"        count="1"  value="0x8009">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_EQUATION_ALPHA_EXT"      count="1"  value="0x883D">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="BlendEquationSeparateEXT" offset="assign" static_dispatch="false">
         <param name="modeRGB" type="GLenum"/>
         <param name="modeA" type="GLenum"/>
-       <glx rop="4228"/>
+        <glx rop="4228"/>
     </function>
 </category>
 
+<category name="GL_MESA_pack_invert" number="300">
+    <enum name="PACK_INVERT_MESA"              count="1"  value="0x8758">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_MESA_ycbcr_texture" number="301">
+    <enum name="YCBCR_MESA"                               value="0x8757"/>
+    <enum name="UNSIGNED_SHORT_8_8_MESA"                  value="0x85BA"/>
+    <enum name="UNSIGNED_SHORT_8_8_REV_MESA"              value="0x85BB"/>
+</category>
+
+<category name="GL_EXT_pixel_buffer_object" number="302">
+    <enum name="PIXEL_PACK_BUFFER_EXT"                    value="0x88EB"/>
+    <enum name="PIXEL_UNPACK_BUFFER_EXT"                  value="0x88EC"/>
+    <enum name="PIXEL_PACK_BUFFER_BINDING_EXT"            value="0x88ED"/>
+    <enum name="PIXEL_UNPACK_BUFFER_BINDING_EXT"          value="0x88EF"/>
+</category>
+
+<category name="GL_NV_fragment_program_option" number="303">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_NV_fragment_program2" number="304">
+    <enum name="MAX_PROGRAM_EXEC_INSTRUCTIONS_NV" count="1" value="0x88F4">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_CALL_DEPTH_NV"      count="1"  value="0x88F5">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_IF_DEPTH_NV"        count="1"  value="0x88F6">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_LOOP_DEPTH_NV"      count="1"  value="0x88F7">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_LOOP_COUNT_NV"      count="1"  value="0x88F8">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_NV_vertex_program2_option" number="305">
+    <enum name="MAX_PROGRAM_EXEC_INSTRUCTIONS_NV" count="1" value="0x88F4">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_CALL_DEPTH_NV"      count="1"  value="0x88F5">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_NV_vertex_program3" number="306">
+    <enum name="MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB" count="1" value="0x8B4C"/>
+</category>
+
+<!-- Extension number 307 is a GLX extension. -->
+<!-- Extension number 308 is a GLX extension. -->
+
+<category name="GL_EXT_texture_compression_dxt1" number="309">
+    <enum name="COMPRESSED_RGB_S3TC_DXT1_EXT"             value="0x83F0"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT1_EXT"            value="0x83F1"/>
+</category>
+
+<xi:include href="EXT_framebuffer_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<category name="GL_EXT_framebuffer_blit" number="316">
+    <enum name="READ_FRAMEBUFFER_EXT" value="0x8CA8"/>
+    <enum name="DRAW_FRAMEBUFFER_EXT" value="0x8CA9"/>
+    <enum name="DRAW_FRAMEBUFFER_BINDING_EXT" value="0x8CA6"/>
+    <enum name="READ_FRAMEBUFFER_BINDING_EXT" value="0x8CAA"/>
+    <function name="BlitFramebufferEXT" offset="assign" static_dispatch="false">
+        <param name="srcX0" type="GLint"/>
+        <param name="srcY0" type="GLint"/>
+        <param name="srcX1" type="GLint"/>
+        <param name="srcY1" type="GLint"/>
+        <param name="dstX0" type="GLint"/>
+        <param name="dstY0" type="GLint"/>
+        <param name="dstX1" type="GLint"/>
+        <param name="dstY1" type="GLint"/>
+        <param name="mask" type="GLbitfield"/>
+        <param name="filter" type="GLenum"/>
+    </function>
+</category>
 
 <!-- Unnumbered extensions sorted by name. -->
 
 <category name="GL_ATI_blend_equation_separate">
-    <function name="BlendEquationSeparateATI" alias="BlendEquationSeparateEXT">
+    <function name="BlendEquationSeparateATI" alias="BlendEquationSeparateEXT" static_dispatch="false">
         <param name="modeRGB" type="GLenum"/>
         <param name="modeA" type="GLenum"/>
     </function>
 </category>
 
+<category name="GL_EXT_gpu_program_parameters">
+    <function name="ProgramEnvParameters4fvEXT" offset="assign" static_dispatch="false">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+
+    <function name="ProgramLocalParameters4fvEXT" offset="assign" static_dispatch="false">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+</category>
+
+<category name="GL_EXT_timer_query">
+    <enum name="TIME_ELAPSED_EXT" value="0x88BF"/>
+    <type name="int64EXT"                  size="8"/>
+    <type name="uint64EXT" unsigned="true" size="8"/>
+    <function name="GetQueryObjecti64vEXT" offset="assign" static_dispatch="false">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint64EXT *"/>
+    </function>
+    <function name="GetQueryObjectui64vEXT" offset="assign" static_dispatch="false">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLuint64EXT *"/>
+    </function>
+</category>
+
 <category name="GL_INGR_blend_func_separate">
-    <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparateEXT">
+    <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparateEXT" static_dispatch="false">
         <param name="sfactorRGB" type="GLenum"/>
         <param name="dfactorRGB" type="GLenum"/>
         <param name="sfactorAlpha" type="GLenum"/>
     </function>
 </category>
 
+<category name="GL_MESA_shader_debug">
+    <enum name="DEBUG_OBJECT_MESA"                        value="0x8759"/>
+    <enum name="DEBUG_PRINT_MESA"                         value="0x875A"/>
+    <enum name="DEBUG_ASSERT_MESA"                        value="0x875B"/>
+    <function name="CreateDebugObjectMESA">
+        <return type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="ClearDebugLogMESA">
+        <param name="obj" type="GLhandleARB"/>
+        <param name="logType" type="GLenum"/>
+        <param name="shaderType" type="GLenum"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="GetDebugLogMESA">
+        <param name="obj" type="GLhandleARB"/>
+        <param name="logType" type="GLenum"/>
+        <param name="shaderType" type="GLenum"/>
+        <param name="maxLength" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="debugLog" type="GLcharARB *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="GetDebugLogLengthMESA">
+        <return type="GLsizei"/>
+        <param name="obj" type="GLhandleARB"/>
+        <param name="logType" type="GLenum"/>
+        <param name="shaderType" type="GLenum"/>
+        <glx ignore="true"/>
+    </function>
+</category>
+
 <category name="GL_SGIS_point_parameters">
-    <function name="PointParameterfSGIS" alias="PointParameterfEXT">
+    <enum name="POINT_SIZE_MIN_SGIS"           count="1"  value="0x8126">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_SIZE_MAX_SGIS"           count="1"  value="0x8127">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_FADE_THRESHOLD_SIZE_SGIS" count="1" value="0x8128">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+    <enum name="POINT_DISTANCE_ATTENUATION_SGIS" count="3" value="0x8129">
+        <size name="PointParameterfvEXT"/>
+    </enum>
+
+    <function name="PointParameterfSGIS" alias="PointParameterfEXT" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
     </function>
 
-    <function name="PointParameterfvSGIS" alias="PointParameterfvEXT">
+    <function name="PointParameterfvSGIS" alias="PointParameterfvEXT" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 </category>
 
 <category name="GL_SGIX_igloo_interface">
-    <function name="IglooInterfaceSGIX" offset="?">
+    <function name="IglooInterfaceSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLvoid *"/>
     </function>
 </category>
 
 <category name="GL_SGIX_polynomial_ffd">
-    <function name="DeformationMap3dSGIX" offset="?">
+    <function name="DeformationMap3dSGIX">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
         <param name="points" type="const GLdouble *"/>
     </function>
 
-    <function name="DeformationMap3fSGIX" offset="?">
+    <function name="DeformationMap3fSGIX">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
         <param name="points" type="const GLfloat *"/>
     </function>
 
-    <function name="DeformSGIX" offset="?">
+    <function name="DeformSGIX">
         <param name="mask" type="GLenum"/>
     </function>
 
-    <function name="LoadIdentityDeformationMapSGIX" offset="?">
+    <function name="LoadIdentityDeformationMapSGIX">
         <param name="mask" type="GLenum"/>
     </function>
 </category>
 
-<category name="unused">
-    <function name="__unused413" offset="413">
-       <glx ignore="true"/>
-    </function>
-</category>
-
 </OpenGLAPI>