<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">

<!-- Note: no GLX protocol info yet. -->

<OpenGLAPI>

<category name="GL_EXT_direct_state_access" number="353">

   <!--
      This extension is unusual in that it is ALL interactions
      with specific GL versions and other extensions.
   -->

   <enum name="PROGRAM_MATRIX_EXT" value="0x8E2D"/>
   <enum name="TRANSPOSE_PROGRAM_MATRIX_EXT" value="0x8E2E"/>
   <enum name="PROGRAM_MATRIX_STACK_DEPTH_EXT" value="0x8E2F"/>

   <!-- GL1.0 extras -->

   <function name="MatrixLoadfEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="m" type="const GLfloat *" count="16"/>
   </function>
   <function name="MatrixLoaddEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="m" type="const GLdouble *" count="16"/>
   </function>
   <function name="MatrixMultfEXT" deprecated="3.1" offset="assign" exec="dlist"
             marshal_call_before="if (_mesa_matrix_is_identity(m)) return;">
      <param name="matrixMode" type="GLenum" />
      <param name="m" type="const GLfloat *" count="16"/>
   </function>
   <function name="MatrixMultdEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="m" type="const GLdouble *" count="16"/>
   </function>
   <function name="MatrixLoadIdentityEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
   </function>
   <function name="MatrixRotatefEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="angle" type="GLfloat" />
      <param name="x" type="GLfloat" />
      <param name="y" type="GLfloat" />
      <param name="z" type="GLfloat" />
   </function>
   <function name="MatrixRotatedEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="angle" type="GLdouble" />
      <param name="x" type="GLdouble" />
      <param name="y" type="GLdouble" />
      <param name="z" type="GLdouble" />
   </function>
   <function name="MatrixScalefEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="x" type="GLfloat" />
      <param name="y" type="GLfloat" />
      <param name="z" type="GLfloat" />
   </function>
   <function name="MatrixScaledEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="x" type="GLdouble" />
      <param name="y" type="GLdouble" />
      <param name="z" type="GLdouble" />
   </function>
   <function name="MatrixTranslatefEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="x" type="GLfloat" />
      <param name="y" type="GLfloat" />
      <param name="z" type="GLfloat" />
   </function>
   <function name="MatrixTranslatedEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="x" type="GLdouble" />
      <param name="y" type="GLdouble" />
      <param name="z" type="GLdouble" />
   </function>
   <function name="MatrixOrthoEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="l" type="GLdouble" />
      <param name="r" type="GLdouble" />
      <param name="b" type="GLdouble" />
      <param name="t" type="GLdouble" />
      <param name="n" type="GLdouble" />
      <param name="f" type="GLdouble" />
   </function>
   <function name="MatrixFrustumEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="l" type="GLdouble" />
      <param name="r" type="GLdouble" />
      <param name="b" type="GLdouble" />
      <param name="t" type="GLdouble" />
      <param name="n" type="GLdouble" />
      <param name="f" type="GLdouble" />
   </function>
   <function name="MatrixPushEXT" deprecated="3.1" offset="assign" exec="dlist"
             marshal_call_after="_mesa_glthread_MatrixPushEXT(ctx, matrixMode);">
      <param name="matrixMode" type="GLenum" />
   </function>
   <function name="MatrixPopEXT" deprecated="3.1" offset="assign" exec="dlist"
             marshal_call_after="_mesa_glthread_MatrixPopEXT(ctx, matrixMode);">
      <param name="matrixMode" type="GLenum" />
   </function>

   <!-- OpenGL 1.1 -->

    <function name="ClientAttribDefaultEXT" deprecated="3.1"
              marshal_call_after="_mesa_glthread_ClientAttribDefault(ctx, mask);">
       <param name="mask" type="GLbitfield" />
    </function>

    <function name="PushClientAttribDefaultEXT" deprecated="3.1"
              marshal_call_after="_mesa_glthread_PushClientAttrib(ctx, mask, true);">
       <param name="mask" type="GLbitfield" />
    </function>

    <function name="GetTextureParameterivEXT" deprecated="3.1">
       <param name="texture" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="pname" type="GLenum" />
       <param name="params" type="GLint *" />
    </function>

    <function name="GetTextureParameterfvEXT" deprecated="3.1">
       <param name="texture" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="pname" type="GLenum" />
       <param name="params" type="float *" />
    </function>

    <function name="GetTextureLevelParameterivEXT" deprecated="3.1">
       <param name="texture" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="level" type="GLint" />
       <param name="pname" type="GLenum" />
       <param name="params" type="GLint *" />
    </function>

    <function name="GetTextureLevelParameterfvEXT" deprecated="3.1">
       <param name="texture" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="level" type="GLint" />
       <param name="pname" type="GLenum" />
       <param name="params" type="float *" />
    </function>

    <function name="TextureParameteriEXT" deprecated="3.1" exec="dlist">
       <param name="texture" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="pname" type="GLenum" />
       <param name="param" type="int" />
    </function>

    <function name="TextureParameterivEXT" deprecated="3.1" exec="dlist">
       <param name="texture" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="pname" type="GLenum" />
       <param name="params" type="const GLint *" marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
    </function>

    <function name="TextureParameterfEXT" deprecated="3.1" exec="dlist">
       <param name="texture" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="pname" type="GLenum" />
       <param name="param" type="float" />
    </function>

    <function name="TextureParameterfvEXT" deprecated="3.1" exec="dlist">
       <param name="texture" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="pname" type="GLenum" />
       <param name="params" type="const float *" marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
    </function>

   <function name="TextureImage1DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <param name="texture" type="GLuint" />
      <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>

   <function name="TextureImage2DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <param name="texture" type="GLuint" />
      <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="TextureImage3DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <param name="texture" type="GLuint" />
      <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="TextureSubImage1DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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="type" type="GLenum" />
      <param name="pixels" type="const GLvoid *" />
   </function>

   <function name="TextureSubImage2DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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="type" type="GLenum" />
      <param name="pixels" type="const GLvoid *" />
   </function>

   <function name="TextureSubImage3DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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="type" type="GLenum" />
      <param name="pixels" type="const GLvoid *" />
   </function>

   <function name="CopyTextureImage1DEXT" deprecated="3.1" exec="dlist">
      <param name="texture" type="GLuint" />
      <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="int" />
   </function>

   <function name="CopyTextureImage2DEXT" deprecated="3.1" exec="dlist">
      <param name="texture" type="GLuint" />
      <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="int" />
   </function>

   <function name="CopyTextureSubImage1DEXT" deprecated="3.1" exec="dlist">
      <param name="texture" type="GLuint" />
      <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="CopyTextureSubImage2DEXT" deprecated="3.1" exec="dlist">
      <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="x" type="GLint" />
      <param name="y" type="GLint" />
      <param name="width" type="GLsizei" />
      <param name="height" type="GLsizei" />
   </function>

   <function name="CopyTextureSubImage3DEXT" deprecated="3.1" exec="dlist">
      <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="x" type="GLint" />
      <param name="y" type="GLint" />
      <param name="width" type="GLsizei" />
      <param name="height" type="GLsizei" />
   </function>

   <function name="GetTextureImageEXT" deprecated="3.1"
             marshal="async" marshal_sync="!_mesa_glthread_has_pack_buffer(ctx)">
      <param name="texture" type="GLuint" />
      <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>

   <!-- OpenGL 1.2.1 -->

  <function name="BindMultiTextureEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="texture" type="GLuint" />
   </function>

  <function name="EnableClientStateIndexedEXT" alias="EnableClientStateiEXT">
      <param name="array" type="GLenum" />
      <param name="index" type="GLuint" />
   </function>

  <function name="DisableClientStateIndexedEXT" alias="DisableClientStateiEXT">
      <param name="array" type="GLenum" />
      <param name="index" type="GLuint" />
   </function>

   <function name="GetFloatIndexedvEXT" alias="GetFloati_v">
      <param name="target" type="GLenum" />
      <param name="index" type="GLuint" />
      <param name="params" type="GLfloat*" />
   </function>

   <function name="GetDoubleIndexedvEXT" alias="GetDoublei_v">
      <param name="target" type="GLenum" />
      <param name="index" type="GLuint" />
      <param name="params" type="GLdouble*" />
   </function>

   <function name="GetPointerIndexedvEXT" deprecated="3.1">
      <param name="target" type="GLenum" />
      <param name="index" type="GLuint" />
      <param name="params" type="GLvoid**" />
   </function>

   <function name="MultiTexEnviEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLint" />
   </function>

   <function name="MultiTexEnvivEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="const GLint *" marshal_count="_mesa_texenv_enum_to_count(pname)"/>
   </function>

   <function name="MultiTexEnvfEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLfloat" />
   </function>

   <function name="MultiTexEnvfvEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="const GLfloat *" marshal_count="_mesa_texenv_enum_to_count(pname)"/>
   </function>

   <function name="GetMultiTexEnvivEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLint *" />
   </function>

   <function name="GetMultiTexEnvfvEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLfloat *" />
   </function>

   <function name="MultiTexParameteriEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLint" />
   </function>

   <function name="MultiTexParameterivEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="const GLint*" marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
   </function>

   <function name="MultiTexParameterfEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLfloat" />
   </function>

   <function name="MultiTexParameterfvEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="const GLfloat*" marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
   </function>

   <function name="GetMultiTexParameterivEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="GLint*" />
   </function>

   <function name="GetMultiTexParameterfvEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="GLfloat*" />
   </function>

   <function name="GetMultiTexImageEXT" deprecated="3.1"
             marshal="async" marshal_sync="!_mesa_glthread_has_pack_buffer(ctx)">
      <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" deprecated="3.1">
      <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*" />
   </function>

   <function name="GetMultiTexLevelParameterfvEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="level" type="GLint" />
      <param name="pname" type="GLenum" />
      <param name="params" type="GLfloat*" />
   </function>

   <function name="MultiTexImage1DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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>

   <function name="MultiTexImage2DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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="MultiTexImage3DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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="MultiTexSubImage1DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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="MultiTexSubImage2DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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="MultiTexSubImage3DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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="CopyMultiTexImage1DEXT" deprecated="3.1" exec="dlist">
      <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="CopyMultiTexImage2DEXT" deprecated="3.1" exec="dlist">
      <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="CopyMultiTexSubImage1DEXT" deprecated="3.1" exec="dlist">
      <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="CopyMultiTexSubImage2DEXT" deprecated="3.1" exec="dlist">
      <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="CopyMultiTexSubImage3DEXT" deprecated="3.1" exec="dlist">
      <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="MultiTexGendEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLdouble" />
   </function>

   <function name="MultiTexGendvEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="const GLdouble*" marshal_count="_mesa_texgen_enum_to_count(pname)"/>
   </function>

   <function name="MultiTexGenfEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLfloat" />
   </function>

   <function name="MultiTexGenfvEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="const GLfloat *" marshal_count="_mesa_texgen_enum_to_count(pname)"/>
   </function>

   <function name="MultiTexGeniEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLint" />
   </function>

   <function name="MultiTexGenivEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="const GLint *" marshal_count="_mesa_texgen_enum_to_count(pname)"/>
   </function>

   <function name="GetMultiTexGendvEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLdouble *" />
   </function>

   <function name="GetMultiTexGenfvEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLfloat *" />
   </function>

   <function name="GetMultiTexGenivEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="coord" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLint *" />
   </function>

   <function name="MultiTexCoordPointerEXT" deprecated="3.1" marshal="async"
             marshal_call_after="_mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_TEX(texunit - GL_TEXTURE0), MESA_PACK_VFORMAT(type, size, 0, 0, 0), stride,  pointer);">
      <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" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="m" type="const GLfloat *" count="16"/>
   </function>

   <function name="MatrixLoadTransposedEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="m" type="const GLdouble *" count="16"/>
   </function>

   <function name="MatrixMultTransposefEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="m" type="const GLfloat *" count="16"/>
   </function>

   <function name="MatrixMultTransposedEXT" deprecated="3.1" offset="assign" exec="dlist">
      <param name="matrixMode" type="GLenum" />
      <param name="m" type="const GLdouble *" count="16"/>
    </function>

   <function name="CompressedTextureImage1DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1"
             marshal="async" marshal_sync="!_mesa_glthread_has_pack_buffer(ctx)">
      <param name="texture" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="level" type="GLint" />
      <param name="img" type="GLvoid *" />
   </function>

   <function name="CompressedMultiTexImage1DEXT" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1" exec="dlist"
             marshal="async" marshal_sync="!_mesa_glthread_has_unpack_buffer(ctx)">
      <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" deprecated="3.1"
             marshal="async" marshal_sync="!_mesa_glthread_has_pack_buffer(ctx)">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="level" type="GLint" />
      <param name="img" type="GLvoid *" />
   </function>

   <!-- OpenGL 1.5 -->

   <!-- Even though EXT_direct_state_access is only available
        in the Compatibility profile, some functions like this one must also
        be exposed in the Core profile because Blender uses them.
     -->
   <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" marshal="async">
      <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" deprecated="3.1">
      <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" deprecated="3.1">
      <param name="framebuffer" type="GLuint" />
      <param name="mode" type="GLenum" />
   </function>

   <function name="FramebufferDrawBuffersEXT" deprecated="3.1">
      <param name="framebuffer" type="GLuint" />
      <param name="n" type="GLsizei" />
      <param name="bufs" type="const GLenum *" count="n"/>
   </function>

   <function name="FramebufferReadBufferEXT" deprecated="3.1">
      <param name="framebuffer" type="GLuint" />
      <param name="mode" type="GLenum" />
   </function>

   <function name="GetFramebufferParameterivEXT" deprecated="3.1">
      <param name="framebuffer" type="GLuint" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLint *" />
   </function>

   <function name="CheckNamedFramebufferStatusEXT" deprecated="3.1">
      <return type="GLenum" />
      <param name="framebuffer" type="GLuint" />
      <param name="target" type="GLenum" />
   </function>

   <function name="NamedFramebufferTexture1DEXT" deprecated="3.1">
      <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" deprecated="3.1">
      <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" deprecated="3.1">
      <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" deprecated="3.1">
      <param name="framebuffer" type="GLuint" />
      <param name="attachment" type="GLenum" />
      <param name="renderbuffertarget" type="GLenum" />
      <param name="renderbuffer" type="GLuint" />
   </function>

   <function name="GetNamedFramebufferAttachmentParameterivEXT" deprecated="3.1">
      <param name="framebuffer" type="GLuint" />
      <param name="attachment" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="GLint *" />
   </function>

   <function name="EnableClientStateiEXT" deprecated="3.1"
             marshal_call_after="_mesa_glthread_ClientState(ctx, NULL, VERT_ATTRIB_TEX(index), true);">
      <param name="array" type="GLenum" />
      <param name="index" type="GLuint" />
   </function>

   <function name="DisableClientStateiEXT" deprecated="3.1"
             marshal_call_after="_mesa_glthread_ClientState(ctx, NULL, VERT_ATTRIB_TEX(index), false);">
      <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" deprecated="3.1">
      <param name="renderbuffer" type="GLuint" />
      <param name="internalformat" type="GLenum" />
      <param name="width" type="GLsizei" />
      <param name="height" type="GLsizei" />
   </function>

   <function name="GetNamedRenderbufferParameterivEXT" deprecated="3.1">
      <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" deprecated="3.1">
      <param name="texture" type="GLuint" />
      <param name="target" type="GLenum" />
   </function>

   <function name="GenerateMultiTexMipmapEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
   </function>

   <function name="NamedRenderbufferStorageMultisampleEXT" deprecated="3.1">
      <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" deprecated="3.1">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_POS, MESA_PACK_VFORMAT(type, size, 0, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_COLOR0, MESA_PACK_VFORMAT(type, size, 1, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_EDGEFLAG, MESA_PACK_VFORMAT(GL_UNSIGNED_BYTE, 1, 0, 0, 0), stride, offset);">
      <param name="vaobj" type="GLuint" />
      <param name="buffer" type="GLuint" />
      <param name="stride" type="GLsizei" />
      <param name="offset" type="GLintptr" />
   </function>

   <function name="VertexArrayIndexOffsetEXT" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_COLOR_INDEX, MESA_PACK_VFORMAT(type, 1, 0, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_NORMAL, MESA_PACK_VFORMAT(type, 3, 1, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_TEX(ctx->GLThread.ClientActiveTexture), MESA_PACK_VFORMAT(type, size, 0, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_TEX(texunit - GL_TEXTURE0), MESA_PACK_VFORMAT(type, size, 0, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_FOG, MESA_PACK_VFORMAT(type, 1, 0, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_COLOR1, MESA_PACK_VFORMAT(type, size, 1, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_GENERIC(index), MESA_PACK_VFORMAT(type, size, normalized, 0, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_DSAAttribPointer(ctx, vaobj, buffer, VERT_ATTRIB_GENERIC(index), MESA_PACK_VFORMAT(type, size, 0, 1, 0), stride, offset);">
      <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" deprecated="3.1"
             marshal_call_after="_mesa_glthread_ClientState(ctx, &amp;vaobj, _mesa_array_to_attrib(ctx, array), true);">
      <param name="vaobj" type="GLuint" />
      <param name="array" type="GLenum" />
   </function>

   <function name="DisableVertexArrayEXT" deprecated="3.1"
             marshal_call_after="_mesa_glthread_ClientState(ctx, &amp;vaobj, _mesa_array_to_attrib(ctx, array), false);">
      <param name="vaobj" type="GLuint" />
      <param name="array" type="GLenum" />
   </function>

   <function name="EnableVertexArrayAttribEXT" deprecated="3.1"
             marshal_call_after="_mesa_glthread_ClientState(ctx, &amp;vaobj, VERT_ATTRIB_GENERIC(index), true);">
      <param name="vaobj" type="GLuint" />
      <param name="index" type="GLuint" />
   </function>

   <function name="DisableVertexArrayAttribEXT" deprecated="3.1"
             marshal_call_after="_mesa_glthread_ClientState(ctx, &amp;vaobj, VERT_ATTRIB_GENERIC(index), false);">
      <param name="vaobj" type="GLuint" />
      <param name="index" type="GLuint" />
   </function>

   <function name="GetVertexArrayIntegervEXT" deprecated="3.1">
      <param name="vaobj" type="GLuint" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLint*" />
   </function>

   <function name="GetVertexArrayPointervEXT" deprecated="3.1">
      <param name="vaobj" type="GLuint" />
      <param name="pname" type="GLenum" />
      <param name="param" type="GLvoid**" />
   </function>

   <function name="GetVertexArrayIntegeri_vEXT" deprecated="3.1">
      <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" deprecated="3.1">
      <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" deprecated="3.1" exec="dlist">
      <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" deprecated="3.1">
      <param name="program" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="string" type="GLvoid*" />
    </function>

   <function name="NamedProgramLocalParameter4fEXT" deprecated="3.1" exec="dlist">
      <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" deprecated="3.1" exec="dlist">
      <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" deprecated="3.1">
      <param name="program" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="index" type="GLuint" />
      <param name="params" type="GLfloat*" />
    </function>

   <function name="NamedProgramLocalParameter4dEXT" deprecated="3.1" exec="dlist">
      <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" deprecated="3.1" exec="dlist">
      <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" deprecated="3.1">
      <param name="program" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="index" type="GLuint" />
      <param name="params" type="GLdouble*" />
    </function>

   <function name="GetNamedProgramivEXT" deprecated="3.1">
      <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" deprecated="3.1">
      <param name="texture" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="internalformat" type="GLenum" />
      <param name="buffer" type="GLuint" />
   </function>

   <function name="MultiTexBufferEXT" deprecated="3.1">
      <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" deprecated="3.1" exec="dlist">
      <param name="texture" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="const GLint*" marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
   </function>

   <function name="TextureParameterIuivEXT" deprecated="3.1" exec="dlist">
      <param name="texture" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="const GLuint*" marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
   </function>

   <function name="GetTextureParameterIivEXT" deprecated="3.1">
      <param name="texture" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="GLint*" />
   </function>

   <function name="GetTextureParameterIuivEXT" deprecated="3.1">
      <param name="texture" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="GLuint*" />
   </function>

   <function name="MultiTexParameterIivEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="const GLint*" marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
   </function>

   <function name="MultiTexParameterIuivEXT" deprecated="3.1" exec="dlist">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="const GLuint*" marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
   </function>

   <function name="GetMultiTexParameterIivEXT" deprecated="3.1">
      <param name="texunit" type="GLenum" />
      <param name="target" type="GLenum" />
      <param name="pname" type="GLenum" />
      <param name="params" type="GLint*" />
   </function>

   <function name="GetMultiTexParameterIuivEXT" deprecated="3.1">
      <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" deprecated="3.1">
      <param name="program" type="GLuint" />
      <param name="target" type="GLenum" />
      <param name="index" type="GLuint" />
      <param name="count" type="GLsizei" counter="true"/>
      <param name="params" type="const GLfloat*" count="count" count_scale="4"/>
   </function>

</category>
</OpenGLAPI>
