rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man2 / xhtml / glGetUniformLocation.xml
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
2 <!-- saved from url=(0013)about:internet -->
3 <?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" /><title>glGetUniformLocation</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /></head><body><div class="refentry" lang="en" xml:lang="en"><a id="glGetUniformLocation"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glGetUniformLocation — Returns the location 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"><tr><td><code class="funcdef">GLint <b class="fsfunc">glGetUniformLocation</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>const GLchar * </td><td><var class="pdparam">name</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
4 queried.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>Points to a null terminated string containing
5 the name of the uniform variable whose location is
6 to be queried.</p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p><code class="function">glGetUniformLocation </code> returns an
7 integer that represents the location of a specific uniform
8 variable within a program object. <em class="parameter"><code>name</code></em>
9 must be a null terminated string that contains no white space.
10 <em class="parameter"><code>name</code></em> must be an active uniform variable
11 name in <em class="parameter"><code>program</code></em> that is not a structure,
12 an array of structures, or a subcomponent of a vector or a
13 matrix. This function returns -1 if <em class="parameter"><code>name</code></em>
14 does not correspond to an active uniform variable in
15 <em class="parameter"><code>program</code></em> or if <em class="parameter"><code>name</code></em>
16 starts with the reserved prefix "gl_".</p><p>Uniform variables that are structures or arrays of
17 structures may be queried by calling
18 <code class="function">glGetUniformLocation</code> for each field within
19 the structure. The array element operator "[]" and the
20 structure field operator "." may be used in
21 <em class="parameter"><code>name</code></em> in order to select elements within
22 an array or fields within a structure. The result of using these
23 operators is not allowed to be another structure, an array of
24 structures, or a subcomponent of a vector or a matrix. Except if
25 the last part of <em class="parameter"><code>name</code></em> indicates a uniform
26 variable array, the location of the first element of an array
27 can be retrieved by using the name of the array, or by using the
28 name appended by "[0]".</p><p>The actual locations assigned to uniform variables are not
29 known until the program object is linked successfully. After
30 linking has occurred, the command
31 <code class="function">glGetUniformLocation</code> can be used to obtain
32 the location of a uniform variable. This location value can then
33 be passed to
34 <a class="citerefentry" href="glUniform.xml"><span class="citerefentry"><span class="refentrytitle">glUniform</span></span></a>
35 to set the value of the uniform variable or to
36 <a class="citerefentry" href="glGetUniform.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniform</span></span></a>
37 in order to query the current value of the uniform variable.
38 After a program object has been linked successfully, the index
39 values for uniform variables remain fixed until the next link
40 command occurs. Uniform variable locations and values can only
41 be queried after a link if the link was successful.</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p><code class="function">glGetUniformLocation</code> is available
42 only if the GL version is 2.0 or greater.</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
43 <em class="parameter"><code>program</code></em> is not a value generated by
44 OpenGL.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
45 <em class="parameter"><code>program</code></em> is not a program object.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
46 <em class="parameter"><code>program</code></em> has not been successfully
47 linked.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
48 <code class="function">glGetUniformLocation</code> is executed between
49 the execution of
50 <a class="citerefentry" href="glBegin.xml"><span class="citerefentry"><span class="refentrytitle">glBegin</span></span></a>
51 and the corresponding execution of
52 <a class="citerefentry" href="glEnd.xml"><span class="citerefentry"><span class="refentrytitle">glEnd</span></span></a>.</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p><a class="citerefentry" href="glGetActiveUniform.xml"><span class="citerefentry"><span class="refentrytitle">glGetActiveUniform</span></span></a>
53 with arguments <em class="parameter"><code>program</code></em> and the index of
54 an active uniform variable</p><p><a class="citerefentry" href="glGetProgram.xml"><span class="citerefentry"><span class="refentrytitle">glGetProgram</span></span></a>
55 with arguments <em class="parameter"><code>program</code></em> and
56 <code class="constant">GL_ACTIVE_UNIFORMS</code> or
57 <code class="constant">GL_ACTIVE_UNIFORM_MAX_LENGTH</code></p><p><a class="citerefentry" href="glGetUniform.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniform</span></span></a>
58 with arguments <em class="parameter"><code>program</code></em> and the name of a
59 uniform variable</p><p><a class="citerefentry" 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 class="citerefentry" href="glLinkProgram.xml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>,
60 <a class="citerefentry" 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>
61 Copyright <span class="trademark"></span>© 2003-2005 3Dlabs Inc. Ltd.
62 This material may be distributed subject to the terms and conditions set forth in
63 the Open Publication License, v 1.0, 8 June 1999.
64 <a class="ulink" href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
65 </p></div></div></body></html>