glClearBufferSubData

3G

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