'\" t
.\"     Title: glTransformFeedbackVaryings
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\"      Date: 03/08/2011
.\"    Manual: OpenGL 3.3
.\"    Source: OpenGL 3.3
.\"  Language: English
.\"
.TH "GLTRANSFORMFEEDBACKV" "3G" "03/08/2011" "OpenGL 3.3" "OpenGL 3\&.3"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
glTransformFeedbackVaryings \- specify values to record in transform feedback buffers
.SH "C SPECIFICATION"
.HP \w'void\ glTransformFeedbackVaryings('u
.BI "void glTransformFeedbackVaryings(GLuint" "program" ", GLsizei" "count" ", const\ char\ **" "varyings" ", GLenum" "bufferMode" ");"
.SH "PARAMETERS"
.PP
\fIprogram\fR
.RS 4
The name of the target program object\&.
.RE
.PP
\fIcount\fR
.RS 4
The number of varying variables used for transform feedback\&.
.RE
.PP
\fIvaryings\fR
.RS 4
An array of
\fIcount\fR
zero\-terminated strings specifying the names of the varying variables to use for transform feedback\&.
.RE
.PP
\fIbufferMode\fR
.RS 4
Identifies the mode used to capture the varying variables when transform feedback is active\&.
\fIbufferMode\fR
must be
\fBGL_INTERLEAVED_ATTRIBS\fR
or
\fBGL_SEPARATE_ATTRIBS\fR\&.
.RE
.SH "DESCRIPTION"
.PP
The names of the vertex or geometry shader outputs to be recorded in transform feedback mode are specified using
\fBglTransformFeedbackVaryings\fR\&. When a geometry shader is active, transform feedback records the values of selected geometry shader output variables from the emitted vertices\&. Otherwise, the values of the selected vertex shader outputs are recorded\&.
.PP
The state set by
\fBglTranformFeedbackVaryings\fR
is stored and takes effect next time
\fBglLinkProgram\fR()
is called on
\fIprogram\fR\&. When
\fBglLinkProgram\fR()
is called,
\fIprogram\fR
is linked so that the values of the specified varying variables for the vertices of each primitive generated by the GL are written to a single buffer object if
\fIbufferMode\fR
is
\fBGL_INTERLEAVED_ATTRIBS\fR
or multiple buffer objects if
\fIbufferMode\fR
is
\fBGL_SEPARATE_ATTRIBS\fR\&.
.PP
In addition to the errors generated by
\fBglTransformFeedbackVaryings\fR, the program
\fIprogram\fR
will fail to link if:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The count specified by
\fBglTransformFeedbackVaryings\fR
is non\-zero, but the program object has no vertex or geometry shader\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Any variable name specified in the
\fIvaryings\fR
array is not declared as an output in the vertex shader (or the geometry shader, if active)\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Any two entries in the
\fIvaryings\fR
array specify the same varying variable\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The total number of components to capture in any varying variable in
\fIvaryings\fR
is greater than the constant
\fBGL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS\fR
and the buffer mode is
\fBGL_SEPARATE_ATTRIBS\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The total number of components to capture is greater than the constant
\fBGL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS\fR
and the buffer mode is
\fBGL_INTERLEAVED_ATTRIBS\fR\&.
.RE
.sp
.SH "NOTES"
.PP

\fBglGetTransformFeedbackVarying\fR
is available only if the GL version is 3\&.0 or greater\&.
.SH "ERRORS"
.PP

\fBGL_INVALID_VALUE\fR
is generated if
\fIprogram\fR
is not the name of a program object\&.
.PP

\fBGL_INVALID_VALUE\fR
is generated if
\fIbufferMode\fR
is
\fBGL_SEPARATE_ATTRIBS\fR
and
\fIcount\fR
is greater than the implementation\-dependent limit
\fBGL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS\fR\&.
.SH "ASSOCIATED GETS"
.PP

\fBglGetTransformFeedbackVarying\fR()
.SH "SEE ALSO"
.PP

\fBglBeginTransformFeedback\fR(),
\fBglEndTransformFeedback\fR(),
\fBglGetTransformFeedbackVarying\fR()
.SH "COPYRIGHT"
.PP
Copyright
\(co
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\&.
\m[blue]\fBhttp://opencontent\&.org/openpub/\fR\m[]\&.
