e48a07923f3bc3175cb6296d494c8d57239003fb
[clinton/guile-figl.git] / upstream-man-pages / man3 / xhtml / glTransformFeedbackVaryings.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>glTransformFeedbackVaryings</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /></head><body><div class="refentry" title="glTransformFeedbackVaryings"><a id="glTransformFeedbackVaryings"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glTransformFeedbackVaryings — specify values to record in transform feedback buffers</p></div><div class="refsynopsisdiv" title="C Specification"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTransformFeedbackVaryings</b>(</code></td><td>GLuint<var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLsizei<var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">varyings</var>, </td></tr><tr><td> </td><td>GLenum<var class="pdparam">bufferMode</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Parameters"><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>
5 The name of the target program object.
6 </p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>
7 The number of varying variables used for transform feedback.
8 </p></dd><dt><span class="term"><em class="parameter"><code>varyings</code></em></span></dt><dd><p>
9 An array of <em class="parameter"><code>count</code></em> zero-terminated strings specifying the
10 names of the varying variables to use for transform feedback.
11 </p></dd><dt><span class="term"><em class="parameter"><code>bufferMode</code></em></span></dt><dd><p>
12 Identifies the mode used to capture the varying variables when transform feedback is active.
13 <em class="parameter"><code>bufferMode</code></em> must be <code class="constant">GL_INTERLEAVED_ATTRIBS</code> or <code class="constant">GL_SEPARATE_ATTRIBS</code>.
14 </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="description"></a><h2>Description</h2><p>
15 The names of the vertex or geometry shader outputs to be recorded in transform feedback mode
16 are specified using <code class="function">glTransformFeedbackVaryings</code>. When a geometry shader
17 is active, transform feedback records the values of selected geometry shader output variables
18 from the emitted vertices. Otherwise, the values of the selected vertex shader outputs are
19 recorded.
20 </p><p>
21 The state set by <code class="function">glTranformFeedbackVaryings</code> is stored and takes effect
22 next time <a class="citerefentry" href="glLinkProgram.xml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a> is called
23 on <em class="parameter"><code>program</code></em>. When <a class="citerefentry" href="glLinkProgram.xml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>
24 is called, <em class="parameter"><code>program</code></em> is linked so that the values of the specified varying variables
25 for the vertices of each primitive generated by the GL are written to a single buffer
26 object if <em class="parameter"><code>bufferMode</code></em> is <code class="constant">GL_INTERLEAVED_ATTRIBS</code> or multiple
27 buffer objects if <em class="parameter"><code>bufferMode</code></em> is <code class="constant">GL_SEPARATE_ATTRIBS</code>.
28 </p><p>
29 In addition to the errors generated by <code class="function">glTransformFeedbackVaryings</code>, the
30 program <em class="parameter"><code>program</code></em> will fail to link if:
31 </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
32 The count specified by <code class="function">glTransformFeedbackVaryings</code> is non-zero, but the
33 program object has no vertex or geometry shader.
34 </p></li><li class="listitem"><p>
35 Any variable name specified in the <em class="parameter"><code>varyings</code></em> array is not declared as an output
36 in the vertex shader (or the geometry shader, if active).
37 </p></li><li class="listitem"><p>
38 Any two entries in the <em class="parameter"><code>varyings</code></em> array specify the same varying variable.
39 </p></li><li class="listitem"><p>
40 The total number of components to capture in any varying variable in <em class="parameter"><code>varyings</code></em>
41 is greater than the constant <code class="constant">GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS</code>
42 and the buffer mode is <code class="constant">GL_SEPARATE_ATTRIBS</code>.
43 </p></li><li class="listitem"><p>
44 The total number of components to capture is greater than the constant
45 <code class="constant">GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS</code> and the buffer
46 mode is <code class="constant">GL_INTERLEAVED_ATTRIBS</code>.
47 </p></li></ul></div><p>
48 </p></div><div class="refsect1" title="Notes"><a id="notes"></a><h2>Notes</h2><p>
49 <code class="function">glGetTransformFeedbackVarying</code> is available only if the GL version is 3.0 or greater.
50 </p></div><div class="refsect1" title="Errors"><a id="errors"></a><h2>Errors</h2><p>
51 <code class="constant">GL_INVALID_VALUE</code> is generated if <em class="parameter"><code>program</code></em> is not
52 the name of a program object.
53 </p><p>
54 <code class="constant">GL_INVALID_VALUE</code> is generated if <em class="parameter"><code>bufferMode</code></em> is <code class="constant">GL_SEPARATE_ATTRIBS</code>
55 and <em class="parameter"><code>count</code></em> is greater than the implementation-dependent limit <code class="constant">GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS</code>.
56 </p></div><div class="refsect1" title="Associated Gets"><a id="associatedgets"></a><h2>Associated Gets</h2><p>
57 <a class="citerefentry" href="glGetTransformFeedbackVarying.xml"><span class="citerefentry"><span class="refentrytitle">glGetTransformFeedbackVarying</span></span></a>
58 </p></div><div class="refsect1" title="See Also"><a id="seealso"></a><h2>See Also</h2><p>
59 <a class="citerefentry" href="glBeginTransformFeedback.xml"><span class="citerefentry"><span class="refentrytitle">glBeginTransformFeedback</span></span></a>,
60 <a class="citerefentry" href="glEndTransformFeedback.xml"><span class="citerefentry"><span class="refentrytitle">glEndTransformFeedback</span></span></a>,
61 <a class="citerefentry" href="glGetTransformFeedbackVarying.xml"><span class="citerefentry"><span class="refentrytitle">glGetTransformFeedbackVarying</span></span></a>
62 </p></div><div class="refsect1" title="Copyright"><a id="Copyright"></a><h2>Copyright</h2><p>
63 Copyright <span class="trademark"></span>© 2010 Khronos Group.
64 This material may be distributed subject to the terms and conditions set forth in
65 the Open Publication License, v 1.0, 8 June 1999.
66 <a class="ulink" href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
67 </p></div></div></body></html>