## Name

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_DRAW_BUFFER`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. If `buffer` is one of `GL_FRONT`, `GL_BACK`, `GL_LEFT`, `GL_RIGHT`, or `GL_FRONT_AND_BACK`, identifying multiple buffers, each selected buffer is cleared to the same value. 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 glClearDepth.

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

## See Also

glClearColor, glClearDepth, glClearStencil, glClear

## Copyright

Copyright © 2010 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/.