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

<OpenGLAPI>

<category name="GL_ARB_uniform_buffer_object" number="57">

<enum name="UNIFORM_BUFFER" value="0x8A11" />
<enum name="UNIFORM_BUFFER_BINDING" value="0x8A28" />
<enum name="UNIFORM_BUFFER_START" value="0x8A29" />
<enum name="UNIFORM_BUFFER_SIZE" value="0x8A2A" />
<enum name="MAX_VERTEX_UNIFORM_BLOCKS" value="0x8A2B" />
<enum name="MAX_GEOMETRY_UNIFORM_BLOCKS" value="0x8A2C" />
<enum name="MAX_FRAGMENT_UNIFORM_BLOCKS" value="0x8A2D" />
<enum name="MAX_COMBINED_UNIFORM_BLOCKS" value="0x8A2E" />
<enum name="MAX_UNIFORM_BUFFER_BINDINGS" value="0x8A2F" />
<enum name="MAX_UNIFORM_BLOCK_SIZE" value="0x8A30" />
<enum name="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS" value="0x8A31" />
<enum name="MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS" value="0x8A32" />
<enum name="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS" value="0x8A33" />
<enum name="UNIFORM_BUFFER_OFFSET_ALIGNMENT" value="0x8A34" />
<enum name="ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH" value="0x8A35" />
<enum name="ACTIVE_UNIFORM_BLOCKS" value="0x8A36" />
<enum name="UNIFORM_TYPE" value="0x8A37" />
<enum name="UNIFORM_SIZE" value="0x8A38" />
<enum name="UNIFORM_NAME_LENGTH" value="0x8A39" />
<enum name="UNIFORM_BLOCK_INDEX" value="0x8A3A" />
<enum name="UNIFORM_OFFSET" value="0x8A3B" />
<enum name="UNIFORM_ARRAY_STRIDE" value="0x8A3C" />
<enum name="UNIFORM_MATRIX_STRIDE" value="0x8A3D" />
<enum name="UNIFORM_IS_ROW_MAJOR" value="0x8A3E" />
<enum name="UNIFORM_BLOCK_BINDING" value="0x8A3F" />
<enum name="UNIFORM_BLOCK_DATA_SIZE" value="0x8A40" />
<enum name="UNFIROM_BLOCK_NAME_LENGTH" value="0x8A41" />
<enum name="UNIFORM_BLOCK_ACTIVE_UNIFORMS" value="0x8A42" />
<enum name="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES" value="0x8A43" />
<enum name="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER" value="0x8A44" />
<enum name="UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER" value="0x8A45" />
<enum name="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" value="0x8A46" />
<enum name="INVALID_INDEX" value="0xFFFFFFFF" />

<function name="GetUniformIndices" offset="assign" es2="3.0">
    <param name="program" type="GLuint" />
    <param name="uniformCount" type="GLsizei" />
    <param name="uniformNames" type="const GLchar * const *" />
    <param name="uniformIndices" type="GLuint *" />
</function>

<function name="GetActiveUniformsiv" offset="assign" es2="3.0">
    <param name="program" type="GLuint" />
    <param name="uniformCount" type="GLsizei" />
    <param name="uniformIndices" type="const GLuint *" />
    <param name="pname" type="GLenum" />
    <param name="params" type="GLint *" />
</function>

<function name="GetActiveUniformName" offset="assign">
    <param name="program" type="GLuint" />
    <param name="uniformIndex" type="GLuint" />
    <param name="bufSize" type="GLsizei" />
    <param name="length" type="GLsizei *" />
    <param name="uniformName" type="GLchar *" />
</function>

<function name="GetUniformBlockIndex" offset="assign" es2="3.0">
    <return type="GLuint"/>
    <param name="program" type="GLuint" />
    <param name="uniformBlockName" type="const GLchar *" />
</function>

<function name="GetActiveUniformBlockiv" offset="assign" es2="3.0">
    <param name="program" type="GLuint" />
    <param name="uniformBlockIndex" type="GLuint" />
    <param name="pname" type="GLenum" />
    <param name="params" type="GLint *" />
</function>

<function name="GetActiveUniformBlockName" offset="assign" es2="3.0">
    <param name="program" type="GLuint" />
    <param name="uniformBlockIndex" type="GLuint" />
    <param name="bufSize" type="GLsizei" />
    <param name="length" type="GLsizei *" />
    <param name="uniformBlockName" type="GLchar *" />
</function>

<!-- Duplicated with GL3x.xml: BindBufferRange, BindBufferBase,
     GetIntegeri_v -->

<function name="UniformBlockBinding" offset="assign" es2="3.0">
    <param name="program" type="GLuint" />
    <param name="uniformBlockIndex" type="GLuint" />
    <param name="uniformBlockBinding" type="GLuint" />
</function>

</category>

</OpenGLAPI>
