## Name

glGetTransformFeedbackVarying — retrieve information about varying variables selected for transform feedback

## C Specification

`void glGetTransformFeedbackVarying(` | GLuintprogram,
| GLuintindex,
| GLsizeibufSize,
| GLsizei *length,
| GLsizei *size,
| GLenum *type,
| char *name`)`;

## Parameters

`program`

  The name of the target program object.

`index`

  The index of the varying variable whose information to retrieve.

`bufSize`

  The maximum number of characters, including the null terminator, that may be written into `name`.

`length`

  The address of a variable which will receive the number of characters written into `name`, excluding the null-terminator. If `length` is `NULL` no length is returned.

`size`

  The address of a variable that will receive the size of the varying.

`type`

  The address of a variable that will recieve the type of the varying.

`name`

  The address of a buffer into which will be written the name of the varying.

## Description

Information about the set of varying variables in a linked program that will be captured during transform feedback may be retrieved by calling `glGetTransformFeedbackVarying`. `glGetTransformFeedbackVarying` provides information about the varying variable selected by `index`. An `index` of 0 selects the first varying variable specified in the `varyings` array passed to glTransformFeedbackVaryings, and an `index` of `GL_TRANSFORM_FEEDBACK_VARYINGS` - 1 selects the last such variable.

The name of the selected varying is returned as a null-terminated string in `name`. The actual number of characters written into `name`, excluding the null terminator, is returned in `length`. If `length` is NULL, no length is returned. The maximum number of characters that may be written into `name`, including the null terminator, is specified by `bufSize`.

The length of the longest varying name in program is given by `GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH`, which can be queried with glGetProgram.

For the selected varying variable, its type is returned into `type`. The size of the varying is returned into `size`. The value in `size` is in units of the type returned in `type`. The type returned can be any of the scalar, vector, or matrix attribute types returned by glGetActiveAttrib. If an error occurred, the return parameters `length`, `size`, `type` and `name` will be unmodified. This command will return as much information about the varying variables as possible. If no information is available, `length` will be set to zero and `name` will be an empty string. This situation could arise if `glGetTransformFeedbackVarying` is called after a failed link.

## Errors

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

`GL_INVALID_VALUE` is generated if `index` is greater or equal to the value of `GL_TRANSFORM_FEEDBACK_VARYINGS`.

`GL_INVALID_OPERATION` is generated `program` has not been linked.

## Associated Gets

glGetProgram with argument `GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH`.

## See Also

glBeginTransformFeedback, glEndTransformFeedback, glTransformFeedbackVaryings, glGetProgram

## Copyright

Copyright © 2010-2013 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/.