forked from BSVino/docs.gl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
glBindFragDataLocationIndexed.xhtml
67 lines (67 loc) · 8.02 KB
/
glBindFragDataLocationIndexed.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<div class="refentry"><a id="glBindFragDataLocationIndexed"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glBindFragDataLocationIndexed — bind a user-defined varying out variable to a fragment shader color number and index</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">glBindFragDataLocationIndexed</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>GLuint <var class="pdparam">index</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>index</code></em></span></dt><dd><p>
The index of the color input 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">glBindFragDataLocationIndexed</code> specifies that the varying out variable <em class="parameter"><code>name</code></em> in
<em class="parameter"><code>program</code></em> should be bound to fragment color <em class="parameter"><code>colorNumber</code></em> when the program is next
linked. <em class="parameter"><code>index</code></em> may be zero or one to specify that the color be used as either the first or second color
input to the blend equation, respectively.
</p><p>
The bindings specified by <code class="function">glBindFragDataLocationIndexed</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>
If <em class="parameter"><code>name</code></em> was bound previously, its assigned binding is replaced with <em class="parameter"><code>colorNumber</code></em> and
<em class="parameter"><code>index</code></em>. <em class="parameter"><code>name</code></em> must be a null-terminated string. <em class="parameter"><code>index</code></em> must be less than or equal to one,
and <em class="parameter"><code>colorNumber</code></em> must be less than the value of <code class="constant">GL_MAX_DRAW_BUFFERS</code> if <em class="parameter"><code>index</code></em>
is zero, and less than the value of <code class="constant">GL_MAX_DUAL_SOURCE_DRAW_BUFFERS</code> if index is greater than or equal to one.
</p><p>
In addition to the errors generated by <code class="function">glBindFragDataLocationIndexed</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 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_VALUE</code> is generated if <em class="parameter"><code>colorNumber</code></em> is greater than or equal to <code class="constant">GL_MAX_DUAL_SOURCE_DRAW_BUFFERS</code>
and <em class="parameter"><code>index</code></em> is greater than or equal to the value of <code class="constant">GL_MAX_DUAL_SOURCE_DRAW_BUFFERS</code>.
</p><p>
<code class="constant">GL_INVALID_VALUE</code> is generated if <em class="parameter"><code>index</code></em> is greater than one.
</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><p>
<a class="citerefentry" href="glGetFragDataIndex"><span class="citerefentry"><span class="refentrytitle">glGetFragDataIndex</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="glLinkProgram"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>
<a class="citerefentry" href="glGetFragDataLocation"><span class="citerefentry"><span class="refentrytitle">glGetFragDataLocation</span></span></a>,
<a class="citerefentry" href="glGetFragDataIndex"><span class="citerefentry"><span class="refentrytitle">glGetFragDataIndex</span></span></a>
<a class="citerefentry" href="glBindFragDataLocation"><span class="citerefentry"><span class="refentrytitle">glBindFragDataLocation</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>