<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
<!-- Note: no GLX protocol info yet. -->
<OpenGLAPI>
<category name="ARB_separate_shader_objects" number="97">
<enum name="ACTIVE_PROGRAM" value="0x8259"/>
<enum name="PROGRAM_PIPELINE_BINDING" value="0x825A"/>
<enum name="VERTEX_SHADER_BIT" value="0x00000001"/>
<enum name="FRAGMENT_SHADER_BIT" value="0x00000002"/>
<enum name="GEOMETRY_SHADER_BIT" value="0x00000004"/>
<enum name="TESS_CONTROL_SHADER_BIT" value="0x00000008"/>
<enum name="TESS_EVALUATION_SHADER_BIT" value="0x00000010"/>
<enum name="ALL_SHADER_BITS" value="0xFFFFFFFF"/>
<enum name="PROGRAM_SEPARABLE" value="0x8258"/>
<function name="UseProgramStages" es2="3.1" no_error="true">
<param name="pipeline" type="GLuint" />
<param name="stages" type="GLbitfield" />
<param name="program" type="GLuint" />
</function>
<function name="ActiveShaderProgram" es2="3.1" no_error="true">
<param name="pipeline" type="GLuint" />
<param name="program" type="GLuint" />
</function>
<function name="CreateShaderProgramv" es2="3.1">
<param name="type" type="GLenum" />
<param name="count" type="GLsizei" />
<param name="strings" type="const GLchar * const *" />
<return type="GLuint"/>
</function>
<function name="BindProgramPipeline" es2="3.1" no_error="true">
<param name="pipeline" type="GLuint" />
</function>
<function name="DeleteProgramPipelines" es2="3.1">
<param name="n" type="GLsizei" />
<param name="pipelines" type="const GLuint *" />
</function>
<function name="GenProgramPipelines" es2="3.1" no_error="true">
<param name="n" type="GLsizei" />
<param name="pipelines" type="GLuint *" />
</function>
<function name="IsProgramPipeline" es2="3.1">
<param name="pipeline" type="GLuint" />
<return type="GLboolean"/>
</function>
<!-- Function already included on ARB_get_program_binary.xml. Keep a commented
version here for completeness -->
<!--
<function name="ProgramParameteri" es2="3.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="value" type="GLint"/>
</function>
-->
<function name="GetProgramPipelineiv" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
<function name="ProgramUniform1i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
</function>
<function name="ProgramUniform2i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
<param name="y" type="GLint" />
</function>
<function name="ProgramUniform3i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
<param name="y" type="GLint" />
<param name="z" type="GLint" />
</function>
<function name="ProgramUniform4i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
<param name="y" type="GLint" />
<param name="z" type="GLint" />
<param name="w" type="GLint" />
</function>
<function name="ProgramUniform1ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
</function>
<function name="ProgramUniform2ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
<param name="y" type="GLuint" />
</function>
<function name="ProgramUniform3ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
<param name="y" type="GLuint" />
<param name="z" type="GLuint" />
</function>
<function name="ProgramUniform4ui" es2="3.1">
<param name="program" type="GLuint" />
<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="ProgramUniform1f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
</function>
<function name="ProgramUniform2f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
<param name="y" type="GLfloat" />
</function>
<function name="ProgramUniform3f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
<param name="y" type="GLfloat" />
<param name="z" type="GLfloat" />
</function>
<function name="ProgramUniform4f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
<param name="y" type="GLfloat" />
<param name="z" type="GLfloat" />
<param name="w" type="GLfloat" />
</function>
<function name="ProgramUniform1iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" count="count" />
</function>
<function name="ProgramUniform2iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" count="count" count_scale="2" />
</function>
<function name="ProgramUniform3iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" count="count" count_scale="3" />
</function>
<function name="ProgramUniform4iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" count="count" count_scale="4" />
</function>
<function name="ProgramUniform1uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" count="count" />
</function>
<function name="ProgramUniform2uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" count="count" count_scale="2" />
</function>
<function name="ProgramUniform3uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" count="count" count_scale="3" />
</function>
<function name="ProgramUniform4uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" count="count" count_scale="4" />
</function>
<function name="ProgramUniform1fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" count="count" />
</function>
<function name="ProgramUniform2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" count="count" count_scale="2" />
</function>
<function name="ProgramUniform3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" count="count" count_scale="3" />
</function>
<function name="ProgramUniform4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" count="count" count_scale="4" />
</function>
<function name="ProgramUniformMatrix2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="4" />
</function>
<function name="ProgramUniformMatrix3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="9" />
</function>
<function name="ProgramUniformMatrix4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="16" />
</function>
<function name="ProgramUniformMatrix2x3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="6" />
</function>
<function name="ProgramUniformMatrix3x2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="6" />
</function>
<function name="ProgramUniformMatrix2x4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="8" />
</function>
<function name="ProgramUniformMatrix4x2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="8" />
</function>
<function name="ProgramUniformMatrix3x4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="12" />
</function>
<function name="ProgramUniformMatrix4x3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" count="count" count_scale="12" />
</function>
<function name="ValidateProgramPipeline" es2="3.1">
<param name="pipeline" type="GLuint" />
</function>
<function name="GetProgramPipelineInfoLog" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="bufSize" type="GLsizei" />
<param name="length" type="GLsizei *" />
<param name="infoLog" type="GLchar *" />
</function>
<function name="ProgramUniform1d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
</function>
<function name="ProgramUniform2d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
<param name="y" type="GLdouble" />
</function>
<function name="ProgramUniform3d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
<param name="y" type="GLdouble" />
<param name="z" type="GLdouble" />
</function>
<function name="ProgramUniform4d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
<param name="y" type="GLdouble" />
<param name="z" type="GLdouble" />
<param name="w" type="GLdouble" />
</function>
<function name="ProgramUniformMatrix2x3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="6" />
</function>
<function name="ProgramUniformMatrix3x2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="6" />
</function>
<function name="ProgramUniformMatrix2x4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="8" />
</function>
<function name="ProgramUniformMatrix4x2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="8" />
</function>
<function name="ProgramUniformMatrix3x4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="12" />
</function>
<function name="ProgramUniformMatrix4x3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="12" />
</function>
<function name="ProgramUniformMatrix2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="4" />
</function>
<function name="ProgramUniformMatrix3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="9" />
</function>
<function name="ProgramUniformMatrix4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" count="count" count_scale="16" />
</function>
<function name="ProgramUniform1dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" count="count" />
</function>
<function name="ProgramUniform2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" count="count" count_scale="2" />
</function>
<function name="ProgramUniform3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" count="count" count_scale="3" />
</function>
<function name="ProgramUniform4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" count="count" count_scale="4" />
</function>
</category>
</OpenGLAPI>