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>glGetActiveUniformsiv - 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="glGetActiveUniformsiv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glGetActiveUniformsiv — Returns information about several active uniform variables for the specified 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">glGetActiveUniformsiv</b>(</code></td><td>GLuint </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLsizei </td><td><var class="pdparam">uniformCount</var>, </td></tr><tr><td> </td><td>const GLuint * </td><td><var class="pdparam">uniformIndices</var>, </td></tr><tr><td> </td><td>GLenum </td><td><var class="pdparam">pname</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>Specifies the program object to be queried.</p></dd><dt><span class="term"><em class="parameter"><code>uniformCount</code></em></span></dt><dd><p>Specifies both the number of elements in the array of indices <em class="parameter"><code>uniformIndices</code></em> and the | |
5 | number of parameters written to <em class="parameter"><code>params</code></em> upon successful return.</p></dd><dt><span class="term"><em class="parameter"><code>uniformIndices</code></em></span></dt><dd><p>Specifies the address of an array of <em class="parameter"><code>uniformCount</code></em> integers containing the indices of | |
6 | uniforms within <em class="parameter"><code>program</code></em> whose parameter <em class="parameter"><code>pname</code></em> pname.</p></dd><dt><span class="term"><em class="parameter"><code>pname</code></em></span></dt><dd><p>Specifies the property of the each uniform in <em class="parameter"><code>uniformIndices</code></em> that should be | |
7 | written into the corresponding element of <em class="parameter"><code>params</code></em>.</p></dd><dt><span class="term"><em class="parameter"><code>params</code></em></span></dt><dd><p>Specifies the address of an array of <em class="parameter"><code>uniformCount</code></em> integers which are to | |
8 | receive the value of <em class="parameter"><code>pname</code></em> for each uniform in <em class="parameter"><code>uniformIndices</code></em>.</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">glGetActiveUniformsiv</code> queries the value of the parameter named <em class="parameter"><code>pname</code></em> | |
10 | for each of the uniforms within <em class="parameter"><code>program</code></em> whose indices are specified in the array of | |
11 | <em class="parameter"><code>uniformCount</code></em> unsigned integers <em class="parameter"><code>uniformIndices</code></em>. Upon success, | |
12 | the value of the parameter for each uniform is written into the corresponding entry in the array whose | |
13 | address is given in <em class="parameter"><code>params</code></em>. If an error is generated, nothing is written into | |
14 | <em class="parameter"><code>params</code></em>. | |
15 | </p><p> | |
16 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_TYPE</code>, then an array identifying the types | |
17 | of uniforms specified by the corresponding array of <em class="parameter"><code>uniformIndices</code></em> is returned. The | |
18 | returned types can be any of the values from the following table: | |
19 | </p><div class="informaltable"><table border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left"><span class="bold"><strong> | |
20 | Returned Symbolic Contant | |
21 | </strong></span></th><th align="left"><span class="bold"><strong> | |
22 | Shader Uniform Type | |
23 | </strong></span></th></tr></thead><tbody><tr><td align="left"> | |
24 | <code class="constant">GL_FLOAT</code> | |
25 | </td><td align="left"> | |
26 | <code class="constant">float</code> | |
27 | </td></tr><tr><td align="left"> | |
28 | <code class="constant">GL_FLOAT_VEC2</code> | |
29 | </td><td align="left"> | |
30 | <code class="constant">vec2</code> | |
31 | </td></tr><tr><td align="left"> | |
32 | <code class="constant">GL_FLOAT_VEC3</code> | |
33 | </td><td align="left"> | |
34 | <code class="constant">vec3</code> | |
35 | </td></tr><tr><td align="left"> | |
36 | <code class="constant">GL_FLOAT_VEC4</code> | |
37 | </td><td align="left"> | |
38 | <code class="constant">vec4</code> | |
39 | </td></tr><tr><td align="left"> | |
40 | <code class="constant">GL_DOUBLE</code> | |
41 | </td><td align="left"> | |
42 | <code class="constant">double</code> | |
43 | </td></tr><tr><td align="left"> | |
44 | <code class="constant">GL_DOUBLE_VEC2</code> | |
45 | </td><td align="left"> | |
46 | <code class="constant">dvec2</code> | |
47 | </td></tr><tr><td align="left"> | |
48 | <code class="constant">GL_DOUBLE_VEC3</code> | |
49 | </td><td align="left"> | |
50 | <code class="constant">dvec3</code> | |
51 | </td></tr><tr><td align="left"> | |
52 | <code class="constant">GL_DOUBLE_VEC4</code> | |
53 | </td><td align="left"> | |
54 | <code class="constant">dvec4</code> | |
55 | </td></tr><tr><td align="left"> | |
56 | <code class="constant">GL_INT</code> | |
57 | </td><td align="left"> | |
58 | <code class="constant">int</code> | |
59 | </td></tr><tr><td align="left"> | |
60 | <code class="constant">GL_INT_VEC2</code> | |
61 | </td><td align="left"> | |
62 | <code class="constant">ivec2</code> | |
63 | </td></tr><tr><td align="left"> | |
64 | <code class="constant">GL_INT_VEC3</code> | |
65 | </td><td align="left"> | |
66 | <code class="constant">ivec3</code> | |
67 | </td></tr><tr><td align="left"> | |
68 | <code class="constant">GL_INT_VEC4</code> | |
69 | </td><td align="left"> | |
70 | <code class="constant">ivec4</code> | |
71 | </td></tr><tr><td align="left"> | |
72 | <code class="constant">GL_UNSIGNED_INT</code> | |
73 | </td><td align="left"> | |
74 | <code class="constant">unsigned int</code> | |
75 | </td></tr><tr><td align="left"> | |
76 | <code class="constant">GL_UNSIGNED_INT_VEC2</code> | |
77 | </td><td align="left"> | |
78 | <code class="constant">uvec2</code> | |
79 | </td></tr><tr><td align="left"> | |
80 | <code class="constant">GL_UNSIGNED_INT_VEC3</code> | |
81 | </td><td align="left"> | |
82 | <code class="constant">uvec3</code> | |
83 | </td></tr><tr><td align="left"> | |
84 | <code class="constant">GL_UNSIGNED_INT_VEC4</code> | |
85 | </td><td align="left"> | |
86 | <code class="constant">uvec4</code> | |
87 | </td></tr><tr><td align="left"> | |
88 | <code class="constant">GL_BOOL</code> | |
89 | </td><td align="left"> | |
90 | <code class="constant">bool</code> | |
91 | </td></tr><tr><td align="left"> | |
92 | <code class="constant">GL_BOOL_VEC2</code> | |
93 | </td><td align="left"> | |
94 | <code class="constant">bvec2</code> | |
95 | </td></tr><tr><td align="left"> | |
96 | <code class="constant">GL_BOOL_VEC3</code> | |
97 | </td><td align="left"> | |
98 | <code class="constant">bvec3</code> | |
99 | </td></tr><tr><td align="left"> | |
100 | <code class="constant">GL_BOOL_VEC4</code> | |
101 | </td><td align="left"> | |
102 | <code class="constant">bvec4</code> | |
103 | </td></tr><tr><td align="left"> | |
104 | <code class="constant">GL_FLOAT_MAT2</code> | |
105 | </td><td align="left"> | |
106 | <code class="constant">mat2</code> | |
107 | </td></tr><tr><td align="left"> | |
108 | <code class="constant">GL_FLOAT_MAT3</code> | |
109 | </td><td align="left"> | |
110 | <code class="constant">mat3</code> | |
111 | </td></tr><tr><td align="left"> | |
112 | <code class="constant">GL_FLOAT_MAT4</code> | |
113 | </td><td align="left"> | |
114 | <code class="constant">mat4</code> | |
115 | </td></tr><tr><td align="left"> | |
116 | <code class="constant">GL_FLOAT_MAT2x3</code> | |
117 | </td><td align="left"> | |
118 | <code class="constant">mat2x3</code> | |
119 | </td></tr><tr><td align="left"> | |
120 | <code class="constant">GL_FLOAT_MAT2x4</code> | |
121 | </td><td align="left"> | |
122 | <code class="constant">mat2x4</code> | |
123 | </td></tr><tr><td align="left"> | |
124 | <code class="constant">GL_FLOAT_MAT3x2</code> | |
125 | </td><td align="left"> | |
126 | <code class="constant">mat3x2</code> | |
127 | </td></tr><tr><td align="left"> | |
128 | <code class="constant">GL_FLOAT_MAT3x4</code> | |
129 | </td><td align="left"> | |
130 | <code class="constant">mat3x4</code> | |
131 | </td></tr><tr><td align="left"> | |
132 | <code class="constant">GL_FLOAT_MAT4x2</code> | |
133 | </td><td align="left"> | |
134 | <code class="constant">mat4x2</code> | |
135 | </td></tr><tr><td align="left"> | |
136 | <code class="constant">GL_FLOAT_MAT4x3</code> | |
137 | </td><td align="left"> | |
138 | <code class="constant">mat4x3</code> | |
139 | </td></tr><tr><td align="left"> | |
140 | <code class="constant">GL_DOUBLE_MAT2</code> | |
141 | </td><td align="left"> | |
142 | <code class="constant">dmat2</code> | |
143 | </td></tr><tr><td align="left"> | |
144 | <code class="constant">GL_DOUBLE_MAT3</code> | |
145 | </td><td align="left"> | |
146 | <code class="constant">dmat3</code> | |
147 | </td></tr><tr><td align="left"> | |
148 | <code class="constant">GL_DOUBLE_MAT4</code> | |
149 | </td><td align="left"> | |
150 | <code class="constant">dmat4</code> | |
151 | </td></tr><tr><td align="left"> | |
152 | <code class="constant">GL_DOUBLE_MAT2x3</code> | |
153 | </td><td align="left"> | |
154 | <code class="constant">dmat2x3</code> | |
155 | </td></tr><tr><td align="left"> | |
156 | <code class="constant">GL_DOUBLE_MAT2x4</code> | |
157 | </td><td align="left"> | |
158 | <code class="constant">dmat2x4</code> | |
159 | </td></tr><tr><td align="left"> | |
160 | <code class="constant">GL_DOUBLE_MAT3x2</code> | |
161 | </td><td align="left"> | |
162 | <code class="constant">dmat3x2</code> | |
163 | </td></tr><tr><td align="left"> | |
164 | <code class="constant">GL_DOUBLE_MAT3x4</code> | |
165 | </td><td align="left"> | |
166 | <code class="constant">dmat3x4</code> | |
167 | </td></tr><tr><td align="left"> | |
168 | <code class="constant">GL_DOUBLE_MAT4x2</code> | |
169 | </td><td align="left"> | |
170 | <code class="constant">dmat4x2</code> | |
171 | </td></tr><tr><td align="left"> | |
172 | <code class="constant">GL_DOUBLE_MAT4x3</code> | |
173 | </td><td align="left"> | |
174 | <code class="constant">dmat4x3</code> | |
175 | </td></tr><tr><td align="left"> | |
176 | <code class="constant">GL_SAMPLER_1D</code> | |
177 | </td><td align="left"> | |
178 | <code class="constant">sampler1D</code> | |
179 | </td></tr><tr><td align="left"> | |
180 | <code class="constant">GL_SAMPLER_2D</code> | |
181 | </td><td align="left"> | |
182 | <code class="constant">sampler2D</code> | |
183 | </td></tr><tr><td align="left"> | |
184 | <code class="constant">GL_SAMPLER_3D</code> | |
185 | </td><td align="left"> | |
186 | <code class="constant">sampler3D</code> | |
187 | </td></tr><tr><td align="left"> | |
188 | <code class="constant">GL_SAMPLER_CUBE</code> | |
189 | </td><td align="left"> | |
190 | <code class="constant">samplerCube</code> | |
191 | </td></tr><tr><td align="left"> | |
192 | <code class="constant">GL_SAMPLER_1D_SHADOW</code> | |
193 | </td><td align="left"> | |
194 | <code class="constant">sampler1DShadow</code> | |
195 | </td></tr><tr><td align="left"> | |
196 | <code class="constant">GL_SAMPLER_2D_SHADOW</code> | |
197 | </td><td align="left"> | |
198 | <code class="constant">sampler2DShadow</code> | |
199 | </td></tr><tr><td align="left"> | |
200 | <code class="constant">GL_SAMPLER_1D_ARRAY</code> | |
201 | </td><td align="left"> | |
202 | <code class="constant">sampler1DArray</code> | |
203 | </td></tr><tr><td align="left"> | |
204 | <code class="constant">GL_SAMPLER_2D_ARRAY</code> | |
205 | </td><td align="left"> | |
206 | <code class="constant">sampler2DArray</code> | |
207 | </td></tr><tr><td align="left"> | |
208 | <code class="constant">GL_SAMPLER_1D_ARRAY_SHADOW</code> | |
209 | </td><td align="left"> | |
210 | <code class="constant">sampler1DArrayShadow</code> | |
211 | </td></tr><tr><td align="left"> | |
212 | <code class="constant">GL_SAMPLER_2D_ARRAY_SHADOW</code> | |
213 | </td><td align="left"> | |
214 | <code class="constant">sampler2DArrayShadow</code> | |
215 | </td></tr><tr><td align="left"> | |
216 | <code class="constant">GL_SAMPLER_2D_MULTISAMPLE</code> | |
217 | </td><td align="left"> | |
218 | <code class="constant">sampler2DMS</code> | |
219 | </td></tr><tr><td align="left"> | |
220 | <code class="constant">GL_SAMPLER_2D_MULTISAMPLE_ARRAY</code> | |
221 | </td><td align="left"> | |
222 | <code class="constant">sampler2DMSArray</code> | |
223 | </td></tr><tr><td align="left"> | |
224 | <code class="constant">GL_SAMPLER_CUBE_SHADOW</code> | |
225 | </td><td align="left"> | |
226 | <code class="constant">samplerCubeShadow</code> | |
227 | </td></tr><tr><td align="left"> | |
228 | <code class="constant">GL_SAMPLER_BUFFER</code> | |
229 | </td><td align="left"> | |
230 | <code class="constant">samplerBuffer</code> | |
231 | </td></tr><tr><td align="left"> | |
232 | <code class="constant">GL_SAMPLER_2D_RECT</code> | |
233 | </td><td align="left"> | |
234 | <code class="constant">sampler2DRect</code> | |
235 | </td></tr><tr><td align="left"> | |
236 | <code class="constant">GL_SAMPLER_2D_RECT_SHADOW</code> | |
237 | </td><td align="left"> | |
238 | <code class="constant">sampler2DRectShadow</code> | |
239 | </td></tr><tr><td align="left"> | |
240 | <code class="constant">GL_INT_SAMPLER_1D</code> | |
241 | </td><td align="left"> | |
242 | <code class="constant">isampler1D</code> | |
243 | </td></tr><tr><td align="left"> | |
244 | <code class="constant">GL_INT_SAMPLER_2D</code> | |
245 | </td><td align="left"> | |
246 | <code class="constant">isampler2D</code> | |
247 | </td></tr><tr><td align="left"> | |
248 | <code class="constant">GL_INT_SAMPLER_3D</code> | |
249 | </td><td align="left"> | |
250 | <code class="constant">isampler3D</code> | |
251 | </td></tr><tr><td align="left"> | |
252 | <code class="constant">GL_INT_SAMPLER_CUBE</code> | |
253 | </td><td align="left"> | |
254 | <code class="constant">isamplerCube</code> | |
255 | </td></tr><tr><td align="left"> | |
256 | <code class="constant">GL_INT_SAMPLER_1D_ARRAY</code> | |
257 | </td><td align="left"> | |
258 | <code class="constant">isampler1DArray</code> | |
259 | </td></tr><tr><td align="left"> | |
260 | <code class="constant">GL_INT_SAMPLER_2D_ARRAY</code> | |
261 | </td><td align="left"> | |
262 | <code class="constant">isampler2DArray</code> | |
263 | </td></tr><tr><td align="left"> | |
264 | <code class="constant">GL_INT_SAMPLER_2D_MULTISAMPLE</code> | |
265 | </td><td align="left"> | |
266 | <code class="constant">isampler2DMS</code> | |
267 | </td></tr><tr><td align="left"> | |
268 | <code class="constant">GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY</code> | |
269 | </td><td align="left"> | |
270 | <code class="constant">isampler2DMSArray</code> | |
271 | </td></tr><tr><td align="left"> | |
272 | <code class="constant">GL_INT_SAMPLER_BUFFER</code> | |
273 | </td><td align="left"> | |
274 | <code class="constant">isamplerBuffer</code> | |
275 | </td></tr><tr><td align="left"> | |
276 | <code class="constant">GL_INT_SAMPLER_2D_RECT</code> | |
277 | </td><td align="left"> | |
278 | <code class="constant">isampler2DRect</code> | |
279 | </td></tr><tr><td align="left"> | |
280 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_1D</code> | |
281 | </td><td align="left"> | |
282 | <code class="constant">usampler1D</code> | |
283 | </td></tr><tr><td align="left"> | |
284 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_2D</code> | |
285 | </td><td align="left"> | |
286 | <code class="constant">usampler2D</code> | |
287 | </td></tr><tr><td align="left"> | |
288 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_3D</code> | |
289 | </td><td align="left"> | |
290 | <code class="constant">usampler3D</code> | |
291 | </td></tr><tr><td align="left"> | |
292 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_CUBE</code> | |
293 | </td><td align="left"> | |
294 | <code class="constant">usamplerCube</code> | |
295 | </td></tr><tr><td align="left"> | |
296 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_1D_ARRAY</code> | |
297 | </td><td align="left"> | |
298 | <code class="constant">usampler2DArray</code> | |
299 | </td></tr><tr><td align="left"> | |
300 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_2D_ARRAY</code> | |
301 | </td><td align="left"> | |
302 | <code class="constant">usampler2DArray</code> | |
303 | </td></tr><tr><td align="left"> | |
304 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE</code> | |
305 | </td><td align="left"> | |
306 | <code class="constant">usampler2DMS</code> | |
307 | </td></tr><tr><td align="left"> | |
308 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY</code> | |
309 | </td><td align="left"> | |
310 | <code class="constant">usampler2DMSArray</code> | |
311 | </td></tr><tr><td align="left"> | |
312 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_BUFFER</code> | |
313 | </td><td align="left"> | |
314 | <code class="constant">usamplerBuffer</code> | |
315 | </td></tr><tr><td align="left"> | |
316 | <code class="constant">GL_UNSIGNED_INT_SAMPLER_2D_RECT</code> | |
317 | </td><td align="left"> | |
318 | <code class="constant">usampler2DRect</code> | |
319 | </td></tr></tbody></table></div><p> | |
320 | </p><p> | |
321 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_SIZE</code>, then an array identifying the | |
322 | size of the uniforms specified by the corresponding array of <em class="parameter"><code>uniformIndices</code></em> is | |
323 | returned. The sizes returned are in units of the type returned by a query of <code class="constant">GL_UNIFORM_TYPE</code>. | |
324 | For active uniforms that are arrays, the size is the number of active elements in the array; | |
325 | for all other uniforms, the size is one. | |
326 | </p><p> | |
327 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_NAME_LENGTH</code>, then an array identifying the | |
328 | length, including the terminating null character, of the uniform name strings specified by the corresponding | |
329 | array of <em class="parameter"><code>uniformIndices</code></em> is returned. | |
330 | </p><p> | |
331 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_BLOCK_INDEX</code>, then an array identifying the | |
332 | the uniform block index of each of the uniforms specified by the corresponding array of <em class="parameter"><code>uniformIndices</code></em> | |
333 | is returned. The uniform block index of a uniform associated with the default uniform block is -1. | |
334 | </p><p> | |
335 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_OFFSET</code>, then an array of uniform buffer | |
336 | offsets is returned. For uniforms in a named uniform block, the returned value will be its offset, in basic | |
337 | machine units, relative to the beginning of the uniform block in the buffer object data store. | |
338 | For atomic counter uniforms, the returned value will be its offset relative to the beginning of its active | |
339 | atomic counter buffer. | |
340 | For all other uniforms, -1 will be returned. | |
341 | </p><p> | |
342 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_ARRAY_STRIDE</code>, then an array identifying the | |
343 | stride between elements of each of the uniforms specified by the corresponding array of | |
344 | <em class="parameter"><code>uniformIndices</code></em> is returned. | |
345 | For uniforms in named uniform blocks and for uniforms declared as atomic counters, the stride is the difference, | |
346 | in basic machine units, of consecutive elements in an array, or zero for uniforms not declared as an array. | |
347 | For all other uniforms, a stride of -1 will be returned. | |
348 | </p><p> | |
349 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_MATRIX_STRIDE</code>, then an array identifying the stride | |
350 | between columns of a column-major matrix or rows of a row-major matrix, in basic machine units, of each of the uniforms | |
351 | specified by the corresponding array of <em class="parameter"><code>uniformIndices</code></em> is returned. The matrix stride of a | |
352 | uniform associated with the default uniform block is -1. Note that this information only makes sense for uniforms | |
353 | that are matrices. For uniforms that are not matrices, but are declared in a named uniform block, a matrix stride of | |
354 | zero is returned. | |
355 | </p><p> | |
356 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_IS_ROW_MAJOR</code>, then an array identifying whether each | |
357 | of the uniforms specified by the corresponding array of <em class="parameter"><code>uniformIndices</code></em> is a row-major matrix or not is returned. A | |
358 | value of one indicates a row-major matrix, and a value of zero indicates a column-major matrix, a matrix in the default | |
359 | uniform block, or a non-matrix. | |
360 | </p><p> | |
361 | If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX</code>, then an array | |
362 | identifying the active atomic counter buffer index of each of the uniforms specified by the corresponding array | |
363 | of <em class="parameter"><code>uniformIndices</code></em> is returned. For uniforms other than atomic counters, the returned buffer | |
364 | index is -1. The returned indices may be passed to <a href="glGetActiveAtomicCounterBufferiv.xml"><span class="citerefentry"><span class="refentrytitle">glGetActiveAtomicCounterBufferiv</span></span></a> | |
365 | to query the properties of the associated buffer, and not necessarily the binding point specified in the uniform declaration. | |
366 | </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p> | |
367 | The double types, <code class="constant">GL_DOUBLE</code>, <code class="constant">GL_DOUBLE_VEC2</code>, | |
368 | <code class="constant">GL_DOUBLE_VEC3</code>, <code class="constant">GL_DOUBLE_VEC4</code>, | |
369 | <code class="constant">GL_DOUBLE_MAT2</code>, <code class="constant">GL_DOUBLE_MAT3</code>, | |
370 | <code class="constant">GL_DOUBLE_MAT4</code>, <code class="constant">GL_DOUBLE_MAT2x3</code>, | |
371 | <code class="constant">GL_DOUBLE_MAT2x4</code>, <code class="constant">GL_DOUBLE_MAT3x2</code>, | |
372 | <code class="constant">GL_DOUBLE_MAT3x4</code>, <code class="constant">GL_DOUBLE_MAT4x2</code>, | |
373 | and <code class="constant">GL_DOUBLE_MAT4x3</code> are only available if the GL | |
374 | version is 4.1 or higher. | |
375 | </p><p> | |
376 | <code class="constant">GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX</code> is only accepted by <em class="parameter"><code>pname</code></em> | |
377 | if the GL version is 4.2 or higher. | |
378 | </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p><code class="constant">GL_INVALID_VALUE</code> is generated if | |
379 | <em class="parameter"><code>program</code></em> is not a value generated by | |
380 | OpenGL.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if | |
381 | <em class="parameter"><code>program</code></em> is not a program object.</p><p><code class="constant">GL_INVALID_VALUE</code> is generated if | |
382 | <em class="parameter"><code>uniformCount</code></em> is greater than or equal to the | |
383 | value of <code class="constant">GL_ACTIVE_UNIFORMS</code> for | |
384 | <em class="parameter"><code>program</code></em>.</p><p><code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>pname</code></em> | |
385 | is not an accepted token.</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p><a href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> | |
386 | with argument <code class="constant">GL_MAX_VERTEX_UNIFORM_COMPONENTS</code>, | |
387 | <code class="constant">GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS</code>, | |
388 | <code class="constant">GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS</code>, | |
389 | <code class="constant">GL_MAX_GEOMETRY_UNIFORM_COMPONENTS</code>, | |
390 | <code class="constant">GL_MAX_FRAGMENT_UNIFORM_COMPONENTS</code>, or | |
391 | <code class="constant">GL_MAX_COMBINED_UNIFORM_COMPONENTS</code>.</p><p><a href="glGetProgram.xml"><span class="citerefentry"><span class="refentrytitle">glGetProgram</span></span></a> | |
392 | with argument <code class="constant">GL_ACTIVE_UNIFORMS</code> or | |
393 | <code class="constant">GL_ACTIVE_UNIFORM_MAX_LENGTH</code>.</p><p><a href="glIsProgram.xml"><span class="citerefentry"><span class="refentrytitle">glIsProgram</span></span></a></p></div><div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p><a href="glGetUniform.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniform</span></span></a>, | |
394 | <a href="glGetActiveUniform.xml"><span class="citerefentry"><span class="refentrytitle">glGetActiveUniform</span></span></a>, | |
395 | <a href="glGetUniformLocation.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniformLocation</span></span></a>, | |
396 | <a href="glLinkProgram.xml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>, | |
397 | <a href="glUniform.xml"><span class="citerefentry"><span class="refentrytitle">glUniform</span></span></a>, | |
398 | <a href="glUseProgram.xml"><span class="citerefentry"><span class="refentrytitle">glUseProgram</span></span></a></p></div><div class="refsect1" lang="en" xml:lang="en"><a id="Copyright"></a><h2>Copyright</h2><p> | |
399 | Copyright <span class="trademark"></span>© 2011 Khronos Group | |
400 | This material may be distributed subject to the terms and conditions set forth in | |
401 | the Open Publication License, v 1.0, 8 June 1999. | |
402 | <a href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>. | |
403 | </p></div></div></body></html> |