2010 Khronos Group
glGetTransformFeedbackVarying 3G
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/.