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

<OpenGLAPI>

<category name="GL_EXT_gpu_shader4" number="326">

    <enum name="VERTEX_ATTRIB_ARRAY_INTEGER_EXT"        value="0x88FD"/>
    <enum name="SAMPLER_1D_ARRAY_EXT"                   value="0x8DC0"/>
    <enum name="SAMPLER_2D_ARRAY_EXT"                   value="0x8DC1"/>
    <enum name="SAMPLER_BUFFER_EXT"                     value="0x8DC2"/>
    <enum name="SAMPLER_1D_ARRAY_SHADOW_EXT"            value="0x8DC3"/>
    <enum name="SAMPLER_2D_ARRAY_SHADOW_EXT"            value="0x8DC4"/>
    <enum name="SAMPLER_CUBE_SHADOW_EXT"                value="0x8DC5"/>
    <enum name="UNSIGNED_INT_VEC2_EXT"                  value="0x8DC6"/>
    <enum name="UNSIGNED_INT_VEC3_EXT"                  value="0x8DC7"/>
    <enum name="UNSIGNED_INT_VEC4_EXT"                  value="0x8DC8"/>
    <enum name="INT_SAMPLER_1D_EXT"                     value="0x8DC9"/>
    <enum name="INT_SAMPLER_2D_EXT"                     value="0x8DCA"/>
    <enum name="INT_SAMPLER_3D_EXT"                     value="0x8DCB"/>
    <enum name="INT_SAMPLER_CUBE_EXT"                   value="0x8DCC"/>
    <enum name="INT_SAMPLER_2D_RECT_EXT"                value="0x8DCD"/>
    <enum name="INT_SAMPLER_1D_ARRAY_EXT"               value="0x8DCE"/>
    <enum name="INT_SAMPLER_2D_ARRAY_EXT"               value="0x8DCF"/>
    <enum name="INT_SAMPLER_BUFFER_EXT"                 value="0x8DD0"/>
    <enum name="UNSIGNED_INT_SAMPLER_1D_EXT"            value="0x8DD1"/>
    <enum name="UNSIGNED_INT_SAMPLER_2D_EXT"            value="0x8DD2"/>
    <enum name="UNSIGNED_INT_SAMPLER_3D_EXT"            value="0x8DD3"/>
    <enum name="UNSIGNED_INT_SAMPLER_CUBE_EXT"          value="0x8DD4"/>
    <enum name="UNSIGNED_INT_SAMPLER_2D_RECT_EXT"       value="0x8DD5"/>
    <enum name="UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT"      value="0x8DD6"/>
    <enum name="UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT"      value="0x8DD7"/>
    <enum name="UNSIGNED_INT_SAMPLER_BUFFER_EXT"        value="0x8DD8"/>

    <!-- There is no MIN_PROGRAM_TEXEL_OFFSET_EXT in glext.h.  There is
         MIN_PROGRAM_TEXEL_OFFSET_NV and MIN_PROGRAM_TEXEL_OFFSET (OpenGL
         3.0).  Same goes for MAX_PROGRAM_TEXEL_OFFSET_EXT.
    -->
    <enum name="MIN_PROGRAM_TEXEL_OFFSET"               value="0x8904">
        <size name="Get" mode="get"/>
    </enum>
    <enum name="MAX_PROGRAM_TEXEL_OFFSET"               value="0x8905">
        <size name="Get" mode="get"/>
    </enum>


    <function name="VertexAttribI1iEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="x" type="GLint"/>
    </function>

    <function name="VertexAttribI2iEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="x" type="GLint"/>
        <param name="y" type="GLint"/>
    </function>

    <function name="VertexAttribI3iEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="x" type="GLint"/>
        <param name="y" type="GLint"/>
        <param name="z" type="GLint"/>
    </function>

    <function name="VertexAttribI4iEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="x" type="GLint"/>
        <param name="y" type="GLint"/>
        <param name="z" type="GLint"/>
        <param name="w" type="GLint"/>
    </function>

    <function name="VertexAttribI1uiEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="x" type="GLuint"/>
    </function>

    <function name="VertexAttribI2uiEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="x" type="GLuint"/>
        <param name="y" type="GLuint"/>
    </function>

    <function name="VertexAttribI3uiEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="x" type="GLuint"/>
        <param name="y" type="GLuint"/>
        <param name="z" type="GLuint"/>
    </function>

    <function name="VertexAttribI4uiEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="x" type="GLuint"/>
        <param name="y" type="GLuint"/>
        <param name="z" type="GLuint"/>
        <param name="w" type="GLuint"/>
    </function>

    <function name="VertexAttribI1ivEXT" alias="VertexAttribI1iv">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLint *"/>
    </function>

    <function name="VertexAttribI2ivEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLint *"/>
    </function>

    <function name="VertexAttribI3ivEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLint *"/>
    </function>

    <function name="VertexAttribI4ivEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLint *"/>
    </function>

    <function name="VertexAttribI1uivEXT" alias="VertexAttribI1uiv">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLuint *"/>
    </function>

    <function name="VertexAttribI2uivEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLuint *"/>
    </function>

    <function name="VertexAttribI3uivEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLuint *"/>
    </function>

    <function name="VertexAttribI4uivEXT" exec="dynamic">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLuint *"/>
    </function>

    <function name="VertexAttribI4bvEXT" alias="VertexAttribI4bv">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLbyte *"/>
    </function>

    <function name="VertexAttribI4svEXT" alias="VertexAttribI4sv">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLshort *"/>
    </function>

    <function name="VertexAttribI4ubvEXT" alias="VertexAttribI4ubv">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLubyte *"/>
    </function>

    <function name="VertexAttribI4usvEXT" alias="VertexAttribI4usv">
        <param name="index" type="GLuint"/>
        <param name="v" type="const GLushort *"/>
    </function>

    <function name="VertexAttribIPointerEXT" alias="VertexAttribIPointer">
        <param name="index" type="GLuint"/>
        <param name="size" type="GLint"/>
        <param name="type" type="GLenum"/>
        <param name="stride" type="GLsizei"/>
        <param name="pointer" type="const GLvoid *"/>
    </function>

    <function name="GetVertexAttribIivEXT" alias="GetVertexAttribIiv">
        <param name="index" type="GLuint"/>
        <param name="pname" type="GLenum"/>
        <param name="params" type="GLint *"/>
    </function>

    <function name="GetVertexAttribIuivEXT" alias="GetVertexAttribIuiv">
        <param name="index" type="GLuint"/>
        <param name="pname" type="GLenum"/>
        <param name="params" type="GLuint *"/>
    </function>

    <function name="Uniform1uiEXT" alias="Uniform1ui">
        <param name="location" type="GLint"/>
        <param name="x" type="GLuint"/>
    </function>

    <function name="Uniform2uiEXT" alias="Uniform2ui">
        <param name="location" type="GLint"/>
        <param name="x" type="GLuint"/>
        <param name="y" type="GLuint"/>
    </function>

    <function name="Uniform3uiEXT" alias="Uniform3ui">
        <param name="location" type="GLint"/>
        <param name="x" type="GLuint"/>
        <param name="y" type="GLuint"/>
        <param name="z" type="GLuint"/>
    </function>

    <function name="Uniform4uiEXT" alias="Uniform4ui">
        <param name="location" type="GLint"/>
        <param name="x" type="GLuint"/>
        <param name="y" type="GLuint"/>
        <param name="z" type="GLuint"/>
        <param name="w" type="GLuint"/>
    </function>

    <function name="Uniform1uivEXT" alias="Uniform1uiv">
        <param name="location" type="GLint"/>
	<param name="count" type="GLsizei"/>
        <param name="value" type="const GLuint *"/>
    </function>

    <function name="Uniform2uivEXT" alias="Uniform2uiv">
        <param name="location" type="GLint"/>
	<param name="count" type="GLsizei"/>
        <param name="value" type="const GLuint *"/>
    </function>

    <function name="Uniform3uivEXT" alias="Uniform3uiv">
        <param name="location" type="GLint"/>
	<param name="count" type="GLsizei"/>
        <param name="value" type="const GLuint *"/>
    </function>

    <function name="Uniform4uivEXT" alias="Uniform4uiv">
        <param name="location" type="GLint"/>
	<param name="count" type="GLsizei"/>
        <param name="value" type="const GLuint *"/>
    </function>

    <function name="GetUniformuivEXT" alias="GetUniformuiv">
        <param name="program" type="GLuint"/>
        <param name="location" type="GLint"/>
        <param name="params" type="GLuint *"/>
    </function>

    <function name="BindFragDataLocationEXT" alias="BindFragDataLocation"
	    es2="3.0">
        <param name="program" type="GLuint"/>
        <param name="colorNumber" type="GLuint"/>
        <param name="name" type="const GLchar *"/>
    </function>

    <function name="GetFragDataLocationEXT" alias="GetFragDataLocation">
	<return type="GLint"/>
        <param name="program" type="GLuint"/>
        <param name="name" type="const GLchar *"/>
    </function>

</category>

</OpenGLAPI>