glthread: add custom marshalling for glNamedBuffer(Sub)DataEXT
[mesa.git] / src / mapi / glapi / gen / EXT_direct_state_access.xml
index 41fcf1e93b6af61115352502d99bd6ad0a24f32f..3888dd34e6e25bdf4ea212d6e90c9b87367c8467 100644 (file)
 
    <function name="MatrixLoadfEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLfloat *" />
+      <param name="m" type="const GLfloat *" count="16"/>
    </function>
    <function name="MatrixLoaddEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLdouble *" />
+      <param name="m" type="const GLdouble *" count="16"/>
    </function>
    <function name="MatrixMultfEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLfloat *" />
+      <param name="m" type="const GLfloat *" count="16"/>
    </function>
    <function name="MatrixMultdEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLdouble *" />
+      <param name="m" type="const GLdouble *" count="16"/>
    </function>
    <function name="MatrixLoadIdentityEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
 
    <!-- OpenGL 1.1 -->
 
+    <function name="ClientAttribDefaultEXT">
+       <param name="mask" type="GLbitfield" />
+    </function>
+
+    <function name="PushClientAttribDefaultEXT">
+       <param name="mask" type="GLbitfield" />
+    </function>
+
     <function name="GetTextureParameterivEXT">
        <param name="texture" type="GLuint" />
        <param name="target" type="GLenum" />
        <param name="texture" type="GLuint" />
        <param name="target" type="GLenum" />
        <param name="pname" type="GLenum" />
-       <param name="params" type="const GLint *" />
+       <param name="params" type="const GLint *" count="_mesa_tex_param_enum_to_count(pname)"/>
     </function>
 
     <function name="TextureParameterfEXT">
        <param name="texture" type="GLuint" />
        <param name="target" type="GLenum" />
        <param name="pname" type="GLenum" />
-       <param name="params" type="const float *" />
+       <param name="params" type="const float *" count="_mesa_tex_param_enum_to_count(pname)"/>
     </function>
 
    <function name="TextureImage1DEXT">
       <param name="params" type="GLvoid**" />
    </function>
 
-   <!-- OpenGL 1.3 -->
+   <function name="MultiTexEnviEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLint" />
+   </function>
 
-   <function name="MatrixLoadTransposefEXT" offset="assign">
-      <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLfloat *" />
+   <function name="MultiTexEnvivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="const GLint *" count="_mesa_texenv_enum_to_count(pname)"/>
    </function>
 
-   <function name="MatrixLoadTransposedEXT" offset="assign">
-      <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLdouble *" />
+   <function name="MultiTexEnvfEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLfloat" />
    </function>
 
-   <function name="MatrixMultTransposefEXT" offset="assign">
-      <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLfloat *" />
+   <function name="MultiTexEnvfvEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="const GLfloat *" count="_mesa_texenv_enum_to_count(pname)"/>
    </function>
 
-   <function name="MatrixMultTransposedEXT" offset="assign">
-      <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLdouble *" />
-    </function>
+   <function name="GetMultiTexEnvivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLint *" />
+   </function>
 
-   <function name="CompressedTextureSubImage2DEXT">
-      <param name="texture" type="GLuint" />
+   <function name="GetMultiTexEnvfvEXT">
+      <param name="texunit" type="GLenum" />
       <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 *" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLfloat *" />
    </function>
 
-   <!-- OpenGL 1.5 -->
+   <function name="MultiTexParameteriEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLint" />
+   </function>
 
-   <function name="NamedBufferDataEXT">
-      <param name="buffer" type="GLuint" />
-      <param name="size" type="GLsizeiptr" />
-      <param name="data" type="const GLvoid *" />
-      <param name="usage" type="GLenum" />
+   <function name="MultiTexParameterivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="const GLint*" count="_mesa_tex_param_enum_to_count(pname)"/>
    </function>
 
-   <function name="NamedBufferSubDataEXT">
-      <param name="buffer" type="GLuint" />
-      <param name="offset" type="GLintptr" />
-      <param name="size" type="GLsizeiptr" />
-      <param name="data" type="const GLvoid *" />
+   <function name="MultiTexParameterfEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLfloat" />
    </function>
 
-   <function name="MapNamedBufferEXT">
-      <return type="GLvoid *" />
-      <param name="buffer" type="GLuint" />
-      <param name="access" type="GLenum" />
+   <function name="MultiTexParameterfvEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="const GLfloat*" count="_mesa_tex_param_enum_to_count(pname)"/>
    </function>
 
-   <function name="UnmapNamedBufferEXT">
-      <return type="GLboolean" />
-      <param name="buffer" type="GLuint" />
+   <function name="GetMultiTexParameterivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLint*" />
    </function>
 
-   <function name="GetNamedBufferSubDataEXT">
-      <param name="buffer" type="GLuint" />
-      <param name="offset" type="GLintptr" />
-      <param name="size" type="GLsizeiptr" />
-      <param name="data" type="GLvoid *" />
+   <function name="GetMultiTexParameterfvEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLfloat*" />
    </function>
 
-   <function name="GetNamedBufferPointervEXT">
-      <param name="buffer" type="GLuint" />
+   <function name="GetMultiTexImageEXT">
+      <param name="texunit" type="GLenum" />
+      <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*" />
+   </function>
+
+   <function name="GetMultiTexLevelParameterivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="level" type="GLint" />
       <param name="pname" type="GLenum" />
-      <param name="params" type="GLvoid **" />
+      <param name="params" type="GLint*" />
    </function>
 
-   <function name="GetNamedBufferParameterivEXT">
-      <param name="buffer" type="GLuint" />
+   <function name="GetMultiTexLevelParameterfvEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="level" type="GLint" />
       <param name="pname" type="GLenum" />
-      <param name="params" type="GLint *" />
+      <param name="params" type="GLfloat*" />
    </function>
 
-   <function name="FlushMappedNamedBufferRangeEXT">
-      <param name="buffer" type="GLuint" />
-      <param name="offset" type="GLintptr" />
-      <param name="length" type="GLsizeiptr" />
+   <function name="MultiTexImage1DEXT">
+      <param name="texunit" type="GLenum" />
+      <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*" />
    </function>
 
-   <!-- OpenGL 3.0 -->
+   <function name="MultiTexImage2DEXT">
+      <param name="texunit" type="GLenum" />
+      <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*" />
+   </function>
 
-   <function name="MapNamedBufferRangeEXT">
-      <return type="GLvoid *" />
-      <param name="buffer" type="GLuint" />
-      <param name="offset" type="GLintptr" />
-      <param name="length" type="GLsizeiptr" />
-      <param name="access" type="GLbitfield" />
+   <function name="MultiTexImage3DEXT">
+      <param name="texunit" type="GLenum" />
+      <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*" />
    </function>
 
-   <function name="FramebufferDrawBufferEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="mode" type="GLenum" />
+   <function name="MultiTexSubImage1DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="FramebufferDrawBuffersEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="n" type="GLsizei" />
-      <param name="bufs" type="const GLenum *" />
+   <function name="MultiTexSubImage2DEXT">
+      <param name="texunit" type="GLenum" />
+      <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>
 
-   <function name="FramebufferReadBufferEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="mode" type="GLenum" />
+   <function name="MultiTexSubImage3DEXT">
+      <param name="texunit" type="GLenum" />
+      <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>
 
-   <function name="GetFramebufferParameterivEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="pname" type="GLenum" />
-      <param name="param" type="GLint *" />
+   <function name="CopyMultiTexImage1DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="CheckNamedFramebufferStatusEXT">
-      <return type="GLenum" />
-      <param name="framebuffer" type="GLuint" />
+   <function name="CopyMultiTexImage2DEXT">
+      <param name="texunit" type="GLenum" />
       <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="NamedFramebufferTexture1DEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="attachment" type="GLenum" />
-      <param name="textarget" type="GLenum" />
-      <param name="texture" type="GLuint" />
+   <function name="CopyMultiTexSubImage1DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="NamedFramebufferTexture2DEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="attachment" type="GLenum" />
-      <param name="textarget" type="GLenum" />
-      <param name="texture" type="GLuint" />
+   <function name="CopyMultiTexSubImage2DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="NamedFramebufferTexture3DEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="attachment" type="GLenum" />
-      <param name="textarget" type="GLenum" />
-      <param name="texture" type="GLuint" />
+   <function name="CopyMultiTexSubImage3DEXT">
+      <param name="texunit" type="GLenum" />
+      <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>
 
-   <function name="NamedFramebufferRenderbufferEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="attachment" type="GLenum" />
-      <param name="renderbuffertarget" type="GLenum" />
-      <param name="renderbuffer" type="GLuint" />
+   <function name="MultiTexGendEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLdouble" />
    </function>
 
-   <function name="GetNamedFramebufferAttachmentParameterivEXT">
-      <param name="framebuffer" type="GLuint" />
-      <param name="attachment" type="GLenum" />
+   <function name="MultiTexGendvEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
       <param name="pname" type="GLenum" />
-      <param name="params" type="GLint *" />
+      <param name="param" type="const GLdouble*" count="_mesa_texgen_enum_to_count(pname)"/>
    </function>
 
-   <function name="EnableClientStateiEXT">
-      <param name="array" type="GLenum" />
-      <param name="index" type="GLuint" />
+   <function name="MultiTexGenfEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLfloat" />
    </function>
 
-   <function name="DisableClientStateiEXT">
-      <param name="array" type="GLenum" />
-      <param name="index" type="GLuint" />
-   </function>
+   <function name="MultiTexGenfvEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="const GLfloat *" count="_mesa_texgen_enum_to_count(pname)"/>
+   </function>
+
+   <function name="MultiTexGeniEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLint" />
+   </function>
+
+   <function name="MultiTexGenivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="const GLint *" count="_mesa_texgen_enum_to_count(pname)"/>
+   </function>
+
+   <function name="GetMultiTexGendvEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLdouble *" />
+   </function>
+
+   <function name="GetMultiTexGenfvEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLfloat *" />
+   </function>
+
+   <function name="GetMultiTexGenivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="coord" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLint *" />
+   </function>
+
+   <function name="MultiTexCoordPointerEXT" marshal="async"
+             marshal_call_after="_mesa_glthread_AttribPointer(ctx);">
+      <param name="texunit" type="GLenum" />
+      <param name="size" type="GLint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="pointer" type="const GLvoid *" />
+   </function>
+
+   <!-- OpenGL 1.3 -->
+
+   <function name="MatrixLoadTransposefEXT" offset="assign">
+      <param name="matrixMode" type="GLenum" />
+      <param name="m" type="const GLfloat *" count="16"/>
+   </function>
+
+   <function name="MatrixLoadTransposedEXT" offset="assign">
+      <param name="matrixMode" type="GLenum" />
+      <param name="m" type="const GLdouble *" count="16"/>
+   </function>
+
+   <function name="MatrixMultTransposefEXT" offset="assign">
+      <param name="matrixMode" type="GLenum" />
+      <param name="m" type="const GLfloat *" count="16"/>
+   </function>
+
+   <function name="MatrixMultTransposedEXT" offset="assign">
+      <param name="matrixMode" type="GLenum" />
+      <param name="m" type="const GLdouble *" count="16"/>
+    </function>
+
+   <function name="CompressedTextureImage1DEXT">
+      <param name="texture" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="level" type="GLint" />
+      <param name="internalFormat" type="GLenum" />
+      <param name="width" type="GLsizei" />
+      <param name="border" type="GLsizei" />
+      <param name="imageSize" type="GLsizei" />
+      <param name="data" type="const GLvoid *" />
+   </function>
+
+   <function name="CompressedTextureImage2DEXT">
+      <param name="texture" type="GLuint" />
+      <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="GLsizei" />
+      <param name="imageSize" type="GLsizei" />
+      <param name="data" type="const GLvoid *" />
+   </function>
+
+   <function name="CompressedTextureImage3DEXT">
+      <param name="texture" type="GLuint" />
+      <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="GLsizei" />
+      <param name="imageSize" type="GLsizei" />
+      <param name="data" type="const GLvoid *" />
+   </function>
+
+   <function name="CompressedTextureSubImage1DEXT">
+      <param name="texture" type="GLuint" />
+      <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="CompressedTextureSubImage2DEXT">
+      <param name="texture" type="GLuint" />
+      <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="CompressedTextureSubImage3DEXT">
+      <param name="texture" type="GLuint" />
+      <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="GetCompressedTextureImageEXT">
+      <param name="texture" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="level" type="GLint" />
+      <param name="img" type="GLvoid *" />
+   </function>
+
+   <function name="CompressedMultiTexImage1DEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="level" type="GLint" />
+      <param name="internalFormat" type="GLenum" />
+      <param name="width" type="GLsizei" />
+      <param name="border" type="GLsizei" />
+      <param name="imageSize" type="GLsizei" />
+      <param name="data" type="const GLvoid *" />
+   </function>
+
+   <function name="CompressedMultiTexImage2DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="GLsizei" />
+      <param name="imageSize" type="GLsizei" />
+      <param name="data" type="const GLvoid *" />
+   </function>
+
+   <function name="CompressedMultiTexImage3DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="GLsizei" />
+      <param name="imageSize" type="GLsizei" />
+      <param name="data" type="const GLvoid *" />
+   </function>
+
+   <function name="CompressedMultiTexSubImage1DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="CompressedMultiTexSubImage2DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="CompressedMultiTexSubImage3DEXT">
+      <param name="texunit" type="GLenum" />
+      <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="GetCompressedMultiTexImageEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="level" type="GLint" />
+      <param name="img" type="GLvoid *" />
+   </function>
+
+   <!-- OpenGL 1.5 -->
+
+   <function name="NamedBufferDataEXT" marshal="custom">
+      <param name="buffer" type="GLuint" />
+      <param name="size" type="GLsizeiptr" />
+      <param name="data" type="const GLvoid *" />
+      <param name="usage" type="GLenum" />
+   </function>
+
+   <function name="NamedBufferSubDataEXT" marshal="custom">
+      <param name="buffer" type="GLuint" />
+      <param name="offset" type="GLintptr" />
+      <param name="size" type="GLsizeiptr" />
+      <param name="data" type="const GLvoid *" />
+   </function>
+
+   <function name="MapNamedBufferEXT">
+      <return type="GLvoid *" />
+      <param name="buffer" type="GLuint" />
+      <param name="access" type="GLenum" />
+   </function>
+
+   <function name="UnmapNamedBufferEXT">
+      <return type="GLboolean" />
+      <param name="buffer" type="GLuint" />
+   </function>
+
+   <function name="GetNamedBufferSubDataEXT">
+      <param name="buffer" type="GLuint" />
+      <param name="offset" type="GLintptr" />
+      <param name="size" type="GLsizeiptr" />
+      <param name="data" type="GLvoid *" />
+   </function>
+
+   <function name="GetNamedBufferPointervEXT">
+      <param name="buffer" type="GLuint" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLvoid **" />
+   </function>
+
+   <function name="GetNamedBufferParameterivEXT">
+      <param name="buffer" type="GLuint" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLint *" />
+   </function>
+
+   <function name="FlushMappedNamedBufferRangeEXT">
+      <param name="buffer" type="GLuint" />
+      <param name="offset" type="GLintptr" />
+      <param name="length" type="GLsizeiptr" />
+   </function>
+
+   <!-- OpenGL 2.0 -->
+   <!--
+      ProgramUniform* functions are already declared in EXT_separate_shader_objects.xml
+   -->
+
+   <!-- OpenGL 3.0 -->
+
+   <function name="MapNamedBufferRangeEXT">
+      <return type="GLvoid *" />
+      <param name="buffer" type="GLuint" />
+      <param name="offset" type="GLintptr" />
+      <param name="length" type="GLsizeiptr" />
+      <param name="access" type="GLbitfield" />
+   </function>
+
+   <function name="FramebufferDrawBufferEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="mode" type="GLenum" />
+   </function>
+
+   <function name="FramebufferDrawBuffersEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="n" type="GLsizei" />
+      <param name="bufs" type="const GLenum *" count="n"/>
+   </function>
+
+   <function name="FramebufferReadBufferEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="mode" type="GLenum" />
+   </function>
+
+   <function name="GetFramebufferParameterivEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLint *" />
+   </function>
+
+   <function name="CheckNamedFramebufferStatusEXT">
+      <return type="GLenum" />
+      <param name="framebuffer" type="GLuint" />
+      <param name="target" type="GLenum" />
+   </function>
+
+   <function name="NamedFramebufferTexture1DEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="attachment" type="GLenum" />
+      <param name="textarget" type="GLenum" />
+      <param name="texture" type="GLuint" />
+      <param name="level" type="GLint" />
+   </function>
+
+   <function name="NamedFramebufferTexture2DEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="attachment" type="GLenum" />
+      <param name="textarget" type="GLenum" />
+      <param name="texture" type="GLuint" />
+      <param name="level" type="GLint" />
+   </function>
+
+   <function name="NamedFramebufferTexture3DEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="attachment" type="GLenum" />
+      <param name="textarget" type="GLenum" />
+      <param name="texture" type="GLuint" />
+      <param name="level" type="GLint" />
+      <param name="zoffset" type="GLint" />
+   </function>
+
+   <function name="NamedFramebufferRenderbufferEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="attachment" type="GLenum" />
+      <param name="renderbuffertarget" type="GLenum" />
+      <param name="renderbuffer" type="GLuint" />
+   </function>
+
+   <function name="GetNamedFramebufferAttachmentParameterivEXT">
+      <param name="framebuffer" type="GLuint" />
+      <param name="attachment" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLint *" />
+   </function>
+
+   <function name="EnableClientStateiEXT">
+      <param name="array" type="GLenum" />
+      <param name="index" type="GLuint" />
+   </function>
+
+   <function name="DisableClientStateiEXT">
+      <param name="array" type="GLenum" />
+      <param name="index" type="GLuint" />
+   </function>
 
    <function name="GetPointeri_vEXT" alias="GetPointerIndexedvEXT">
       <param name="target" type="GLenum" />
       <param name="index" type="GLuint" />
       <param name="params" type="GLvoid**" />
    </function>
+
+   <function name="NamedRenderbufferStorageEXT">
+      <param name="renderbuffer" type="GLuint" />
+      <param name="internalformat" type="GLenum" />
+      <param name="width" type="GLsizei" />
+      <param name="height" type="GLsizei" />
+   </function>
+
+   <function name="GetNamedRenderbufferParameterivEXT">
+      <param name="renderbuffer" type="GLuint" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLint *" />
+   </function>
+
+   <function name="GetFloati_vEXT" alias="GetFloati_v">
+      <param name="target" type="GLenum" />
+      <param name="index" type="GLuint" />
+      <param name="params" type="GLfloat*" />
+   </function>
+
+   <function name="GetDoublei_vEXT" alias="GetDoublei_v">
+      <param name="target" type="GLenum" />
+      <param name="index" type="GLuint" />
+      <param name="params" type="GLdouble*" />
+   </function>
+
+   <function name="GenerateTextureMipmapEXT">
+      <param name="texture" type="GLuint" />
+      <param name="target" type="GLenum" />
+   </function>
+
+   <function name="GenerateMultiTexMipmapEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+   </function>
+
+   <function name="NamedRenderbufferStorageMultisampleEXT">
+      <param name="renderbuffer" type="GLuint" />
+      <param name="samples" type="GLsizei" />
+      <param name="internalformat" type="GLenum" />
+      <param name="width" type="GLsizei" />
+      <param name="height" type="GLsizei" />
+   </function>
+
+   <function name="NamedCopyBufferSubDataEXT">
+      <param name="readBuffer" type="GLuint" />
+      <param name="writeBuffer" type="GLuint" />
+      <param name="readOffset" type="GLintptr" />
+      <param name="writeOffset" type="GLintptr" />
+      <param name="size" type="GLsizeiptr" />
+   </function>
+
+   <function name="VertexArrayVertexOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="size" type="GLint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayColorOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="size" type="GLint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayEdgeFlagOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayIndexOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayNormalOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayTexCoordOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="size" type="GLint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayMultiTexCoordOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="texunit" type="GLenum" />
+      <param name="size" type="GLint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayFogCoordOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArraySecondaryColorOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="size" type="GLint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayVertexAttribOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <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="offset" type="GLintptr" />
+   </function>
+
+   <function name="VertexArrayVertexAttribIOffsetEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="buffer" type="GLuint" />
+      <param name="index" type="GLuint" />
+      <param name="size" type="GLint" />
+      <param name="type" type="GLenum" />
+      <param name="stride" type="GLsizei" />
+      <param name="offset" type="GLintptr" />
+   </function>
+
+   <function name="EnableVertexArrayEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="array" type="GLenum" />
+   </function>
+
+   <function name="DisableVertexArrayEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="array" type="GLenum" />
+   </function>
+
+   <function name="EnableVertexArrayAttribEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="index" type="GLuint" />
+   </function>
+
+   <function name="DisableVertexArrayAttribEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="index" type="GLuint" />
+   </function>
+
+   <function name="GetVertexArrayIntegervEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLint*" />
+   </function>
+
+   <function name="GetVertexArrayPointervEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLvoid**" />
+   </function>
+
+   <function name="GetVertexArrayIntegeri_vEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="index" type="GLuint" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLint*" />
+   </function>
+
+   <function name="GetVertexArrayPointeri_vEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="index" type="GLuint" />
+      <param name="pname" type="GLenum" />
+      <param name="param" type="GLvoid**" />
+   </function>
+
+   <!-- ARB_vertex_program -->
+   <function name="NamedProgramStringEXT">
+      <param name="program" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="format" type="GLenum" />
+      <param name="len" type="GLsizei" />
+      <param name="string" type="const GLvoid*" count="len"/>
+    </function>
+
+   <function name="GetNamedProgramStringEXT">
+      <param name="program" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="string" type="GLvoid*" />
+    </function>
+
+   <function name="NamedProgramLocalParameter4fEXT">
+      <param name="program" type="GLuint" />
+      <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="NamedProgramLocalParameter4fvEXT">
+      <param name="program" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="index" type="GLuint" />
+      <param name="params" type="const GLfloat*" count="4"/>
+    </function>
+
+   <function name="GetNamedProgramLocalParameterfvEXT">
+      <param name="program" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="index" type="GLuint" />
+      <param name="params" type="GLfloat*" />
+    </function>
+
+   <function name="NamedProgramLocalParameter4dEXT">
+      <param name="program" type="GLuint" />
+      <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="NamedProgramLocalParameter4dvEXT">
+      <param name="program" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="index" type="GLuint" />
+      <param name="params" type="const GLdouble*" count="4"/>
+    </function>
+
+   <function name="GetNamedProgramLocalParameterdvEXT">
+      <param name="program" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="index" type="GLuint" />
+      <param name="params" type="GLdouble*" />
+    </function>
+
+   <function name="GetNamedProgramivEXT">
+      <param name="program" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLint*" />
+  </function>
+
+   <!-- EXT_texture_buffer_object -->
+   <function name="TextureBufferEXT">
+      <param name="texture" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="internalformat" type="GLenum" />
+      <param name="buffer" type="GLuint" />
+   </function>
+
+   <function name="MultiTexBufferEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="internalformat" type="GLenum" />
+      <param name="buffer" type="GLuint" />
+   </function>
+
+   <!-- EXT_texture_integer -->
+   <function name="TextureParameterIivEXT">
+      <param name="texture" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="const GLint*" count="_mesa_tex_param_enum_to_count(pname)"/>
+   </function>
+
+   <function name="TextureParameterIuivEXT">
+      <param name="texture" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="const GLuint*" count="_mesa_tex_param_enum_to_count(pname)"/>
+   </function>
+
+   <function name="GetTextureParameterIivEXT">
+      <param name="texture" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLint*" />
+   </function>
+
+   <function name="GetTextureParameterIuivEXT">
+      <param name="texture" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLuint*" />
+   </function>
+
+   <function name="MultiTexParameterIivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="const GLint*" count="_mesa_tex_param_enum_to_count(pname)"/>
+   </function>
+
+   <function name="MultiTexParameterIuivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="const GLuint*" count="_mesa_tex_param_enum_to_count(pname)"/>
+   </function>
+
+   <function name="GetMultiTexParameterIivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLint*" />
+   </function>
+
+   <function name="GetMultiTexParameterIuivEXT">
+      <param name="texunit" type="GLenum" />
+      <param name="target" type="GLenum" />
+      <param name="pname" type="GLenum" />
+      <param name="params" type="GLuint*" />
+   </function>
+
+   <!-- EXT_gpu_shader4 -->
+   <!--
+      ProgramUniform*EXT functions are added in EXT_separate_shader_objects.xml
+   -->
+
+   <!-- EXT_gpu_program_parameters -->
+
+   <function name="NamedProgramLocalParameters4fvEXT">
+      <param name="program" type="GLuint" />
+      <param name="target" type="GLenum" />
+      <param name="index" type="GLuint" />
+      <param name="count" type="GLsizei" />
+      <param name="params" type="const GLfloat*" count="4"/>
+   </function>
+
 </category>
 </OpenGLAPI>