rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man4 / xhtml / glGetActiveUniformsiv.xml
CommitLineData
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>