GLAPI/glBindFragDataLocation

From OpenGL.org
Jump to: navigation, search
glBindFragDataLocation
Core in version 4.4
Core since version 3.0

glBindFragDataLocation: bind a user-defined varying out variable to a fragment shader color number

Function Definition

 void glBindFragDataLocation(GLuint program​, GLuint colorNumber​, const char * name​);
program
The name of the program containing varying out variable whose binding to modify
colorNumber
The color number to bind the user-defined varying out variable to
name
The name of the user-defined varying out variable whose binding to modify

Description

glBindFragDataLocation explicitly specifies the binding of the user-defined varying out variable name​ to fragment shader color number colorNumber​ for program program​. If name​ was bound previously, its assigned binding is replaced with colorNumber​. name​ must be a null-terminated string. colorNumber​ must be less than GL_MAX_DRAW_BUFFERS​.

The bindings specified by glBindFragDataLocation have no effect until program​ is next linked. Bindings may be specified at any time after program​ has been created. Specifically, they may be specified before shader objects are attached to the program. Therefore, any name may be specified in name​, including a name that is never used as a varying out variable in any fragment shader object. Names beginning with gl_​ are reserved by the GL.

In addition to the errors generated by glBindFragDataLocation, the program program​ will fail to link if: * The number of active outputs is greater than the value GL_MAX_DRAW_BUFFERS​.

  • More than one varying out variable is bound to the same color number.


Notes

Varying out varyings may have indexed locations assigned explicitly in the shader text using a location​ layout qualifier. If a shader statically assigns a location to a varying out variable in the shader text, that location is used and any location assigned with glBindFragDataLocation is ignored.

Errors

GL_INVALID_VALUE​ is generated if colorNumber​ is greater than or equal to GL_MAX_DRAW_BUFFERS​.

GL_INVALID_OPERATION​ is generated if name​ starts with the reserved gl_​ prefix.

GL_INVALID_OPERATION​ is generated if program is not the name of a program object.

Associated Gets

glGetFragDataLocation with a valid program object and the the name of a user-defined varying out variable

See Also

glLinkProgram, glDrawBuffer, glDrawBuffers, glBindFragDataLocationIndexed

Copyright

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