2010-2014
Khronos Group
glClearBuffer
3G

# glClearBuffer

clear individual buffers of the currently bound draw framebuffer

## C Specification

                    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

## Parameters

`buffer`

  Specify the buffer to clear.

`drawBuffer`

  Specify a particular draw buffer to clear.

`value`

  For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.

`depth`

  The value to clear a depth render buffer to.

`stencil`

  The value to clear a stencil render buffer to.

## Description

`glClearBuffer*` clears the specified buffer to the specified value(s). If `buffer` is `GL_COLOR`, a particular draw buffer `GL_DRAWBUFFER` `i` is specified by passing `i` as `drawBuffer`. In this case, `value` points to a four-element vector specifying the R, G, B and A color to clear that draw buffer to. The `glClearBufferfv`, `glClearBufferiv`, and `glClearBufferuiv` commands should be used to clear fixed-point, signed integer, and unsigned integer color buffers respectively. Clamping and conversion for fixed-point color buffers are performed in the same fashion as glClearColor.

If `buffer` is `GL_DEPTH`, `drawBuffer` must be zero, and `value` points to a single value to clear the depth buffer to. Only `glClearBufferfv` should be used to clear depth buffers. Clamping and conversion for fixed-point depth buffers are performed in the same fashion as glClearDepthf.

If `buffer` is `GL_STENCIL`, `drawBuffer` must be zero, and `value` points to a single value to clear the stencil buffer to. Only `glClearBufferiv` should be used to clear stencil buffers. Masing and type conversion are performed in the same fashion as glClearStencil.

`glClearBufferfi` may be used to clear the depth and stencil buffers. `buffer` must be `GL_DEPTH_STENCIL` and `drawBuffer` must be zero. `depth` and `stencil` are the depth and stencil values, respectively.

The result of `glClearBuffer` is undefined if no conversion between the type of `value` and the buffer being cleared is defined. However, this is not an error.

## Errors

`GL_INVALID_ENUM` is generated by `glClearBufferif`, `glClearBufferfv` and `glClearBufferuiv` if `buffer` is not `GL_COLOR`, `GL_FRONT`, `GL_BACK`, `GL_LEFT`, `GL_RIGHT`, `GL_FRONT_AND_BACK`, `GL_DEPTH` or `GL_STENCIL`.

`GL_INVALID_ENUM` is generated by `glClearBufferfi` if `buffer` is not `GL_DEPTH_STENCIL`.

`GL_INVALID_VALUE` is generated if `buffer` is `GL_COLOR`, `GL_FRONT`, `GL_BACK`, `GL_LEFT`, `GL_RIGHT`, or `GL_FRONT_AND_BACK` and `drawBuffer` is greater than or equal to `GL_MAX_DRAW_BUFFERS`.

`GL_INVALID_VALUE` is generated if `buffer` is `GL_DEPTH`, `GL_STENCIL` or `GL_DEPTH_STENCIL` and `drawBuffer` is not zero.

## API Version Support

`glClearBufferiv`
`glClearBufferuiv`
`glClearBufferfv`
`glClearBufferfi`

## See Also

glClearColor, glClearDepthf, glClearStencil, glClear

## Copyright

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/.