Signature
glNamedFramebufferDrawBuffers(
GLuint (
framebuffer
)
,
GLsizei (
n
)
,
const GLenum *(
bufs
)
)-> void
Parameters
Variables | Description |
---|---|
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_ATTACHMENT n
-
The fragment shader output value is written into the n th color attachment of the current framebuffer. n may range from zero to the value of GL_MAX_COLOR_ATTACHMENTS .
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_ATTACHMENT
n
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_ATTACHMENT
n
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.
Associated Gets
glGet
with argument
GL_MAX_DRAW_BUFFERS
glGet
with argument
GL_DRAW_BUFFER
i
where
i
indicates the number of the draw
buffer whose value is to be queried.
Version Support
glDrawBuffers | |
glNamedFramebufferDrawBuffers |
See Also
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/
.