Commit | Line | Data |
---|---|---|
7faf1d71 AW |
1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd"> | |
3 | <!-- saved from url=(0013)about:internet --> | |
4 | <?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="opengl-man.css" /><title>glGetProgramResource - OpenGL 4 Reference Pages</title><meta name="generator" content="DocBook XSL Stylesheets V1.69.1" /></head><body><div class="refentry" lang="en" xml:lang="en"><a id="glGetProgramResource"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glGetProgramResource — retrieve values for multiple properties of a single active resource within a program object</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"><tr><td><code class="funcdef">void <b class="fsfunc">glGetProgramResourceiv</b>(</code></td><td>GLuint </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLenum </td><td><var class="pdparam">programInterface</var>, </td></tr><tr><td> </td><td>GLuint </td><td><var class="pdparam">index</var>, </td></tr><tr><td> </td><td>GLsizei </td><td><var class="pdparam">propCount</var>, </td></tr><tr><td> </td><td>const Glenum * </td><td><var class="pdparam">props</var>, </td></tr><tr><td> </td><td>GLsizei </td><td><var class="pdparam">bufSize</var>, </td></tr><tr><td> </td><td>GLsizei * </td><td><var class="pdparam">length</var>, </td></tr><tr><td> </td><td>GLint * </td><td><var class="pdparam">params</var><code>)</code>;</td></tr></table></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>program</code></em></span></dt><dd><p> | |
5 | The name of a program object whose resources to query. | |
6 | </p></dd><dt><span class="term"><em class="parameter"><code>programInterface</code></em></span></dt><dd><p> | |
7 | A token identifying the interface within <em class="parameter"><code>program</code></em> containing the resource named <em class="parameter"><code>name</code></em>. | |
8 | </p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p> | |
9 | <code class="function">glGetProgramResourceiv</code> returns values for multiple properties of a single active resource with an | |
10 | index of <em class="parameter"><code>index</code></em> in the interface <em class="parameter"><code>programInterface</code></em> of program object | |
11 | <em class="parameter"><code>program</code></em>. For each resource, values for <em class="parameter"><code>propCount</code></em> properties specified | |
12 | by the array <em class="parameter"><code>props</code></em> are returned. <em class="parameter"><code>propCount</code></em> may not be zero. | |
13 | An error is generated if any value | |
14 | in <em class="parameter"><code>props</code></em> is not one of the properties described immediately belowor if any value in <em class="parameter"><code>props</code></em> is not | |
15 | allowed for <em class="parameter"><code>programInterface</code></em>. The set of allowed <em class="parameter"><code>programInterface</code></em> | |
16 | values for each property can be found in the following table: | |
17 | </p><div class="informaltable"><table border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th rowspan="2" align="center">Property</th><th rowspan="2" align="center">Supported Interfaces</th></tr></thead><tbody><tr><td align="left"><code class="constant">GL_NAME_LENGTH</code></td><td align="left">Any except <code class="constant">GL_ATOMIC_COUNTER_BUFFER</code></td></tr><tr><td align="left"><code class="constant">GL_TYPE</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code>, <code class="constant">GL_TRANSFORM_FEEDBACK_VARYING</code>, <code class="constant">GL_BUFFER_VARIABLE</code></td></tr><tr><td align="left"><code class="constant">GL_ARRAY_SIZE</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_BUFFER_VARIABLE</code>, <code class="constant">GL_PROGRAM_INPUT</code>, | |
18 | <code class="constant">GL_PROGRAM_OUTPUT, VERTEX_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_TESS_CONTROL_SUBROUTINE_UNIFORM</code>, | |
19 | <code class="constant">GL_TESS_EVALUATION_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_GEOMETRY_SUBROUTINE_UNIFORM</code>, | |
20 | <code class="constant">GL_FRAGMENT_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_COMPUTE_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_TRANSFORM_FEEDBACK_VARYING</code></td></tr><tr><td align="left"><code class="constant">GL_OFFSET</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_BUFFER_VARIABLE</code></td></tr><tr><td align="left"><code class="constant">GL_BLOCK_INDEX</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_BUFFER_VARIABLE</code></td></tr><tr><td align="left"><code class="constant">GL_ARRAY_STRIDE</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_BUFFER_VARIABLE</code></td></tr><tr><td align="left"><code class="constant">GL_MATRIX_STRIDE</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_BUFFER_VARIABLE</code></td></tr><tr><td align="left"><code class="constant">GL_IS_ROW_MAJOR</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_BUFFER_VARIABLE</code></td></tr><tr><td align="left"><code class="constant">GL_ATOMIC_COUNTER_BUFFER_INDEX</code></td><td align="left"><code class="constant">GL_UNIFORM</code></td></tr><tr><td align="left"><code class="constant">GL_TEXTURE_BUFFER</code></td><td align="left"><span class="ERROR"><emph>none</emph></span></td></tr><tr><td align="left"><code class="constant">GL_BUFFER_BINDING</code></td><td align="left"><code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code></td></tr><tr><td align="left"><code class="constant">GL_BUFFER_DATA_SIZE</code></td><td align="left"><code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code></td></tr><tr><td align="left"><code class="constant">GL_NUM_ACTIVE_VARIABLES</code></td><td align="left"><code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code></td></tr><tr><td align="left"><code class="constant">GL_ACTIVE_VARIABLES</code></td><td align="left"><code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code></td></tr><tr><td align="left"><code class="constant">GL_REFERENCED_BY_VERTEX_SHADER</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_SHADER</code>, | |
21 | <code class="constant">GL_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code>, <code class="constant">GL_BUFFER_VARIABLE</code>, | |
22 | <code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code></td></tr><tr><td align="left"><code class="constant">GL_REFERENCED_BY_TESS_CONTROL_SHADER</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_SHADER</code>, | |
23 | <code class="constant">GL_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code>, <code class="constant">GL_BUFFER_VARIABLE</code>, | |
24 | <code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code></td></tr><tr><td align="left"><code class="constant">GL_REFERENCED_BY_TESS_EVALUATION_SHADER</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_SHADER</code>, | |
25 | <code class="constant">GL_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code>, <code class="constant">GL_BUFFER_VARIABLE</code>, | |
26 | <code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code></td></tr><tr><td align="left"><code class="constant">GL_REFERENCED_BY_GEOMETRY_SHADER</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_SHADER</code>, | |
27 | <code class="constant">GL_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code>, <code class="constant">GL_BUFFER_VARIABLE</code>, | |
28 | <code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code></td></tr><tr><td align="left"><code class="constant">GL_REFERENCED_BY_FRAGMENT_SHADER</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_SHADER</code>, | |
29 | <code class="constant">GL_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code>, <code class="constant">GL_BUFFER_VARIABLE</code>, | |
30 | <code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code></td></tr><tr><td align="left"><code class="constant">GL_REFERENCED_BY_COMPUTE_SHADER</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_UNIFORM_BLOCK</code>, <code class="constant">GL_ATOMIC_COUNTER_SHADER</code>, | |
31 | <code class="constant">GL_BUFFER</code>, <code class="constant">GL_SHADER_STORAGE_BLOCK</code>, <code class="constant">GL_BUFFER_VARIABLE</code>, | |
32 | <code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code></td></tr><tr><td align="left"><code class="constant">GL_NUM_COMPATIBLE_SUBROUTINES</code></td><td align="left"><code class="constant">GL_VERTEX_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_TESS_CONTROL_SUBROUTINE_UNIFORM</code>, | |
33 | <code class="constant">GL_TESS_EVALUATION_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_GEOMETRY_SUBROUTINE_UNIFORM</code>, | |
34 | <code class="constant">GL_FRAGMENT_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_COMPUTE_SUBROUTINE_UNIFORM</code></td></tr><tr><td align="left"><code class="constant">GL_COMPATIBLE_SUBROUTINES</code></td><td align="left"><code class="constant">GL_VERTEX_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_TESS_CONTROL_SUBROUTINE_UNIFORM</code>, | |
35 | <code class="constant">GL_TESS_EVALUATION_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_GEOMETRY_SUBROUTINE_UNIFORM</code>, | |
36 | <code class="constant">GL_FRAGMENT_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_COMPUTE_SUBROUTINE_UNIFORM</code></td></tr><tr><td align="left"><code class="constant">GL_TOP_LEVEL_ARRAY_SIZE</code></td><td align="left"><code class="constant">GL_BUFFER_VARIABLE</code></td></tr><tr><td align="left"><code class="constant">GL_TOP_LEVEL_ARRAY_STRIDE</code></td><td align="left"><code class="constant">GL_BUFFER_VARIABLE</code></td></tr><tr><td align="left"><code class="constant">GL_LOCATION</code></td><td align="left"><code class="constant">GL_UNIFORM</code>, <code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code>, | |
37 | <code class="constant">GL_VERTEX_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_TESS_CONTROL_SUBROUTINE_UNIFORM</code>, | |
38 | <code class="constant">GL_TESS_EVALUATION_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_GEOMETRY_SUBROUTINE_UNIFORM</code>, | |
39 | <code class="constant">GL_FRAGMENT_SUBROUTINE_UNIFORM</code>, <code class="constant">GL_COMPUTE_SUBROUTINE_UNIFORM</code></td></tr><tr><td align="left"><code class="constant">GL_LOCATION_INDEX</code></td><td align="left"><code class="constant">GL_PROGRAM_OUTPUT</code></td></tr><tr><td align="left"><code class="constant">GL_IS_PER_PATCH</code></td><td align="left"><code class="constant">GL_PROGRAM_INPUT</code>, <code class="constant">GL_PROGRAM_OUTPUT</code></td></tr></tbody></table></div><p> | |
40 | For the property <code class="constant">GL_NAME_LENGTH</code>, a single integer identifying the length of | |
41 | the name string associated with an active variable, interface block, or | |
42 | subroutine is written to <em class="parameter"><code>params</code></em>. The name length includes a terminating | |
43 | null character. | |
44 | ||
45 | For the property <code class="constant">GL_TYPE</code>, a single integer identifying the type of an active | |
46 | variable is written to <em class="parameter"><code>params</code></em>. The integer returned is one of the | |
47 | values found in table 2.16. | |
48 | ||
49 | For the property <code class="constant">GL_ARRAY_SIZE</code>, a single integer identifying the number of | |
50 | active array elements of an active variable is written to <em class="parameter"><code>params</code></em>. The | |
51 | array size returned is in units of the type associated with the property | |
52 | TYPE. For active variables not corresponding to an array of basic types, | |
53 | the value zero is written to <em class="parameter"><code>params</code></em>. | |
54 | ||
55 | For the property <code class="constant">GL_BLOCK_INDEX</code>, a single integer identifying the index of | |
56 | the active interface block containing an active variable is written to | |
57 | <em class="parameter"><code>params</code></em>. If the variable is not the member of an interface block, the | |
58 | value -1 is written to <em class="parameter"><code>params</code></em>. | |
59 | ||
60 | For the property <code class="constant">GL_OFFSET</code>, a single integer identifying the offset of an | |
61 | active variable is written to <em class="parameter"><code>params</code></em>. For active variables backed by a | |
62 | buffer object, the value written is the offset, in basic machine units, | |
63 | relative to the base of buffer range holding the values of the variable. | |
64 | For active variables not backed by a buffer object, an offset of -1 is | |
65 | written to <em class="parameter"><code>params</code></em>. | |
66 | ||
67 | For the property <code class="constant">GL_ARRAY_STRIDE</code>, a single integer identifying the stride | |
68 | between array elements in an active variable is written to <em class="parameter"><code>params</code></em>. For | |
69 | active variables declared as an array of basic types, the value written is | |
70 | the difference, in basic machine units, between the offsets of consecutive | |
71 | elements in an array. For active variables not declared as an array of | |
72 | basic types, zero is written to <em class="parameter"><code>params</code></em>. For active variables not backed | |
73 | by a buffer object, -1 is written to <em class="parameter"><code>params</code></em>, regardless of the variable | |
74 | type. | |
75 | ||
76 | For the property <code class="constant">GL_MATRIX_STRIDE</code>, a single integer identifying the stride | |
77 | between columns of a column-major matrix or rows of a row-major matrix is | |
78 | written to <em class="parameter"><code>params</code></em>. For active variables declared a single matrix or | |
79 | array of matrices, the value written is the difference, in basic machine | |
80 | units, between the offsets of consecutive columns or rows in each matrix. | |
81 | For active variables not declared as a matrix or array of matrices, zero | |
82 | is written to <em class="parameter"><code>params</code></em>. For active variables not backed by a buffer | |
83 | object, -1 is written to <em class="parameter"><code>params</code></em>, regardless of the variable type. | |
84 | ||
85 | For the property <code class="constant">GL_IS_ROW_MAJOR</code>, a single integer identifying whether an | |
86 | active variable is a row-major matrix is written to <em class="parameter"><code>params</code></em>. For active | |
87 | variables backed by a buffer object, declared as a single matrix or array | |
88 | of matrices, and stored in row-major order, one is written to <em class="parameter"><code>params</code></em>. | |
89 | For all other active variables, zero is written to <em class="parameter"><code>params</code></em>. | |
90 | ||
91 | For the property <code class="constant">GL_ATOMIC_COUNTER_BUFFER_INDEX</code>, a single integer identifying | |
92 | the index of the active atomic counter buffer containing an active | |
93 | variable is written to <em class="parameter"><code>params</code></em>. If the variable is not an atomic counter | |
94 | uniform, the value -1 is written to <em class="parameter"><code>params</code></em>. | |
95 | ||
96 | For the property <code class="constant">GL_BUFFER_BINDING</code>, to index of the buffer binding point | |
97 | associated with the active uniform block, shader storage block, or atomic | |
98 | counter buffer is written to <em class="parameter"><code>params</code></em>. | |
99 | ||
100 | For the property <code class="constant">GL_BUFFER_DATA_SIZE</code>, then the implementation-dependent | |
101 | minimum total buffer object size, in basic machine units, required to hold | |
102 | all active variables associated with an active uniform block, shader | |
103 | storage block, or atomic counter buffer is written to <em class="parameter"><code>params</code></em>. If the | |
104 | final member of an active shader storage block is array with no declared | |
105 | size, the minimum buffer size is computed assuming the array was declared | |
106 | as an array with one element. | |
107 | ||
108 | For the property <code class="constant">GL_NUM_ACTIVE_VARIABLES</code>, the number of active variables | |
109 | associated with an active uniform block, shader storage block, or atomic | |
110 | counter buffer is written to <em class="parameter"><code>params</code></em>. | |
111 | ||
112 | For the property <code class="constant">GL_of ACTIVE_VARIABLES</code>, an array of active variable indices | |
113 | associated with an active uniform block, shader storage block, or atomic | |
114 | counter buffer is written to <em class="parameter"><code>params</code></em>. The number of values written to | |
115 | <em class="parameter"><code>params</code></em> for an active resource is given by the value of the property | |
116 | <code class="constant">GL_NUM_ACTIVE_VARIABLES</code> for the resource. | |
117 | ||
118 | For the properties <code class="constant">GL_REFERENCED_BY_VERTEX_SHADER</code>, | |
119 | <code class="constant">GL_REFERENCED_BY_TESS_CONTROL_SHADER</code>, <code class="constant">GL_REFERENCED_BY_TESS_EVALUATION_SHADER</code>, | |
120 | <code class="constant">GL_REFERENCED_BY_GEOMETRY_SHADER</code>, <code class="constant">GL_REFERENCED_BY_FRAGMENT_SHADER</code>, and | |
121 | <code class="constant">GL_REFERENCED_BY_COMPUTE_SHADER</code>, a single integer is written to <em class="parameter"><code>params</code></em>, | |
122 | identifying whether the active resource is referenced by the vertex, | |
123 | tessellation control, tessellation evaluation, geometry, or fragment | |
124 | shaders, respectively, in the program object. The value one is written to | |
125 | <em class="parameter"><code>params</code></em> if an active variable is referenced by the corresponding shader, | |
126 | or if an active uniform block, shader storage block, or atomic counter | |
127 | buffer contains at least one variable referenced by the corresponding | |
128 | shader. Otherwise, the value zero is written to <em class="parameter"><code>params</code></em>. | |
129 | ||
130 | For the property <code class="constant">GL_TOP_LEVEL_ARRAY_SIZE</code>, a single integer identifying the | |
131 | number of active array elements of the top-level shader storage block | |
132 | member containing to the active variable is written to <em class="parameter"><code>params</code></em>. If the | |
133 | top-level block member is not declared as an array, the value one is | |
134 | written to <em class="parameter"><code>params</code></em>. If the top-level block member is an array with no | |
135 | declared size, the value zero is written to <em class="parameter"><code>params</code></em>. | |
136 | ||
137 | For the property <code class="constant">GL_TOP_LEVEL_ARRAY_STRIDE</code>, a single integer identifying the | |
138 | stride between array elements of the top-level shader storage block member | |
139 | containing the active variable is written to <em class="parameter"><code>params</code></em>. For top-level | |
140 | block members declared as arrays, the value written is the difference, in | |
141 | basic machine units, between the offsets of the active variable for | |
142 | consecutive elements in the top-level array. For top-level block members | |
143 | not declared as an array, zero is written to <em class="parameter"><code>params</code></em>. | |
144 | ||
145 | For the property <code class="constant">GL_LOCATION</code>, a single integer identifying the assigned | |
146 | location for an active uniform, input, output, or subroutine uniform | |
147 | variable is written to <em class="parameter"><code>params</code></em>. For input, output, or uniform variables | |
148 | with locations specified by a layout qualifier, the specified location is | |
149 | used. For vertex shader input or fragment shader output variables without | |
150 | a layout qualifier, the location assigned when a program is linked is | |
151 | written to <em class="parameter"><code>params</code></em>. For all other input and output variables, the value | |
152 | -1 is written to <em class="parameter"><code>params</code></em>. For uniforms in uniform blocks, the value -1 | |
153 | is written to <em class="parameter"><code>params</code></em>. | |
154 | ||
155 | For the property <code class="constant">GL_LOCATION_INDEX</code>, a single integer identifying the fragment | |
156 | color index of an active fragment shader output variable is written to | |
157 | <em class="parameter"><code>params</code></em>. If the active variable is an output for a non-fragment shader, | |
158 | the value -1 will be written to <em class="parameter"><code>params</code></em>. | |
159 | ||
160 | For the property <code class="constant">GL_IS_PER_PATCH</code>, a single integer identifying whether the | |
161 | input or output is a per-patch attribute. If the active variable is a | |
162 | per-patch attribute (declared with the <code class="code">patch</code> qualifier), the value one | |
163 | is written to <em class="parameter"><code>params</code></em>; otherwise, the value zero is written to <em class="parameter"><code>params</code></em>. | |
164 | </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p> | |
165 | <code class="constant">GL_INVALID_VALUE</code> is generated if <em class="parameter"><code>program</code></em> is | |
166 | not the name of an existing program object. | |
167 | </p><p> | |
168 | <code class="constant">GL_INVALID_VALUE</code> is generated if <em class="parameter"><code>propCount</code></em> is | |
169 | zero. | |
170 | </p><p> | |
171 | <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>programInterface</code></em> | |
172 | is not one of the accepted interface types. | |
173 | </p><p> | |
174 | <code class="constant">GL_INVLALID_ENUM</code> is generated if any value in <em class="parameter"><code>props</code></em> | |
175 | is not one of the accepted tokens for the interface <em class="parameter"><code>programInterface</code></em> | |
176 | </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p> | |
177 | <a href="glGetProgramResourceName.xml"><span class="citerefentry"><span class="refentrytitle">glGetProgramResourceName</span></span></a>, | |
178 | <a href="glGetGetProgramResourceIndex.xml"><span class="citerefentry"><span class="refentrytitle">glGetGetProgramResourceIndex</span></span></a>, | |
179 | <a href="glGetProgramResourceLocation.xml"><span class="citerefentry"><span class="refentrytitle">glGetProgramResourceLocation</span></span></a>, | |
180 | <a href="glGetProgramResourceLocationIndex.xml"><span class="citerefentry"><span class="refentrytitle">glGetProgramResourceLocationIndex</span></span></a>. | |
181 | </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="Copyright"></a><h2>Copyright</h2><p> | |
182 | Copyright <span class="trademark"></span>© 2012 Khronos Group. | |
183 | This material may be distributed subject to the terms and conditions set forth in | |
184 | the Open Publication License, v 1.0, 8 June 1999. | |
185 | <a href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>. | |
186 | </p></div></div></body></html> |