2010-2014
Khronos Group
glTransformFeedbackVaryings
3G

# glTransformFeedbackVaryings

specify values to record in transform feedback buffers

## C Specification

                    void glTransformFeedbackVaryings
                    GLuint program
                    GLsizei count
                    const char ** varyings
                    GLenum bufferMode

## Parameters

`program`

  The name of the target program object.

`count`

  The number of varying variables used for transform feedback.

`varyings`

  An array of `count` zero-terminated strings specifying the names of the varying variables to use for transform feedback.

`bufferMode`

  Identifies the mode used to capture the varying variables when transform feedback is active. `bufferMode` must be `GL_INTERLEAVED_ATTRIBS` or `GL_SEPARATE_ATTRIBS`.

## Description

The names of the vertex shader outputs to be recorded in transform feedback mode are specified using `glTransformFeedbackVaryings` .Transform feedback records the values of the selected vertex shader outputs.

The state set by `glTranformFeedbackVaryings` is stored and takes effect next time glLinkProgram is called on `program`. When glLinkProgram is called, `program` 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 `bufferMode` is `GL_INTERLEAVED_ATTRIBS` or multiple buffer objects if `bufferMode` is `GL_SEPARATE_ATTRIBS`.

In addition to the errors generated by `glTransformFeedbackVaryings`, the program `program` will fail to link if:

- Any variable name specified in the `varyings` array is not declared as an output in the vertex shader.

- Any two entries in the `varyings` array specify the same varying variable.

- The total number of components to capture in any varying variable in `varyings` is greater than the constant `GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS` and the buffer mode is `GL_SEPARATE_ATTRIBS`.

- The total number of components to capture is greater than the constant `GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS` and the buffer mode is `GL_INTERLEAVED_ATTRIBS`.

## Errors

`GL_INVALID_VALUE` is generated if `program` is not the name of a program object.

`GL_INVALID_VALUE` is generated if `bufferMode` is `GL_SEPARATE_ATTRIBS` and `count` is greater than the implementation-dependent limit `GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS`.

## Associated Gets

glGetTransformFeedbackVarying

## API Version Support

glTransformFeedbackVaryings

## See Also

glBeginTransformFeedback, glEndTransformFeedback, glGetTransformFeedbackVarying

## Copyright

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. http://opencontent.org/openpub/.