1<?xml version="1.0"?>
2<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
3
4<!-- Note: no GLX protocol info yet. -->
5
6<OpenGLAPI>
7
8<category name="GL_ARB_shader_subroutine" number="90">
9
10    <function name="GetSubroutineUniformLocation">
11        <param name="program" type="GLuint"/>
12        <param name="shadertype" type="GLenum"/>
13        <param name="name" type="const GLchar *"/>
14        <return type="GLint"/>
15    </function>
16
17    <function name="GetSubroutineIndex">
18        <param name="program" type="GLuint"/>
19        <param name="shadertype" type="GLenum"/>
20        <param name="name" type="const GLchar *"/>
21        <return type="GLuint"/>
22    </function>
23
24    <function name="GetActiveSubroutineUniformiv">
25        <param name="program" type="GLuint"/>
26        <param name="shadertype" type="GLenum"/>
27        <param name="index" type="GLuint"/>
28        <param name="pname" type="GLenum"/>
29        <param name="values" type="GLint *" output="true"/>
30    </function>
31
32    <function name="GetActiveSubroutineUniformName">
33        <param name="program" type="GLuint"/>
34        <param name="shadertype" type="GLenum"/>
35        <param name="index" type="GLuint"/>
36        <param name="bufsize" type="GLsizei"/>
37        <param name="length" type="GLsizei *" output="true"/>
38        <param name="name" type="GLchar *" output="true"/>
39    </function>
40
41    <function name="GetActiveSubroutineName">
42        <param name="program" type="GLuint"/>
43        <param name="shadertype" type="GLenum"/>
44        <param name="index" type="GLuint"/>
45        <param name="bufsize" type="GLsizei"/>
46        <param name="length" type="GLsizei *" output="true"/>
47        <param name="name" type="GLchar *" output="true"/>
48    </function>
49
50    <function name="UniformSubroutinesuiv">
51        <param name="shadertype" type="GLenum"/>
52        <param name="count" type="GLsizei"/>
53        <param name="indices" type="const GLuint *"/>
54    </function>
55
56    <function name="GetUniformSubroutineuiv">
57        <param name="shadertype" type="GLenum"/>
58        <param name="location" type="GLint"/>
59        <param name="params" type="GLuint *" output="true"/>
60    </function>
61
62    <function name="GetProgramStageiv">
63        <param name="program" type="GLuint"/>
64        <param name="shadertype" type="GLenum"/>
65        <param name="pname" type="GLenum"/>
66        <param name="values" type="GLint *" output="true"/>
67    </function>
68
69    <enum name="ACTIVE_SUBROUTINES" value="0x8DE5"/>
70    <enum name="ACTIVE_SUBROUTINE_UNIFORMS" value="0x8DE6"/>
71    <enum name="ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS" value="0x8E47"/>
72    <enum name="ACTIVE_SUBROUTINE_MAX_LENGTH" value="0x8E48"/>
73    <enum name="ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH" value="0x8E49"/>
74
75    <enum name="MAX_SUBROUTINES" value="0x8DE7"/>
76    <enum name="MAX_SUBROUTINE_UNIFORM_LOCATIONS" value="0x8DE8"/>
77
78    <enum name="NUM_COMPATIBLE_SUBROUTINES" value="0x8E4A"/>
79    <enum name="COMPATIBLE_SUBROUTINES" value="0x8E4B"/>
80
81    <!-- UNIFORM_SIZE, UNIFORM_NAME_LENGTH already in GL3.1 -->
82
83</category>
84</OpenGLAPI>
85