Light | Dark

glGetBufferParameter

Name

glGetBufferParameter — return parameters of a buffer object

C Specification

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);

Parameters

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.

Description

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.

Notes

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.

Errors

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.

Version Support

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 - - - - - - - - - - -
Think you can improve this page? Edit this page on GitHub.