NAME¶
glBindFragDataLocationIndexed - bind a user-defined varying out variable to a
  fragment shader color number and index
C SPECIFICATION¶
void
  glBindFragDataLocationIndexed(GLuint program,
  GLuint colorNumber, GLuint index,
  const char *name);
PARAMETERS¶
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
index
The index of the color input to bind the
  user-defined varying out variable to
name
The name of the user-defined varying out
  variable whose binding to modify
DESCRIPTION¶
 
glBindFragDataLocationIndexed specifies that the varying out variable
  
name in 
program should be bound to fragment color
  
colorNumber when the program is next linked. 
index may be zero
  or one to specify that the color be used as either the first or second color
  input to the blend equation, respectively.
The bindings specified by 
glBindFragDataLocationIndexed 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.
If 
name was bound previously, its assigned binding is replaced with
  
colorNumber and 
index. 
name must be a null-terminated
  string. 
index must be less than or equal to one, and 
colorNumber
  must be less than the value of 
GL_MAX_DRAW_BUFFERS if 
index is
  zero, and less than the value of 
GL_MAX_DUAL_SOURCE_DRAW_BUFFERS if
  index is greater than or equal to one.
In addition to the errors generated by 
glBindFragDataLocationIndexed, 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 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_VALUE is generated if 
colorNumber is greater than or
  equal to 
GL_MAX_DUAL_SOURCE_DRAW_BUFERS and 
index is greater
  than or equal to one.
 
GL_INVALID_VALUE is generated if 
index is greater than one.
 
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
 
glGetFragDataIndex() with a valid program object and the the name of a
  user-defined varying out variable
SEE ALSO¶
 
glCreateProgram(), 
glLinkProgram() 
glGetFragDataLocation(),
  
glGetFragDataIndex() 
glBindFragDataLocation()
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/.