include more low-level bindings
[clinton/guile-figl.git] / upstream-man-pages / man3 / xhtml / glGetUniform.xml
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>glGetUniform - OpenGL 3.3 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="glGetUniform"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glGetUniform — Returns the value of a uniform variable</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glGetUniformfv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLfloat * </td><td><var class="pdparam">params</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glGetUniformiv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLint * </td><td><var class="pdparam">params</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"><tr><td><code class="funcdef">void <b class="fsfunc">glGetUniformuiv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLuint * </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
5 queried.</p></dd><dt><span class="term"><em class="parameter"><code>location</code></em></span></dt><dd><p>Specifies the location of the uniform variable
6 to be queried.</p></dd><dt><span class="term"><em class="parameter"><code>params</code></em></span></dt><dd><p>Returns the value of the specified uniform
7 variable.</p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p><code class="function">glGetUniform</code> returns in
8 <em class="parameter"><code>params</code></em> the value(s) of the specified
9 uniform variable. The type of the uniform variable specified by
10 <em class="parameter"><code>location</code></em> determines the number of values
11 returned. If the uniform variable is defined in the shader as a
12 boolean, int, or float, a single value will be returned. If it
13 is defined as a vec2, ivec2, or bvec2, two values will be
14 returned. If it is defined as a vec3, ivec3, or bvec3, three
15 values will be returned, and so on. To query values stored in
16 uniform variables declared as arrays, call
17 <code class="function">glGetUniform</code> for each element of the array.
18 To query values stored in uniform variables declared as
19 structures, call <code class="function">glGetUniform</code> for each
20 field in the structure. The values for uniform variables
21 declared as a matrix will be returned in column major
22 order.</p><p>The locations assigned to uniform variables are not known
23 until the program object is linked. After linking has occurred,
24 the command
25 <a href="glGetUniformLocation.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniformLocation</span></span></a>
26 can be used to obtain the location of a uniform variable. This
27 location value can then be passed to
28 <code class="function">glGetUniform</code> in order to query the current
29 value of the uniform variable. After a program object has been
30 linked successfully, the index values for uniform variables
31 remain fixed until the next link command occurs. The uniform
32 variable values can only be queried after a link if the link was
33 successful.</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p>If an error is generated, no change is made to the
34 contents of <em class="parameter"><code>params</code></em>.</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
35 <em class="parameter"><code>program</code></em> is not a value generated by
36 OpenGL.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
37 <em class="parameter"><code>program</code></em> is not a program object.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
38 <em class="parameter"><code>program</code></em> has not been successfully
39 linked.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
40 <em class="parameter"><code>location</code></em> does not correspond to a valid
41 uniform variable location for the specified program object.</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p><a href="glGetActiveUniform.xml"><span class="citerefentry"><span class="refentrytitle">glGetActiveUniform</span></span></a>
42 with arguments <em class="parameter"><code>program</code></em> and the index of an active
43 uniform variable</p><p><a href="glGetProgram.xml"><span class="citerefentry"><span class="refentrytitle">glGetProgram</span></span></a>
44 with arguments <em class="parameter"><code>program</code></em> and
45 <code class="constant">GL_ACTIVE_UNIFORMS</code> or
46 <code class="constant">GL_ACTIVE_UNIFORM_MAX_LENGTH</code></p><p><a href="glGetUniformLocation.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniformLocation</span></span></a>
47 with arguments <em class="parameter"><code>program</code></em> and the name of a
48 uniform variable</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="glCreateProgram.xml"><span class="citerefentry"><span class="refentrytitle">glCreateProgram</span></span></a>,
49 <a href="glLinkProgram.xml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>,
50 <a href="glUniform.xml"><span class="citerefentry"><span class="refentrytitle">glUniform</span></span></a></p></div><div class="refsect1" lang="en" xml:lang="en"><a id="Copyright"></a><h2>Copyright</h2><p>
51 Copyright <span class="trademark"></span>© 2003-2005 3Dlabs Inc. Ltd.
52 This material may be distributed subject to the terms and conditions set forth in
53 the Open Publication License, v 1.0, 8 June 1999.
54 <a href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
55 </p></div></div></body></html>