glGetBufferParameter — return parameters of a buffer object
void glGetBufferParameteriv(
|
GLenum target, |
GLenum value, | |
GLint * data) ; |
void glGetBufferParameteri64v(
|
GLenum target, |
GLenum value, | |
GLint64 * data) ; |
void glGetNamedBufferParameteriv(
|
GLuint buffer, |
GLenum pname, | |
GLint *params) ; |
void glGetNamedBufferParameteri64v(
|
GLuint buffer, |
GLenum pname, | |
GLint64 *params) ; |
target
Specifies the target to which the buffer object is bound
for glGetBufferParameteriv
and
glGetBufferParameteri64v
. 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
glGetNamedBufferParameteriv
and
glGetNamedBufferParameteri64v
.
value
Specifies the name of the buffer object parameter to query.
data
Returns the requested parameter.
These functions return in data
a selected
parameter of the specified buffer object.
pname
names a specific buffer object
parameter, as follows:
GL_BUFFER_ACCESS
params
returns the access
policy set while mapping the buffer object (the
value of the access
parameter
enum passed to glMapBuffer
). If
the buffer was mapped with
glMapBufferRange
, the access
policy is determined by translating the bits in that
access
parameter to one of
the supported enums for
glMapBuffer
as described in the
OpenGL Specification.
GL_BUFFER_ACCESS_FLAGS
params
returns the access
policy set while mapping the buffer object (the
value of the access
parameter
bitfield passed to
glMapBufferRange
). If the
buffer was mapped with
glMapBuffer
, the access policy
is determined by translating the enums in that
access
parameter to the
corresponding bits for
glMapBufferRange
as described
in the OpenGL Specification. The initial value is
zero.
GL_BUFFER_IMMUTABLE_STORAGE
params
returns a boolean flag
indicating whether the buffer object is immutable.
The initial value is GL_FALSE
.
GL_BUFFER_MAPPED
params
returns a flag
indicating whether the buffer object is currently
mapped. The initial value is
GL_FALSE
.
GL_BUFFER_MAP_LENGTH
params
returns the length of
the mapping into the buffer object established with
glMapBuffer*
. The
i64v
versions of these queries
should be used for this parameter. The initial value
is zero.
GL_BUFFER_MAP_OFFSET
params
returns the offset of
the mapping into the buffer object established with
glMapBuffer*
. The
i64v
versions of these queries
should be used for this parameter. The initial value
is zero.
GL_BUFFER_SIZE
params
returns the size of
the buffer object, measured in bytes. The initial
value is 0.
GL_BUFFER_STORAGE_FLAGS
params
returns a bitfield
indicating the storage flags for the buffer object.
If the buffer object is immutable, the value
returned will be that specified when the data store
was established with
glBufferStorage
. If the data
store was established with
glBufferData
, the value will be
GL_MAP_READ_BIT
|
GL_MAP_WRITE_BIT
|
GL_DYNAMIC_STORAGE_BIT
|
GL_MAP_WRITE_BIT
. The initial
value is zero.
GL_BUFFER_USAGE
params
returns the buffer
object's usage pattern. The initial value is
GL_STATIC_DRAW
.
If an error is generated, no change is made to the contents of
data
.
The GL_ATOMIC_COUNTER_BUFFER
target is
available only if the GL version is 4.2 or greater.
The GL_DISPATCH_INDIRECT_BUFFER
and
GL_SHADER_STORAGE_BUFFER
targets are
available only if the GL version is 4.3 or greater.
The GL_QUERY_BUFFER
target is available
only if the GL version is 4.4 or greater.
GL_INVALID_ENUM
is generated by
glGetBufferParameter*
if
target
is not one of the accepted buffer
targets.
GL_INVALID_OPERATION
is generated by
glGetBufferParameter*
if
zero is bound to target
.
GL_INVALID_OPERATION
is generated by
glGetNamedBufferParameter*
if
buffer
is not the name of an existing
buffer object.
GL_INVALID_ENUM
is generated if
pname
is not one of the buffer object
parameter names described above.
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 |
glGetBufferParameteri64v
|
- | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetBufferParameteriv
|
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetNamedBufferParameteri64v
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glGetNamedBufferParameteriv
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glBindBuffer, glBufferData, glGetBufferPointerv, glMapBuffer, glUnmapBuffer
Copyright © 2005 Addison-Wesley. Copyright © 2010-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/.