No GLX protocol for GL_ATI_fragment_shader.
[mesa.git] / src / mesa / glapi / gl_API.xml
index 03048c281cab2b3e855ee62ccb3b86d065c71a66..d87813600cec917b81f5011195fb0f7ba2ab6330 100644 (file)
 <!ATTLIST param    name   CDATA #REQUIRED
                    type   CDATA #REQUIRED
                    count  CDATA #IMPLIED
+                   counter  CDATA #IMPLIED
+                   count_scale  CDATA #IMPLIED
+                   output   CDATA #IMPLIED
                    variable_param  CDATA #IMPLIED>
 <!ATTLIST return   type     CDATA #REQUIRED>
 <!ATTLIST glx      rop      CDATA #IMPLIED
                    sop      CDATA #IMPLIED
+                   vendorpriv  CDATA #IMPLIED
                    large    CDATA #IMPLIED
-                  doubles_in_order CDATA #IMPLIED
+                   doubles_in_order CDATA #IMPLIED
+                   always_array CDATA #IMPLIED
                    handcode CDATA #IMPLIED
                    ignore   CDATA #IMPLIED>
 ]>
 
+<!--
+The various attributes for param and glx have the meanings listed below.
+When adding new functions, please annote them correct.  In most cases this
+will just mean adding a '<glx ignore="true"/>' tag.
+    
+param:
+     name - name of the parameter
+     type - fully qualified type (e.g., with "const", etc.)
+     count - for counted arrays (e.g., the 'lists' parameter to glCallLists),
+         the parameter or literal that represents the count.  For functions
+        like glVertex3fv it will be a litteral, for others it will be one of
+        the parameters.
+     counter - this parameter is a counter that will be referenced by the
+         'count' attribute in another parameter.
+     count_scale - literal value scale factor for the 'count' attribute.
+         See ProgramParameters4dvNV for an example.
+     output - this parameter is used to store the output of the function.
+     variable_param - name of parameter used to determine the number of
+         elements referenced by this parameter.  This should be the name of a
+         single enum parameter.  Most of the gl*Parameter[if]v functions use
+        this.  Additionally, the enums that can be passed should be properly
+        annotated.
+
+glx:
+     rop - Opcode value for "render" commands
+     sop - Opcode value for "single" commands
+     vendorpriv - Opcode value for vendor private (or vendor private with
+         reply) commands
+     large - set to "true" of the render command can use RenderLarge protocol.
+     doubles_in_order - older commands always put GLdouble data at the
+         start of the render packet.  Newer commands (e.g., 
+         ProgramEnvParameter4dvARB) put the in the order that they appear
+         in the parameter list.
+     always_array - some single commands take reply data as an array or as
+         return value data (e.g., glGetLightfv).  Other single commands take
+         reply data only as an array (e.g., glGetClipPlane).
+     handcode - some functions are just too complicated to generate 
+         (e.g., glTexImage2D) or operate only on client-side data (e.g.,
+         glVertexPointer) and must be handcoded.
+     ignore - some functions have an entry in the dispatch table, but aren't
+         suitable for protocol implementation (e.g., glLockArraysEXT).  This
+        also applies to functions that don't have any GLX protocol specified
+        (e.g., glGetFogFuncSGIS).
+-->
+
 <OpenGLAPI>
 
 <!-- Core versions sorted by version number. -->
     <enum name="ACCUM_ALPHA_BITS"                         value="0x0D5B"/>
     <enum name="NAME_STACK_DEPTH"                         value="0x0D70"/>
     <enum name="AUTO_NORMAL"                              value="0x0D80"/>
-    <enum name="MAP1_COLOR_4"                             value="0x0D90"/>
-    <enum name="MAP1_INDEX"                               value="0x0D91"/>
-    <enum name="MAP1_NORMAL"                              value="0x0D92"/>
-    <enum name="MAP1_TEXTURE_COORD_1"                     value="0x0D93"/>
-    <enum name="MAP1_TEXTURE_COORD_2"                     value="0x0D94"/>
-    <enum name="MAP1_TEXTURE_COORD_3"                     value="0x0D95"/>
-    <enum name="MAP1_TEXTURE_COORD_4"                     value="0x0D96"/>
-    <enum name="MAP1_VERTEX_3"                            value="0x0D97"/>
-    <enum name="MAP1_VERTEX_4"                            value="0x0D98"/>
-    <enum name="MAP2_COLOR_4"                             value="0x0DB0"/>
-    <enum name="MAP2_INDEX"                               value="0x0DB1"/>
-    <enum name="MAP2_NORMAL"                              value="0x0DB2"/>
-    <enum name="MAP2_TEXTURE_COORD_1"                     value="0x0DB3"/>
-    <enum name="MAP2_TEXTURE_COORD_2"                     value="0x0DB4"/>
-    <enum name="MAP2_TEXTURE_COORD_3"                     value="0x0DB5"/>
-    <enum name="MAP2_TEXTURE_COORD_4"                     value="0x0DB6"/>
-    <enum name="MAP2_VERTEX_3"                            value="0x0DB7"/>
-    <enum name="MAP2_VERTEX_4"                            value="0x0DB8"/>
+    <enum name="MAP1_COLOR_4"                             value="0x0D90">
+        <size name="Map1d" count="4"/>
+        <size name="Map1f" count="4"/>
+    </enum>
+    <enum name="MAP1_INDEX"                               value="0x0D91">
+        <size name="Map1d" count="1"/>
+        <size name="Map1f" count="1"/>
+    </enum>
+    <enum name="MAP1_NORMAL"                              value="0x0D92">
+        <size name="Map1d" count="3"/>
+        <size name="Map1f" count="3"/>
+    </enum>
+    <enum name="MAP1_TEXTURE_COORD_1"                     value="0x0D93">
+        <size name="Map1d" count="1"/>
+        <size name="Map1f" count="1"/>
+    </enum>
+    <enum name="MAP1_TEXTURE_COORD_2"                     value="0x0D94">
+        <size name="Map1d" count="2"/>
+        <size name="Map1f" count="2"/>
+    </enum>
+    <enum name="MAP1_TEXTURE_COORD_3"                     value="0x0D95">
+        <size name="Map1d" count="3"/>
+        <size name="Map1f" count="3"/>
+    </enum>
+    <enum name="MAP1_TEXTURE_COORD_4"                     value="0x0D96">
+        <size name="Map1d" count="4"/>
+        <size name="Map1f" count="4"/>
+    </enum>
+    <enum name="MAP1_VERTEX_3"                            value="0x0D97">
+        <size name="Map1d" count="3"/>
+        <size name="Map1f" count="3"/>
+    </enum>
+    <enum name="MAP1_VERTEX_4"                            value="0x0D98">
+        <size name="Map1d" count="4"/>
+        <size name="Map1f" count="4"/>
+    </enum>
+    <enum name="MAP2_COLOR_4"                             value="0x0DB0">
+        <size name="Map2d" count="4"/>
+        <size name="Map2f" count="4"/>
+    </enum>
+    <enum name="MAP2_INDEX"                               value="0x0DB1">
+        <size name="Map2d" count="1"/>
+        <size name="Map2f" count="1"/>
+    </enum>
+    <enum name="MAP2_NORMAL"                              value="0x0DB2">
+        <size name="Map2d" count="3"/>
+        <size name="Map2f" count="3"/>
+    </enum>
+    <enum name="MAP2_TEXTURE_COORD_1"                     value="0x0DB3">
+        <size name="Map2d" count="1"/>
+        <size name="Map2f" count="1"/>
+    </enum>
+    <enum name="MAP2_TEXTURE_COORD_2"                     value="0x0DB4">
+        <size name="Map2d" count="2"/>
+        <size name="Map2f" count="2"/>
+    </enum>
+    <enum name="MAP2_TEXTURE_COORD_3"                     value="0x0DB5">
+        <size name="Map2d" count="3"/>
+        <size name="Map2f" count="3"/>
+    </enum>
+    <enum name="MAP2_TEXTURE_COORD_4"                     value="0x0DB6">
+        <size name="Map2d" count="4"/>
+        <size name="Map2f" count="4"/>
+    </enum>
+    <enum name="MAP2_VERTEX_3"                            value="0x0DB7">
+        <size name="Map2d" count="3"/>
+        <size name="Map2f" count="3"/>
+    </enum>
+    <enum name="MAP2_VERTEX_4"                            value="0x0DB8">
+        <size name="Map2d" count="4"/>
+        <size name="Map2f" count="4"/>
+    </enum>
     <enum name="MAP1_GRID_DOMAIN"                         value="0x0DD0"/>
     <enum name="MAP1_GRID_SEGMENTS"                       value="0x0DD1"/>
     <enum name="MAP2_GRID_DOMAIN"                         value="0x0DD2"/>
     <function name="FeedbackBuffer" offset="194">
         <param name="size" type="GLsizei"/>
         <param name="type" type="GLenum"/>
-        <param name="buffer" type="GLfloat *"/>
+        <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 *"/>
+        <param name="buffer" type="GLuint *" output="true"/>
         <glx sop="106" handcode="true"/>
     </function>
 
 
     <function name="Disable" offset="214">
         <param name="cap" type="GLenum"/>
-        <glx rop="138"/>
+        <glx rop="138" handcode="true"/>
     </function>
 
     <function name="Enable" offset="215">
         <param name="cap" type="GLenum"/>
-        <glx rop="139"/>
+        <glx rop="139" handcode="true"/>
     </function>
 
     <function name="Finish" offset="216">
     <function name="PixelMapfv" offset="251">
         <param name="map" type="GLenum"/>
         <param name="mapsize" type="GLsizei" counter="true"/>
-        <param name="values" type="const GLfloat *" count="mapsize" variable_param="map" />
+        <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 *" count="mapsize" variable_param="map" />
+        <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 *" count="mapsize" variable_param="map" />
+        <param name="mapsize" type="GLsizei" counter="true"/>
+        <param name="values" type="const GLushort *" count="mapsize"/>
         <glx rop="170" large="true"/>
     </function>
 
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="GLvoid *"/>
+        <param name="pixels" type="GLvoid *" output="true"/>
         <glx sop="111" handcode="true"/>
     </function>
 
 
     <function name="GetBooleanv" offset="258">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLboolean *"/>
+        <param name="params" type="GLboolean *" output="true"/>
         <glx sop="112" handcode="true"/>
     </function>
 
     <function name="GetClipPlane" offset="259">
         <param name="plane" type="GLenum"/>
         <param name="equation" type="GLdouble *" output="true"/>
-        <glx sop="113" handcode="true"/>
+        <glx sop="113" always_array="true"/>
     </function>
 
     <function name="GetDoublev" offset="260">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *"/>
+        <param name="params" type="GLdouble *" output="true"/>
         <glx sop="114" handcode="true"/>
     </function>
 
 
     <function name="GetFloatv" offset="262">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
         <glx sop="116" handcode="true"/>
     </function>
 
     <function name="GetIntegerv" offset="263">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx sop="117" handcode="true"/>
     </function>
 
     </function>
 
     <function name="GetPolygonStipple" offset="274">
-        <param name="mask" type="GLubyte *"/>
+        <param name="mask" type="GLubyte *" output="true"/>
         <glx sop="128" handcode="true"/>
     </function>
 
         <param name="level" type="GLint"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="GLvoid *"/>
+        <param name="pixels" type="GLvoid *" output="true"/>
         <glx sop="135" handcode="true"/>
     </function>
 
 
     <function name="GetPointerv" offset="329">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **"/>
+        <param name="params" type="GLvoid **" output="true"/>
         <glx handcode="true"/>
     </function>
 
         <param name="textures" type="const GLuint *" count="n"/>
         <param name="residences" type="GLboolean *" output="true"/>
         <return type="GLboolean"/>
-        <glx sop="143"/>
+        <glx sop="143" always_array="true"/>
     </function>
 
     <function name="BindTexture" offset="307">
     <function name="GenTextures" offset="328">
         <param name="n" type="GLsizei"/>
         <param name="textures" type="GLuint *" output="true"/>
-        <glx sop="145" handcode="true"/>
+        <glx sop="145" always_array="true"/>
     </function>
 
     <function name="IsTexture" offset="330">
     </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">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="image" type="GLvoid *"/>
+        <param name="image" type="GLvoid *" output="true"/>
         <glx sop="150" handcode="true"/>
     </function>
 
         <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 *"/>
+        <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>
 
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *"/>
+        <param name="values" type="GLvoid *" output="true"/>
         <glx sop="157" handcode="true"/>
     </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>
 
 
     <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>
 
 
     <function name="GenBuffers" alias="GenBuffersARB">
         <param name="n" type="GLsizei"/>
-        <param name="buffer" type="GLuint *"/>
+        <param name="buffer" type="GLuint *" output="true"/>
     </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"/>
     </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="data" type="GLvoid *" output="true"/>
     </function>
 
     <function name="IsBuffer" alias="IsBufferARB">
 
     <function name="GenQueries" alias="GenQueriesARB">
         <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *"/>
+        <param name="ids" type="GLuint *" output="true"/>
     </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"/>
     </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"/>
     </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"/>
     </function>
 </category>
 
     <function name="GetCompressedTexImageARB" offset="560">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
-        <param name="img" type="GLvoid *"/>
+        <param name="img" type="GLvoid *" output="true"/>
         <glx sop="160" handcode="true"/>
     </function>
 </category>
     <enum name="MATRIX30_ARB"                             value="0x88DE"/>
     <enum name="MATRIX31_ARB"                             value="0x88DF"/>
 
-    <function name="VertexAttrib1sARB" alias="VertexAttrib1sNV">
+    <function name="GetVertexAttribdvARB" offset="588">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLdouble *" output="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1fARB" alias="VertexAttrib1fNV">
+    <function name="GetVertexAttribfvARB" offset="589">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLfloat"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1dARB" alias="VertexAttrib1dNV">
+    <function name="GetVertexAttribivARB" offset="590">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib1dARB" offset="603" vectorequiv="VertexAttrib1dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2sARB" alias="VertexAttrib2sNV">
+    <function name="VertexAttrib1dvARB" offset="604">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
+        <param name="v" type="const GLdouble *" count="1"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2fARB" alias="VertexAttrib2fNV">
+    <function name="VertexAttrib1fARB" offset="605" vectorequiv="VertexAttrib1fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
-        <param name="y" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib1fvARB" offset="606">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="1"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib1sARB" offset="607" vectorequiv="VertexAttrib1svARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2dARB" alias="VertexAttrib2dNV">
+    <function name="VertexAttrib1svARB" offset="608">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="1"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib2dARB" offset="609" vectorequiv="VertexAttrib2dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3sARB" alias="VertexAttrib3sNV">
+    <function name="VertexAttrib2dvARB" offset="610">
         <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 ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3fARB" alias="VertexAttrib3fNV">
+    <function name="VertexAttrib2fARB" offset="611" vectorequiv="VertexAttrib2fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
-        <param name="z" type="GLfloat"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3dARB" alias="VertexAttrib3dNV">
+    <function name="VertexAttrib2fvARB" offset="612">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="2"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib2sARB" offset="613" vectorequiv="VertexAttrib2svARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib2svARB" offset="614">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="2"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib3dARB" offset="615" vectorequiv="VertexAttrib3dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4sARB" alias="VertexAttrib4sNV">
+    <function name="VertexAttrib3dvARB" offset="616">
         <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 ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4fARB" alias="VertexAttrib4fNV">
+    <function name="VertexAttrib3fARB" offset="617" 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"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4dARB" alias="VertexAttrib4dNV">
+    <function name="VertexAttrib3fvARB" offset="618">
         <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 ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4NubARB" alias="VertexAttrib4ubNV">
+    <function name="VertexAttrib3sARB" offset="619" 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"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1svARB" alias="VertexAttrib1svNV">
+    <function name="VertexAttrib3svARB" offset="620">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="1"/>
+        <param name="v" type="const GLshort *" count="3"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1fvARB" alias="VertexAttrib1fvNV">
+    <function name="VertexAttrib4dARB" offset="621" 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"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1dvARB" alias="VertexAttrib1dvNV">
+    <function name="VertexAttrib4dvARB" offset="622">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="1"/>
+        <param name="v" type="const GLdouble *" count="4"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2svARB" alias="VertexAttrib2svNV">
+    <function name="VertexAttrib4fARB" offset="623" 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"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2fvARB" alias="VertexAttrib2fvNV">
+    <function name="VertexAttrib4fvARB" offset="624">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="2"/>
+        <param name="v" type="const GLfloat *" count="4"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2dvARB" alias="VertexAttrib2dvNV">
+    <function name="VertexAttrib4sARB" offset="625" 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"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3svARB" alias="VertexAttrib3svNV">
+    <function name="VertexAttrib4svARB" offset="626">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="3"/>
+        <param name="v" type="const GLshort *" count="4"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3fvARB" alias="VertexAttrib3fvNV">
+    <function name="VertexAttrib4NubARB" offset="627" 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"/>
+        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3dvARB" alias="VertexAttrib3dvNV">
+    <function name="VertexAttrib4NubvARB" offset="628">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="3"/>
+        <param name="v" type="const GLubyte *" count="4"/>
+        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib4bvARB" offset="654">
         <glx rop="4230" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4svARB" alias="VertexAttrib4svNV">
-        <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="4"/>
-    </function>
-
     <function name="VertexAttrib4ivARB" offset="655">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="4234" ignore="true"/>
     </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"/>
-    </function>
-
     <function name="VertexAttrib4NbvARB" offset="659">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="4237" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4NubvARB" alias="VertexAttrib4ubvNV">
-        <param name="index" type="GLuint"/>
-        <param name="v" type="const GLubyte *" count="4"/>
-    </function>
-
     <function name="VertexAttrib4NusvARB" offset="662">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
 
     <function name="GenProgramsARB" alias="GenProgramsNV">
         <param name="n" type="GLsizei"/>
-        <param name="programs" type="GLuint *"/>
+        <param name="programs" type="GLuint *" output="true"/>
     </function>
 
     <function name="IsProgramARB" alias="IsProgramNV">
         <glx vendorpriv="1305" ignore="true"/>
     </function>
 
-    <!-- FIXME: This should alias to GetProgramivNV -->
     <function name="GetProgramivARB" offset="680">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <glx vendorpriv="1307" ignore="true"/>
     </function>
 
-    <!-- FIXME: This should alias to GetProgramStringNV -->
     <function name="GetProgramStringARB" offset="681">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="string" type="GLvoid *"/>
+        <param name="string" type="GLvoid *" output="true"/>
         <glx vendorpriv="1308" handcode="true" ignore="true"/>
     </function>
 
-    <function name="GetVertexAttribdvARB" alias="GetVertexAttribdvNV">
-        <param name="index" type="GLuint"/>
-        <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *"/>
-    </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"/>
-        <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
-    </function>
-
     <function name="GetVertexAttribPointervARB" alias="GetVertexAttribPointervNV">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **"/>
+        <param name="params" type="GLvoid **" output="true"/>
     </function>
 </category>
 
 
     <function name="GenBuffersARB" offset="692">
         <param name="n" type="GLsizei"/>
-        <param name="buffer" type="GLuint *"/>
+        <param name="buffer" type="GLuint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetBufferParameterivARB" offset="693">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetBufferPointervARB" offset="694">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **"/>
+        <param name="params" type="GLvoid **" output="true"/>
         <glx ignore="true"/>
     </function>
 
         <param name="target" type="GLenum"/>
         <param name="offset" type="GLintptrARB"/>
         <param name="size" type="GLsizeiptrARB"/>
-        <param name="data" type="GLvoid *"/>
+        <param name="data" type="GLvoid *" output="true"/>
         <glx ignore="true"/>
     </function>
 
 
     <function name="GenQueriesARB" offset="700">
         <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *"/>
+        <param name="ids" type="GLuint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetQueryivARB" offset="705">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetQueryObjectivARB" offset="706">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetQueryObjectuivARB" offset="707">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLuint *"/>
+        <param name="params" type="GLuint *" output="true"/>
         <glx ignore="true"/>
     </function>
 </category>
     <function name="GetObjectParameterfvARB" offset="741">
         <param name="obj" type="GLhandleARB"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetObjectParameterivARB" offset="742">
         <param name="obj" type="GLhandleARB"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetInfoLogARB" offset="743">
         <param name="obj" type="GLhandleARB"/>
         <param name="maxLength" type="GLsizei"/>
-        <param name="length" type="GLsizei *"/>
-        <param name="infoLog" type="GLcharARB *"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="infoLog" type="GLcharARB *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetAttachedObjectsARB" offset="744">
         <param name="containerObj" type="GLhandleARB"/>
         <param name="maxLength" type="GLsizei"/>
-        <param name="length" type="GLsizei *"/>
-        <param name="infoLog" type="GLhandleARB *"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="infoLog" type="GLhandleARB *" output="true"/>
         <glx ignore="true"/>
     </function>
 
         <param name="programObj" type="GLhandleARB"/>
         <param name="index" type="GLuint"/>
         <param name="maxLength" type="GLsizei"/>
-        <param name="lenght" type="GLsizei *"/>
-        <param name="size" type="GLint *"/>
-        <param name="type" type="GLenum *"/>
-        <param name="name" type="GLcharARB *"/>
+        <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="747">
         <param name="programObj" type="GLhandleARB"/>
         <param name="location" type="GLint"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetUniformivARB" offset="748">
         <param name="programObj" type="GLhandleARB"/>
         <param name="location" type="GLint"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetShaderSourceARB" offset="749">
         <param name="obj" type="GLhandleARB"/>
         <param name="maxLength" type="GLsizei"/>
-        <param name="length" type="GLsizei *"/>
-        <param name="source" type="GLcharARB *"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="source" type="GLcharARB *" output="true"/>
         <glx ignore="true"/>
     </function>
 </category>
         <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 *"/>
+        <param name="name" type="GLcharARB *" output="true"/>
         <glx ignore="true"/>
     </function>
 
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="image" type="GLvoid *"/>
+        <param name="image" type="GLvoid *" output="true"/>
         <glx sop="1" handcode="true" ignore="true"/>
     </function>
 
         <param name="textures" type="const GLuint *" count="n"/>
         <param name="residences" type="GLboolean *" output="true"/>
         <return type="GLboolean"/>
-        <glx vendorpriv="11"/>
+        <glx vendorpriv="11" always_array="true"/>
     </function>
 
     <function name="BindTextureEXT" alias="BindTexture">
     <function name="GenTexturesEXT" offset="440">
         <param name="n" type="GLsizei"/>
         <param name="textures" type="GLuint *" output="true"/>
-        <glx vendorpriv="13"/>
+        <glx vendorpriv="13" always_array="true"/>
     </function>
 
     <function name="IsTextureEXT" offset="441">
 <category name="GL_SGIS_sharpen_texture" number="22">
     <function name="SharpenTexFuncSGIS" offset="444">
         <param name="target" type="GLenum"/>
-        <param name="n" type="GLsizei"/>
-        <param name="points" type="const GLfloat *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'points' is 2*n.
-        -->
-        <glx rop="2052" handcode="true" ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="points" type="const GLfloat *" counter="n" count_scale="2"/>
+        <glx rop="2052" ignore="true"/>
     </function>
 
     <function name="GetSharpenTexFuncSGIS" offset="445">
 
     <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="InstrumentsBufferSGIX" offset="461">
         <param name="size" type="GLsizei"/>
-        <param name="buffer" type="GLint *"/>
+        <param name="buffer" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="PollInstrumentsSGIX" offset="462">
-        <param name="marker_p" type="GLint *"/>
+        <param name="marker_p" type="GLint *" output="true"/>
         <return type="GLint"/>
         <glx ignore="true"/>
     </function>
 
 <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"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="points" type="const GLfloat *" counter="n" count_scale="2"/>
+        <glx rop="2067" ignore="true"/>
     </function>
 
     <function name="GetFogFuncSGIS" offset="?">
     <function name="GetImageTransformParameterivHP" offset="?">
         <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="GetImageTransformParameterfvHP" offset="?">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
     </function>
 </category>
 
 </category>
 
 <category name="GL_EXT_cull_vertex" number="98">
+    <enum name="CULL_VERTEX_EXT"                          value="0x81AA"/>
+    <enum name="CULL_VERTEX_OBJECT_POSITION_EXT"          value="0x81AB">
+        <size name="CullParameterfv" count="4"/>
+        <size name="CullParameterdv" count="4"/>
+    </enum>
+    <enum name="CULL_VERTEX_EYE_POSITION_EXT"             value="0x81AC">
+        <size name="CullParameterfv" count="4"/>
+        <size name="CullParameterdv" count="4"/>
+    </enum>
+
     <function name="CullParameterdvEXT" offset="542">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *"/>
+        <param name="params" type="GLdouble *"/> <!-- Spec bug. Should be const. -->
         <glx ignore="true"/>
     </function>
 
     <function name="CullParameterfvEXT" offset="543">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *"/> <!-- Spec bug. Should be const. -->
         <glx ignore="true"/>
     </function>
 </category>
     <function name="GetFragmentLightfvSGIX" offset="489">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetFragmentLightivSGIX" offset="490">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetFragmentMaterialfvSGIX" offset="491">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetFragmentMaterialivSGIX" offset="492">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     </function>
 
     <function name="FinishAsyncSGIX" offset="?">
-        <param name="markerp" type="GLuint *"/>
+        <param name="markerp" type="GLuint *"/> <!-- Spec bug. Should be const. -->
         <return type="GLint"/>
     </function>
 
     <function name="PollAsyncSGIX" offset="?">
-        <param name="markerp" type="GLuint *"/>
+        <param name="markerp" type="GLuint *"/> <!-- Spec bug. Should be const. -->
         <return type="GLint"/>
     </function>
 
 <category name="GL_EXT_multi_draw_arrays" number="148">
     <function name="MultiDrawArraysEXT" offset="644">
         <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"/>
     </function>
 
 <!-- Extension number 177 is a WGL extension. -->
 <!-- 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_lod_bias" number="186">
+    <enum name="TEXTURE_LOD_BIAS_EXT"                     value="0x8501">
+        <size name="TexParameterfv" count="1"/>
+        <size name="TexParameteriv" count="1"/>
+    </enum>
+</category>
+
 <category name="GL_EXT_texture_filter_anisotropic" number="187">
     <enum name="TEXTURE_MAX_ANISOTROPY_EXT"               value="0x84FE">
         <size name="TexParameterfv" count="1"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
-        <glx handcode="true"/>
     </function>
 
     <function name="WindowPos3fvMESA" offset="524">
 <!-- Extension number 213 is not listed in the extension registry. -->
 
 <category name="GL_SGIS_texture_color_mask" number="214">
+    <enum name="TEXTURE_COLOR_WRITEMASK_SGIS"             value="0x81EF"/>
+
     <function name="TextureColorMaskSGIS" offset="?">
         <param name="red" type="GLboolean"/>
         <param name="green" type="GLboolean"/>
         <param name="blue" type="GLboolean"/>
         <param name="alpha" type="GLboolean"/>
+        <glx rop="2082"/>
     </function>
 </category>
 
 
     <function name="GenFencesNV" offset="648">
         <param name="n" type="GLsizei"/>
-        <param name="fences" type="GLuint *"/>
+        <param name="fences" type="GLuint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetFenceivNV" offset="651">
         <param name="fence" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *"/>
+        <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
         <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="?">
         <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="?">
         <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="?">
         <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="?">
         <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="GetCombinerStageParameterfvNV" offset="?">
         <param name="stage" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
     </function>
 </category>
 
     <function name="AreProgramsResidentNV" offset="578">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
-        <param name="residences" type="GLboolean *"/>
+        <param name="residences" type="GLboolean *" output="true"/>
         <return type="GLboolean"/>
         <glx vendorpriv="1293" ignore="true"/>
     </function>
 
     <function name="GenProgramsNV" offset="582">
         <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *"/>
+        <param name="ids" type="GLuint *" output="true"/>
         <glx vendorpriv="1295" ignore="true"/>
     </function>
 
         <glx vendorpriv="1300" ignore="true"/>
     </function>
 
-    <function name="GetVertexAttribdvNV" offset="588">
+    <function name="GetVertexAttribdvNV" offset="753">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLdouble *" output="true"/>
         <glx vendorpriv="1301" ignore="true"/>
     </function>
 
-    <function name="GetVertexAttribfvNV" offset="589">
+    <function name="GetVertexAttribfvNV" offset="754">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
         <glx vendorpriv="1302" ignore="true"/>
     </function>
 
-    <function name="GetVertexAttribivNV" offset="590">
+    <function name="GetVertexAttribivNV" offset="755">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
         <glx handcode="true" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1dNV" offset="603" vectorequiv="VertexAttrib1dvNV">
+    <function name="VertexAttrib1dNV" offset="756" vectorequiv="VertexAttrib1dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1dvNV" offset="604">
+    <function name="VertexAttrib1dvNV" offset="757">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="4197" doubles_in_order="true" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1fNV" offset="605" vectorequiv="VertexAttrib1fvNV">
+    <function name="VertexAttrib1fNV" offset="758" vectorequiv="VertexAttrib1fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1fvNV" offset="606">
+    <function name="VertexAttrib1fvNV" offset="759">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="1"/>
         <glx rop="4193" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1sNV" offset="607" vectorequiv="VertexAttrib1svNV">
+    <function name="VertexAttrib1sNV" offset="760" vectorequiv="VertexAttrib1svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1svNV" offset="608">
+    <function name="VertexAttrib1svNV" offset="761">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="4189" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2dNV" offset="609" vectorequiv="VertexAttrib2dvNV">
+    <function name="VertexAttrib2dNV" offset="762" vectorequiv="VertexAttrib2dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2dvNV" offset="610">
+    <function name="VertexAttrib2dvNV" offset="763">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="4198" doubles_in_order="true" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2fNV" offset="611" vectorequiv="VertexAttrib2fvNV">
+    <function name="VertexAttrib2fNV" offset="764" vectorequiv="VertexAttrib2fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2fvNV" offset="612">
+    <function name="VertexAttrib2fvNV" offset="765">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="2"/>
         <glx rop="4194" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2sNV" offset="613" vectorequiv="VertexAttrib2svNV">
+    <function name="VertexAttrib2sNV" offset="766" vectorequiv="VertexAttrib2svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2svNV" offset="614">
+    <function name="VertexAttrib2svNV" offset="767">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="4190" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3dNV" offset="615" vectorequiv="VertexAttrib3dvNV">
+    <function name="VertexAttrib3dNV" offset="768" vectorequiv="VertexAttrib3dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3dvNV" offset="616">
+    <function name="VertexAttrib3dvNV" offset="769">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="4199" doubles_in_order="true" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3fNV" offset="617" vectorequiv="VertexAttrib3fvNV">
+    <function name="VertexAttrib3fNV" offset="770" vectorequiv="VertexAttrib3fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3fvNV" offset="618">
+    <function name="VertexAttrib3fvNV" offset="771">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="4195" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3sNV" offset="619" vectorequiv="VertexAttrib3svNV">
+    <function name="VertexAttrib3sNV" offset="772" vectorequiv="VertexAttrib3svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib3svNV" offset="620">
+    <function name="VertexAttrib3svNV" offset="773">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4191" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4dNV" offset="621" vectorequiv="VertexAttrib4dvNV">
+    <function name="VertexAttrib4dNV" offset="774" vectorequiv="VertexAttrib4dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4dvNV" offset="622">
+    <function name="VertexAttrib4dvNV" offset="775">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="4200" doubles_in_order="true" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4fNV" offset="623" vectorequiv="VertexAttrib4fvNV">
+    <function name="VertexAttrib4fNV" offset="776" vectorequiv="VertexAttrib4fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4fvNV" offset="624">
+    <function name="VertexAttrib4fvNV" offset="777">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="4196" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4sNV" offset="625" vectorequiv="VertexAttrib4svNV">
+    <function name="VertexAttrib4sNV" offset="778" vectorequiv="VertexAttrib4svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4svNV" offset="626">
+    <function name="VertexAttrib4svNV" offset="779">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4192" ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4ubNV" offset="627" vectorequiv="VertexAttrib4ubvNV">
+    <function name="VertexAttrib4ubNV" offset="780" vectorequiv="VertexAttrib4ubvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLubyte"/>
         <param name="y" type="GLubyte"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4ubvNV" offset="628">
+    <function name="VertexAttrib4ubvNV" offset="781">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4201" ignore="true"/>
 <!-- Extension number 237 is a GLX extension. -->
 <!-- Extension number 238 is a GLX extension. -->
 <!-- Extension number 242 is a WGL extension. -->
+
+<category name="GL_ATI_fragment_shader" number="245">
+    <function name="GenFragmentShadersATI" offset="782">
+      <return type="GLuint"/>
+      <param name="range" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+    
+    <function name="BindFragmentShaderATI" offset="783">
+      <param name="id" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="DeleteFragmentShaderATI" offset="784">
+      <param name="id" type="GLuint"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="BeginFragmentShaderATI" offset="785">
+      <glx ignore="true"/>
+    </function>
+
+    <function name="EndFragmentShaderATI" offset="786">
+      <glx ignore="true"/>
+    </function>
+    
+    <function name="PassTexCoordATI" offset="787">
+      <param name="dst" type="GLuint"/>
+      <param name="coord" type="GLuint"/>
+      <param name="swizzle" type="GLenum"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="SampleMapATI" offset="788">
+      <param name="dst" type="GLuint"/>
+      <param name="interp" type="GLuint"/>
+      <param name="swizzle" type="GLenum"/>
+      <glx ignore="true"/>
+    </function>
+
+    <function name="ColorFragmentOp1ATI" offset="789">
+      <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="790">
+      <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="791">
+      <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="792">
+      <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="793">
+      <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="794">
+      <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="795">
+      <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" offset="?">
+        <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_NV_point_sprite" number="262">
     <!-- These existing enums can be passed as a parameter to the function
          added for this extension. -->
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei"/>
         <param name="name" type="const GLubyte *"/>
-        <param name="params" type="GLfloat *"/>
+        <param name="params" type="GLfloat *" output="true"/>
         <glx vendorpriv="1310" handcode="true" ignore="true"/>
     </function>
 
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei"/>
         <param name="name" type="const GLubyte *"/>
-        <param name="params" type="GLdouble *"/>
+        <param name="params" type="GLdouble *" output="true"/>
         <glx vendorpriv="1311" handcode="true" ignore="true"/>
     </function>
 </category>
     </enum>
 </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">
         <param name="zmin" type="GLclampd"/>
     </function>
 </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>
 
 <!-- Unnumbered extensions sorted by name. -->