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
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. http://opencontent.org/openpub/.