glClearBuffer — clear individual buffers of a framebuffer
void glClearBufferiv(
|
GLenum buffer, |
| GLint drawbuffer, | |
const GLint * value); |
void glClearBufferuiv(
|
GLenum buffer, |
| GLint drawbuffer, | |
const GLuint * value); |
void glClearBufferfv(
|
GLenum buffer, |
| GLint drawbuffer, | |
const GLfloat * value); |
void glClearBufferfi(
|
GLenum buffer, |
| GLint drawbuffer, | |
| GLfloat depth, | |
GLint stencil); |
void glClearNamedFramebufferiv(
|
GLuint framebuffer, |
| GLenum buffer, | |
| GLint drawbuffer, | |
const GLint *value); |
void glClearNamedFramebufferuiv(
|
GLuint framebuffer, |
| GLenum buffer, | |
| GLint drawbuffer, | |
const GLuint *value); |
void glClearNamedFramebufferfv(
|
GLuint framebuffer, |
| GLenum buffer, | |
| GLint drawbuffer, | |
const GLfloat *value); |
void glClearNamedFramebufferfi(
|
GLuint framebuffer, |
| GLenum buffer, | |
| GLint drawbuffer, | |
| GLfloat depth, | |
GLint stencil); |
framebuffer
Specifies the name of the framebuffer object for
glClearNamedFramebuffer*.
buffer
Specify the buffer to clear.
drawbuffer
Specify a particular draw buffer to clear.
value
A pointer to the value or values to clear the buffer to.
depth
The value to clear the depth buffer to.
stencil
The value to clear the stencil buffer to.
These commands clear a specified buffer of a framebuffer to
specified value(s). For glClearBuffer*, the
framebuffer is the currently bound draw framebuffer object. For
glClearNamedFramebuffer*,
framebuffer is zero, indicating the
default draw framebuffer, or the name of a framebuffer object.
buffer and
drawbuffer identify the buffer to clear.
If buffer is
GL_COLOR, a particular draw buffer
GL_DRAW_BUFFERi is
specified by passing i as
drawbuffer, and
value points to a four-element vector
specifying the R, G, B and A color to clear that draw buffer to.
If the value of
GL_DRAW_BUFFERi is
GL_NONE, the command has no effect.
Otherwise, the value of
GL_DRAW_BUFFERi
identifies one or more color buffers, each of which is cleared
to the same value. Clamping and type conversion for fixed-point
color buffers are performed in the same fashion as for
glClearColor.
The *fv, *iv and
*uiv forms of these commands should be used
to clear fixed- and floating-point, signed integer, and unsigned
integer color buffers respectively.
If buffer is
GL_DEPTH, drawbuffer
must be zero, and value points to a
single value to clear the depth buffer to. Clamping and type
conversion for fixed-point depth buffers are performed in the
same fashion as for
glClearDepth.
Only the *fv forms of these commands should
be used to clear depth buffers; other forms do not accept a
buffer of GL_DEPTH.
If buffer is
GL_STENCIL,
drawbuffer must be zero, and
value points to a single value to clear
the stencil buffer to. Masking is performed in the same fashion
as for
glClearStencil.
Only the *iv forms of these commands should
be used to clear stencil buffers; be used to clear stencil
buffers; other forms do not accept a
buffer of
GL_STENCIL.
glClearBufferfi and
glClearNamedFramebufferfi are used to clear
the depth and stencil buffers simultaneously.
buffer must be
GL_DEPTH_STENCIL and
drawbuffer must be zero.
depth and stencil
are the values to clear the depth and stencil buffers to,
respectively. Clamping and type conversion of
depth for fixed-point depth buffers are
performed in the same fashion as for
glClearDepth.
Masking of stencil for stencil buffers is
performed in the same fashion as for
glClearStencil.
These commands are equivalent to clearing the depth and stencil
buffers separately, but may be faster when a buffer of internal
format GL_DEPTH_STENCIL is being cleared.
The same per-fragment and masking operations defined for
glClear are applied.
The result of these commands is undefined if no conversion
between the type of the specified value
and the type of the buffer being cleared is defined (for
example, if glClearBufferiv is called for a
fixed- or floating-point buffer, or if
glClearBufferfv is called for a signed or
unsigned integer buffer). This is not an error.
GL_INVALID_OPERATION is generated by
glClearNamedFramebuffer* if
framebuffer is not zero or the name of an
existing framebuffer object.
GL_INVALID_ENUM is generated by
glClearBufferiv and
glClearNamedFramebufferiv
buffer is not
GL_COLOR or
GL_STENCIL.
GL_INVALID_ENUM is generated by
glClearBufferuiv and
glClearNamedFramebufferuiv
buffer is not
GL_COLOR.
GL_INVALID_ENUM is generated by
glClearBufferfv and
glClearNamedFramebufferfv
buffer is not
GL_COLOR or
GL_DEPTH.
GL_INVALID_ENUM is generated by
glClearBufferfi and
glClearNamedFramebufferfi
buffer is not
GL_DEPTH_STENCIL.
GL_INVALID_VALUE is generated if
buffer is GL_COLOR
drawbuffer is negative, or greater than
the value of GL_MAX_DRAW_BUFFERS minus one.
GL_INVALID_VALUE is generated if
buffer is GL_DEPTH,
GL_STENCIL or
GL_DEPTH_STENCIL and
drawbuffer is not zero.
| OpenGL Version | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |
glClearBufferfi
|
- | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glClearBufferfv
|
- | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glClearBufferiv
|
- | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glClearBufferuiv
|
- | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glClearNamedFramebufferfi
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glClearNamedFramebufferfv
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glClearNamedFramebufferiv
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glClearNamedFramebufferuiv
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
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/.