## Name

glClearBufferSubData — fill all or part of buffer object's data store with a fixed value

## C Specification

`void glClearBufferSubData(` | GLenum target,
| GLenum internalformat,
| GLintptr offset,
| GLsizeiptr size,
| GLenum format,
| GLenum type,
| const void * data`)`;

## Parameters

`target`

  Specify the target of the operation. `target` must be one of the global buffer binding targets.

`internalformat`

  The internal format with which the data will be stored in the buffer object.

`offset`

  The offset, in basic machine units into the buffer object's data store at which to start filling.

`size`

  The size, in basic machine units of the range of the data store to fill.

`format`

  The format of the data in memory addressed by `data`.

`type`

  The type of the data in memory addressed by `data`.

`data`

  The address of a memory location storing the data to be replicated into the buffer's data store.

## Description

`glClearBufferSubData` fills a specified region of a buffer object's data store with data from client memory. `offset` and `size` demark the extent of the region within the data store of the buffer object bound to `target` to fill with data. Data, initially supplied in a format specified by `format` in data type `type` is read from the memory address given by `data` and converted into the internal representation given by `internalforamt`. This converted data is then replicated throughout the specified region of the buffer object's data store.

If `data` is NULL, then the subrange of the buffer's data store is filled with zeros.

## Errors

`GL_INVALID_ENUM` is generated if `target` not one of the generic buffer binding targets.

`GL_INVALID_VALUE` is generated if no buffer is bound to `target`.

`GL_INVALID_ENUM` is generated if `internalformat` is not a sized internal format.

`GL_INVALID_VALUE` is generated if `offset` or `range` are not multiples of the number of basic machine units per-element for the internal format specified by `internalformat`.

`GL_INVALID_VALUE` is generated if `offset` or `size` is less than zero, or if `offset` + `size` is greater than the value of `GL_BUFFER_SIZE` for the buffer bound to `target`.

`GL_INVALID_OPERATION` is generated if any part of the specified buffer range is mapped with glMapBufferRange or glMapBuffer.

## See Also

glClearBufferData.

## Copyright

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