Provided by: opengl-4-man-doc_1.0~svn33624-1_all bug

NAME

       glDrawBuffers, glNamedFramebufferDrawBuffers - Specifies a list of color buffers to be
       drawn into

C SPECIFICATION

       void glDrawBuffers(GLsizei n, const GLenum *bufs);

       void glNamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n, const GLenum *bufs);

PARAMETERS

       framebuffer
           Specifies the name of the framebuffer object for glNamedFramebufferDrawBuffers.

       n
           Specifies the number of buffers in bufs.

       bufs
           Points to an array of symbolic constants specifying the buffers into which fragment
           colors or data values will be written.

DESCRIPTION

       glDrawBuffers and glNamedFramebufferDrawBuffers define 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.

       For glDrawBuffers, the framebuffer object that is bound to the GL_DRAW_FRAMEBUFFER binding
       will be used. For glNamedFramebufferDrawBuffers, framebuffer is the name of the
       framebuffer object. If framebuffer is zero, then the default framebuffer is affected.

       The symbolic constants contained in bufs may be any of the following:

       GL_NONE
           The fragment shader output value is not written into any color buffer.

       GL_FRONT_LEFT
           The fragment shader output value is written into the front left color buffer.

       GL_FRONT_RIGHT
           The fragment shader output value is written into the front right color buffer.

       GL_BACK_LEFT
           The fragment shader output value is written into the back left color buffer.

       GL_BACK_RIGHT
           The fragment shader output value is written into the back right color buffer.

       GL_COLOR_ATTACHMENTn
           The fragment shader output value is written into the nth color attachment of the
           current framebuffer.  n may range from zero to the value of GL_MAX_COLOR_ATTACHMENTS.

       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_OPERATION error is generated by glNamedFramebufferDrawBuffers if framebuffer is
       not zero or the name of an existing framebuffer object.

       GL_INVALID_ENUM is generated if one of the values in bufs is not an accepted value.

       GL_INVALID_ENUM is generated if the API call refers 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 API call refers 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_ATTACHMENTn 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_OPERATION is generated if any value in bufs is GL_BACK, and n is not one.

       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.

VERSION SUPPORT

       ┌──────────────────────────────┬───────────────────────────────────────────────────────────────────────┐
       │                              │                OpenGL Version                                         │
       ├──────────────────────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
       │Function2.02.13.03.13.23.34.04.14.24.34.44.5 │
       │/                             │     │     │     │     │     │     │     │     │     │     │     │     │
       │Feature                       │     │     │     │     │     │     │     │     │     │     │     │     │
       │Name                          │     │     │     │     │     │     │     │     │     │     │     │     │
       ├──────────────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glDrawBuffers                 │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glNamedFramebufferDrawBuffers │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │
       └──────────────────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

SEE ALSO

       glBlendFunc(), glColorMask(), glDrawBuffers(), glLogicOp(), glReadBuffer()

COPYRIGHT

       Copyright © 2003-2005 3Dlabs Inc. Ltd. Copyright © 2010-2014 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/.

COPYRIGHT

       Copyright © 2003-2005 3Dlabs Inc. Ltd.
       Copyright © 2010-2014 Khronos Group

[FIXME: source]                             01/03/2018                          GLDRAWBUFFERS(3G)