Opentk/Source/Bind/Specifications/Docs/ES31/glBeginTransformFeedback.xml
2014-03-28 20:06:55 +01:00

131 lines
6.9 KiB
XML

<!DOCTYPE refentry [ <!ENTITY % mathent SYSTEM "math.ent"> %mathent; ]>
<!-- Converted by db4-upgrade version 1.1 -->
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="glBeginTransformFeedback">
<info>
<copyright>
<year>2010-2014</year>
<holder>Khronos Group</holder>
</copyright>
</info>
<refmeta>
<refentrytitle>glBeginTransformFeedback</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBeginTransformFeedback</refname>
<refpurpose>start transform feedback operation</refpurpose>
</refnamediv>
<refsynopsisdiv>
<title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBeginTransformFeedback</function></funcdef>
<paramdef>GLenum <parameter>primitiveMode</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glEndTransformFeedback</function></funcdef>
<paramdef><parameter>void</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 xml:id="parameters"><title>Parameters for <function>glBeginTransformFeedback</function></title>
<variablelist>
<varlistentry>
<term><parameter>primitiveMode</parameter></term>
<listitem>
<para>
Specify the output type of the primitives that will be recorded into the
buffer objects that are bound for transform feedback.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 xml:id="description"><title>Description</title>
<para>
Transform feedback mode captures the values of varying variables written by the vertex shader.
Transform feedback is said to be active after a call to <function>glBeginTransformFeedback</function>
until a subsequent call to <function>glEndTransformFeedback</function>.
Transform feedback commands must be paired. An implicit <citerefentry><refentrytitle>glResumeTransformFeedback</refentrytitle></citerefentry>
is performed by <function>glEndTransformFeedback</function> if the transform feedback is paused.
Transform feedback is restricted to non-indexed <constant>GL_POINTS</constant>, <constant>GL_LINES</constant>, and
<constant>GL_TRIANGLES</constant>.
</para>
<para>
While transform feedback is active the <parameter>mode</parameter> parameter to
<citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry> must exactly match the
<parameter>primitiveMode</parameter> specified by <function>glBeginTransformFeedback</function>.
</para>
</refsect1>
<refsect1 xml:id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <function>glBeginTransformFeedback</function> is executed
while transform feedback is active.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated by <function>glBeginTransformFeedback</function> if <parameter>primitiveMode</parameter>
is not one of <constant>GL_POINTS</constant>, <constant>GL_LINES</constant>, or <constant>GL_TRIANGLES</constant>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <function>glEndTransformFeedback</function> is executed
while transform feedback is not active.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated by <citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>
and <citerefentry><refentrytitle>glDrawArraysInstanced</refentrytitle></citerefentry> if transform feedback is active
and <parameter>mode</parameter> does not exactly match <parameter>primitiveMode</parameter>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated by <citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDrawElementsInstanced</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry> if transform feedback is active and not paused.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated by <function>glBeginTransformFeedback</function> if any binding
point used in transform feedback mode does not have a buffer object bound. In interleaved mode, only the first buffer
object binding point is ever written to.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated by <function>glBeginTransformFeedback</function> if no binding
points would be used, either because no program object is active of because the active program object has specified
no varying variables to record.
</para>
</refsect1>
<refsect1 xml:id="versions">
<title>API Version Support</title>
<informaltable>
<tgroup cols="4" align="left">
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apifunchead.xml" xpointer="xpointer(/*/*)"/>
<tbody>
<row>
<entry><function>glBeginTransformFeedback</function></entry>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='es30']/*)"/>
</row>
<row>
<entry><function>glEndTransformFeedback</function></entry>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='es30']/*)"/>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 xml:id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glPauseTransformFeedback</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glResumeTransformFeedback</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 xml:id="Copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"/> 2010-2014 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.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://opencontent.org/openpub/">http://opencontent.org/openpub/</link>.
</para>
</refsect1>
</refentry>