forked from BSVino/docs.gl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
glBindFragDataLocation.xhtml
50 lines (50 loc) · 5.9 KB
/
glBindFragDataLocation.xhtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<div class="refentry"><a id="glBindFragDataLocation"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glBindFragDataLocation — bind a user-defined varying out variable to a fragment shader color number</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table class="funcprototype-table" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <strong class="fsfunc">glBindFragDataLocation</strong>(</code></td><td>GLuint <var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLuint <var class="pdparam">colorNumber</var>, </td></tr><tr><td> </td><td>const char * <var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>program</code></em></span></dt><dd><p>
The name of the program containing varying out variable whose binding to modify
</p></dd><dt><span class="term"><em class="parameter"><code>colorNumber</code></em></span></dt><dd><p>
The color number to bind the user-defined varying out variable to
</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>
The name of the user-defined varying out variable whose binding to modify
</p></dd></dl></div></div><div class="refsect1"><a id="description"></a><h2>Description</h2><p>
<code class="function">glBindFragDataLocation</code> explicitly specifies the binding of the user-defined varying out variable
<em class="parameter"><code>name</code></em> to fragment shader color number <em class="parameter"><code>colorNumber</code></em> for program
<em class="parameter"><code>program</code></em>. If <em class="parameter"><code>name</code></em> was bound previously, its assigned binding is replaced
with <em class="parameter"><code>colorNumber</code></em>. <em class="parameter"><code>name</code></em> must be a null-terminated string. <em class="parameter"><code>colorNumber</code></em>
must be less than <code class="constant">GL_MAX_DRAW_BUFFERS</code>.
</p><p>
The bindings specified by <code class="function">glBindFragDataLocation</code> have no effect until <em class="parameter"><code>program</code></em>
is next linked. Bindings may be specified at any time after <em class="parameter"><code>program</code></em> has been created. Specifically,
they may be specified before shader objects are attached to the program. Therefore, any name may be specified in <em class="parameter"><code>name</code></em>,
including a name that is never used as a varying out variable in any fragment shader object. Names beginning with <code class="constant">gl_</code> are
reserved by the GL.
</p><p>
In addition to the errors generated by <code class="function">glBindFragDataLocation</code>, the
program <em class="parameter"><code>program</code></em> will fail to link if:
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
The number of active outputs is greater than the value <code class="constant">GL_MAX_DRAW_BUFFERS</code>.
</p></li><li class="listitem"><p>
More than one varying out variable is bound to the same color number.
</p></li></ul></div><p>
</p></div><div class="refsect1"><a id="notes"></a><h2>Notes</h2><p>
Varying out varyings may have indexed locations assigned explicitly in the shader text using a <code class="code">location</code>
layout qualifier. If a shader statically assigns a location to a varying out variable in the shader text,
that location is used and any location assigned with <code class="function">glBindFragDataLocation</code> is ignored.
</p></div><div class="refsect1"><a id="errors"></a><h2>Errors</h2><p>
<code class="constant">GL_INVALID_VALUE</code> is generated if <em class="parameter"><code>colorNumber</code></em> is greater than or equal to <code class="constant">GL_MAX_DRAW_BUFFERS</code>.
</p><p>
<code class="constant">GL_INVALID_OPERATION</code> is generated if <em class="parameter"><code>name</code></em> starts with the reserved <code class="constant">gl_</code> prefix.
</p><p>
<code class="constant">GL_INVALID_OPERATION</code> is generated if <code class="function">program</code> is not the name of a program object.
</p></div><div class="refsect1"><a id="associatedgets"></a><h2>Associated Gets</h2><p>
<a class="citerefentry" href="glGetFragDataLocation"><span class="citerefentry"><span class="refentrytitle">glGetFragDataLocation</span></span></a> with a valid program object
and the the name of a user-defined varying out variable
</p></div>
{$pipelinestall}{$examples}
<div class="refsect1"><a id="seealso"></a><h2>See Also</h2><p>
<a class="citerefentry" href="glCreateProgram"><span class="citerefentry"><span class="refentrytitle">glCreateProgram</span></span></a>,
<a class="citerefentry" href="glGetFragDataLocation"><span class="citerefentry"><span class="refentrytitle">glGetFragDataLocation</span></span></a>
</p></div><div class="refsect1"><div id="Copyright"><h2>Copyright</h2><p>
Copyright © 2010 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<a class="ulink" href="https://opencontent.org/openpub/" target="_top">https://opencontent.org/openpub/</a>.
</p></div></div></div>