table of contents
GLDRAWBUFFERS(3G) | OpenGL Manual | GLDRAWBUFFERS(3G) |
NAME¶
glDrawBuffers - Specifies a list of color buffers to be drawn into
C SPECIFICATION¶
void glDrawBuffers(GLsizei n, const GLenum *bufs);
PARAMETERS¶
n
bufs
DESCRIPTION¶
glDrawBuffers defines an array of buffers into which outputs from the fragment shader data will be written. If a fragment shader writes a value to one or more user defined output variables, then the value of each variable will be written into the buffer specified at a location within bufs corresponding to the location assigned to that user defined output. The draw buffer used for user defined outputs assigned to locations greater than or equal to n is implicitly set to GL_NONE and any data written to such an output is discarded.
The symbolic constants contained in bufs may be any of the following:
GL_NONE
GL_FRONT_LEFT
GL_FRONT_RIGHT
GL_BACK_LEFT
GL_BACK_RIGHT
GL_COLOR_ATTACHMENTn
Except for GL_NONE, the preceding symbolic constants may not appear more than once in bufs. The maximum number of draw buffers supported is implementation dependent and can be queried by calling glGet() with the argument GL_MAX_DRAW_BUFFERS.
NOTES¶
The symbolic constants GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, and GL_FRONT_AND_BACK are not allowed in the bufs array since they may refer to multiple buffers.
If a fragment shader does not write to a user defined output variable, the values of the fragment colors following shader execution are undefined. For each fragment generated in this situation, a different value may be written into each of the buffers specified by bufs.
ERRORS¶
GL_INVALID_ENUM is generated if one of the values in bufs is not an accepted value.
GL_INVALID_ENUM is generated if the GL is bound to the default framebuffer and one or more of the values in bufs is one of the GL_COLOR_ATTACHMENTn tokens.
GL_INVALID_ENUM is generated if the GL is bound to a framebuffer object and one or more of the values in bufs is anything other than GL_NONE or one of the GL_COLOR_ATTACHMENTSn tokens.
GL_INVALID_ENUM is generated if n is less than 0.
GL_INVALID_OPERATION is generated if a symbolic constant other than GL_NONE appears more than once in bufs.
GL_INVALID_OPERATION is generated if any of the entries in bufs (other than GL_NONE ) indicates a color buffer that does not exist in the current GL context.
GL_INVALID_VALUE is generated if n is greater than GL_MAX_DRAW_BUFFERS.
ASSOCIATED GETS¶
glGet() with argument GL_MAX_DRAW_BUFFERS
glGet() with argument GL_DRAW_BUFFERi where i indicates the number of the draw buffer whose value is to be queried
SEE ALSO¶
glBlendFunc(), glColorMask(), glDrawBuffers(), glLogicOp(), glReadBuffer()
COPYRIGHT¶
Copyright © 2003-2005 3Dlabs Inc. Ltd. 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/.
AUTHORS¶
opengl.org
05/02/2014 | opengl.org |