glClearBufferData, glClearNamedBufferData — fill a buffer object's data store with a fixed value
void glClearBufferData( | GLenum target, |
GLenum internalformat, | |
GLenum format, | |
GLenum type, | |
const void * data) ; |
void glClearNamedBufferData( | GLuint buffer, |
GLenum internalformat, | |
GLenum format, | |
GLenum type, | |
const void *data) ; |
target
Specifies the target to which the buffer object is bound for glClearBufferData
, which must must be one of the buffer binding targets in the following table:
Buffer Binding Target | Purpose |
---|---|
GL_ARRAY_BUFFER | Vertex attributes |
GL_ATOMIC_COUNTER_BUFFER | Atomic counter storage |
GL_COPY_READ_BUFFER | Buffer copy source |
GL_COPY_WRITE_BUFFER | Buffer copy destination |
GL_DISPATCH_INDIRECT_BUFFER | Indirect compute dispatch commands |
GL_DRAW_INDIRECT_BUFFER | Indirect command arguments |
GL_ELEMENT_ARRAY_BUFFER | Vertex array indices |
GL_PIXEL_PACK_BUFFER | Pixel read target |
GL_PIXEL_UNPACK_BUFFER | Texture data source |
GL_QUERY_BUFFER | Query result buffer |
GL_SHADER_STORAGE_BUFFER | Read-write storage for shaders |
GL_TEXTURE_BUFFER | Texture data buffer |
GL_TRANSFORM_FEEDBACK_BUFFER | Transform feedback buffer |
GL_UNIFORM_BUFFER | Uniform block storage |
buffer
Specifies the name of the buffer object for glClearNamedBufferData
.
internalformat
The internal format with which the data will be stored in the buffer object.
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.
glClearBufferData
and glClearNamedBufferData
fill the entirety of a buffer object's data store with data from client memory.
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 internalformat
, which must be one of the following sized internal formats:
Component | |||||||
---|---|---|---|---|---|---|---|
Sized Internal Format | Base Type | Components | Norm | 0 | 1 | 2 | 3 |
GL_R8 | ubyte | 1 | YES | R | 0 | 0 | 1 |
GL_R16 | ushort | 1 | YES | R | 0 | 0 | 1 |
GL_R16F | half | 1 | NO | R | 0 | 0 | 1 |
GL_R32F | float | 1 | NO | R | 0 | 0 | 1 |
GL_R8I | byte | 1 | NO | R | 0 | 0 | 1 |
GL_R16I | short | 1 | NO | R | 0 | 0 | 1 |
GL_R32I | int | 1 | NO | R | 0 | 0 | 1 |
GL_R8UI | ubyte | 1 | NO | R | 0 | 0 | 1 |
GL_R16UI | ushort | 1 | NO | R | 0 | 0 | 1 |
GL_R32UI | uint | 1 | NO | R | 0 | 0 | 1 |
GL_RG8 | ubyte | 2 | YES | R | G | 0 | 1 |
GL_RG16 | ushort | 2 | YES | R | G | 0 | 1 |
GL_RG16F | half | 2 | NO | R | G | 0 | 1 |
GL_RG32F | float | 2 | NO | R | G | 0 | 1 |
GL_RG8I | byte | 2 | NO | R | G | 0 | 1 |
GL_RG16I | short | 2 | NO | R | G | 0 | 1 |
GL_RG32I | int | 2 | NO | R | G | 0 | 1 |
GL_RG8UI | ubyte | 2 | NO | R | G | 0 | 1 |
GL_RG16UI | ushort | 2 | NO | R | G | 0 | 1 |
GL_RG32UI | uint | 2 | NO | R | G | 0 | 1 |
GL_RGB32F | float | 3 | NO | R | G | B | 1 |
GL_RGB32I | int | 3 | NO | R | G | B | 1 |
GL_RGB32UI | uint | 3 | NO | R | G | B | 1 |
GL_RGBA8 | uint | 4 | YES | R | G | B | A |
GL_RGBA16 | short | 4 | YES | R | G | B | A |
GL_RGBA16F | half | 4 | NO | R | G | B | A |
GL_RGBA32F | float | 4 | NO | R | G | B | A |
GL_RGBA8I | byte | 4 | NO | R | G | B | A |
GL_RGBA16I | short | 4 | NO | R | G | B | A |
GL_RGBA32I | int | 4 | NO | R | G | B | A |
GL_RGBA8UI | ubyte | 4 | NO | R | G | B | A |
GL_RGBA16UI | ushort | 4 | NO | R | G | B | A |
GL_RGBA32UI | uint | 4 | NO | R | G | B | A |
This converted data is then replicated throughout the buffer object's data store. If data
is NULL, then the buffer's data store is filled with zeros.
GL_INVALID_ENUM
is generated by glClearBufferData
if target
is not one of the generic buffer binding targets.
GL_INVALID_VALUE
is generated by glClearBufferData
if no buffer is bound target
.
GL_INVALID_OPERATION
is generated by glClearNamedBufferData
if buffer
is not the name of an existing buffer object.
GL_INVALID_ENUM
is generated if internalformat
is not one of the valid sized internal formats listed in the table above.
GL_INVALID_OPERATION
is generated if any part of the specified range of the buffer object is mapped with glMapBufferRange or glMapBuffer, unless it was mapped with the GL_MAP_PERSISTENT_BIT
bit set in the glMapBufferRange
access
flags.
GL_INVALID_VALUE
is generated if format
is not a valid format, or type
is not a valid type.
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 |
glClearBufferData | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
glClearNamedBufferData | - | - | - | - | - | - | - | - | - | - | - | ✔ |
Copyright © 2011-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. https://opencontent.org/openpub/.