New scripts for processing the XML version of APIspec. Mail is being
authorIan Romanick <idr@us.ibm.com>
Tue, 18 May 2004 18:33:40 +0000 (18:33 +0000)
committerIan Romanick <idr@us.ibm.com>
Tue, 18 May 2004 18:33:40 +0000 (18:33 +0000)
sent to mesa3d-dev with a more detailed description.

src/mesa/glapi/gl_API.xml [new file with mode: 0644]
src/mesa/glapi/gl_XML.py [new file with mode: 0644]
src/mesa/glapi/gl_apitemp.py [new file with mode: 0644]
src/mesa/glapi/gl_offsets.py [new file with mode: 0644]
src/mesa/glapi/gl_procs.py [new file with mode: 0644]
src/mesa/glapi/gl_table.py [new file with mode: 0644]
src/mesa/glapi/gl_x86_asm.py [new file with mode: 0644]
src/mesa/glapi/license.py [new file with mode: 0644]

diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml
new file mode 100644 (file)
index 0000000..202bbbe
--- /dev/null
@@ -0,0 +1,7119 @@
+<?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>
+<!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>
+]>
+
+<OpenGLAPI>
+<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>
+
+    <enum name="OBJECT_PLANE" value="0x2501">
+        <size name="TexGendv" count="4"/>
+        <size name="TexGenfv" count="4"/>
+        <size name="TexGeniv" count="4"/>
+    </enum>
+
+    <enum name="EYE_PLANE" value="0x2502">
+        <size name="TexGendv" count="4"/>
+        <size name="TexGenfv" count="4"/>
+        <size name="TexGeniv" count="4"/>
+    </enum>
+
+    <function name="NewList" offset="0">
+        <param name="list" type="GLuint"/>
+        <param name="mode" type="GLenum"/>
+       <glx sop="101"/>
+    </function>
+
+    <function name="EndList" offset="1">
+       <glx sop="102"/>
+    </function>
+
+    <function name="CallList" offset="2">
+        <param name="list" type="GLuint"/>
+        <glx rop="1"/>
+    </function>
+
+    <function name="CallLists" offset="3">
+        <param name="n" type="GLsizei"/>
+        <param name="type" type="GLenum"/>
+        <param name="lists" type="const GLvoid *" variable_count="n, type"/>
+       <glx rop="2" handcode="true"/>
+    </function>
+
+    <function name="DeleteLists" offset="4">
+        <param name="list" type="GLuint"/>
+        <param name="range" type="GLsizei"/>
+       <glx sop="103"/>
+    </function>
+
+    <function name="GenLists" offset="5">
+        <param name="range" type="GLsizei"/>
+        <return type="GLuint"/>
+       <glx sop="104"/>
+    </function>
+
+    <function name="ListBase" offset="6">
+        <param name="base" type="GLuint"/>
+        <glx rop="3"/>
+    </function>
+
+    <function name="Begin" offset="7">
+        <param name="mode" type="GLenum"/>
+        <glx rop="4"/>
+    </function>
+
+    <function name="Bitmap" offset="8">
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="xorig" type="GLfloat"/>
+        <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"/>
+    </function>
+
+    <function name="Color3b" offset="9" vectorequiv="Color3bv">
+        <param name="red" type="GLbyte"/>
+        <param name="green" type="GLbyte"/>
+        <param name="blue" type="GLbyte"/>
+    </function>
+
+    <function name="Color3bv" offset="10">
+        <param name="v" type="const GLbyte *" count="3"/>
+        <glx rop="6"/>
+    </function>
+
+    <function name="Color3d" offset="11" vectorequiv="Color3dv">
+        <param name="red" type="GLdouble"/>
+        <param name="green" type="GLdouble"/>
+        <param name="blue" type="GLdouble"/>
+    </function>
+
+    <function name="Color3dv" offset="12">
+        <param name="v" type="const GLdouble *" count="3"/>
+        <glx rop="7"/>
+    </function>
+
+    <function name="Color3f" offset="13" vectorequiv="Color3fv">
+        <param name="red" type="GLfloat"/>
+        <param name="green" type="GLfloat"/>
+        <param name="blue" type="GLfloat"/>
+    </function>
+
+    <function name="Color3fv" offset="14">
+        <param name="v" type="const GLfloat *" count="3"/>
+        <glx rop="8"/>
+    </function>
+
+    <function name="Color3i" offset="15" vectorequiv="Color3iv">
+        <param name="red" type="GLint"/>
+        <param name="green" type="GLint"/>
+        <param name="blue" type="GLint"/>
+    </function>
+
+    <function name="Color3iv" offset="16">
+        <param name="v" type="const GLint *" count="3"/>
+        <glx rop="9"/>
+    </function>
+
+    <function name="Color3s" offset="17" vectorequiv="Color3sv">
+        <param name="red" type="GLshort"/>
+        <param name="green" type="GLshort"/>
+        <param name="blue" type="GLshort"/>
+    </function>
+
+    <function name="Color3sv" offset="18">
+        <param name="v" type="const GLshort *" count="3"/>
+        <glx rop="10"/>
+    </function>
+
+    <function name="Color3ub" offset="19" vectorequiv="Color3ubv">
+        <param name="red" type="GLubyte"/>
+        <param name="green" type="GLubyte"/>
+        <param name="blue" type="GLubyte"/>
+    </function>
+
+    <function name="Color3ubv" offset="20">
+        <param name="v" type="const GLubyte *" count="3"/>
+        <glx rop="11"/>
+    </function>
+
+    <function name="Color3ui" offset="21" vectorequiv="Color3uiv">
+        <param name="red" type="GLuint"/>
+        <param name="green" type="GLuint"/>
+        <param name="blue" type="GLuint"/>
+    </function>
+
+    <function name="Color3uiv" offset="22">
+        <param name="v" type="const GLuint *" count="3"/>
+        <glx rop="12"/>
+    </function>
+
+    <function name="Color3us" offset="23" vectorequiv="Color3usv">
+        <param name="red" type="GLushort"/>
+        <param name="green" type="GLushort"/>
+        <param name="blue" type="GLushort"/>
+    </function>
+
+    <function name="Color3usv" offset="24">
+        <param name="v" type="const GLushort *" count="3"/>
+        <glx rop="13"/>
+    </function>
+
+    <function name="Color4b" offset="25" vectorequiv="Color4bv">
+        <param name="red" type="GLbyte"/>
+        <param name="green" type="GLbyte"/>
+        <param name="blue" type="GLbyte"/>
+        <param name="alpha" type="GLbyte"/>
+    </function>
+
+    <function name="Color4bv" offset="26">
+        <param name="v" type="const GLbyte *" count="4"/>
+        <glx rop="14"/>
+    </function>
+
+    <function name="Color4d" offset="27" vectorequiv="Color4dv">
+        <param name="red" type="GLdouble"/>
+        <param name="green" type="GLdouble"/>
+        <param name="blue" type="GLdouble"/>
+        <param name="alpha" type="GLdouble"/>
+    </function>
+
+    <function name="Color4dv" offset="28">
+        <param name="v" type="const GLdouble *" count="4"/>
+        <glx rop="15"/>
+    </function>
+
+    <function name="Color4f" offset="29" vectorequiv="Color4fv">
+        <param name="red" type="GLfloat"/>
+        <param name="green" type="GLfloat"/>
+        <param name="blue" type="GLfloat"/>
+        <param name="alpha" type="GLfloat"/>
+    </function>
+
+    <function name="Color4fv" offset="30">
+        <param name="v" type="const GLfloat *" count="4"/>
+        <glx rop="16"/>
+    </function>
+
+    <function name="Color4i" offset="31" vectorequiv="Color4iv">
+        <param name="red" type="GLint"/>
+        <param name="green" type="GLint"/>
+        <param name="blue" type="GLint"/>
+        <param name="alpha" type="GLint"/>
+    </function>
+
+    <function name="Color4iv" offset="32">
+        <param name="v" type="const GLint *" count="4"/>
+        <glx rop="17"/>
+    </function>
+
+    <function name="Color4s" offset="33" vectorequiv="Color4sv">
+        <param name="red" type="GLshort"/>
+        <param name="green" type="GLshort"/>
+        <param name="blue" type="GLshort"/>
+        <param name="alpha" type="GLshort"/>
+    </function>
+
+    <function name="Color4sv" offset="34">
+        <param name="v" type="const GLshort *" count="4"/>
+        <glx rop="18"/>
+    </function>
+
+    <function name="Color4ub" offset="35" vectorequiv="Color4ubv">
+        <param name="red" type="GLubyte"/>
+        <param name="green" type="GLubyte"/>
+        <param name="blue" type="GLubyte"/>
+        <param name="alpha" type="GLubyte"/>
+    </function>
+
+    <function name="Color4ubv" offset="36">
+        <param name="v" type="const GLubyte *" count="4"/>
+        <glx rop="19"/>
+    </function>
+
+    <function name="Color4ui" offset="37" vectorequiv="Color4uiv">
+        <param name="red" type="GLuint"/>
+        <param name="green" type="GLuint"/>
+        <param name="blue" type="GLuint"/>
+        <param name="alpha" type="GLuint"/>
+    </function>
+
+    <function name="Color4uiv" offset="38">
+        <param name="v" type="const GLuint *" count="4"/>
+        <glx rop="20"/>
+    </function>
+
+    <function name="Color4us" offset="39" vectorequiv="Color4usv">
+        <param name="red" type="GLushort"/>
+        <param name="green" type="GLushort"/>
+        <param name="blue" type="GLushort"/>
+        <param name="alpha" type="GLushort"/>
+    </function>
+
+    <function name="Color4usv" offset="40">
+        <param name="v" type="const GLushort *" count="4"/>
+        <glx rop="21"/>
+    </function>
+
+    <function name="EdgeFlag" offset="41" vectorequiv="EdgeFlagv">
+        <param name="flag" type="GLboolean"/>
+    </function>
+
+    <function name="EdgeFlagv" offset="42">
+        <param name="flag" type="const GLboolean *" count="1"/>
+       <glx rop="22"/>
+    </function>
+
+    <function name="End" offset="43">
+        <glx rop="23"/>
+    </function>
+
+    <function name="Indexd" offset="44" vectorequiv="Indexdv">
+        <param name="c" type="GLdouble"/>
+    </function>
+
+    <function name="Indexdv" offset="45">
+        <param name="c" type="const GLdouble *" count="1"/>
+        <glx rop="24"/>
+    </function>
+
+    <function name="Indexf" offset="46" vectorequiv="Indexfv">
+        <param name="c" type="GLfloat"/>
+    </function>
+
+    <function name="Indexfv" offset="47">
+        <param name="c" type="const GLfloat *" count="1"/>
+        <glx rop="25"/>
+    </function>
+
+    <function name="Indexi" offset="48" vectorequiv="Indexiv">
+        <param name="c" type="GLint"/>
+    </function>
+
+    <function name="Indexiv" offset="49">
+        <param name="c" type="const GLint *" count="1"/>
+        <glx rop="26"/>
+    </function>
+
+    <function name="Indexs" offset="50" vectorequiv="Indexsv">
+        <param name="c" type="GLshort"/>
+    </function>
+
+    <function name="Indexsv" offset="51">
+        <param name="c" type="const GLshort *" count="1"/>
+        <glx rop="27"/>
+    </function>
+
+    <function name="Normal3b" offset="52" vectorequiv="Normal3bv">
+        <param name="nx" type="GLbyte"/>
+        <param name="ny" type="GLbyte"/>
+        <param name="nz" type="GLbyte"/>
+    </function>
+
+    <function name="Normal3bv" offset="53">
+        <param name="v" type="const GLbyte *" count="3"/>
+        <glx rop="28"/>
+    </function>
+
+    <function name="Normal3d" offset="54" vectorequiv="Normal3dv">
+        <param name="nx" type="GLdouble"/>
+        <param name="ny" type="GLdouble"/>
+        <param name="nz" type="GLdouble"/>
+    </function>
+
+    <function name="Normal3dv" offset="55">
+        <param name="v" type="const GLdouble *" count="3"/>
+        <glx rop="29"/>
+    </function>
+
+    <function name="Normal3f" offset="56" vectorequiv="Normal3fv">
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+    </function>
+
+    <function name="Normal3fv" offset="57">
+        <param name="v" type="const GLfloat *" count="3"/>
+        <glx rop="30"/>
+    </function>
+
+    <function name="Normal3i" offset="58" vectorequiv="Normal3iv">
+        <param name="nx" type="GLint"/>
+        <param name="ny" type="GLint"/>
+        <param name="nz" type="GLint"/>
+    </function>
+
+    <function name="Normal3iv" offset="59">
+        <param name="v" type="const GLint *" count="3"/>
+        <glx rop="31"/>
+    </function>
+
+    <function name="Normal3s" offset="60" vectorequiv="Normal3sv">
+        <param name="nx" type="GLshort"/>
+        <param name="ny" type="GLshort"/>
+        <param name="nz" type="GLshort"/>
+    </function>
+
+    <function name="Normal3sv" offset="61">
+        <param name="v" type="const GLshort *" count="3"/>
+        <glx rop="32"/>
+    </function>
+
+    <function name="RasterPos2d" offset="62" vectorequiv="RasterPos2dv">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+    </function>
+
+    <function name="RasterPos2dv" offset="63">
+        <param name="v" type="const GLdouble *" count="2"/>
+        <glx rop="33"/>
+    </function>
+
+    <function name="RasterPos2f" offset="64" vectorequiv="RasterPos2fv">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+
+    <function name="RasterPos2fv" offset="65">
+        <param name="v" type="const GLfloat *" count="2"/>
+        <glx rop="34"/>
+    </function>
+
+    <function name="RasterPos2i" offset="66" vectorequiv="RasterPos2iv">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+    </function>
+
+    <function name="RasterPos2iv" offset="67">
+        <param name="v" type="const GLint *" count="2"/>
+        <glx rop="35"/>
+    </function>
+
+    <function name="RasterPos2s" offset="68" vectorequiv="RasterPos2sv">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+
+    <function name="RasterPos2sv" offset="69">
+        <param name="v" type="const GLshort *" count="2"/>
+        <glx rop="36"/>
+    </function>
+
+    <function name="RasterPos3d" offset="70" vectorequiv="RasterPos3dv">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+    </function>
+
+    <function name="RasterPos3dv" offset="71">
+        <param name="v" type="const GLdouble *" count="3"/>
+        <glx rop="37"/>
+    </function>
+
+    <function name="RasterPos3f" offset="72" vectorequiv="RasterPos3fv">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="RasterPos3fv" offset="73">
+        <param name="v" type="const GLfloat *" count="3"/>
+        <glx rop="38"/>
+    </function>
+
+    <function name="RasterPos3i" offset="74" vectorequiv="RasterPos3iv">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="z" type="GLint"/>
+    </function>
+
+    <function name="RasterPos3iv" offset="75">
+        <param name="v" type="const GLint *" count="3"/>
+        <glx rop="39"/>
+    </function>
+
+    <function name="RasterPos3s" offset="76" vectorequiv="RasterPos3sv">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+    </function>
+
+    <function name="RasterPos3sv" offset="77">
+        <param name="v" type="const GLshort *" count="3"/>
+        <glx rop="40"/>
+    </function>
+
+    <function name="RasterPos4d" offset="78" vectorequiv="RasterPos4dv">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+        <param name="w" type="GLdouble"/>
+    </function>
+
+    <function name="RasterPos4dv" offset="79">
+        <param name="v" type="const GLdouble *" count="4"/>
+        <glx rop="41"/>
+    </function>
+
+    <function name="RasterPos4f" offset="80" vectorequiv="RasterPos4fv">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+        <param name="w" type="GLfloat"/>
+    </function>
+
+    <function name="RasterPos4fv" offset="81">
+        <param name="v" type="const GLfloat *" count="4"/>
+        <glx rop="42"/>
+    </function>
+
+    <function name="RasterPos4i" offset="82" vectorequiv="RasterPos4iv">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="z" type="GLint"/>
+        <param name="w" type="GLint"/>
+    </function>
+
+    <function name="RasterPos4iv" offset="83">
+        <param name="v" type="const GLint *" count="4"/>
+        <glx rop="43"/>
+    </function>
+
+    <function name="RasterPos4s" offset="84" vectorequiv="RasterPos4sv">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+        <param name="w" type="GLshort"/>
+    </function>
+
+    <function name="RasterPos4sv" offset="85">
+        <param name="v" type="const GLshort *" count="4"/>
+        <glx rop="44"/>
+    </function>
+
+    <function name="Rectd" offset="86" vectorequiv="Rectdv">
+        <param name="x1" type="GLdouble"/>
+        <param name="y1" type="GLdouble"/>
+        <param name="x2" type="GLdouble"/>
+        <param name="y2" type="GLdouble"/>
+    </function>
+
+    <function name="Rectdv" offset="87">
+        <param name="v1" type="const GLdouble *" count="2"/>
+        <param name="v2" type="const GLdouble *" count="2"/>
+       <glx rop="45"/>
+    </function>
+
+    <function name="Rectf" offset="88" vectorequiv="Rectfv">
+        <param name="x1" type="GLfloat"/>
+        <param name="y1" type="GLfloat"/>
+        <param name="x2" type="GLfloat"/>
+        <param name="y2" type="GLfloat"/>
+    </function>
+
+    <function name="Rectfv" offset="89">
+        <param name="v1" type="const GLfloat *" count="2"/>
+        <param name="v2" type="const GLfloat *" count="2"/>
+       <glx rop="46"/>
+    </function>
+
+    <function name="Recti" offset="90" vectorequiv="Rectiv">
+        <param name="x1" type="GLint"/>
+        <param name="y1" type="GLint"/>
+        <param name="x2" type="GLint"/>
+        <param name="y2" type="GLint"/>
+    </function>
+
+    <function name="Rectiv" offset="91">
+        <param name="v1" type="const GLint *" count="2"/>
+        <param name="v2" type="const GLint *" count="2"/>
+       <glx rop="47"/>
+    </function>
+
+    <function name="Rects" offset="92" vectorequiv="Rectsv">
+        <param name="x1" type="GLshort"/>
+        <param name="y1" type="GLshort"/>
+        <param name="x2" type="GLshort"/>
+        <param name="y2" type="GLshort"/>
+    </function>
+
+    <function name="Rectsv" offset="93">
+        <param name="v1" type="const GLshort *" count="2"/>
+        <param name="v2" type="const GLshort *" count="2"/>
+       <glx rop="48"/>
+    </function>
+
+    <function name="TexCoord1d" offset="94" vectorequiv="TexCoord1dv">
+        <param name="s" type="GLdouble"/>
+    </function>
+
+    <function name="TexCoord1dv" offset="95">
+        <param name="v" type="const GLdouble *" count="1"/>
+       <glx rop="49"/>
+    </function>
+
+    <function name="TexCoord1f" offset="96" vectorequiv="TexCoord1fv">
+        <param name="s" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord1fv" offset="97">
+        <param name="v" type="const GLfloat *" count="1"/>
+       <glx rop="50"/>
+    </function>
+
+    <function name="TexCoord1i" offset="98" vectorequiv="TexCoord1iv">
+        <param name="s" type="GLint"/>
+    </function>
+
+    <function name="TexCoord1iv" offset="99">
+        <param name="v" type="const GLint *" count="1"/>
+       <glx rop="51"/>
+    </function>
+
+    <function name="TexCoord1s" offset="100" vectorequiv="TexCoord1sv">
+        <param name="s" type="GLshort"/>
+    </function>
+
+    <function name="TexCoord1sv" offset="101">
+        <param name="v" type="const GLshort *" count="1"/>
+       <glx rop="52"/>
+    </function>
+
+    <function name="TexCoord2d" offset="102" vectorequiv="TexCoord2dv">
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+    </function>
+
+    <function name="TexCoord2dv" offset="103">
+        <param name="v" type="const GLdouble *" count="2"/>
+       <glx rop="53"/>
+    </function>
+
+    <function name="TexCoord2f" offset="104" vectorequiv="TexCoord2fv">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord2fv" offset="105">
+        <param name="v" type="const GLfloat *" count="2"/>
+       <glx rop="54"/>
+    </function>
+
+    <function name="TexCoord2i" offset="106" vectorequiv="TexCoord2iv">
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+    </function>
+
+    <function name="TexCoord2iv" offset="107">
+        <param name="v" type="const GLint *" count="2"/>
+       <glx rop="55"/>
+    </function>
+
+    <function name="TexCoord2s" offset="108" vectorequiv="TexCoord2sv">
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+    </function>
+
+    <function name="TexCoord2sv" offset="109">
+        <param name="v" type="const GLshort *" count="2"/>
+       <glx rop="56"/>
+    </function>
+
+    <function name="TexCoord3d" offset="110" vectorequiv="TexCoord3dv">
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+        <param name="r" type="GLdouble"/>
+    </function>
+
+    <function name="TexCoord3dv" offset="111">
+        <param name="v" type="const GLdouble *" count="3"/>
+       <glx rop="57"/>
+    </function>
+
+    <function name="TexCoord3f" offset="112" vectorequiv="TexCoord3fv">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord3fv" offset="113">
+        <param name="v" type="const GLfloat *" count="3"/>
+       <glx rop="58"/>
+    </function>
+
+    <function name="TexCoord3i" offset="114" vectorequiv="TexCoord3iv">
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+        <param name="r" type="GLint"/>
+    </function>
+
+    <function name="TexCoord3iv" offset="115">
+        <param name="v" type="const GLint *" count="3"/>
+       <glx rop="59"/>
+    </function>
+
+    <function name="TexCoord3s" offset="116" vectorequiv="TexCoord3sv">
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+        <param name="r" type="GLshort"/>
+    </function>
+
+    <function name="TexCoord3sv" offset="117">
+        <param name="v" type="const GLshort *" count="3"/>
+       <glx rop="60"/>
+    </function>
+
+    <function name="TexCoord4d" offset="118" vectorequiv="TexCoord4dv">
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+        <param name="r" type="GLdouble"/>
+        <param name="q" type="GLdouble"/>
+    </function>
+
+    <function name="TexCoord4dv" offset="119">
+        <param name="v" type="const GLdouble *" count="4"/>
+       <glx rop="61"/>
+    </function>
+
+    <function name="TexCoord4f" offset="120" vectorequiv="TexCoord4fv">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+        <param name="q" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord4fv" offset="121">
+        <param name="v" type="const GLfloat *" count="4"/>
+       <glx rop="62"/>
+    </function>
+
+    <function name="TexCoord4i" offset="122" vectorequiv="TexCoord4iv">
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+        <param name="r" type="GLint"/>
+        <param name="q" type="GLint"/>
+    </function>
+
+    <function name="TexCoord4iv" offset="123">
+        <param name="v" type="const GLint *" count="4"/>
+       <glx rop="63"/>
+    </function>
+
+    <function name="TexCoord4s" offset="124" vectorequiv="TexCoord4sv">
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+        <param name="r" type="GLshort"/>
+        <param name="q" type="GLshort"/>
+    </function>
+
+    <function name="TexCoord4sv" offset="125">
+        <param name="v" type="const GLshort *" count="4"/>
+       <glx rop="64"/>
+    </function>
+
+    <function name="Vertex2d" offset="126" vectorequiv="Vertex2dv">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+    </function>
+
+    <function name="Vertex2dv" offset="127">
+        <param name="v" type="const GLdouble *" count="2"/>
+       <glx rop="65"/>
+    </function>
+
+    <function name="Vertex2f" offset="128" vectorequiv="Vertex2fv">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+
+    <function name="Vertex2fv" offset="129">
+        <param name="v" type="const GLfloat *" count="2"/>
+       <glx rop="66"/>
+    </function>
+
+    <function name="Vertex2i" offset="130" vectorequiv="Vertex2iv">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+    </function>
+
+    <function name="Vertex2iv" offset="131">
+        <param name="v" type="const GLint *" count="2"/>
+       <glx rop="67"/>
+    </function>
+
+    <function name="Vertex2s" offset="132" vectorequiv="Vertex2sv">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+
+    <function name="Vertex2sv" offset="133">
+        <param name="v" type="const GLshort *" count="2"/>
+       <glx rop="68"/>
+    </function>
+
+    <function name="Vertex3d" offset="134" vectorequiv="Vertex3dv">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+    </function>
+
+    <function name="Vertex3dv" offset="135">
+        <param name="v" type="const GLdouble *" count="3"/>
+       <glx rop="69"/>
+    </function>
+
+    <function name="Vertex3f" offset="136" vectorequiv="Vertex3fv">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="Vertex3fv" offset="137">
+        <param name="v" type="const GLfloat *" count="3"/>
+       <glx rop="70"/>
+    </function>
+
+    <function name="Vertex3i" offset="138" vectorequiv="Vertex3iv">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="z" type="GLint"/>
+    </function>
+
+    <function name="Vertex3iv" offset="139">
+        <param name="v" type="const GLint *" count="3"/>
+       <glx rop="71"/>
+    </function>
+
+    <function name="Vertex3s" offset="140" vectorequiv="Vertex3sv">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+    </function>
+
+    <function name="Vertex3sv" offset="141">
+        <param name="v" type="const GLshort *" count="3"/>
+       <glx rop="72"/>
+    </function>
+
+    <function name="Vertex4d" offset="142" vectorequiv="Vertex4dv">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+        <param name="w" type="GLdouble"/>
+    </function>
+
+    <function name="Vertex4dv" offset="143">
+        <param name="v" type="const GLdouble *" count="4"/>
+       <glx rop="73"/>
+    </function>
+
+    <function name="Vertex4f" offset="144" vectorequiv="Vertex4fv">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+        <param name="w" type="GLfloat"/>
+    </function>
+
+    <function name="Vertex4fv" offset="145">
+        <param name="v" type="const GLfloat *" count="4"/>
+       <glx rop="74"/>
+    </function>
+
+    <function name="Vertex4i" offset="146" vectorequiv="Vertex4iv">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="z" type="GLint"/>
+        <param name="w" type="GLint"/>
+    </function>
+
+    <function name="Vertex4iv" offset="147">
+        <param name="v" type="const GLint *" count="4"/>
+       <glx rop="75"/>
+    </function>
+
+    <function name="Vertex4s" offset="148" vectorequiv="Vertex4sv">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+        <param name="w" type="GLshort"/>
+    </function>
+
+    <function name="Vertex4sv" offset="149">
+        <param name="v" type="const GLshort *" count="4"/>
+       <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"/>
+    </function>
+
+    <function name="ColorMaterial" offset="151">
+        <param name="face" type="GLenum"/>
+        <param name="mode" type="GLenum"/>
+       <glx rop="78"/>
+    </function>
+
+    <function name="CullFace" offset="152">
+        <param name="mode" type="GLenum"/>
+       <glx rop="79"/>
+    </function>
+
+    <function name="Fogf" offset="153">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <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"/>
+    </function>
+
+    <function name="Fogi" offset="155">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <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"/>
+    </function>
+
+    <function name="FrontFace" offset="157">
+        <param name="mode" type="GLenum"/>
+       <glx rop="84"/>
+    </function>
+
+    <function name="Hint" offset="158">
+        <param name="target" type="GLenum"/>
+        <param name="mode" type="GLenum"/>
+       <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"/>
+    </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"/>
+    </function>
+
+    <function name="Lighti" offset="161">
+        <param name="light" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <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"/>
+    </function>
+
+    <function name="LightModelf" offset="163">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <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"/>
+    </function>
+
+    <function name="LightModeli" offset="165">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <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"/>
+    </function>
+
+    <function name="LineStipple" offset="167">
+        <param name="factor" type="GLint"/>
+        <param name="pattern" type="GLushort"/>
+       <glx rop="94"/>
+    </function>
+
+    <function name="LineWidth" offset="168">
+        <param name="width" type="GLfloat"/>
+       <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"/>
+    </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"/>
+    </function>
+
+    <function name="Materiali" offset="171">
+        <param name="face" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <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"/>
+    </function>
+
+    <function name="PointSize" offset="173">
+        <param name="size" type="GLfloat"/>
+       <glx rop="100"/>
+    </function>
+
+    <function name="PolygonMode" offset="174">
+        <param name="face" type="GLenum"/>
+        <param name="mode" type="GLenum"/>
+       <glx rop="101"/>
+    </function>
+
+    <function name="PolygonStipple" offset="175">
+        <param name="mask" type="const GLubyte *"/>
+       <glx rop="102" handcode="true"/>
+    </function>
+
+    <function name="Scissor" offset="176">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+       <glx rop="103"/>
+    </function>
+
+    <function name="ShadeModel" offset="177">
+        <param name="mode" type="GLenum"/>
+       <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"/>
+    </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"/>
+    </function>
+
+    <function name="TexParameteri" offset="180">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <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"/>
+    </function>
+
+    <function name="TexImage1D" offset="182">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="internalformat" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="TexImage2D" offset="183">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="internalformat" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="TexEnvf" offset="184">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <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"/>
+    </function>
+
+    <function name="TexEnvi" offset="186">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <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"/>
+    </function>
+
+    <function name="TexGend" offset="188">
+        <param name="coord" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLdouble"/>
+       <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"/>
+    </function>
+
+    <function name="TexGenf" offset="190">
+        <param name="coord" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <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"/>
+    </function>
+
+    <function name="TexGeni" offset="192">
+        <param name="coord" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <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"/>
+    </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"/>
+    </function>
+
+    <function name="SelectBuffer" offset="195">
+        <param name="size" type="GLsizei"/>
+        <param name="buffer" type="GLuint *"/>
+       <glx sop="106" handcode="true"/>
+    </function>
+
+    <function name="RenderMode" offset="196">
+        <param name="mode" type="GLenum"/>
+        <return type="GLint"/>
+       <glx sop="107" handcode="true"/>
+    </function>
+
+    <function name="InitNames" offset="197">
+       <glx rop="121"/>
+    </function>
+
+    <function name="LoadName" offset="198">
+        <param name="name" type="GLuint"/>
+       <glx rop="122"/>
+    </function>
+
+    <function name="PassThrough" offset="199">
+        <param name="token" type="GLfloat"/>
+       <glx rop="123"/>
+    </function>
+
+    <function name="PopName" offset="200">
+       <glx rop="124"/>
+    </function>
+
+    <function name="PushName" offset="201">
+        <param name="name" type="GLuint"/>
+       <glx rop="125"/>
+    </function>
+
+    <function name="DrawBuffer" offset="202">
+        <param name="mode" type="GLenum"/>
+       <glx rop="126"/>
+    </function>
+
+    <function name="Clear" offset="203">
+        <param name="mask" type="GLbitfield"/>
+       <glx rop="127"/>
+    </function>
+
+    <function name="ClearAccum" offset="204">
+        <param name="red" type="GLfloat"/>
+        <param name="green" type="GLfloat"/>
+        <param name="blue" type="GLfloat"/>
+        <param name="alpha" type="GLfloat"/>
+       <glx rop="128"/>
+    </function>
+
+    <function name="ClearIndex" offset="205">
+        <param name="c" type="GLfloat"/>
+       <glx rop="129"/>
+    </function>
+
+    <function name="ClearColor" offset="206">
+        <param name="red" type="GLclampf"/>
+        <param name="green" type="GLclampf"/>
+        <param name="blue" type="GLclampf"/>
+        <param name="alpha" type="GLclampf"/>
+       <glx rop="130"/>
+    </function>
+
+    <function name="ClearStencil" offset="207">
+        <param name="s" type="GLint"/>
+       <glx rop="131"/>
+    </function>
+
+    <function name="ClearDepth" offset="208">
+        <param name="depth" type="GLclampd"/>
+       <glx rop="132"/>
+    </function>
+
+    <function name="StencilMask" offset="209">
+        <param name="mask" type="GLuint"/>
+       <glx rop="133"/>
+    </function>
+
+    <function name="ColorMask" offset="210">
+        <param name="red" type="GLboolean"/>
+        <param name="green" type="GLboolean"/>
+        <param name="blue" type="GLboolean"/>
+        <param name="alpha" type="GLboolean"/>
+       <glx rop="134"/>
+    </function>
+
+    <function name="DepthMask" offset="211">
+        <param name="flag" type="GLboolean"/>
+       <glx rop="135"/>
+    </function>
+
+    <function name="IndexMask" offset="212">
+        <param name="mask" type="GLuint"/>
+       <glx rop="136"/>
+    </function>
+
+    <function name="Accum" offset="213">
+        <param name="op" type="GLenum"/>
+        <param name="value" type="GLfloat"/>
+       <glx rop="137"/>
+    </function>
+
+    <function name="Disable" offset="214">
+        <param name="cap" type="GLenum"/>
+       <glx rop="138"/>
+    </function>
+
+    <function name="Enable" offset="215">
+        <param name="cap" type="GLenum"/>
+       <glx rop="139"/>
+    </function>
+
+    <function name="Finish" offset="216">
+        <glx sop="108" handcode="true"/>
+    </function>
+
+    <function name="Flush" offset="217">
+        <glx sop="142" handcode="true"/>
+    </function>
+
+    <function name="PopAttrib" offset="218">
+       <glx rop="141"/>
+    </function>
+
+    <function name="PushAttrib" offset="219">
+        <param name="mask" type="GLbitfield"/>
+       <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="order" type="GLint"/>
+        <param name="points" type="const GLdouble *"/>
+       <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="order" type="GLint"/>
+        <param name="points" type="const GLfloat *"/>
+       <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="uorder" type="GLint"/>
+        <param name="v1" type="GLdouble"/>
+        <param name="v2" type="GLdouble"/>
+        <param name="vstride" type="GLint"/>
+        <param name="vorder" type="GLint"/>
+        <param name="points" type="const GLdouble *"/>
+       <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="uorder" type="GLint"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+        <param name="vstride" type="GLint"/>
+        <param name="vorder" type="GLint"/>
+        <param name="points" type="const GLfloat *"/>
+       <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"/>
+    </function>
+
+    <function name="MapGrid1f" offset="225">
+        <param name="un" type="GLint"/>
+        <param name="u1" type="GLfloat"/>
+        <param name="u2" type="GLfloat"/>
+       <glx rop="148"/>
+    </function>
+
+    <function name="MapGrid2d" offset="226">
+        <param name="un" type="GLint"/>
+        <param name="u1" type="GLdouble"/>
+        <param name="u2" type="GLdouble"/>
+        <param name="vn" type="GLint"/>
+        <param name="v1" type="GLdouble"/>
+        <param name="v2" type="GLdouble"/>
+       <glx rop="149"/>
+    </function>
+
+    <function name="MapGrid2f" offset="227">
+        <param name="un" type="GLint"/>
+        <param name="u1" type="GLfloat"/>
+        <param name="u2" type="GLfloat"/>
+        <param name="vn" type="GLint"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+       <glx rop="150"/>
+    </function>
+
+    <function name="EvalCoord1d" offset="228" vectorequiv="EvalCoord1dv">
+        <param name="u" type="GLdouble"/>
+    </function>
+
+    <function name="EvalCoord1dv" offset="229">
+        <param name="u" type="const GLdouble *" count="1"/>
+       <glx rop="151"/>
+    </function>
+
+    <function name="EvalCoord1f" offset="230" vectorequiv="EvalCoord1fv">
+        <param name="u" type="GLfloat"/>
+    </function>
+
+    <function name="EvalCoord1fv" offset="231">
+        <param name="u" type="const GLfloat *" count="1"/>
+       <glx rop="152"/>
+    </function>
+
+    <function name="EvalCoord2d" offset="232" vectorequiv="EvalCoord2dv">
+        <param name="u" type="GLdouble"/>
+        <param name="v" type="GLdouble"/>
+    </function>
+
+    <function name="EvalCoord2dv" offset="233">
+        <param name="u" type="const GLdouble *" count="2"/>
+       <glx rop="153"/>
+    </function>
+
+    <function name="EvalCoord2f" offset="234" vectorequiv="EvalCoord2fv">
+        <param name="u" type="GLfloat"/>
+        <param name="v" type="GLfloat"/>
+    </function>
+
+    <function name="EvalCoord2fv" offset="235">
+        <param name="u" type="const GLfloat *" count="2"/>
+       <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"/>
+    </function>
+
+    <function name="EvalPoint1" offset="237">
+        <param name="i" type="GLint"/>
+       <glx rop="156"/>
+    </function>
+
+    <function name="EvalMesh2" offset="238">
+        <param name="mode" type="GLenum"/>
+        <param name="i1" type="GLint"/>
+        <param name="i2" type="GLint"/>
+        <param name="j1" type="GLint"/>
+        <param name="j2" type="GLint"/>
+       <glx rop="157"/>
+    </function>
+
+    <function name="EvalPoint2" offset="239">
+        <param name="i" type="GLint"/>
+        <param name="j" type="GLint"/>
+       <glx rop="158"/>
+    </function>
+
+    <function name="AlphaFunc" offset="240">
+        <param name="func" type="GLenum"/>
+        <param name="ref" type="GLclampf"/>
+       <glx rop="159"/>
+    </function>
+
+    <function name="BlendFunc" offset="241">
+        <param name="sfactor" type="GLenum"/>
+        <param name="dfactor" type="GLenum"/>
+       <glx rop="160"/>
+    </function>
+
+    <function name="LogicOp" offset="242">
+        <param name="opcode" type="GLenum"/>
+       <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"/>
+    </function>
+
+    <function name="StencilOp" offset="244">
+        <param name="fail" type="GLenum"/>
+        <param name="zfail" type="GLenum"/>
+        <param name="zpass" type="GLenum"/>
+       <glx rop="163"/>
+    </function>
+
+    <function name="DepthFunc" offset="245">
+        <param name="func" type="GLenum"/>
+       <glx rop="164"/>
+    </function>
+
+    <function name="PixelZoom" offset="246">
+        <param name="xfactor" type="GLfloat"/>
+        <param name="yfactor" type="GLfloat"/>
+       <glx rop="165"/>
+    </function>
+
+    <function name="PixelTransferf" offset="247">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx rop="166"/>
+    </function>
+
+    <function name="PixelTransferi" offset="248">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx rop="167"/>
+    </function>
+
+    <function name="PixelStoref" offset="249">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx rop="109" handcode="true"/>
+    </function>
+
+    <function name="PixelStorei" offset="250">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx rop="110" handcode="true"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="ReadBuffer" offset="254">
+        <param name="mode" type="GLenum"/>
+       <glx rop="171"/>
+    </function>
+
+    <function name="CopyPixels" offset="255">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="type" type="GLenum"/>
+       <glx rop="172"/>
+    </function>
+
+    <function name="ReadPixels" offset="256">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="DrawPixels" offset="257">
+        <param name="width" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="GetBooleanv" offset="258">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLboolean *"/>
+       <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"/>
+    </function>
+
+    <function name="GetDoublev" offset="260">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLdouble *"/>
+       <glx sop="114" handcode="true"/>
+    </function>
+
+    <function name="GetError" offset="261">
+        <return type="GLenum"/>
+       <glx sop="115" handcode="true"/>
+    </function>
+
+    <function name="GetFloatv" offset="262">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *"/>
+       <glx sop="116" handcode="true"/>
+    </function>
+
+    <function name="GetIntegerv" offset="263">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+       <glx sop="117" handcode="true"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="GetPixelMapfv" offset="271">
+        <param name="map" type="GLenum"/>
+        <param name="values" type="GLfloat *" output="true"/>
+       <glx sop="125"/>
+    </function>
+
+    <function name="GetPixelMapuiv" offset="272">
+        <param name="map" type="GLenum"/>
+        <param name="values" type="GLuint *" output="true"/>
+       <glx sop="126"/>
+    </function>
+
+    <function name="GetPixelMapusv" offset="273">
+        <param name="map" type="GLenum"/>
+        <param name="values" type="GLushort *" output="true"/>
+       <glx sop="127"/>
+    </function>
+
+    <function name="GetPolygonStipple" offset="274">
+        <param name="mask" type="GLubyte *"/>
+       <glx sop="128" handcode="true"/>
+    </function>
+
+    <function name="GetString" offset="275">
+        <param name="name" type="GLenum"/>
+        <return type="const GLubyte *"/>
+       <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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="GetTexImage" offset="281">
+        <param name="target" type="GLenum"/>
+        <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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="IsEnabled" offset="286">
+        <param name="cap" type="GLenum"/>
+        <return type="GLboolean"/>
+       <glx sop="140" handcode="true"/>
+    </function>
+
+    <function name="IsList" offset="287">
+        <param name="list" type="GLuint"/>
+        <return type="GLboolean"/>
+       <glx sop="141"/>
+    </function>
+
+    <function name="DepthRange" offset="288">
+        <param name="zNear" type="GLclampd"/>
+        <param name="zFar" type="GLclampd"/>
+       <glx rop="174"/>
+    </function>
+
+    <function name="Frustum" offset="289">
+        <param name="left" type="GLdouble"/>
+        <param name="right" type="GLdouble"/>
+        <param name="bottom" type="GLdouble"/>
+        <param name="top" type="GLdouble"/>
+        <param name="zNear" type="GLdouble"/>
+        <param name="zFar" type="GLdouble"/>
+       <glx rop="175"/>
+    </function>
+
+    <function name="LoadIdentity" offset="290">
+       <glx rop="176"/>
+    </function>
+
+    <function name="LoadMatrixf" offset="291">
+        <param name="m" type="const GLfloat *" count="16"/>
+       <glx rop="177"/>
+    </function>
+
+    <function name="LoadMatrixd" offset="292">
+        <param name="m" type="const GLdouble *" count="16"/>
+       <glx rop="178"/>
+    </function>
+
+    <function name="MatrixMode" offset="293">
+        <param name="mode" type="GLenum"/>
+       <glx rop="179"/>
+    </function>
+
+    <function name="MultMatrixf" offset="294">
+        <param name="m" type="const GLfloat *" count="16"/>
+       <glx rop="180"/>
+    </function>
+
+    <function name="MultMatrixd" offset="295">
+        <param name="m" type="const GLdouble *" count="16"/>
+       <glx rop="181"/>
+    </function>
+
+    <function name="Ortho" offset="296">
+        <param name="left" type="GLdouble"/>
+        <param name="right" type="GLdouble"/>
+        <param name="bottom" type="GLdouble"/>
+        <param name="top" type="GLdouble"/>
+        <param name="zNear" type="GLdouble"/>
+        <param name="zFar" type="GLdouble"/>
+       <glx rop="182"/>
+    </function>
+
+    <function name="PopMatrix" offset="297">
+       <glx rop="183"/>
+    </function>
+
+    <function name="PushMatrix" offset="298">
+       <glx rop="184"/>
+    </function>
+
+    <function name="Rotated" offset="299">
+        <param name="angle" type="GLdouble"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+       <glx rop="185"/>
+    </function>
+
+    <function name="Rotatef" offset="300">
+        <param name="angle" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+       <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"/>
+    </function>
+
+    <function name="Scalef" offset="302">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+       <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"/>
+    </function>
+
+    <function name="Translatef" offset="304">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+       <glx rop="190"/>
+    </function>
+
+    <function name="Viewport" offset="305">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+       <glx rop="191"/>
+    </function>
+</category>
+
+<category name="1.1">
+    <function name="ArrayElement" offset="306">
+        <param name="i" type="GLint"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="ColorPointer" offset="308">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="DisableClientState" offset="309">
+        <param name="array" type="GLenum"/>
+       <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"/>
+    </function>
+
+    <function name="DrawElements" offset="311">
+        <param name="mode" type="GLenum"/>
+        <param name="count" type="GLsizei"/>
+        <param name="type" type="GLenum"/>
+        <param name="indices" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="EdgeFlagPointer" offset="312">
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="EnableClientState" offset="313">
+        <param name="array" type="GLenum"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="GetPointerv" offset="329">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLvoid **"/>
+       <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"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="TexCoordPointer" offset="320">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="VertexPointer" offset="321">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="PolygonOffset" offset="319">
+        <param name="factor" type="GLfloat"/>
+        <param name="units" type="GLfloat"/>
+       <glx rop="192"/>
+    </function>
+
+    <function name="CopyTexImage1D" offset="323">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="border" type="GLint"/>
+       <glx rop="4119"/>
+    </function>
+
+    <function name="CopyTexImage2D" offset="324">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="border" type="GLint"/>
+       <glx rop="4120"/>
+    </function>
+
+    <function name="CopyTexSubImage1D" offset="325">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+       <glx rop="4121"/>
+    </function>
+
+    <function name="CopyTexSubImage2D" offset="326">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+       <glx rop="4122"/>
+    </function>
+
+    <function name="TexSubImage1D" offset="332">
+        <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="type" type="GLenum"/>
+        <param name="pixels" type="const GLvoid *"/>
+       <glx rop="4099" handcode="true"/>
+    </function>
+
+    <function name="TexSubImage2D" offset="333">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="AreTexturesResident" offset="322">
+        <param name="n" type="GLsizei"/>
+        <param name="textures" type="const GLuint *"/>
+        <param name="residences" type="GLboolean *"/>
+        <return type="GLboolean"/>
+       <glx sop="143" handcode="true"/>
+    </function>
+
+    <function name="BindTexture" offset="307">
+        <param name="target" type="GLenum"/>
+        <param name="texture" type="GLuint"/>
+       <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"/>
+    </function>
+
+    <function name="GenTextures" offset="328">
+        <param name="n" type="GLsizei"/>
+        <param name="textures" type="GLuint *" output="true"/>
+       <glx sop="145" handcode="true"/>
+    </function>
+
+    <function name="IsTexture" offset="330">
+        <param name="texture" type="GLuint"/>
+        <return type="GLboolean"/>
+       <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"/>
+    </function>
+
+    <function name="Indexub" offset="315" vectorequiv="Indexubv">
+        <param name="c" type="GLubyte"/>
+    </function>
+
+    <function name="Indexubv" offset="316">
+        <param name="c" type="const GLubyte *" count="1"/>
+       <glx rop="194"/>
+    </function>
+
+    <function name="PopClientAttrib" offset="334">
+       <glx handcode="true"/>
+    </function>
+
+    <function name="PushClientAttrib" offset="335">
+        <param name="mask" type="GLbitfield"/>
+       <glx handcode="true"/>
+    </function>
+</category>
+
+<category name="1.2">
+    <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"/>
+    </function>
+
+    <function name="BlendEquation" offset="337">
+        <param name="mode" type="GLenum"/>
+       <glx rop="4097"/>
+    </function>
+
+    <function name="DrawRangeElements" offset="338">
+        <param name="mode" type="GLenum"/>
+        <param name="start" type="GLuint"/>
+        <param name="end" type="GLuint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="type" type="GLenum"/>
+        <param name="indices" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="ColorTable" offset="339">
+        <param name="target" 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 *"/>
+       <glx rop="2053" handcode="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"/>
+    </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"/>
+    </function>
+
+    <function name="CopyColorTable" offset="342">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+       <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"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="ColorSubTable" offset="346">
+        <param name="target" type="GLenum"/>
+        <param name="start" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="CopyColorSubTable" offset="347">
+        <param name="target" type="GLenum"/>
+        <param name="start" type="GLsizei"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+       <glx rop="196"/>
+    </function>
+
+    <function name="ConvolutionFilter1D" offset="348">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <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"/>
+    </function>
+
+    <function name="ConvolutionFilter2D" offset="349">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="width" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="ConvolutionParameterf" offset="350">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat"/>
+       <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"/>
+    </function>
+
+    <function name="ConvolutionParameteri" offset="352">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint"/>
+       <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"/>
+    </function>
+
+    <function name="CopyConvolutionFilter1D" offset="354">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+       <glx rop="4107"/>
+    </function>
+
+    <function name="CopyConvolutionFilter2D" offset="355">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+       <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"/>
+    </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"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="SeparableFilter2D" offset="360">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="format" type="GLenum"/>
+        <param name="type" type="GLenum"/>
+        <param name="row" type="const GLvoid *"/>
+        <param name="column" type="const GLvoid *"/>
+       <glx rop="4109" handcode="true"/>
+    </function>
+
+    <function name="GetHistogram" offset="361">
+        <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 sop="154" handcode="true"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="GetMinmax" offset="364">
+        <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 *"/>
+       <glx sop="157" handcode="true"/>
+    </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"/>
+    </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"/>
+    </function>
+
+    <function name="Histogram" offset="367">
+        <param name="target" type="GLenum"/>
+        <param name="width" type="GLsizei"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="sink" type="GLboolean"/>
+       <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"/>
+    </function>
+
+    <function name="ResetHistogram" offset="369">
+        <param name="target" type="GLenum"/>
+       <glx rop="4112"/>
+    </function>
+
+    <function name="ResetMinmax" offset="370">
+        <param name="target" type="GLenum"/>
+       <glx rop="4113"/>
+    </function>
+
+    <function name="TexImage3D" offset="371">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="internalformat" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="depth" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="TexSubImage3D" offset="372">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="zoffset" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="CopyTexSubImage3D" offset="373">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="zoffset" type="GLint"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+       <glx rop="4123"/>
+    </function>
+</category>
+
+<category name="GL_ARB_multitexture">
+    <function name="ActiveTextureARB" offset="374">
+        <param name="texture" type="GLenum"/>
+       <glx rop="197"/>
+    </function>
+
+    <function name="ClientActiveTextureARB" offset="375">
+        <param name="texture" type="GLenum"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="MultiTexCoord1dARB" offset="376" vectorequiv="MultiTexCoord1dvARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLdouble"/>
+    </function>
+
+    <function name="MultiTexCoord1dvARB" offset="377">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLdouble *" count="1"/>
+       <glx rop="198"/>
+    </function>
+
+    <function name="MultiTexCoord1fARB" offset="378" vectorequiv="MultiTexCoord1fvARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLfloat"/>
+    </function>
+
+    <function name="MultiTexCoord1fvARB" offset="379">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLfloat *" count="1"/>
+       <glx rop="199"/>
+    </function>
+
+    <function name="MultiTexCoord1iARB" offset="380" vectorequiv="MultiTexCoord1ivARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLint"/>
+    </function>
+
+    <function name="MultiTexCoord1ivARB" offset="381">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLint *" count="1"/>
+       <glx rop="200"/>
+    </function>
+
+    <function name="MultiTexCoord1sARB" offset="382" vectorequiv="MultiTexCoord1svARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLshort"/>
+    </function>
+
+    <function name="MultiTexCoord1svARB" offset="383">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLshort *" count="1"/>
+       <glx rop="201"/>
+    </function>
+
+    <function name="MultiTexCoord2dARB" offset="384" vectorequiv="MultiTexCoord2dvARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+    </function>
+
+    <function name="MultiTexCoord2dvARB" offset="385">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLdouble *" count="2"/>
+       <glx rop="202"/>
+    </function>
+
+    <function name="MultiTexCoord2fARB" offset="386" vectorequiv="MultiTexCoord2fvARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+    </function>
+
+    <function name="MultiTexCoord2fvARB" offset="387">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLfloat *" count="2"/>
+       <glx rop="203"/>
+    </function>
+
+    <function name="MultiTexCoord2iARB" offset="388" vectorequiv="MultiTexCoord2ivARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+    </function>
+
+    <function name="MultiTexCoord2ivARB" offset="389">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLint *" count="2"/>
+       <glx rop="204"/>
+    </function>
+
+    <function name="MultiTexCoord2sARB" offset="390" vectorequiv="MultiTexCoord2svARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+    </function>
+
+    <function name="MultiTexCoord2svARB" offset="391">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLshort *" count="2"/>
+       <glx rop="205"/>
+    </function>
+
+    <function name="MultiTexCoord3dARB" offset="392" vectorequiv="MultiTexCoord3dvARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+        <param name="r" type="GLdouble"/>
+    </function>
+
+    <function name="MultiTexCoord3dvARB" offset="393">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLdouble *" count="3"/>
+       <glx rop="206"/>
+    </function>
+
+    <function name="MultiTexCoord3fARB" offset="394" vectorequiv="MultiTexCoord3fvARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+    </function>
+
+    <function name="MultiTexCoord3fvARB" offset="395">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLfloat *" count="3"/>
+       <glx rop="207"/>
+    </function>
+
+    <function name="MultiTexCoord3iARB" offset="396" vectorequiv="MultiTexCoord3ivARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+        <param name="r" type="GLint"/>
+    </function>
+
+    <function name="MultiTexCoord3ivARB" offset="397">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLint *" count="3"/>
+       <glx rop="208"/>
+    </function>
+
+    <function name="MultiTexCoord3sARB" offset="398" vectorequiv="MultiTexCoord3svARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+        <param name="r" type="GLshort"/>
+    </function>
+
+    <function name="MultiTexCoord3svARB" offset="399">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLshort *" count="3"/>
+       <glx rop="209"/>
+    </function>
+
+    <function name="MultiTexCoord4dARB" offset="400" vectorequiv="MultiTexCoord4dvARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+        <param name="r" type="GLdouble"/>
+        <param name="q" type="GLdouble"/>
+    </function>
+
+    <function name="MultiTexCoord4dvARB" offset="401">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLdouble *" count="4"/>
+       <glx rop="210"/>
+    </function>
+
+    <function name="MultiTexCoord4fARB" offset="402" vectorequiv="MultiTexCoord4fvARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+        <param name="q" type="GLfloat"/>
+    </function>
+
+    <function name="MultiTexCoord4fvARB" offset="403">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLfloat *" count="4"/>
+       <glx rop="211"/>
+    </function>
+
+    <function name="MultiTexCoord4iARB" offset="404" vectorequiv="MultiTexCoord4ivARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+        <param name="r" type="GLint"/>
+        <param name="q" type="GLint"/>
+    </function>
+
+    <function name="MultiTexCoord4ivARB" offset="405">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLint *" count="4"/>
+       <glx rop="212"/>
+    </function>
+
+    <function name="MultiTexCoord4sARB" offset="406" vectorequiv="MultiTexCoord4svARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+        <param name="r" type="GLshort"/>
+        <param name="q" type="GLshort"/>
+    </function>
+
+    <function name="MultiTexCoord4svARB" offset="407">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLshort *" count="4"/>
+       <glx rop="213"/>
+    </function>
+</category>
+
+<category name="GL_ARB_transpose_matrix">
+    <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">
+        <param name="m" type="const GLfloat *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="LoadTransposeMatrixdARB" offset="409">
+        <param name="m" type="const GLdouble *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="MultTransposeMatrixfARB" offset="410">
+        <param name="m" type="const GLfloat *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="MultTransposeMatrixdARB" offset="411">
+        <param name="m" type="const GLdouble *"/>
+       <glx handcode="true"/>
+    </function>
+</category>
+
+<category name="GL_ARB_multisample">
+    <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"/>
+
+    <function name="SampleCoverageARB" offset="412">
+        <param name="value" type="GLclampf"/>
+        <param name="invert" type="GLboolean"/>
+       <glx rop="229"/>
+    </function>
+</category>
+
+<category name="unused">
+    <function name="__unused413" offset="413">
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_ARB_texture_compression">
+    <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">
+        <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="depth" type="GLsizei"/>
+        <param name="border" type="GLint"/>
+        <param name="imageSize" type="GLsizei"/>
+        <param name="data" type="const GLvoid *"/>
+       <glx rop="216" handcode="true"/>
+    </function>
+
+    <function name="CompressedTexImage2DARB" offset="555">
+        <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"/>
+    </function>
+
+    <function name="CompressedTexImage1DARB" offset="556">
+        <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"/>
+    </function>
+
+    <function name="CompressedTexSubImage3DARB" offset="557">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="zoffset" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="CompressedTexSubImage2DARB" offset="558">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" 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"/>
+    </function>
+
+    <function name="CompressedTexSubImage1DARB" offset="559">
+        <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"/>
+    </function>
+
+    <function name="GetCompressedTexImageARB" offset="560">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="img" type="GLvoid *"/>
+       <glx sop="160" handcode="true"/>
+    </function>
+</category>
+
+<category name="1.3">
+    <function name="ActiveTexture" alias="ActiveTextureARB">
+        <param name="texture" type="GLenum"/>
+    </function>
+
+    <function name="ClientActiveTexture" alias="ClientActiveTextureARB">
+        <param name="texture" type="GLenum"/>
+    </function>
+
+    <function name="MultiTexCoord1d" alias="MultiTexCoord1dARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLdouble"/>
+    </function>
+
+    <function name="MultiTexCoord1dv" alias="MultiTexCoord1dvARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="MultiTexCoord1f" alias="MultiTexCoord1fARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLfloat"/>
+    </function>
+
+    <function name="MultiTexCoord1fv" alias="MultiTexCoord1fvARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="MultiTexCoord1i" alias="MultiTexCoord1iARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLint"/>
+    </function>
+
+    <function name="MultiTexCoord1iv" alias="MultiTexCoord1ivARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="MultiTexCoord1s" alias="MultiTexCoord1sARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLshort"/>
+    </function>
+
+    <function name="MultiTexCoord1sv" alias="MultiTexCoord1svARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="MultiTexCoord2d" alias="MultiTexCoord2dARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+    </function>
+
+    <function name="MultiTexCoord2dv" alias="MultiTexCoord2dvARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="MultiTexCoord2f" alias="MultiTexCoord2fARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+    </function>
+
+    <function name="MultiTexCoord2fv" alias="MultiTexCoord2fvARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="MultiTexCoord2i" alias="MultiTexCoord2iARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+    </function>
+
+    <function name="MultiTexCoord2iv" alias="MultiTexCoord2ivARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="MultiTexCoord2s" alias="MultiTexCoord2sARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+    </function>
+
+    <function name="MultiTexCoord2sv" alias="MultiTexCoord2svARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="MultiTexCoord3d" alias="MultiTexCoord3dARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+        <param name="r" type="GLdouble"/>
+    </function>
+
+    <function name="MultiTexCoord3dv" alias="MultiTexCoord3dvARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="MultiTexCoord3f" alias="MultiTexCoord3fARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+    </function>
+
+    <function name="MultiTexCoord3fv" alias="MultiTexCoord3fvARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="MultiTexCoord3i" alias="MultiTexCoord3iARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+        <param name="r" type="GLint"/>
+    </function>
+
+    <function name="MultiTexCoord3iv" alias="MultiTexCoord3ivARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="MultiTexCoord3s" alias="MultiTexCoord3sARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+        <param name="r" type="GLshort"/>
+    </function>
+
+    <function name="MultiTexCoord3sv" alias="MultiTexCoord3svARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="MultiTexCoord4d" alias="MultiTexCoord4dARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLdouble"/>
+        <param name="t" type="GLdouble"/>
+        <param name="r" type="GLdouble"/>
+        <param name="q" type="GLdouble"/>
+    </function>
+
+    <function name="MultiTexCoord4dv" alias="MultiTexCoord4dvARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="MultiTexCoord4f" alias="MultiTexCoord4fARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+        <param name="q" type="GLfloat"/>
+    </function>
+
+    <function name="MultiTexCoord4fv" alias="MultiTexCoord4fvARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="MultiTexCoord4i" alias="MultiTexCoord4iARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLint"/>
+        <param name="t" type="GLint"/>
+        <param name="r" type="GLint"/>
+        <param name="q" type="GLint"/>
+    </function>
+
+    <function name="MultiTexCoord4iv" alias="MultiTexCoord4ivARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="MultiTexCoord4s" alias="MultiTexCoord4sARB">
+        <param name="target" type="GLenum"/>
+        <param name="s" type="GLshort"/>
+        <param name="t" type="GLshort"/>
+        <param name="r" type="GLshort"/>
+        <param name="q" type="GLshort"/>
+    </function>
+
+    <function name="MultiTexCoord4sv" alias="MultiTexCoord4svARB">
+        <param name="target" type="GLenum"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="LoadTransposeMatrixf" alias="LoadTransposeMatrixfARB">
+        <param name="m" type="const GLfloat *"/>
+    </function>
+
+    <function name="LoadTransposeMatrixd" alias="LoadTransposeMatrixdARB">
+        <param name="m" type="const GLdouble *"/>
+    </function>
+
+    <function name="MultTransposeMatrixf" alias="MultTransposeMatrixfARB">
+        <param name="m" type="const GLfloat *"/>
+    </function>
+
+    <function name="MultTransposeMatrixd" alias="MultTransposeMatrixdARB">
+        <param name="m" type="const GLdouble *"/>
+    </function>
+
+    <function name="SampleCoverage" alias="SampleCoverageARB">
+        <param name="value" type="GLclampf"/>
+        <param name="invert" type="GLboolean"/>
+    </function>
+
+    <function name="CompressedTexImage3D" alias="CompressedTexImage3DARB">
+        <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="depth" type="GLsizei"/>
+        <param name="border" type="GLint"/>
+        <param name="imageSize" type="GLsizei"/>
+        <param name="data" type="const GLvoid *"/>
+    </function>
+
+    <function name="CompressedTexImage2D" alias="CompressedTexImage2DARB">
+        <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 *"/>
+    </function>
+
+    <function name="CompressedTexImage1D" alias="CompressedTexImage1DARB">
+        <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 *"/>
+    </function>
+
+    <function name="CompressedTexSubImage3D" alias="CompressedTexSubImage3DARB">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="zoffset" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <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 *"/>
+    </function>
+
+    <function name="CompressedTexSubImage2D" alias="CompressedTexSubImage2DARB">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" 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 *"/>
+    </function>
+
+    <function name="CompressedTexSubImage1D" alias="CompressedTexSubImage1DARB">
+        <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 *"/>
+    </function>
+
+    <function name="GetCompressedTexImage" alias="GetCompressedTexImageARB">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="img" type="GLvoid *"/>
+    </function>
+</category>
+
+<category name="GL_ARB_vertex_blend">
+    <function name="WeightbvARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="weights" type="const GLbyte *"/>
+    </function>
+
+    <function name="WeightsvARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="weights" type="const GLshort *"/>
+    </function>
+
+    <function name="WeightivARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="weights" type="const GLint *"/>
+    </function>
+
+    <function name="WeightfvARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="weights" type="const GLfloat *"/>
+    </function>
+
+    <function name="WeightdvARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="weights" type="const GLdouble *"/>
+    </function>
+
+    <function name="WeightubvARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="weights" type="const GLubyte *"/>
+    </function>
+
+    <function name="WeightusvARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="weights" type="const GLushort *"/>
+    </function>
+
+    <function name="WeightuivARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="weights" type="const GLuint *"/>
+    </function>
+
+    <function name="WeightPointerARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="VertexBlendARB" offset="?">
+        <param name="count" type="GLint"/>
+    </function>
+</category>
+
+<category name="GL_ARB_matrix_palette">
+    <function name="CurrentPaletteMatrixARB" offset="?">
+        <param name="index" type="GLint"/>
+    </function>
+
+    <function name="MatrixIndexubvARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="indices" type="const GLubyte *"/>
+    </function>
+
+    <function name="MatrixIndexusvARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="indices" type="const GLushort *"/>
+    </function>
+
+    <function name="MatrixIndexuivARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="indices" type="const GLuint *"/>
+    </function>
+
+    <function name="MatrixIndexPointerARB" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_blend_color">
+    <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"/>
+
+    <function name="BlendColorEXT" alias="BlendColor">
+        <param name="red" type="GLclampf"/>
+        <param name="green" type="GLclampf"/>
+        <param name="blue" type="GLclampf"/>
+        <param name="alpha" type="GLclampf"/>
+    </function>
+</category>
+
+<category name="GL_EXT_polygon_offset">
+    <function name="PolygonOffsetEXT" offset="414">
+        <param name="factor" type="GLfloat"/>
+        <param name="bias" type="GLfloat"/>
+       <glx rop="4098"/>
+    </function>
+</category>
+
+<category name="GL_EXT_texture3D">
+    <function name="TexImage3DEXT" alias="TexImage3D">
+        <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="depth" type="GLsizei"/>
+        <param name="border" type="GLint"/>
+        <param name="format" type="GLenum"/>
+        <param name="type" type="GLenum"/>
+        <param name="pixels" type="const GLvoid *"/>
+    </function>
+
+    <function name="TexSubImage3DEXT" alias="TexSubImage3D">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="zoffset" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="depth" type="GLsizei"/>
+        <param name="format" type="GLenum"/>
+        <param name="type" type="GLenum"/>
+        <param name="pixels" type="const GLvoid *"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_texture_filter4">
+    <function name="GetTexFilterFuncSGIS" offset="415">
+        <param name="target" type="GLenum"/>
+        <param name="filter" type="GLenum"/>
+        <param name="weights" type="GLfloat *" output="true"/>
+       <glx vendorpriv="4101"/>
+    </function>
+
+    <function name="TexFilterFuncSGIS" offset="416">
+        <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"/>
+    </function>
+</category>
+
+<category name="GL_EXT_subtexture">
+    <function name="TexSubImage1DEXT" alias="TexSubImage1D">
+        <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="type" type="GLenum"/>
+        <param name="pixels" type="const GLvoid *"/>
+    </function>
+
+    <function name="TexSubImage2DEXT" alias="TexSubImage2D">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="format" type="GLenum"/>
+        <param name="type" type="GLenum"/>
+        <param name="pixels" type="const GLvoid *"/>
+    </function>
+</category>
+
+<category name="GL_EXT_copy_texture">
+    <function name="CopyTexImage1DEXT" alias="CopyTexImage1D">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="border" type="GLint"/>
+    </function>
+
+    <function name="CopyTexImage2DEXT" alias="CopyTexImage2D">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="border" type="GLint"/>
+    </function>
+
+    <function name="CopyTexSubImage1DEXT" alias="CopyTexSubImage1D">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+    </function>
+
+    <function name="CopyTexSubImage2DEXT" alias="CopyTexSubImage2D">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+    </function>
+
+    <function name="CopyTexSubImage3DEXT" alias="CopyTexSubImage3D">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="zoffset" type="GLint"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+    </function>
+</category>
+
+<category name="GL_EXT_histogram">
+    <function name="GetHistogramEXT" offset="417">
+        <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"/>
+    </function>
+
+    <function name="GetHistogramParameterfvEXT" offset="418">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx vendorpriv="6"/>
+    </function>
+
+    <function name="GetHistogramParameterivEXT" offset="419">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx vendorpriv="7"/>
+    </function>
+
+    <function name="GetMinmaxEXT" offset="420">
+        <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"/>
+    </function>
+
+    <function name="GetMinmaxParameterfvEXT" offset="421">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx vendorpriv="9"/>
+    </function>
+
+    <function name="GetMinmaxParameterivEXT" offset="422">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx vendorpriv="10"/>
+    </function>
+
+    <function name="HistogramEXT" alias="Histogram">
+        <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">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="sink" type="GLboolean"/>
+    </function>
+
+    <function name="ResetHistogramEXT" alias="ResetHistogram">
+        <param name="target" type="GLenum"/>
+    </function>
+
+    <function name="ResetMinmaxEXT" alias="ResetMinmax">
+        <param name="target" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_EXT_convolution">
+    <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="width" type="GLsizei"/>
+        <param name="format" type="GLenum"/>
+        <param name="type" type="GLenum"/>
+        <param name="image" type="const GLvoid *"/>
+    </function>
+
+    <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="format" type="GLenum"/>
+        <param name="type" type="GLenum"/>
+        <param name="image" type="const GLvoid *"/>
+    </function>
+
+    <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat"/>
+    </function>
+
+    <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+
+    <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint"/>
+    </function>
+
+    <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+    </function>
+
+    <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+    </function>
+
+    <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+    </function>
+
+    <function name="GetConvolutionFilterEXT" offset="423">
+        <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"/>
+    </function>
+
+    <function name="GetConvolutionParameterfvEXT" offset="424">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx sop="2"/>
+    </function>
+
+    <function name="GetConvolutionParameterivEXT" offset="425">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx sop="3"/>
+    </function>
+
+    <function name="GetSeparableFilterEXT" offset="426">
+        <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"/>
+    </function>
+
+    <function name="SeparableFilter2DEXT" alias="SeparableFilter2D">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="format" type="GLenum"/>
+        <param name="type" type="GLenum"/>
+        <param name="row" type="const GLvoid *"/>
+        <param name="column" type="const GLvoid *"/>
+    </function>
+</category>
+
+<category name="GL_SGI_color_table">
+    <function name="ColorTableSGI" alias="ColorTable">
+        <param name="target" 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="ColorTableParameterfvSGI" alias="ColorTableParameterfv">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+
+    <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+    </function>
+
+    <function name="CopyColorTableSGI" alias="CopyColorTable">
+        <param name="target" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+    </function>
+
+    <function name="GetColorTableSGI" offset="427">
+        <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"/>
+    </function>
+
+    <function name="GetColorTableParameterfvSGI" offset="428">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx vendorpriv="4099"/>
+    </function>
+
+    <function name="GetColorTableParameterivSGI" offset="429">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx vendorpriv="4100"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_pixel_texture">
+    <function name="PixelTexGenSGIX" offset="430">
+        <param name="mode" type="GLenum"/>
+       <glx rop="2059"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_pixel_texture">
+    <function name="PixelTexGenParameteriSGIS" offset="431">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="PixelTexGenParameterivSGIS" offset="432">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="PixelTexGenParameterfSGIS" offset="433">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="PixelTexGenParameterfvSGIS" offset="434">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetPixelTexGenParameterivSGIS" offset="435">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetPixelTexGenParameterfvSGIS" offset="436">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_texture4D">
+    <function name="TexImage4DSGIS" offset="437">
+        <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="depth" type="GLsizei"/>
+        <param name="size4d" type="GLsizei"/>
+        <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"/>
+    </function>
+
+    <function name="TexSubImage4DSGIS" offset="438">
+        <param name="target" type="GLenum"/>
+        <param name="level" type="GLint"/>
+        <param name="xoffset" type="GLint"/>
+        <param name="yoffset" type="GLint"/>
+        <param name="zoffset" type="GLint"/>
+        <param name="woffset" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+        <param name="depth" type="GLsizei"/>
+        <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"/>
+    </function>
+</category>
+
+<category name="GL_EXT_texture_object">
+    <function name="AreTexturesResidentEXT" offset="439">
+        <param name="n" type="GLsizei"/>
+        <param name="textures" type="const GLuint *"/>
+        <param name="residences" type="GLboolean *" output="true"/>
+        <return type="GLboolean"/>
+       <glx vendorpriv="11" handcode="true"/>
+    </function>
+
+    <function name="BindTextureEXT" alias="BindTexture">
+        <param name="target" type="GLenum"/>
+        <param name="texture" type="GLuint"/>
+    </function>
+
+    <function name="DeleteTexturesEXT" alias="DeleteTextures">
+        <param name="n" type="GLsizei"/>
+        <param name="textures" type="const GLuint *"/>
+    </function>
+
+    <function name="GenTexturesEXT" offset="440">
+        <param name="n" type="GLsizei"/>
+        <param name="textures" type="GLuint *" output="true"/>
+       <glx vendorpriv="13" handcode="true"/>
+    </function>
+
+    <function name="IsTextureEXT" offset="441">
+        <param name="texture" type="GLuint"/>
+        <return type="GLboolean"/>
+       <glx vendorpriv="14"/>
+    </function>
+
+    <function name="PrioritizeTexturesEXT" alias="PrioritizeTextures">
+        <param name="n" type="GLsizei"/>
+        <param name="textures" type="const GLuint *"/>
+        <param name="priorities" type="const GLclampf *"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_detail_texture">
+    <function name="DetailTexFuncSGIS" offset="442">
+        <param name="target" type="GLenum"/>
+        <param name="n" type="GLsizei"/>
+        <param name="points" type="const GLfloat *"/>
+       <glx rop="2051" handcode="true"/>
+    </function>
+
+    <function name="GetDetailTexFuncSGIS" offset="443">
+        <param name="target" type="GLenum"/>
+        <param name="points" type="GLfloat *" output="true"/>
+       <glx vendorpriv="4096"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_sharpen_texture">
+    <function name="SharpenTexFuncSGIS" offset="444">
+        <param name="target" type="GLenum"/>
+        <param name="n" type="GLsizei"/>
+        <param name="points" type="const GLfloat *"/>
+       <glx rop="2052" handcode="true"/>
+    </function>
+
+    <function name="GetSharpenTexFuncSGIS" offset="445">
+        <param name="target" type="GLenum"/>
+        <param name="points" type="GLfloat *" output="true"/>
+       <glx vendorpriv="4097"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_multisample">
+    <function name="SampleMaskSGIS" offset="446">
+        <param name="value" type="GLclampf"/>
+        <param name="invert" type="GLboolean"/>
+       <glx rop="2048"/>
+    </function>
+
+    <function name="SamplePatternSGIS" offset="447">
+        <param name="pattern" type="GLenum"/>
+       <glx rop="2049"/>
+    </function>
+</category>
+
+<category name="GL_EXT_vertex_array">
+    <function name="ArrayElementEXT" alias="ArrayElement">
+        <param name="i" type="GLint"/>
+    </function>
+
+    <function name="ColorPointerEXT" offset="448">
+        <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"/>
+    </function>
+
+    <function name="DrawArraysEXT" alias="DrawArrays">
+        <param name="mode" type="GLenum"/>
+        <param name="first" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+    </function>
+
+    <function name="EdgeFlagPointerEXT" offset="449">
+        <param name="stride" type="GLsizei"/>
+        <param name="count" type="GLsizei"/>
+        <param name="pointer" type="const GLboolean *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="GetPointervEXT" alias="GetPointerv">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLvoid **"/>
+    </function>
+
+    <function name="IndexPointerEXT" offset="450">
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="count" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="NormalPointerEXT" offset="451">
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="count" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="TexCoordPointerEXT" offset="452">
+        <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"/>
+    </function>
+
+    <function name="VertexPointerEXT" offset="453">
+        <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"/>
+    </function>
+</category>
+
+<category name="GL_EXT_blend_minmax">
+    <function name="BlendEquationEXT" alias="BlendEquation">
+        <param name="mode" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_sprite">
+    <function name="SpriteParameterfSGIX" offset="454">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="SpriteParameterfvSGIX" offset="455">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="SpriteParameteriSGIX" offset="456">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="SpriteParameterivSGIX" offset="457">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_point_parameters">
+    <function name="PointParameterfEXT" offset="458">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx rop="2065"/>
+    </function>
+
+    <function name="PointParameterfvEXT" offset="459">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"/>
+       <glx rop="2066"/>
+    </function>
+</category>
+
+<category name="GL_ARB_point_parameters">
+    <function name="PointParameterfARB" alias="PointParameterfEXT">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <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"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_point_parameters">
+    <function name="PointParameterfSGIS" alias="PointParameterfEXT">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+    </function>
+
+    <function name="PointParameterfvSGIS" alias="PointParameterfvEXT">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_instruments">
+    <function name="GetInstrumentsSGIX" offset="460">
+        <return type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="InstrumentsBufferSGIX" offset="461">
+        <param name="size" type="GLsizei"/>
+        <param name="buffer" type="GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="PollInstrumentsSGIX" offset="462">
+        <param name="marker_p" type="GLint *"/>
+        <return type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="ReadInstrumentsSGIX" offset="463">
+        <param name="marker" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="StartInstrumentsSGIX" offset="464">
+       <glx ignore="true"/>
+    </function>
+
+    <function name="StopInstrumentsSGIX" offset="465">
+        <param name="marker" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_framezoom">
+    <function name="FrameZoomSGIX" offset="466">
+        <param name="factor" type="GLint"/>
+       <glx rop="2072"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_tag_sample_buffer">
+    <function name="TagSampleBufferSGIX" offset="467">
+       <glx rop="2050"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_polynomial_ffd">
+    <function name="DeformationMap3dSGIX" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="u1" type="GLdouble"/>
+        <param name="u2" type="GLdouble"/>
+        <param name="ustride" type="GLint"/>
+        <param name="uorder" type="GLint"/>
+        <param name="v1" type="GLdouble"/>
+        <param name="v2" type="GLdouble"/>
+        <param name="vstride" type="GLint"/>
+        <param name="vorder" type="GLint"/>
+        <param name="w1" type="GLdouble"/>
+        <param name="w2" type="GLdouble"/>
+        <param name="wstride" type="GLint"/>
+        <param name="worder" type="GLint"/>
+        <param name="points" type="const GLdouble *"/>
+    </function>
+
+    <function name="DeformationMap3fSGIX" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="u1" type="GLfloat"/>
+        <param name="u2" type="GLfloat"/>
+        <param name="ustride" type="GLint"/>
+        <param name="uorder" type="GLint"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+        <param name="vstride" type="GLint"/>
+        <param name="vorder" type="GLint"/>
+        <param name="w1" type="GLfloat"/>
+        <param name="w2" type="GLfloat"/>
+        <param name="wstride" type="GLint"/>
+        <param name="worder" type="GLint"/>
+        <param name="points" type="const GLfloat *"/>
+    </function>
+
+    <function name="DeformSGIX" offset="?">
+        <param name="mask" type="GLenum"/>
+    </function>
+
+    <function name="LoadIdentityDeformationMapSGIX" offset="?">
+        <param name="mask" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_reference_plane">
+    <function name="ReferencePlaneSGIX" offset="468">
+        <param name="equation" type="const GLdouble *" count="4"/>
+       <glx rop="2071"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_flush_raster">
+    <function name="FlushRasterSGIX" offset="469">
+       <glx vendorpriv="4105" ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_fog_function">
+    <function name="FogFuncSGIS" offset="?">
+        <param name="n" type="GLsizei"/>
+        <param name="points" type="const GLfloat *"/>
+       <glx rop="2067" handcode="true"/>
+    </function>
+
+    <function name="GetFogFuncSGIS" offset="?">
+        <param name="points" type="GLfloat *" output="true"/>
+       <!-- GLX protocol for this function is unknown. -->
+    </function>
+</category>
+
+<category name="GL_HP_image_transform">
+    <function name="ImageTransformParameteriHP" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+    </function>
+
+    <function name="ImageTransformParameterfHP" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+    </function>
+
+    <function name="ImageTransformParameterivHP" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+    </function>
+
+    <function name="ImageTransformParameterfvHP" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+
+    <function name="GetImageTransformParameterivHP" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+    </function>
+
+    <function name="GetImageTransformParameterfvHP" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *"/>
+    </function>
+</category>
+
+<category name="GL_EXT_color_subtable">
+    <function name="ColorSubTableEXT" alias="ColorSubTable">
+        <param name="target" type="GLenum"/>
+        <param name="start" type="GLsizei"/>
+        <param name="count" type="GLsizei"/>
+        <param name="format" type="GLenum"/>
+        <param name="type" type="GLenum"/>
+        <param name="data" type="const GLvoid *"/>
+    </function>
+
+    <function name="CopyColorSubTableEXT" alias="CopyColorSubTable">
+        <param name="target" type="GLenum"/>
+        <param name="start" type="GLsizei"/>
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="width" type="GLsizei"/>
+    </function>
+</category>
+
+<category name="GL_PGI_misc_hints">
+    <function name="HintPGI" offset="544">
+        <param name="target" type="GLenum"/>
+        <param name="mode" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_paletted_texture">
+    <function name="ColorTableEXT" alias="ColorTable">
+        <param name="target" 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">
+        <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"/>
+    </function>
+
+    <function name="GetColorTableParameterivEXT" offset="551">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetColorTableParameterfvEXT" offset="552">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_list_priority">
+    <function name="GetListParameterfvSGIX" offset="470">
+        <param name="list" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetListParameterivSGIX" offset="471">
+        <param name="list" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="ListParameterfSGIX" offset="472">
+        <param name="list" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="ListParameterfvSGIX" offset="473">
+        <param name="list" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="ListParameteriSGIX" offset="474">
+        <param name="list" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="ListParameterivSGIX" offset="475">
+        <param name="list" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_index_material">
+    <function name="IndexMaterialEXT" offset="538">
+        <param name="face" type="GLenum"/>
+        <param name="mode" type="GLenum"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_index_func">
+    <function name="IndexFuncEXT" offset="539">
+        <param name="func" type="GLenum"/>
+        <param name="ref" type="GLclampf"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_compiled_vertex_array">
+    <function name="LockArraysEXT" offset="540">
+        <param name="first" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="UnlockArraysEXT" offset="541">
+       <glx handcode="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_cull_vertex">
+    <function name="CullParameterdvEXT" offset="542">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLdouble *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="CullParameterfvEXT" offset="543">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_fragment_lighting">
+    <function name="FragmentColorMaterialSGIX" offset="476">
+        <param name="face" type="GLenum"/>
+        <param name="mode" type="GLenum"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentLightfSGIX" offset="477">
+        <param name="light" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentLightfvSGIX" offset="478">
+        <param name="light" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentLightiSGIX" offset="479">
+        <param name="light" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentLightivSGIX" offset="480">
+        <param name="light" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentLightModelfSGIX" offset="481">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentLightModelfvSGIX" offset="482">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentLightModeliSGIX" offset="483">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentLightModelivSGIX" offset="484">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentMaterialfSGIX" offset="485">
+        <param name="face" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentMaterialfvSGIX" offset="486">
+        <param name="face" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentMaterialiSGIX" offset="487">
+        <param name="face" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FragmentMaterialivSGIX" offset="488">
+        <param name="face" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetFragmentLightfvSGIX" offset="489">
+        <param name="light" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetFragmentLightivSGIX" offset="490">
+        <param name="light" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetFragmentMaterialfvSGIX" offset="491">
+        <param name="face" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetFragmentMaterialivSGIX" offset="492">
+        <param name="face" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="LightEnviSGIX" offset="493">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_draw_range_elements">
+    <function name="DrawRangeElementsEXT" alias="DrawRangeElements">
+        <param name="mode" type="GLenum"/>
+        <param name="start" type="GLuint"/>
+        <param name="end" type="GLuint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="type" type="GLenum"/>
+        <param name="indices" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_light_texture">
+    <function name="ApplyTextureEXT" offset="?">
+        <param name="mode" type="GLenum"/>
+    </function>
+
+    <function name="TextureLightEXT" offset="?">
+        <param name="pname" type="GLenum"/>
+    </function>
+
+    <function name="TextureMaterialEXT" offset="?">
+        <param name="face" type="GLenum"/>
+        <param name="mode" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_async">
+    <function name="AsyncMarkerSGIX" offset="?">
+        <param name="marker" type="GLuint"/>
+    </function>
+
+    <function name="FinishAsyncSGIX" offset="?">
+        <param name="markerp" type="GLuint *"/>
+        <return type="GLint"/>
+    </function>
+
+    <function name="PollAsyncSGIX" offset="?">
+        <param name="markerp" type="GLuint *"/>
+        <return type="GLint"/>
+    </function>
+
+    <function name="GenAsyncMarkersSGIX" offset="?">
+        <param name="range" type="GLsizei"/>
+        <return type="GLuint"/>
+    </function>
+
+    <function name="DeleteAsyncMarkersSGIX" offset="?">
+        <param name="marker" type="GLuint"/>
+        <param name="range" type="GLsizei"/>
+    </function>
+
+    <function name="IsAsyncMarkerSGIX" offset="?">
+        <param name="marker" type="GLuint"/>
+        <return type="GLboolean"/>
+    </function>
+</category>
+
+<category name="GL_INTEL_parallel_arrays">
+    <function name="VertexPointervINTEL" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="pointer" type="const GLvoid **"/>
+    </function>
+
+    <function name="NormalPointervINTEL" offset="?">
+        <param name="type" type="GLenum"/>
+        <param name="pointer" type="const GLvoid **"/>
+    </function>
+
+    <function name="ColorPointervINTEL" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="pointer" type="const GLvoid **"/>
+    </function>
+
+    <function name="TexCoordPointervINTEL" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="pointer" type="const GLvoid **"/>
+    </function>
+</category>
+
+<category name="GL_EXT_pixel_transform">
+    <function name="PixelTransformParameteriEXT" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+    </function>
+
+    <function name="PixelTransformParameterfEXT" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+    </function>
+
+    <function name="PixelTransformParameterivEXT" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+    </function>
+
+    <function name="PixelTransformParameterfvEXT" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+</category>
+
+<category name="GL_EXT_secondary_color">
+    <function name="SecondaryColor3bEXT" offset="561" vectorequiv="SecondaryColor3bvEXT">
+        <param name="red" type="GLbyte"/>
+        <param name="green" type="GLbyte"/>
+        <param name="blue" type="GLbyte"/>
+    </function>
+
+    <function name="SecondaryColor3bvEXT" offset="562">
+        <param name="v" type="const GLbyte *" count="3"/>
+       <glx rop="4126"/>
+    </function>
+
+    <function name="SecondaryColor3dEXT" offset="563" vectorequiv="SecondaryColor3dvEXT">
+        <param name="red" type="GLdouble"/>
+        <param name="green" type="GLdouble"/>
+        <param name="blue" type="GLdouble"/>
+    </function>
+
+    <function name="SecondaryColor3dvEXT" offset="564">
+        <param name="v" type="const GLdouble *" count="3"/>
+       <glx rop="4130"/>
+    </function>
+
+    <function name="SecondaryColor3fEXT" offset="565" vectorequiv="SecondaryColor3fvEXT">
+        <param name="red" type="GLfloat"/>
+        <param name="green" type="GLfloat"/>
+        <param name="blue" type="GLfloat"/>
+    </function>
+
+    <function name="SecondaryColor3fvEXT" offset="566">
+        <param name="v" type="const GLfloat *" count="3"/>
+       <glx rop="4129"/>
+    </function>
+
+    <function name="SecondaryColor3iEXT" offset="567" vectorequiv="SecondaryColor3ivEXT">
+        <param name="red" type="GLint"/>
+        <param name="green" type="GLint"/>
+        <param name="blue" type="GLint"/>
+    </function>
+
+    <function name="SecondaryColor3ivEXT" offset="568">
+        <param name="v" type="const GLint *" count="3"/>
+       <glx rop="4128"/>
+    </function>
+
+    <function name="SecondaryColor3sEXT" offset="569" vectorequiv="SecondaryColor3svEXT">
+        <param name="red" type="GLshort"/>
+        <param name="green" type="GLshort"/>
+        <param name="blue" type="GLshort"/>
+    </function>
+
+    <function name="SecondaryColor3svEXT" offset="570">
+        <param name="v" type="const GLshort *" count="3"/>
+       <glx rop="4128"/>
+    </function>
+
+    <function name="SecondaryColor3ubEXT" offset="571" vectorequiv="SecondaryColor3ubvEXT">
+        <param name="red" type="GLubyte"/>
+        <param name="green" type="GLubyte"/>
+        <param name="blue" type="GLubyte"/>
+    </function>
+
+    <function name="SecondaryColor3ubvEXT" offset="572">
+        <param name="v" type="const GLubyte *" count="3"/>
+       <glx rop="4131"/>
+    </function>
+
+    <function name="SecondaryColor3uiEXT" offset="573" vectorequiv="SecondaryColor3uivEXT">
+        <param name="red" type="GLuint"/>
+        <param name="green" type="GLuint"/>
+        <param name="blue" type="GLuint"/>
+    </function>
+
+    <function name="SecondaryColor3uivEXT" offset="574">
+        <param name="v" type="const GLuint *" count="3"/>
+       <glx rop="4133"/>
+    </function>
+
+    <function name="SecondaryColor3usEXT" offset="575" vectorequiv="SecondaryColor3usvEXT">
+        <param name="red" type="GLushort"/>
+        <param name="green" type="GLushort"/>
+        <param name="blue" type="GLushort"/>
+    </function>
+
+    <function name="SecondaryColor3usvEXT" offset="576">
+        <param name="v" type="const GLushort *" count="3"/>
+       <glx rop="4132"/>
+    </function>
+
+    <function name="SecondaryColorPointerEXT" offset="577">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_texture_perturb_normal">
+    <function name="TextureNormalEXT" offset="?">
+        <param name="mode" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_EXT_multi_draw_arrays">
+    <function name="MultiDrawArraysEXT" offset="644">
+        <param name="mode" type="GLenum"/>
+        <param name="first" type="GLint *"/>
+        <param name="count" type="GLsizei *"/>
+        <param name="primcount" type="GLsizei"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="MultiDrawElementsEXT" offset="645">
+        <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"/>
+    </function>
+</category>
+
+<category name="GL_EXT_fog_coord">
+    <function name="FogCoordfEXT" offset="545" vectorequiv="FogCoordfvEXT">
+        <param name="coord" type="GLfloat"/>
+    </function>
+
+    <function name="FogCoordfvEXT" offset="546">
+        <param name="coord" type="const GLfloat *" count="1"/>
+       <glx rop="4124"/>
+    </function>
+
+    <function name="FogCoorddEXT" offset="547" vectorequiv="FogCoorddvEXT">
+        <param name="coord" type="GLdouble"/>
+    </function>
+
+    <function name="FogCoorddvEXT" offset="548">
+        <param name="coord" type="const GLdouble *" count="1"/>
+       <glx rop="4125"/>
+    </function>
+
+    <function name="FogCoordPointerEXT" offset="549">
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_coordinate_frame">
+    <function name="Tangent3bEXT" offset="?">
+        <param name="tx" type="GLbyte"/>
+        <param name="ty" type="GLbyte"/>
+        <param name="tz" type="GLbyte"/>
+    </function>
+
+    <function name="Tangent3bvEXT" offset="?">
+        <param name="v" type="const GLbyte *"/>
+    </function>
+
+    <function name="Tangent3dEXT" offset="?">
+        <param name="tx" type="GLdouble"/>
+        <param name="ty" type="GLdouble"/>
+        <param name="tz" type="GLdouble"/>
+    </function>
+
+    <function name="Tangent3dvEXT" offset="?">
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="Tangent3fEXT" offset="?">
+        <param name="tx" type="GLfloat"/>
+        <param name="ty" type="GLfloat"/>
+        <param name="tz" type="GLfloat"/>
+    </function>
+
+    <function name="Tangent3fvEXT" offset="?">
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="Tangent3iEXT" offset="?">
+        <param name="tx" type="GLint"/>
+        <param name="ty" type="GLint"/>
+        <param name="tz" type="GLint"/>
+    </function>
+
+    <function name="Tangent3ivEXT" offset="?">
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="Tangent3sEXT" offset="?">
+        <param name="tx" type="GLshort"/>
+        <param name="ty" type="GLshort"/>
+        <param name="tz" type="GLshort"/>
+    </function>
+
+    <function name="Tangent3svEXT" offset="?">
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="Binormal3bEXT" offset="?">
+        <param name="bx" type="GLbyte"/>
+        <param name="by" type="GLbyte"/>
+        <param name="bz" type="GLbyte"/>
+    </function>
+
+    <function name="Binormal3bvEXT" offset="?">
+        <param name="v" type="const GLbyte *"/>
+    </function>
+
+    <function name="Binormal3dEXT" offset="?">
+        <param name="bx" type="GLdouble"/>
+        <param name="by" type="GLdouble"/>
+        <param name="bz" type="GLdouble"/>
+    </function>
+
+    <function name="Binormal3dvEXT" offset="?">
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="Binormal3fEXT" offset="?">
+        <param name="bx" type="GLfloat"/>
+        <param name="by" type="GLfloat"/>
+        <param name="bz" type="GLfloat"/>
+    </function>
+
+    <function name="Binormal3fvEXT" offset="?">
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="Binormal3iEXT" offset="?">
+        <param name="bx" type="GLint"/>
+        <param name="by" type="GLint"/>
+        <param name="bz" type="GLint"/>
+    </function>
+
+    <function name="Binormal3ivEXT" offset="?">
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="Binormal3sEXT" offset="?">
+        <param name="bx" type="GLshort"/>
+        <param name="by" type="GLshort"/>
+        <param name="bz" type="GLshort"/>
+    </function>
+
+    <function name="Binormal3svEXT" offset="?">
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="TangentPointerEXT" offset="?">
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+    </function>
+
+    <function name="BinormalPointerEXT" offset="?">
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+    </function>
+</category>
+
+<category name="GL_SUNX_constant_data">
+    <function name="FinishTextureSUNX" offset="?">
+    </function>
+</category>
+
+<category name="GL_SUN_global_alpha">
+    <function name="GlobalAlphaFactorbSUN" offset="?">
+        <param name="factor" type="GLbyte"/>
+    </function>
+
+    <function name="GlobalAlphaFactorsSUN" offset="?">
+        <param name="factor" type="GLshort"/>
+    </function>
+
+    <function name="GlobalAlphaFactoriSUN" offset="?">
+        <param name="factor" type="GLint"/>
+    </function>
+
+    <function name="GlobalAlphaFactorfSUN" offset="?">
+        <param name="factor" type="GLfloat"/>
+    </function>
+
+    <function name="GlobalAlphaFactordSUN" offset="?">
+        <param name="factor" type="GLdouble"/>
+    </function>
+
+    <function name="GlobalAlphaFactorubSUN" offset="?">
+        <param name="factor" type="GLubyte"/>
+    </function>
+
+    <function name="GlobalAlphaFactorusSUN" offset="?">
+        <param name="factor" type="GLushort"/>
+    </function>
+
+    <function name="GlobalAlphaFactoruiSUN" offset="?">
+        <param name="factor" type="GLuint"/>
+    </function>
+</category>
+
+<category name="GL_SUN_triangle_list">
+    <function name="ReplacementCodeuiSUN" offset="?">
+        <param name="code" type="GLuint"/>
+    </function>
+
+    <function name="ReplacementCodeusSUN" offset="?">
+        <param name="code" type="GLushort"/>
+    </function>
+
+    <function name="ReplacementCodeubSUN" offset="?">
+        <param name="code" type="GLubyte"/>
+    </function>
+
+    <function name="ReplacementCodeuivSUN" offset="?">
+        <param name="code" type="const GLuint *"/>
+    </function>
+
+    <function name="ReplacementCodeusvSUN" offset="?">
+        <param name="code" type="const GLushort *"/>
+    </function>
+
+    <function name="ReplacementCodeubvSUN" offset="?">
+        <param name="code" type="const GLubyte *"/>
+    </function>
+
+    <function name="ReplacementCodePointerSUN" offset="?">
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+    </function>
+</category>
+
+<category name="GL_SUN_vertex">
+    <function name="Color4ubVertex2fSUN" offset="?">
+        <param name="r" type="GLubyte"/>
+        <param name="g" type="GLubyte"/>
+        <param name="b" type="GLubyte"/>
+        <param name="a" type="GLubyte"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+
+    <function name="Color4ubVertex2fvSUN" offset="?">
+        <param name="c" type="const GLubyte *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="Color4ubVertex3fSUN" offset="?">
+        <param name="r" type="GLubyte"/>
+        <param name="g" type="GLubyte"/>
+        <param name="b" type="GLubyte"/>
+        <param name="a" type="GLubyte"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="Color4ubVertex3fvSUN" offset="?">
+        <param name="c" type="const GLubyte *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="Color3fVertex3fSUN" offset="?">
+        <param name="r" type="GLfloat"/>
+        <param name="g" type="GLfloat"/>
+        <param name="b" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="Color3fVertex3fvSUN" offset="?">
+        <param name="c" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="Normal3fVertex3fSUN" offset="?">
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="Normal3fVertex3fvSUN" offset="?">
+        <param name="n" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="Color4fNormal3fVertex3fSUN" offset="?">
+        <param name="r" type="GLfloat"/>
+        <param name="g" type="GLfloat"/>
+        <param name="b" type="GLfloat"/>
+        <param name="a" type="GLfloat"/>
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="Color4fNormal3fVertex3fvSUN" offset="?">
+        <param name="c" type="const GLfloat *"/>
+        <param name="n" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="TexCoord2fVertex3fSUN" offset="?">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord2fVertex3fvSUN" offset="?">
+        <param name="tc" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="TexCoord4fVertex4fSUN" offset="?">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="p" type="GLfloat"/>
+        <param name="q" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+        <param name="w" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord4fVertex4fvSUN" offset="?">
+        <param name="tc" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="TexCoord2fColor4ubVertex3fSUN" offset="?">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLubyte"/>
+        <param name="g" type="GLubyte"/>
+        <param name="b" type="GLubyte"/>
+        <param name="a" type="GLubyte"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord2fColor4ubVertex3fvSUN" offset="?">
+        <param name="tc" type="const GLfloat *"/>
+        <param name="c" type="const GLubyte *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="TexCoord2fColor3fVertex3fSUN" offset="?">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+        <param name="g" type="GLfloat"/>
+        <param name="b" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord2fColor3fVertex3fvSUN" offset="?">
+        <param name="tc" type="const GLfloat *"/>
+        <param name="c" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="TexCoord2fNormal3fVertex3fSUN" offset="?">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord2fNormal3fVertex3fvSUN" offset="?">
+        <param name="tc" type="const GLfloat *"/>
+        <param name="n" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="TexCoord2fColor4fNormal3fVertex3fSUN" offset="?">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+        <param name="g" type="GLfloat"/>
+        <param name="b" type="GLfloat"/>
+        <param name="a" type="GLfloat"/>
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord2fColor4fNormal3fVertex3fvSUN" offset="?">
+        <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="?">
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="p" type="GLfloat"/>
+        <param name="q" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+        <param name="g" type="GLfloat"/>
+        <param name="b" type="GLfloat"/>
+        <param name="a" type="GLfloat"/>
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+        <param name="w" type="GLfloat"/>
+    </function>
+
+    <function name="TexCoord4fColor4fNormal3fVertex4fvSUN" offset="?">
+        <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="?">
+        <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="?">
+        <param name="rc" type="const GLuint *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="ReplacementCodeuiColor4ubVertex3fSUN" offset="?">
+        <param name="rc" type="GLuint"/>
+        <param name="r" type="GLubyte"/>
+        <param name="g" type="GLubyte"/>
+        <param name="b" type="GLubyte"/>
+        <param name="a" type="GLubyte"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="ReplacementCodeuiColor4ubVertex3fvSUN" offset="?">
+        <param name="rc" type="const GLuint *"/>
+        <param name="c" type="const GLubyte *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="ReplacementCodeuiColor3fVertex3fSUN" offset="?">
+        <param name="rc" type="GLuint"/>
+        <param name="r" type="GLfloat"/>
+        <param name="g" type="GLfloat"/>
+        <param name="b" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="ReplacementCodeuiColor3fVertex3fvSUN" offset="?">
+        <param name="rc" type="const GLuint *"/>
+        <param name="c" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="ReplacementCodeuiNormal3fVertex3fSUN" offset="?">
+        <param name="rc" type="GLuint"/>
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="ReplacementCodeuiNormal3fVertex3fvSUN" offset="?">
+        <param name="rc" type="const GLuint *"/>
+        <param name="n" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="ReplacementCodeuiColor4fNormal3fVertex3fSUN" offset="?">
+        <param name="rc" type="GLuint"/>
+        <param name="r" type="GLfloat"/>
+        <param name="g" type="GLfloat"/>
+        <param name="b" type="GLfloat"/>
+        <param name="a" type="GLfloat"/>
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="ReplacementCodeuiColor4fNormal3fVertex3fvSUN" offset="?">
+        <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="?">
+        <param name="rc" type="GLuint"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="ReplacementCodeuiTexCoord2fVertex3fvSUN" offset="?">
+        <param name="rc" type="const GLuint *"/>
+        <param name="tc" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN" offset="?">
+        <param name="rc" type="GLuint"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN" offset="?">
+        <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="?">
+        <param name="rc" type="GLuint"/>
+        <param name="s" type="GLfloat"/>
+        <param name="t" type="GLfloat"/>
+        <param name="r" type="GLfloat"/>
+        <param name="g" type="GLfloat"/>
+        <param name="b" type="GLfloat"/>
+        <param name="a" type="GLfloat"/>
+        <param name="nx" type="GLfloat"/>
+        <param name="ny" type="GLfloat"/>
+        <param name="nz" type="GLfloat"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN" offset="?">
+        <param name="rc" type="const GLuint *"/>
+        <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>
+</category>
+
+<category name="GL_EXT_blend_func_separate">
+    <function name="BlendFuncSeparateEXT" offset="537">
+        <param name="sfactorRGB" type="GLenum"/>
+        <param name="dfactorRGB" type="GLenum"/>
+        <param name="sfactorAlpha" type="GLenum"/>
+        <param name="dfactorAlpha" type="GLenum"/>
+       <glx rop="4134"/>
+    </function>
+</category>
+
+<category name="GL_INGR_blend_func_separate">
+    <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparateEXT">
+        <param name="sfactorRGB" type="GLenum"/>
+        <param name="dfactorRGB" type="GLenum"/>
+        <param name="sfactorAlpha" type="GLenum"/>
+        <param name="dfactorAlpha" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_EXT_vertex_weighting">
+    <function name="VertexWeightfEXT" offset="494" vectorequiv="VertexWeightfvEXT">
+        <param name="weight" type="GLfloat"/>
+    </function>
+
+    <function name="VertexWeightfvEXT" offset="495">
+        <param name="weight" type="const GLfloat *" count="1"/>
+       <glx rop="4135"/>
+    </function>
+
+    <function name="VertexWeightPointerEXT" offset="496">
+        <param name="size" type="GLsizei"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx handcode="true"/>
+    </function>
+</category>
+
+<category name="GL_NV_vertex_array_range">
+    <function name="FlushVertexArrayRangeNV" offset="497">
+       <glx ignore="true"/>
+    </function>
+
+    <function name="VertexArrayRangeNV" offset="498">
+        <param name="length" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_NV_register_combiners">
+    <function name="CombinerParameterfvNV" offset="499">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"/>
+       <glx rop="4137"/>
+    </function>
+
+    <function name="CombinerParameterfNV" offset="500">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+       <glx rop="4136"/>
+    </function>
+
+    <function name="CombinerParameterivNV" offset="501">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *" variable_param="pname"/>
+       <glx rop="4139"/>
+    </function>
+
+    <function name="CombinerParameteriNV" offset="502">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+       <glx rop="4138"/>
+    </function>
+
+    <function name="CombinerInputNV" offset="503">
+        <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"/>
+    </function>
+
+    <function name="CombinerOutputNV" offset="504">
+        <param name="stage" type="GLenum"/>
+        <param name="portion" type="GLenum"/>
+        <param name="abOutput" type="GLenum"/>
+        <param name="cdOutput" type="GLenum"/>
+        <param name="sumOutput" type="GLenum"/>
+        <param name="scale" type="GLenum"/>
+        <param name="bias" type="GLenum"/>
+        <param name="abDotProduct" type="GLboolean"/>
+        <param name="cdDotProduct" type="GLboolean"/>
+        <param name="muxSum" type="GLboolean"/>
+       <glx rop="4141"/>
+    </function>
+
+    <function name="FinalCombinerInputNV" offset="505">
+        <param name="variable" type="GLenum"/>
+        <param name="input" type="GLenum"/>
+        <param name="mapping" type="GLenum"/>
+        <param name="componentUsage" type="GLenum"/>
+       <glx rop="4142"/>
+    </function>
+
+    <function name="GetCombinerInputParameterfvNV" offset="506">
+        <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"/>
+    </function>
+
+    <function name="GetCombinerInputParameterivNV" offset="507">
+        <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"/>
+    </function>
+
+    <function name="GetCombinerOutputParameterfvNV" offset="508">
+        <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"/>
+    </function>
+
+    <function name="GetCombinerOutputParameterivNV" offset="509">
+        <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"/>
+    </function>
+
+    <function name="GetFinalCombinerInputParameterfvNV" offset="510">
+        <param name="variable" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx vendorpriv="1274"/>
+    </function>
+
+    <function name="GetFinalCombinerInputParameterivNV" offset="511">
+        <param name="variable" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx vendorpriv="1275"/>
+    </function>
+</category>
+
+<category name="GL_MESA_resize_buffers">
+    <function name="ResizeBuffersMESA" offset="512">
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_MESA_window_pos">
+    <function name="WindowPos2dMESA" offset="513">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos2dvMESA" offset="514">
+        <param name="v" type="const GLdouble *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos2fMESA" offset="515">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos2fvMESA" offset="516">
+        <param name="v" type="const GLfloat *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos2iMESA" offset="517">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos2ivMESA" offset="518">
+        <param name="v" type="const GLint *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos2sMESA" offset="519">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos2svMESA" offset="520">
+        <param name="v" type="const GLshort *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos3dMESA" offset="521">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos3dvMESA" offset="522">
+        <param name="v" type="const GLdouble *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos3fMESA" offset="523" 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">
+        <param name="v" type="const GLfloat *" count="3"/>
+       <glx rop="230"/>
+    </function>
+
+    <function name="WindowPos3iMESA" offset="525">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="z" type="GLint"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos3ivMESA" offset="526">
+        <param name="v" type="const GLint *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos3sMESA" offset="527">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos3svMESA" offset="528">
+        <param name="v" type="const GLshort *"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="WindowPos4dMESA" offset="529">
+        <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="WindowPos4dvMESA" offset="530">
+        <param name="v" type="const GLdouble *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="WindowPos4fMESA" offset="531">
+        <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="WindowPos4fvMESA" offset="532">
+        <param name="v" type="const GLfloat *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="WindowPos4iMESA" offset="533">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="z" type="GLint"/>
+        <param name="w" type="GLint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="WindowPos4ivMESA" offset="534">
+        <param name="v" type="const GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="WindowPos4sMESA" offset="535">
+        <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="WindowPos4svMESA" offset="536">
+        <param name="v" type="const GLshort *"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_IBM_multimode_draw_arrays">
+    <function name="MultiModeDrawArraysIBM" offset="708">
+        <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"/>
+    </function>
+
+    <function name="MultiModeDrawElementsIBM" offset="709">
+        <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"/>
+    </function>
+</category>
+
+<category name="GL_IBM_vertex_array_lists">
+    <function name="ColorPointerListIBM" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLint"/>
+        <param name="pointer" type="const GLvoid **"/>
+        <param name="ptrstride" type="GLint"/>
+    </function>
+
+    <function name="SecondaryColorPointerListIBM" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLint"/>
+        <param name="pointer" type="const GLvoid **"/>
+        <param name="ptrstride" type="GLint"/>
+    </function>
+
+    <function name="EdgeFlagPointerListIBM" offset="?">
+        <param name="stride" type="GLint"/>
+        <param name="pointer" type="const GLboolean **"/>
+        <param name="ptrstride" type="GLint"/>
+    </function>
+
+    <function name="FogCoordPointerListIBM" offset="?">
+        <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="?">
+        <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="?">
+        <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="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLint"/>
+        <param name="pointer" type="const GLvoid **"/>
+        <param name="ptrstride" type="GLint"/>
+    </function>
+
+    <function name="VertexPointerListIBM" offset="?">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLint"/>
+        <param name="pointer" type="const GLvoid **"/>
+        <param name="ptrstride" type="GLint"/>
+    </function>
+</category>
+
+<category name="GL_3DFX_tbuffer">
+    <function name="TbufferMask3DFX" offset="553">
+        <param name="mask" type="GLuint"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_multisample">
+    <function name="SampleMaskEXT" alias="SampleMaskSGIS">
+        <param name="value" type="GLclampf"/>
+        <param name="invert" type="GLboolean"/>
+    </function>
+
+    <function name="SamplePatternEXT" alias="SamplePatternSGIS">
+        <param name="pattern" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_SGIS_texture_color_mask">
+    <function name="TextureColorMaskSGIS" offset="?">
+        <param name="red" type="GLboolean"/>
+        <param name="green" type="GLboolean"/>
+        <param name="blue" type="GLboolean"/>
+        <param name="alpha" type="GLboolean"/>
+    </function>
+</category>
+
+<category name="GL_SGIX_igloo_interface">
+    <function name="IglooInterfaceSGIX" offset="?">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLvoid *"/>
+    </function>
+</category>
+
+<category name="GL_NV_evaluators">
+    <function name="MapControlPointsNV" offset="?">
+        <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="uorder" type="GLint"/>
+        <param name="vorder" type="GLint"/>
+        <param name="packed" type="GLboolean"/>
+        <param name="points" type="const GLvoid *"/>
+    </function>
+
+    <function name="MapParameterivNV" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+    </function>
+
+    <function name="MapParameterfvNV" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+
+    <function name="GetMapControlPointsNV" offset="?">
+        <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 *"/>
+    </function>
+
+    <function name="GetMapParameterivNV" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+    </function>
+
+    <function name="GetMapParameterfvNV" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *"/>
+    </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 *"/>
+    </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 *"/>
+    </function>
+
+    <function name="EvalMapsNV" offset="?">
+        <param name="target" type="GLenum"/>
+        <param name="mode" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_NV_register_combiners2">
+    <function name="CombinerStageParameterfvNV" offset="?">
+        <param name="stage" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+
+    <function name="GetCombinerStageParameterfvNV" offset="?">
+        <param name="stage" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *"/>
+    </function>
+</category>
+
+<category name="GL_ARB_window_pos">
+    <function name="WindowPos2dARB" alias="WindowPos2dMESA">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+    </function>
+
+    <function name="WindowPos2fARB" alias="WindowPos2fMESA">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+
+    <function name="WindowPos2iARB" alias="WindowPos2iMESA">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+    </function>
+
+    <function name="WindowPos2sARB" alias="WindowPos2sMESA">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+
+    <function name="WindowPos2dvARB" alias="WindowPos2dvMESA">
+        <param name="p" type="const GLdouble *"/>
+    </function>
+
+    <function name="WindowPos2fvARB" alias="WindowPos2fvMESA">
+        <param name="p" type="const GLfloat *"/>
+    </function>
+
+    <function name="WindowPos2ivARB" alias="WindowPos2ivMESA">
+        <param name="p" type="const GLint *"/>
+    </function>
+
+    <function name="WindowPos2svARB" alias="WindowPos2svMESA">
+        <param name="p" type="const GLshort *"/>
+    </function>
+
+    <function name="WindowPos3dARB" alias="WindowPos3dMESA">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+    </function>
+
+    <function name="WindowPos3fARB" alias="WindowPos3fMESA">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="WindowPos3iARB" alias="WindowPos3iMESA">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="z" type="GLint"/>
+    </function>
+
+    <function name="WindowPos3sARB" alias="WindowPos3sMESA">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+    </function>
+
+    <function name="WindowPos3dvARB" alias="WindowPos3dvMESA">
+        <param name="p" type="const GLdouble *"/>
+    </function>
+
+    <function name="WindowPos3fvARB" alias="WindowPos3fvMESA">
+        <param name="p" type="const GLfloat *"/>
+    </function>
+
+    <function name="WindowPos3ivARB" alias="WindowPos3ivMESA">
+        <param name="p" type="const GLint *"/>
+    </function>
+
+    <function name="WindowPos3svARB" alias="WindowPos3svMESA">
+        <param name="p" type="const GLshort *"/>
+    </function>
+</category>
+
+<category name="GL_NV_vertex_program">
+    <function name="AreProgramsResidentNV" offset="578">
+        <param name="n" type="GLsizei"/>
+        <param name="ids" type="const GLuint *"/>
+        <param name="residences" type="GLboolean *"/>
+        <return type="GLboolean"/>
+       <glx vendorpriv="1293" handcode="true"/>
+    </function>
+
+    <function name="BindProgramNV" offset="579">
+        <param name="target" type="GLenum"/>
+        <param name="id" type="GLuint"/>
+       <glx rop="4108"/>
+    </function>
+
+    <function name="DeleteProgramsNV" offset="580">
+        <param name="n" type="GLsizei"/>
+        <param name="ids" type="const GLuint *"/>
+       <glx vendorpriv="1294" handcode="true"/>
+    </function>
+
+    <function name="ExecuteProgramNV" offset="581">
+        <param name="target" type="GLenum"/>
+        <param name="id" type="GLuint"/>
+        <param name="params" type="const GLfloat *" variable_param="target"/>
+       <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="GetProgramParameterdvNV" offset="583">
+        <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"/>
+    </function>
+
+    <function name="GetProgramParameterfvNV" offset="584">
+        <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"/>
+    </function>
+
+    <function name="GetProgramivNV" offset="585">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx vendorpriv="1307"/>
+    </function>
+
+    <function name="GetProgramStringNV" offset="586">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="program" type="GLubyte *" output="true"/>
+       <glx vendorpriv="1308" handcode="true"/>
+    </function>
+
+    <function name="GetTrackMatrixivNV" offset="587">
+        <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"/>
+    </function>
+
+    <function name="GetVertexAttribdvNV" offset="588">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLdouble *" output="true"/>
+       <glx vendorpriv="1301"/>
+    </function>
+
+    <function name="GetVertexAttribfvNV" offset="589">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx vendorpriv="1302"/>
+    </function>
+
+    <function name="GetVertexAttribivNV" offset="590">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true"/>
+       <glx vendorpriv="1303"/>
+    </function>
+
+    <function name="GetVertexAttribPointervNV" offset="591">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="pointer" type="GLvoid **" output="true"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="IsProgramNV" offset="592">
+        <param name="id" type="GLuint"/>
+        <return type="GLboolean"/>
+       <glx vendorpriv="1304"/>
+    </function>
+
+    <function name="LoadProgramNV" offset="593">
+        <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"/>
+    </function>
+
+    <function name="ProgramParameter4dNV" offset="594" vectorequiv="ProgramParameter4dvNV">
+        <param name="target" type="GLenum"/>
+        <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="ProgramParameter4dvNV" offset="595">
+        <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"/>
+    </function>
+
+    <function name="ProgramParameter4fNV" offset="596" vectorequiv="ProgramParameter4fvNV">
+        <param name="target" type="GLenum"/>
+        <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="ProgramParameter4fvNV" offset="597">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="params" type="const GLfloat *" count="4"/>
+       <glx rop="4184"/>
+    </function>
+
+    <function name="ProgramParameters4dvNV" offset="598">
+        <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"/>
+    </function>
+
+    <function name="ProgramParameters4fvNV" offset="599">
+        <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"/>
+    </function>
+
+    <function name="RequestResidentProgramsNV" offset="600">
+        <param name="n" type="GLsizei"/>
+        <param name="ids" type="const GLuint *"/>
+       <glx rop="4182" handcode="true"/>
+    </function>
+
+    <function name="TrackMatrixNV" offset="601">
+        <param name="target" type="GLenum"/>
+        <param name="address" type="GLuint"/>
+        <param name="matrix" type="GLenum"/>
+        <param name="transform" type="GLenum"/>
+       <glx rop="4188"/>
+    </function>
+
+    <function name="VertexAttribPointerNV" offset="602">
+        <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"/>
+    </function>
+
+    <function name="VertexAttrib1dNV" offset="603" vectorequiv="VertexAttrib1dvNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+    </function>
+
+    <function name="VertexAttrib1dvNV" offset="604">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *" count="1"/>
+       <glx rop="4197" doubles_in_order="true"/>
+    </function>
+
+    <function name="VertexAttrib1fNV" offset="605" vectorequiv="VertexAttrib1fvNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+    </function>
+
+    <function name="VertexAttrib1fvNV" offset="606">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="1"/>
+       <glx rop="4193"/>
+    </function>
+
+    <function name="VertexAttrib1sNV" offset="607" vectorequiv="VertexAttrib1svNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+    </function>
+
+    <function name="VertexAttrib1svNV" offset="608">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="1"/>
+       <glx rop="4189"/>
+    </function>
+
+    <function name="VertexAttrib2dNV" offset="609" vectorequiv="VertexAttrib2dvNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+    </function>
+
+    <function name="VertexAttrib2dvNV" offset="610">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *" count="2"/>
+       <glx rop="4198" doubles_in_order="true"/>
+    </function>
+
+    <function name="VertexAttrib2fNV" offset="611" vectorequiv="VertexAttrib2fvNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+
+    <function name="VertexAttrib2fvNV" offset="612">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="2"/>
+       <glx rop="4194"/>
+    </function>
+
+    <function name="VertexAttrib2sNV" offset="613" vectorequiv="VertexAttrib2svNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+
+    <function name="VertexAttrib2svNV" offset="614">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="2"/>
+       <glx rop="4190"/>
+    </function>
+
+    <function name="VertexAttrib3dNV" offset="615" vectorequiv="VertexAttrib3dvNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+    </function>
+
+    <function name="VertexAttrib3dvNV" offset="616">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *" count="3"/>
+       <glx rop="4199" doubles_in_order="true"/>
+    </function>
+
+    <function name="VertexAttrib3fNV" offset="617" vectorequiv="VertexAttrib3fvNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="VertexAttrib3fvNV" offset="618">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="3"/>
+       <glx rop="4195"/>
+    </function>
+
+    <function name="VertexAttrib3sNV" offset="619" 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="VertexAttrib3svNV" offset="620">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="3"/>
+       <glx rop="4191"/>
+    </function>
+
+    <function name="VertexAttrib4dNV" offset="621" vectorequiv="VertexAttrib4dvNV">
+        <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">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *" count="4"/>
+       <glx rop="4200" doubles_in_order="true"/>
+    </function>
+
+    <function name="VertexAttrib4fNV" offset="623" 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="VertexAttrib4fvNV" offset="624">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="4"/>
+       <glx rop="4196"/>
+    </function>
+
+    <function name="VertexAttrib4sNV" offset="625" vectorequiv="VertexAttrib4svNV">
+        <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="VertexAttrib4svNV" offset="626">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="4"/>
+       <glx rop="4192"/>
+    </function>
+
+    <function name="VertexAttrib4ubNV" offset="627" vectorequiv="VertexAttrib4ubvNV">
+        <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="VertexAttrib4ubvNV" offset="628">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLubyte *" count="4"/>
+       <glx rop="4201"/>
+    </function>
+
+    <function name="VertexAttribs1dvNV" offset="629">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLdouble *"/>
+       <glx rop="4210" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs1fvNV" offset="630">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLfloat *"/>
+       <glx rop="4206" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs1svNV" offset="631">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLshort *"/>
+       <glx rop="4202" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs2dvNV" offset="632">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLdouble *"/>
+       <glx rop="4211" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs2fvNV" offset="633">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLfloat *"/>
+       <glx rop="4207" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs2svNV" offset="634">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLshort *"/>
+       <glx rop="4203" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs3dvNV" offset="635">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLdouble *"/>
+       <glx rop="4212" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs3fvNV" offset="636">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLfloat *"/>
+       <glx rop="4208" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs3svNV" offset="637">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLshort *"/>
+       <glx rop="4204" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs4dvNV" offset="638">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLdouble *"/>
+       <glx rop="4213" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs4fvNV" offset="639">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLfloat *"/>
+       <glx rop="4209" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs4svNV" offset="640">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLshort *"/>
+       <glx rop="4205" handcode="true"/>
+    </function>
+
+    <function name="VertexAttribs4ubvNV" offset="641">
+        <param name="index" type="GLuint"/>
+        <param name="n" type="GLsizei"/>
+        <param name="v" type="const GLubyte *"/>
+       <glx rop="4214" handcode="true"/>
+    </function>
+</category>
+
+<category name="GL_NV_point_sprite">
+    <function name="PointParameteriNV" offset="642">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint"/>
+       <glx rop="4221"/>
+    </function>
+
+    <function name="PointParameterivNV" offset="643">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *" variable_param="pname"/>
+       <glx rop="4222"/>
+    </function>
+</category>
+
+<category name="1.4">
+    <function name="BlendFuncSeparate" alias="BlendFuncSeparateEXT">
+        <param name="sfactorRGB" type="GLenum"/>
+        <param name="dfactorRGB" type="GLenum"/>
+        <param name="sfactorAlpha" type="GLenum"/>
+        <param name="dfactorAlpha" type="GLenum"/>
+    </function>
+
+    <function name="FogCoordf" alias="FogCoordfEXT">
+        <param name="coord" type="GLfloat"/>
+    </function>
+
+    <function name="FogCoordfv" alias="FogCoordfvEXT">
+        <param name="coord" type="const GLfloat *"/>
+    </function>
+
+    <function name="FogCoordd" alias="FogCoorddEXT">
+        <param name="coord" type="GLdouble"/>
+    </function>
+
+    <function name="FogCoorddv" alias="FogCoorddvEXT">
+        <param name="coord" type="const GLdouble *"/>
+    </function>
+
+    <function name="FogCoordPointer" alias="FogCoordPointerEXT">
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+    </function>
+
+    <function name="MultiDrawArrays" alias="MultiDrawArraysEXT">
+        <param name="mode" type="GLenum"/>
+        <param name="first" type="GLint *"/>
+        <param name="count" type="GLsizei *"/>
+        <param name="primcount" type="GLsizei"/>
+    </function>
+
+    <function name="MultiDrawElements" alias="MultiDrawElementsEXT">
+        <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"/>
+    </function>
+
+    <function name="PointParameterf" alias="PointParameterfEXT">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+    </function>
+
+    <function name="PointParameterfv" alias="PointParameterfvEXT">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+
+    <function name="PointParameteri" alias="PointParameteriNV">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+    </function>
+
+    <function name="PointParameteriv" alias="PointParameterivNV">
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="const GLint *"/>
+    </function>
+
+    <function name="SecondaryColor3b" alias="SecondaryColor3bEXT">
+        <param name="red" type="GLbyte"/>
+        <param name="green" type="GLbyte"/>
+        <param name="blue" type="GLbyte"/>
+    </function>
+
+    <function name="SecondaryColor3bv" alias="SecondaryColor3bvEXT">
+        <param name="v" type="const GLbyte *"/>
+    </function>
+
+    <function name="SecondaryColor3d" alias="SecondaryColor3dEXT">
+        <param name="red" type="GLdouble"/>
+        <param name="green" type="GLdouble"/>
+        <param name="blue" type="GLdouble"/>
+    </function>
+
+    <function name="SecondaryColor3dv" alias="SecondaryColor3dvEXT">
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="SecondaryColor3f" alias="SecondaryColor3fEXT">
+        <param name="red" type="GLfloat"/>
+        <param name="green" type="GLfloat"/>
+        <param name="blue" type="GLfloat"/>
+    </function>
+
+    <function name="SecondaryColor3fv" alias="SecondaryColor3fvEXT">
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="SecondaryColor3i" alias="SecondaryColor3iEXT">
+        <param name="red" type="GLint"/>
+        <param name="green" type="GLint"/>
+        <param name="blue" type="GLint"/>
+    </function>
+
+    <function name="SecondaryColor3iv" alias="SecondaryColor3ivEXT">
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="SecondaryColor3s" alias="SecondaryColor3sEXT">
+        <param name="red" type="GLshort"/>
+        <param name="green" type="GLshort"/>
+        <param name="blue" type="GLshort"/>
+    </function>
+
+    <function name="SecondaryColor3sv" alias="SecondaryColor3svEXT">
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="SecondaryColor3ub" alias="SecondaryColor3ubEXT">
+        <param name="red" type="GLubyte"/>
+        <param name="green" type="GLubyte"/>
+        <param name="blue" type="GLubyte"/>
+    </function>
+
+    <function name="SecondaryColor3ubv" alias="SecondaryColor3ubvEXT">
+        <param name="v" type="const GLubyte *"/>
+    </function>
+
+    <function name="SecondaryColor3ui" alias="SecondaryColor3uiEXT">
+        <param name="red" type="GLuint"/>
+        <param name="green" type="GLuint"/>
+        <param name="blue" type="GLuint"/>
+    </function>
+
+    <function name="SecondaryColor3uiv" alias="SecondaryColor3uivEXT">
+        <param name="v" type="const GLuint *"/>
+    </function>
+
+    <function name="SecondaryColor3us" alias="SecondaryColor3usEXT">
+        <param name="red" type="GLushort"/>
+        <param name="green" type="GLushort"/>
+        <param name="blue" type="GLushort"/>
+    </function>
+
+    <function name="SecondaryColor3usv" alias="SecondaryColor3usvEXT">
+        <param name="v" type="const GLushort *"/>
+    </function>
+
+    <function name="SecondaryColorPointer" alias="SecondaryColorPointerEXT">
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+    </function>
+
+    <function name="WindowPos2d" alias="WindowPos2dMESA">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+    </function>
+
+    <function name="WindowPos2dv" alias="WindowPos2dvMESA">
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="WindowPos2f" alias="WindowPos2fMESA">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+
+    <function name="WindowPos2fv" alias="WindowPos2fvMESA">
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="WindowPos2i" alias="WindowPos2iMESA">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+    </function>
+
+    <function name="WindowPos2iv" alias="WindowPos2ivMESA">
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="WindowPos2s" alias="WindowPos2sMESA">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+
+    <function name="WindowPos2sv" alias="WindowPos2svMESA">
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="WindowPos3d" alias="WindowPos3dMESA">
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+    </function>
+
+    <function name="WindowPos3dv" alias="WindowPos3dvMESA">
+        <param name="v" type="const GLdouble *"/>
+    </function>
+
+    <function name="WindowPos3f" alias="WindowPos3fMESA">
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+
+    <function name="WindowPos3fv" alias="WindowPos3fvMESA">
+        <param name="v" type="const GLfloat *"/>
+    </function>
+
+    <function name="WindowPos3i" alias="WindowPos3iMESA">
+        <param name="x" type="GLint"/>
+        <param name="y" type="GLint"/>
+        <param name="z" type="GLint"/>
+    </function>
+
+    <function name="WindowPos3iv" alias="WindowPos3ivMESA">
+        <param name="v" type="const GLint *"/>
+    </function>
+
+    <function name="WindowPos3s" alias="WindowPos3sMESA">
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+    </function>
+
+    <function name="WindowPos3sv" alias="WindowPos3svMESA">
+        <param name="v" type="const GLshort *"/>
+    </function>
+</category>
+
+<category name="EXT_stencil_two_side">
+    <function name="ActiveStencilFaceEXT" offset="646">
+        <param name="face" type="GLenum"/>
+       <glx rop="4220"/>
+    </function>
+</category>
+
+<category name="GL_NV_fence">
+    <function name="DeleteFencesNV" offset="647">
+        <param name="n" type="GLsizei"/>
+        <param name="fences" type="const GLuint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GenFencesNV" offset="648">
+        <param name="n" type="GLsizei"/>
+        <param name="fences" type="GLuint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="IsFenceNV" offset="649">
+        <param name="fence" type="GLuint"/>
+        <return type="GLboolean"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="TestFenceNV" offset="650">
+        <param name="fence" type="GLuint"/>
+        <return type="GLboolean"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetFenceivNV" offset="651">
+        <param name="fence" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="FinishFenceNV" offset="652">
+        <param name="fence" type="GLuint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="SetFenceNV" offset="653">
+        <param name="fence" type="GLuint"/>
+        <param name="condition" type="GLenum"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_ARB_vertex_program">
+    <function name="VertexAttrib1sARB" alias="VertexAttrib1sNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+    </function>
+
+    <function name="VertexAttrib1fARB" alias="VertexAttrib1fNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+    </function>
+
+    <function name="VertexAttrib1dARB" alias="VertexAttrib1dNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+    </function>
+
+    <function name="VertexAttrib2sARB" alias="VertexAttrib2sNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+
+    <function name="VertexAttrib2fARB" alias="VertexAttrib2fNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+
+    <function name="VertexAttrib2dARB" alias="VertexAttrib2dNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+    </function>
+
+    <function name="VertexAttrib3sARB" alias="VertexAttrib3sNV">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+    </function>
+
+    <function name="VertexAttrib3fARB" alias="VertexAttrib3fNV">
+        <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">
+        <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">
+        <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="VertexAttrib4fARB" alias="VertexAttrib4fNV">
+        <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">
+        <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="VertexAttrib4NubARB" alias="VertexAttrib4ubNV">
+        <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="VertexAttrib1svARB" alias="VertexAttrib1svNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="1"/>
+    </function>
+
+    <function name="VertexAttrib1fvARB" alias="VertexAttrib1fvNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="1"/>
+    </function>
+
+    <function name="VertexAttrib1dvARB" alias="VertexAttrib1dvNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *" count="1"/>
+    </function>
+
+    <function name="VertexAttrib2svARB" alias="VertexAttrib2svNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="2"/>
+    </function>
+
+    <function name="VertexAttrib2fvARB" alias="VertexAttrib2fvNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="2"/>
+    </function>
+
+    <function name="VertexAttrib2dvARB" alias="VertexAttrib2dvNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *" count="2"/>
+    </function>
+
+    <function name="VertexAttrib3svARB" alias="VertexAttrib3svNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="3"/>
+    </function>
+
+    <function name="VertexAttrib3fvARB" alias="VertexAttrib3fvNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *" count="3"/>
+    </function>
+
+    <function name="VertexAttrib3dvARB" alias="VertexAttrib3dvNV">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *" count="3"/>
+    </function>
+
+    <function name="VertexAttrib4bvARB" offset="654">
+        <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"/>
+    </function>
+
+    <function name="VertexAttrib4ivARB" offset="655">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLint *" count="4"/>
+       <glx rop="4231"/>
+    </function>
+
+    <function name="VertexAttrib4ubvARB" offset="656">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLubyte *" count="4"/>
+       <glx rop="4232"/>
+    </function>
+
+    <function name="VertexAttrib4usvARB" offset="657">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLushort *" count="4"/>
+       <glx rop="4233"/>
+    </function>
+
+    <function name="VertexAttrib4uivARB" offset="658">
+        <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"/>
+    </function>
+
+    <function name="VertexAttrib4NbvARB" offset="659">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLbyte *" count="4"/>
+       <glx rop="4235"/>
+    </function>
+
+    <function name="VertexAttrib4NsvARB" offset="660">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *" count="4"/>
+       <glx rop="4236"/>
+    </function>
+
+    <function name="VertexAttrib4NivARB" offset="661">
+        <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"/>
+    </function>
+
+    <function name="VertexAttrib4NusvARB" offset="662">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLushort *" count="4"/>
+       <glx rop="4238"/>
+    </function>
+
+    <function name="VertexAttrib4NuivARB" offset="663">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLuint *" count="4"/>
+       <glx rop="4239"/>
+    </function>
+
+    <function name="VertexAttribPointerARB" offset="664">
+        <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"/>
+    </function>
+
+    <function name="EnableVertexAttribArrayARB" offset="665">
+        <param name="index" type="GLuint"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="DisableVertexAttribArrayARB" offset="666">
+        <param name="index" type="GLuint"/>
+       <glx handcode="true"/>
+    </function>
+
+    <function name="ProgramStringARB" offset="667">
+        <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"/>
+    </function>
+
+    <function name="BindProgramARB" alias="BindProgramNV">
+        <param name="target" type="GLenum"/>
+        <param name="program" type="GLuint"/>
+    </function>
+
+    <function name="DeleteProgramsARB" alias="DeleteProgramsNV">
+        <param name="n" type="GLsizei"/>
+        <param name="programs" type="const GLuint *"/>
+    </function>
+
+    <function name="GenProgramsARB" alias="GenProgramsNV">
+        <param name="n" type="GLsizei"/>
+        <param name="programs" type="GLuint *"/>
+    </function>
+
+    <function name="IsProgramARB" alias="IsProgramNV">
+        <param name="program" type="GLuint"/>
+        <return type="GLboolean"/>
+    </function>
+
+    <!-- FIXME: This should alias to ProgramParameter*NV -->
+    <function name="ProgramEnvParameter4dARB" offset="668" vectorequiv="ProgramEnvParameter4dvARB">
+        <param name="target" type="GLenum"/>
+        <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>
+
+    <!-- FIXME: This should alias to ProgramParameter*NV -->
+    <function name="ProgramEnvParameter4dvARB" offset="669">
+        <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"/>
+    </function>
+
+    <!-- FIXME: This should alias to ProgramParameter*NV -->
+    <function name="ProgramEnvParameter4fARB" offset="670" vectorequiv="ProgramEnvParameter4fvARB">
+        <param name="target" type="GLenum"/>
+        <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>
+
+    <!-- FIXME: This should alias to ProgramParameter*NV -->
+    <function name="ProgramEnvParameter4fvARB" offset="671">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="params" type="const GLfloat *" count="4"/>
+       <glx rop="4184"/>
+    </function>
+
+    <function name="ProgramLocalParameter4dARB" offset="672" vectorequiv="ProgramLocalParameter4dvARB">
+        <param name="target" type="GLenum"/>
+        <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="ProgramLocalParameter4dvARB" offset="673">
+        <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"/>
+    </function>
+
+    <function name="ProgramLocalParameter4fARB" offset="674" vectorequiv="ProgramLocalParameter4fvARB">
+        <param name="target" type="GLenum"/>
+        <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="ProgramLocalParameter4fvARB" offset="675">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="params" type="const GLfloat *" count="4"/>
+       <glx rop="4215"/>
+    </function>
+
+    <!-- FIXME: This should alias to GetProgramParameter*NV -->
+    <function name="GetProgramEnvParameterdvARB" offset="676">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="params" type="GLdouble *" output="true"/>
+       <glx vendorpriv="1297" doubles_in_order="true"/>
+    </function>
+
+    <!-- FIXME: This should alias to GetProgramParameter*NV -->
+    <function name="GetProgramEnvParameterfvARB" offset="677">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx vendorpriv="1296"/>
+    </function>
+
+    <function name="GetProgramLocalParameterdvARB" offset="678">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="params" type="GLdouble *" output="true"/>
+       <glx vendorpriv="1306" doubles_in_order="true"/>
+    </function>
+
+    <function name="GetProgramLocalParameterfvARB" offset="679">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="params" type="GLfloat *" output="true"/>
+       <glx vendorpriv="1305"/>
+    </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">
+        <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 *"/>
+    </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 **"/>
+    </function>
+</category>
+
+<category name="GL_NV_fragment_program">
+    <function name="ProgramNamedParameter4fNV" offset="682" vectorequiv="ProgramNamedParameter4fvNV">
+        <param name="id" type="GLuint"/>
+        <param name="len" type="GLsizei"/>
+        <param name="name" type="const GLubyte *"/>
+        <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">
+        <param name="id" type="GLuint"/>
+        <param name="len" type="GLsizei"/>
+        <param name="name" type="const GLubyte *" variable_param="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">
+        <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"/>
+    </function>
+
+    <function name="ProgramNamedParameter4dvNV" offset="685">
+        <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"/>
+    </function>
+
+    <function name="GetProgramNamedParameterfvNV" offset="686">
+        <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"/>
+    </function>
+
+    <function name="GetProgramNamedParameterdvNV" offset="687">
+        <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"/>
+    </function>
+</category>
+
+<category name="GL_ARB_vertex_buffer_object">
+    <function name="BindBufferARB" offset="688">
+        <param name="target" type="GLenum"/>
+        <param name="buffer" type="GLuint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="BufferDataARB" offset="689">
+        <param name="target" type="GLenum"/>
+        <param name="size" type="GLsizeiptrARB"/>
+        <param name="data" type="const GLvoid *"/>
+        <param name="usage" type="GLenum"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="BufferSubDataARB" offset="690">
+        <param name="target" type="GLenum"/>
+        <param name="offset" type="GLintptrARB"/>
+        <param name="size" type="GLsizeiptrARB"/>
+        <param name="data" type="const GLvoid *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="DeleteBuffersARB" offset="691">
+        <param name="n" type="GLsizei"/>
+        <param name="buffer" type="const GLuint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GenBuffersARB" offset="692">
+        <param name="n" type="GLsizei"/>
+        <param name="buffer" type="GLuint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetBufferParameterivARB" offset="693">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetBufferPointervARB" offset="694">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLvoid **"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetBufferSubDataARB" offset="695">
+        <param name="target" type="GLenum"/>
+        <param name="offset" type="GLintptrARB"/>
+        <param name="size" type="GLsizeiptrARB"/>
+        <param name="data" type="GLvoid *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="IsBufferARB" offset="696">
+        <param name="buffer" type="GLuint"/>
+        <return type="GLboolean"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="MapBufferARB" offset="697">
+        <param name="target" type="GLenum"/>
+        <param name="access" type="GLenum"/>
+        <return type="GLvoid *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="UnmapBufferARB" offset="698">
+        <param name="target" type="GLenum"/>
+        <return type="GLboolean"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="GL_EXT_depth_bounds_test">
+    <function name="DepthBoundsEXT" offset="699">
+        <param name="zmin" type="GLclampd"/>
+        <param name="zmax" type="GLclampd"/>
+       <glx rop="4229"/>
+    </function>
+</category>
+
+<category name="GL_ARB_occlusion_query">
+    <function name="GenQueriesARB" offset="700">
+        <param name="n" type="GLsizei"/>
+        <param name="ids" type="GLuint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="DeleteQueriesARB" offset="701">
+        <param name="n" type="GLsizei"/>
+        <param name="ids" type="const GLuint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="IsQueryARB" offset="702">
+        <param name="id" type="GLuint"/>
+        <return type="GLboolean"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="BeginQueryARB" offset="703">
+        <param name="target" type="GLenum"/>
+        <param name="id" type="GLuint"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="EndQueryARB" offset="704">
+        <param name="target" type="GLenum"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetQueryivARB" offset="705">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetQueryObjectivARB" offset="706">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+       <glx ignore="true"/>
+    </function>
+
+    <function name="GetQueryObjectuivARB" offset="707">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLuint *"/>
+       <glx ignore="true"/>
+    </function>
+</category>
+
+<category name="1.5">
+    <function name="BindBuffer" alias="BindBufferARB">
+        <param name="target" type="GLenum"/>
+        <param name="buffer" type="GLuint"/>
+    </function>
+
+    <function name="BufferData" alias="BufferDataARB">
+        <param name="target" type="GLenum"/>
+        <param name="size" type="GLsizeiptrARB"/>
+        <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="data" type="const GLvoid *"/>
+    </function>
+
+    <function name="DeleteBuffers" alias="DeleteBuffersARB">
+        <param name="n" type="GLsizei"/>
+        <param name="buffer" type="const GLuint *"/>
+    </function>
+
+    <function name="GenBuffers" alias="GenBuffersARB">
+        <param name="n" type="GLsizei"/>
+        <param name="buffer" type="GLuint *"/>
+    </function>
+
+    <function name="GetBufferParameteriv" alias="GetBufferParameterivARB">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+    </function>
+
+    <function name="GetBufferPointerv" alias="GetBufferPointervARB">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLvoid **"/>
+    </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 *"/>
+    </function>
+
+    <function name="IsBuffer" alias="IsBufferARB">
+        <param name="buffer" type="GLuint"/>
+        <return type="GLboolean"/>
+    </function>
+
+    <function name="MapBuffer" alias="MapBufferARB">
+        <param name="target" type="GLenum"/>
+        <param name="access" type="GLenum"/>
+    </function>
+
+    <function name="UnmapBuffer" alias="UnmapBufferARB">
+        <param name="target" type="GLenum"/>
+        <return type="GLboolean"/>
+    </function>
+
+    <function name="GenQueries" alias="GenQueriesARB">
+        <param name="n" type="GLsizei"/>
+        <param name="ids" type="GLuint *"/>
+    </function>
+
+    <function name="DeleteQueries" alias="DeleteQueriesARB">
+        <param name="n" type="GLsizei"/>
+        <param name="ids" type="const GLuint *"/>
+    </function>
+
+    <function name="IsQuery" alias="IsQueryARB">
+        <param name="id" type="GLuint"/>
+        <return type="GLboolean"/>
+    </function>
+
+    <function name="BeginQuery" alias="BeginQueryARB">
+        <param name="target" type="GLenum"/>
+        <param name="id" type="GLuint"/>
+    </function>
+
+    <function name="EndQuery" alias="EndQueryARB">
+        <param name="target" type="GLenum"/>
+    </function>
+
+    <function name="GetQueryiv" alias="GetQueryivARB">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+    </function>
+
+    <function name="GetQueryObjectiv" alias="GetQueryObjectivARB">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+    </function>
+
+    <function name="GetQueryObjectuiv" alias="GetQueryObjectuivARB">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLuint *"/>
+    </function>
+</category>
+
+<category name="GL_EXT_blend_equation_separate">
+    <function name="BlendEquationSeparateEXT" offset="710">
+        <param name="modeRGB" type="GLenum"/>
+        <param name="modeA" type="GLenum"/>
+       <glx rop="4228"/>
+    </function>
+</category>
+
+<category name="GL_ATI_blend_equation_separate">
+    <function name="BlendEquationSeparateATI" alias="BlendEquationSeparateEXT">
+        <param name="modeRGB" type="GLenum"/>
+        <param name="modeA" type="GLenum"/>
+    </function>
+</category>
+
+<category name="GL_ATI_draw_buffers">
+    <function name="DrawBuffersATI" offset="?">
+        <param name="n" type="GLsizei"/>
+       <param name="bufs" type="const GLenum *"/>
+       <glx handcode="true"/>
+    </function>
+</category>
+</OpenGLAPI>
diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py
new file mode 100644 (file)
index 0000000..17d45be
--- /dev/null
@@ -0,0 +1,406 @@
+#!/usr/bin/python2
+
+# (C) Copyright IBM Corporation 2004
+# All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+#    Ian Romanick <idr@us.ibm.com>
+
+from xml.sax import saxutils
+from xml.sax import make_parser
+from xml.sax.handler import feature_namespaces
+
+import sys, re
+
+class glItem:
+       """Generic class on which all other API entity types are based."""
+
+       name = ""
+       category = ""
+       context = None
+       tag_name = ""
+
+       def __init__(self, tag_name, name, context):
+               self.name = name
+               self.category = context.get_category_define()
+               self.context = context
+               self.tag_name = tag_name
+               
+               context.append(tag_name, self)
+               return
+       
+       def startElement(self, name, attrs):
+               return
+
+       def endElement(self, name):
+               """Generic endElement handler.
+
+               Generic endElement handler.    Returns 1 if the tag containing
+               the object is complete.  Otherwise 0 is returned.  All
+               derived class endElement handlers should call this method.  If
+               the name of the ending tag is the same as the tag that
+               started this object, the object is assumed to be complete.
+               
+               This fails if a tag can contain another tag with the same
+               name.  The XML "<foo><foo/><bar/></foo>" would fail.  The
+               object would end before the bar tag was processed."""
+
+               if name == self.tag_name:
+                       return 1
+               else:
+                       return 0
+               return
+
+
+class glEnum( glItem ):
+       def __init__(self, context, name, attrs):
+               self.value = int(attrs.get('value', "0x0000"), 0)
+               self.functions = {}
+
+               enum_name = "GL_" + attrs.get('name', None)
+               glItem.__init__(self, name, enum_name, context)
+
+       def startElement(self, name, attrs):
+               if name == "size":
+                       name = attrs.get('name', None)
+                       count = int(attrs.get('count', "0"), 0)
+                       self.functions[name] = count
+
+               return
+
+
+class glType( glItem ):
+       def __init__(self, context, name, attrs):
+               self.size = int(attrs.get('size', "0"))
+
+               type_name = "GL" + attrs.get('name', None)
+               glItem.__init__(self, name, type_name, context)
+
+
+class glParameter:
+       p_type = None
+       p_type_string = ""
+       p_name = None
+       p_count = 0
+       p_count_parameters = None
+       counter = None
+       is_output = 0
+       is_counter = 0
+       is_pointer = 0
+
+       def __init__(self, t, ts, n, c, p, is_output):
+               self.counter = None
+
+               try: 
+                       self.p_count = int(c)
+               except Exception,e:
+                       self.p_count = 0
+                       self.counter = c
+
+               if is_output == "true":
+                       self.is_output = 1
+               else:
+                       self.is_output = 0
+
+               if self.p_count > 0 or self.counter != None or p != None :
+                       has_count = 1
+               else:
+                       has_count = 0
+
+               self.p_type = t
+               self.p_type_string = ts
+               self.p_name = n
+               self.p_count_parameters = p
+               
+               # If there is a * anywhere in the parameter's type, then it
+               # is a pointer.
+
+               if re.compile("[*]").search(ts):
+                       # We could do some other validation here.  For
+                       # example, an output parameter should not be const,
+                       # but every non-output parameter should.
+
+                       self.is_pointer = 1;
+               else:
+                       # If a parameter is not a pointer, then there cannot
+                       # be an associated count (either fixed size or
+                       # variable) and the parameter cannot be an output.
+
+                       if has_count or self.is_output:
+                               raise RuntimeError("Non-pointer type has count or is output.")
+                       self.is_pointer = 0;
+
+       def is_variable_length_array(self):
+               return self.p_count_parameters != None
+
+       def is_array(self):
+               return self.is_pointer
+
+       def count_string(self):
+               """Return a string representing the number of items
+               
+               Returns a string representing the number of items in a
+               parameter.  For scalar types this will always be "1".  For
+               vector types, it will depend on whether or not it is a
+               fixed length vector (like the parameter of glVertex3fv),
+               a counted length (like the vector parameter of
+               glDeleteTextures), or a general variable length vector."""
+
+               if self.is_array():
+                       if self.is_variable_length_array():
+                               return "compsize"
+                       elif self.counter != None:
+                               return self.counter
+                       else:
+                               return str(self.p_count)
+               else:
+                       return "1"
+
+       def size(self):
+               if self.is_variable_length_array():
+                       return 0
+               elif self.p_count == 0:
+                       return self.p_type.size
+               else:
+                       return self.p_type.size * self.p_count
+
+class glParameterIterator:
+       def __init__(self, data):
+               self.data = data
+               self.index = 0
+               
+       def next(self):
+               if self.index == len( self.data ):
+                       raise StopIteration
+               i = self.index
+               self.index += 1
+               return self.data[i]
+
+class glFunction( glItem ):
+       real_name = ""
+       fn_alias = None
+       fn_offset = -1
+       fn_return_type = "void"
+       fn_parameters = []
+
+       def __init__(self, context, name, attrs):
+               self.fn_alias = attrs.get('alias', None)
+               self.fn_parameters = []
+
+               temp = attrs.get('offset', None)
+               if temp == None or temp == "?":
+                       self.fn_offset = -1
+               else:
+                       self.fn_offset = int(temp)
+
+               fn_name = attrs.get('name', None)
+               if self.fn_alias != None:
+                       self.real_name = self.fn_alias
+               else:
+                       self.real_name = fn_name
+
+               glItem.__init__(self, name, fn_name, context)
+               return
+
+
+       def __iter__(self):
+               return glParameterIterator(self.fn_parameters)
+
+
+       def startElement(self, name, attrs):
+               if name == "param":
+                       p_name = attrs.get('name', None)
+                       p_type = attrs.get('type', None)
+                       p_count = attrs.get('count', "0")
+                       p_param = attrs.get('variable_param', None)
+                       is_output = attrs.get('output', "false")
+                       is_counter = attrs.get('counter', "false")
+
+                       t = self.context.find_type(p_type)
+                       if t == None:
+                               raise RuntimeError("Unknown type '%s' in function '%s'." % (p_type, self.name)) 
+
+                       try:
+                               p = glParameter(t, p_type, p_name, p_count, p_param, is_output)
+                       except RuntimeError:
+                               print "Error with parameter '%s' in function '%s'." \
+                                       % (p_name, self.name)
+                               raise
+
+                       if is_counter == "true": p.is_counter = 1
+
+                       self.add_parameter(p)
+               elif name == "return":
+                       self.set_return_type(attrs.get('type', None))
+
+
+       def add_parameter(self, p):
+               self.fn_parameters.append(p)
+
+       def set_return_type(self, t):
+               self.fn_return_type = t
+
+       def get_parameter_string(self):
+               arg_string = ""
+               comma = ""
+               for p in self:
+                       arg_string = arg_string + comma + p.p_type_string + " " + p.p_name
+                       comma = ", "
+
+               if arg_string == "":
+                       arg_string = "void"
+
+               return arg_string
+
+
+class glItemFactory:
+       """Factory to create objects derived from glItem."""
+    
+       def create(self, context, name, attrs):
+               if name == "function":
+                       return glFunction(context, name, attrs)
+               elif name == "type":
+                       return glType(context, name, attrs)
+               elif name == "enum":
+                       return glEnum(context, name, attrs)
+               else:
+                       return None
+
+
+class FilterGLAPISpecBase(saxutils.XMLFilterBase):
+       name = "a"
+       license = "The license for this file is unspecified."
+       functions = {}
+       next_alias = -2
+       types = {}
+       xref = {}
+       current_object = None
+       factory = None
+       current_category = ""
+
+       def __init__(self):
+               saxutils.XMLFilterBase.__init__(self)
+               self.functions = {}
+               self.types = {}
+               self.xref = {}
+               self.factory = glItemFactory()
+
+       def find_type(self,type_name):
+               for t in self.types:
+                       if re.compile(t).search(type_name):
+                               return self.types[t]
+               print "Unable to find base type matching \"%s\"." % (type_name)
+               return None
+
+       def find_function(self,function_name):
+               index = self.xref[function_name]
+               return self.functions[index]
+
+       def printFunctions(self):
+               keys = self.functions.keys()
+               keys.sort()
+               prevk = -1
+               for k in keys:
+                       if k < 0: continue
+
+                       if self.functions[k].fn_alias == None:
+                               if k != prevk + 1:
+                                       #print 'Missing offset %d' % (prevk)
+                                       pass
+                       prevk = int(k)
+                       self.printFunction(self.functions[k])
+
+               keys.reverse()
+               for k in keys:
+                       if self.functions[k].fn_alias != None:
+                               self.printFunction(self.functions[k])
+
+               return
+
+       def printHeader(self):
+               print '/* DO NOT EDIT - This file generated automatically by %s script */' \
+                       % (self.name)
+               print ''
+               print '/*'
+               print ' * ' + self.license.replace('\n', '\n * ')
+               print ' */'
+               print ''
+               self.printRealHeader();
+               return
+
+       def printFooter(self):
+               self.printFunctions()
+               self.printRealFooter()
+
+
+       def get_category_define(self):
+               if re.compile("[1-9][0-9]*[.][0-9]+").match(self.current_category):
+                       s = self.current_category
+                       return "GL_VERSION_" + s.replace(".", "_")
+               else:
+                       return self.current_category
+
+
+       def append(self, object_type, obj):
+               if object_type == "function":
+                       # If the function is not an alias and has a negative
+                       # offset, then we do not need to track it.  These are
+                       # functions that don't have an assigned offset
+
+                       if obj.fn_offset >= 0 or obj.fn_alias != None:
+                               if obj.fn_offset >= 0:
+                                       index = obj.fn_offset
+                               else:
+                                       index = self.next_alias
+                                       self.next_alias -= 1
+
+                               self.functions[index] = obj
+                               self.xref[obj.name] = index
+               elif object_type == "type":
+                       self.types[obj.name] = obj
+
+               return
+
+
+       def startElement(self, name, attrs):
+               if self.current_object != None:
+                       self.current_object.startElement(name, attrs)
+               elif name == "category":
+                       self.current_category = attrs.get('name', "")
+               else:
+                       self.current_object = self.factory.create(self, name, attrs)
+               return
+
+       def endElement(self, name):
+               if self.current_object != None:
+                       if self.current_object.endElement(name):
+                               self.current_object = None
+               return
+
+       def printFunction(self,offset):
+               return
+    
+       def printRealHeader(self):
+               return
+
+       def printRealFooter(self):
+               return
diff --git a/src/mesa/glapi/gl_apitemp.py b/src/mesa/glapi/gl_apitemp.py
new file mode 100644 (file)
index 0000000..59655a2
--- /dev/null
@@ -0,0 +1,238 @@
+#!/usr/bin/python2
+
+# (C) Copyright IBM Corporation 2004
+# All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+#    Ian Romanick <idr@us.ibm.com>
+
+from xml.sax import saxutils
+from xml.sax import make_parser
+from xml.sax.handler import feature_namespaces
+
+import gl_XML
+import license
+import sys, getopt
+
+class PrintGlOffsets(gl_XML.FilterGLAPISpecBase):
+       name = "gl_apitemp.py (from Mesa)"
+
+       def __init__(self):
+               gl_XML.FilterGLAPISpecBase.__init__(self)
+               self.license = license.bsd_license_template % ( \
+"""Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
+
+       def printFunction(self, f):
+               p_string = ""
+               o_string = ""
+               t_string = ""
+               comma = ""
+
+               for p in f:
+                       cast = ""
+
+                       if p.is_pointer:
+                               t = "%p"
+                               cast = "(const void *) "
+                       elif p.p_type_string == 'GLenum':
+                               t = "0x%x"
+                       elif p.p_type_string in ['GLfloat', 'GLdouble', 'GLclampf', 'GLclampd']:
+                               t = "%f"
+                       else:
+                               t = "%d"
+
+                       t_string = t_string + comma + t
+                       p_string = p_string + comma + p.p_name
+                       o_string = o_string + comma + cast + p.p_name
+                       comma = ", "
+
+
+               if f.fn_return_type != 'void':
+                       dispatch = "RETURN_DISPATCH"
+               else:
+                       dispatch = "DISPATCH"
+
+               print 'KEYWORD1 %s KEYWORD2 NAME(%s)(%s)' \
+                       % (f.fn_return_type, f.name, f.get_parameter_string())
+               print '{'
+               if p_string == "":
+                       print '   %s(%s, (), (F, "gl%s();\\n"));' \
+                               % (dispatch, f.real_name, f.name)
+               else:
+                       print '   %s(%s, (%s), (F, "gl%s(%s);\\n", %s));' \
+                               % (dispatch, f.real_name, p_string, f.name, t_string, o_string)
+               print '}'
+               print ''
+               return
+
+       def printRealHeader(self):
+               print """
+/*
+ * This file is a template which generates the OpenGL API entry point
+ * functions.  It should be included by a .c file which first defines
+ * the following macros:
+ *   KEYWORD1 - usually nothing, but might be __declspec(dllexport) on Win32
+ *   KEYWORD2 - usually nothing, but might be __stdcall on Win32
+ *   NAME(n)  - builds the final function name (usually add "gl" prefix)
+ *   DISPATCH(func, args, msg) - code to do dispatch of named function.
+ *                               msg is a printf-style debug message.
+ *   RETURN_DISPATCH(func, args, msg) - code to do dispatch with a return value
+ *
+ * Here is an example which generates the usual OpenGL functions:
+ *   #define KEYWORD1
+ *   #define KEYWORD2
+ *   #define NAME(func)  gl##func
+ *   #define DISPATCH(func, args, msg)                           \\
+ *          struct _glapi_table *dispatch = CurrentDispatch;     \\
+ *          (*dispatch->func) args
+ *   #define RETURN DISPATCH(func, args, msg)                    \\
+ *          struct _glapi_table *dispatch = CurrentDispatch;     \\
+ *          return (*dispatch->func) args
+ *
+ */
+
+
+#ifndef KEYWORD1
+#define KEYWORD1
+#endif
+
+#ifndef KEYWORD2
+#define KEYWORD2
+#endif
+
+#ifndef NAME
+#error NAME must be defined
+#endif
+
+#ifndef DISPATCH
+#error DISPATCH must be defined
+#endif
+
+#ifndef RETURN_DISPATCH
+#error RETURN_DISPATCH must be defined
+#endif
+
+GLAPI void GLAPIENTRY gl__unused413(void);  /* silence warning */
+"""
+               return
+
+    
+
+       def printInitDispatch(self):
+               print """
+
+/*
+ * This is how a dispatch table can be initialized with all the functions
+ * we generated above.
+ */
+#ifdef DISPATCH_TABLE_NAME
+
+#ifndef TABLE_ENTRY
+#error TABLE_ENTRY must be defined
+#endif
+
+static void * DISPATCH_TABLE_NAME[] = {"""
+               keys = self.functions.keys()
+               keys.sort()
+               for k in keys:
+                       if k < 0: continue
+
+                       print '   TABLE_ENTRY(%s),' % (self.functions[k].name)
+
+               print '   /* A whole bunch of no-op functions.  These might be called'
+               print '    * when someone tries to call a dynamically-registered'
+               print '    * extension function without a current rendering context.'
+               print '    */'
+               for i in range(1, 100):
+                       print '   TABLE_ENTRY(Unused),'
+
+               print '};'
+               print '#endif /* DISPATCH_TABLE_NAME */'
+               print ''
+               return
+
+       def printAliasedTable(self):
+               print """
+/*
+ * This is just used to silence compiler warnings.
+ * We list the functions which are not otherwise used.
+ */
+#ifdef UNUSED_TABLE_NAME
+static const void * const UNUSED_TABLE_NAME[] = {"""
+
+               keys = self.functions.keys()
+               keys.sort()
+               keys.reverse();
+               for k in keys:
+                       f = self.functions[k]
+                       if f.fn_offset < 0:
+                               print '   TABLE_ENTRY(%s),' % (f.name)
+
+               print '};'
+               print '#endif /*UNUSED_TABLE_NAME*/'
+               print ''
+               return
+
+       def printRealFooter(self):
+               self.printInitDispatch()
+               self.printAliasedTable()
+               print"""
+#undef KEYWORD1
+#undef KEYWORD2
+#undef NAME
+#undef DISPATCH
+#undef RETURN_DISPATCH
+#undef DISPATCH_TABLE_NAME
+#undef UNUSED_TABLE_NAME
+#undef TABLE_ENTRY
+"""
+               return
+
+def show_usage():
+       print "Usage: %s [-f input_file_name]" % sys.argv[0]
+       sys.exit(1)
+
+if __name__ == '__main__':
+       file_name = "gl_API.xml"
+    
+       try:
+               (args, trail) = getopt.getopt(sys.argv[1:], "f:")
+       except Exception,e:
+               show_usage()
+
+       for (arg,val) in args:
+               if arg == "-f":
+                       file_name = val
+
+       dh = PrintGlOffsets()
+
+       parser = make_parser()
+       parser.setFeature(feature_namespaces, 0)
+       parser.setContentHandler(dh)
+
+       f = open(file_name)
+
+       dh.printHeader()
+       parser.parse(f)
+       dh.printFooter()
+
diff --git a/src/mesa/glapi/gl_offsets.py b/src/mesa/glapi/gl_offsets.py
new file mode 100644 (file)
index 0000000..3ff27e7
--- /dev/null
@@ -0,0 +1,86 @@
+#!/usr/bin/python2
+
+# (C) Copyright IBM Corporation 2004
+# All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+#    Ian Romanick <idr@us.ibm.com>
+
+from xml.sax import saxutils
+from xml.sax import make_parser
+from xml.sax.handler import feature_namespaces
+
+import gl_XML
+import license
+import sys, getopt
+
+class PrintGlOffsets(gl_XML.FilterGLAPISpecBase):
+       name = "gl_offsets.py (from Mesa)"
+
+       def __init__(self):
+               gl_XML.FilterGLAPISpecBase.__init__(self)
+               self.license = license.bsd_license_template % ( \
+"""Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
+
+       def printFunction(self, f):
+               if f.fn_offset < 0: return
+               print '#define _gloffset_%s %d' % (f.name, f.fn_offset)
+
+       def printRealHeader(self):
+               print '#ifndef _GLAPI_OFFSETS_H_'
+               print '#define _GLAPI_OFFSETS_H_'
+               print ''
+               return
+
+       def printRealFooter(self):
+               print ''
+               print '#endif'
+               return
+
+def show_usage():
+       print "Usage: %s [-f input_file_name]" % sys.argv[0]
+       sys.exit(1)
+
+if __name__ == '__main__':
+       file_name = "gl_API.xml"
+    
+       try:
+               (args, trail) = getopt.getopt(sys.argv[1:], "f:")
+       except Exception,e:
+               show_usage()
+
+       for (arg,val) in args:
+               if arg == "-f":
+                       file_name = val
+
+       dh = PrintGlOffsets()
+
+       parser = make_parser()
+       parser.setFeature(feature_namespaces, 0)
+       parser.setContentHandler(dh)
+
+       f = open(file_name)
+
+       dh.printHeader()
+       parser.parse(f)
+       dh.printFooter()
diff --git a/src/mesa/glapi/gl_procs.py b/src/mesa/glapi/gl_procs.py
new file mode 100644 (file)
index 0000000..6ea53d1
--- /dev/null
@@ -0,0 +1,90 @@
+#!/usr/bin/python2
+
+# (C) Copyright IBM Corporation 2004
+# All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+#    Ian Romanick <idr@us.ibm.com>
+
+from xml.sax import saxutils
+from xml.sax import make_parser
+from xml.sax.handler import feature_namespaces
+
+import license
+import gl_XML
+import sys, getopt
+
+class PrintGlProcs(gl_XML.FilterGLAPISpecBase):
+       name = "gl_procs.py (from Mesa)"
+
+       def __init__(self):
+               gl_XML.FilterGLAPISpecBase.__init__(self)
+               self.license = license.bsd_license_template % ( \
+"""Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
+
+       def printRealHeader(self):
+               print ''
+               print '/* This file is only included by glapi.c and is used for'
+               print ' * the GetProcAddress() function'
+               print ' */'
+               print ''
+               print 'static const struct name_address_offset static_functions[] = {'
+               return
+
+       def printRealFooter(self):
+               print '   { NULL, NULL, 0 }  /* end of list marker */'
+               print '};'
+               return
+
+       def printFunction(self, f):
+               print '   { "gl%s", (GLvoid *) gl%s, _gloffset_%s },' \
+                       % (f.name, f.name, f.real_name)
+
+
+def show_usage():
+       print "Usage: %s [-f input_file_name]" % sys.argv[0]
+       sys.exit(1)
+
+if __name__ == '__main__':
+       file_name = "gl_API.xml"
+    
+       try:
+               (args, trail) = getopt.getopt(sys.argv[1:], "f:")
+       except Exception,e:
+               show_usage()
+
+       for (arg,val) in args:
+               if arg == "-f":
+                       file_name = val
+
+       dh = PrintGlProcs()
+
+       parser = make_parser()
+       parser.setFeature(feature_namespaces, 0)
+       parser.setContentHandler(dh)
+
+       f = open(file_name)
+
+       dh.printHeader()
+       parser.parse(f)
+       dh.printFooter()
diff --git a/src/mesa/glapi/gl_table.py b/src/mesa/glapi/gl_table.py
new file mode 100644 (file)
index 0000000..d59d3de
--- /dev/null
@@ -0,0 +1,98 @@
+#!/usr/bin/python2
+
+# (C) Copyright IBM Corporation 2004
+# All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+#    Ian Romanick <idr@us.ibm.com>
+
+from xml.sax import saxutils
+from xml.sax import make_parser
+from xml.sax.handler import feature_namespaces
+
+import gl_XML
+import license
+import sys, getopt
+
+class PrintGlTable(gl_XML.FilterGLAPISpecBase):
+       file_name = "gl_gen_table.xml (from Mesa)"
+
+       def __init__(self):
+               gl_XML.FilterGLAPISpecBase.__init__(self)
+               self.license = license.bsd_license_template % ( \
+"""Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
+(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
+
+
+       def printFunction(self, f):
+               if f.fn_offset < 0: return
+
+               arg_string = f.get_parameter_string()
+               print '   %s (GLAPIENTRYP %s)(%s); /* %d */' % \
+                       (f.fn_return_type, f.name, arg_string, f.fn_offset)
+
+       def printRealHeader(self):
+               print '#ifndef _GLAPI_TABLE_H_'
+               print '#define _GLAPI_TABLE_H_'
+               print ''
+               print '#ifndef GLAPIENTRYP'
+               print '#define GLAPIENTRYP'
+               print '#endif'
+               print ''
+               print 'struct _glapi_table'
+               print '{'
+               return
+
+       def printRealFooter(self):
+               print '};'
+               print ''
+               print '#endif'
+               return
+
+
+def show_usage():
+       print "Usage: %s [-f input_file_name]" % sys.argv[0]
+       sys.exit(1)
+
+if __name__ == '__main__':
+       file_name = "gl_API.xml"
+    
+       try:
+               (args, trail) = getopt.getopt(sys.argv[1:], "f:")
+       except Exception,e:
+               show_usage()
+
+       for (arg,val) in args:
+               if arg == "-f":
+                       file_name = val
+
+       dh = PrintGlTable()
+
+       parser = make_parser()
+       parser.setFeature(feature_namespaces, 0)
+       parser.setContentHandler(dh)
+
+       f = open(file_name)
+
+       dh.printHeader()
+       parser.parse(f)
+       dh.printFooter()
diff --git a/src/mesa/glapi/gl_x86_asm.py b/src/mesa/glapi/gl_x86_asm.py
new file mode 100644 (file)
index 0000000..a0147b2
--- /dev/null
@@ -0,0 +1,138 @@
+#!/usr/bin/python2
+
+# (C) Copyright IBM Corporation 2004
+# All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+#    Ian Romanick <idr@us.ibm.com>
+
+from xml.sax import saxutils
+from xml.sax import make_parser
+from xml.sax.handler import feature_namespaces
+
+import gl_XML
+import license
+import sys, getopt
+
+class PrintGenericStubs(gl_XML.FilterGLAPISpecBase):
+       name = "gl_x86_asm.py (from Mesa)"
+
+       def __init__(self):
+               gl_XML.FilterGLAPISpecBase.__init__(self)
+               self.license = license.bsd_license_template % ( \
+"""Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
+
+
+       def get_stack_size(self, f):
+               size = 0
+               for p in f:
+                       t = p.p_type
+
+                       if p.is_array() or t.size != 8:
+                               size += 4
+                       else:
+                               size += 8
+
+               return size
+
+       def printRealHeader(self):
+               print '#include "assyntax.h"'
+               print '#include "glapioffsets.h"'
+               print ''
+               print '#ifndef __WIN32__'
+               print ''        
+               print '#if defined(STDCALL_API)'
+               print '#define GL_PREFIX(n,n2) GLNAME(CONCAT(gl,n2))'
+               print '#elif defined(USE_MGL_NAMESPACE)'
+               print '#define GL_PREFIX(n,n2) GLNAME(CONCAT(mgl,n))'
+               print '#else'
+               print '#define GL_PREFIX(n,n2) GLNAME(CONCAT(gl,n))'
+               print '#endif'
+               print ''
+               print '#define GL_OFFSET(x) CODEPTR(REGOFF(4 * x, EAX))'
+               print ''
+               print '#if defined(GNU_ASSEMBLER) && !defined(__DJGPP__) && !defined(__MINGW32__)'
+               print '#define GLOBL_FN(x) GLOBL x ; .type x,@function'
+               print '#else'
+               print '#define GLOBL_FN(x) GLOBL x'
+               print '#endif'
+               print ''
+               print '#define GL_STUB(fn,off,stack)\t\t\t\t\\'
+               print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
+               print 'GLOBL_FN(GL_PREFIX(fn, fn ## @ ## stack));\t\t\\'
+               print 'GL_PREFIX(fn, fn ## @ ## stack):\t\t\t\\'
+               print '\tMOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) ;\t\\'
+               print '\tJMP(GL_OFFSET(off))'
+               print ''
+               print 'SEG_TEXT'
+               print 'EXTERN GLNAME(_glapi_Dispatch)'
+               print ''
+               return
+
+       def printRealFooter(self):
+               print ''
+               print '#endif  /* __WIN32__ */'
+               return
+
+       def printFunction(self, f):
+               if f.fn_offset == -1: return
+
+               stack = self.get_stack_size(f)
+
+               print '\tGL_STUB(%s, _gloffset_%s, %u)' % (f.name, f.real_name, stack)
+               return
+
+def show_usage():
+       print "Usage: %s [-f input_file_name] [-m output_mode]" % sys.argv[0]
+       sys.exit(1)
+
+if __name__ == '__main__':
+       file_name = "gl_API.xml"
+       mode = "generic"
+
+       try:
+               (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
+       except Exception,e:
+               show_usage()
+
+       for (arg,val) in args:
+               if arg == '-m':
+                       mode = val
+               elif arg == "-f":
+                       file_name = val
+
+       if mode == "generic":
+               dh = PrintGenericStubs()
+       else:
+               print "ERROR: Invalid mode \"%s\" specified." % mode
+               show_usage()
+
+       parser = make_parser()
+       parser.setFeature(feature_namespaces, 0)
+       parser.setContentHandler(dh)
+
+       f = open(file_name)
+
+       dh.printHeader()
+       parser.parse(f)
+       dh.printFooter()
diff --git a/src/mesa/glapi/license.py b/src/mesa/glapi/license.py
new file mode 100644 (file)
index 0000000..0218164
--- /dev/null
@@ -0,0 +1,47 @@
+# (C) Copyright IBM Corporation 2004
+# All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+#    Ian Romanick <idr@us.ibm.com>
+
+bsd_license_template = """%s
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+%s,
+AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE."""