Light | Dark

# docs.GL

OpenGL 4
OpenGL 3
OpenGL ES 3

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

## Parameters

`target`

  Specifies the target buffer object. The symbolic constant must be `GL_ARRAY_BUFFER`, `GL_COPY_READ_BUFFER`, `GL_COPY_WRITE_BUFFER`, `GL_ELEMENT_ARRAY_BUFFER`, `GL_PIXEL_PACK_BUFFER`, `GL_PIXEL_UNPACK_BUFFER`, `GL_TRANSFORM_FEEDBACK_BUFFER`, or `GL_UNIFORM_BUFFER`.

`value`

  Specifies the symbolic name of a buffer object parameter. Accepted values are `GL_BUFFER_ACCESS_FLAGS`, `GL_BUFFER_MAPPED`, `GL_BUFFER_MAP_LENGTH`, `GL_BUFFER_MAP_OFFSET`, `GL_BUFFER_SIZE`, or `GL_BUFFER_USAGE`.

`data`

  Returns the requested parameter.

## Description

`glGetBufferParameteriv` and `glGetBufferParameteri64v` return in `data` a selected parameter of the buffer object specified by `target`.

`value` names a specific buffer object parameter, as follows:

`GL_BUFFER_ACCESS_FLAGS`

  `params` returns the access policy set while mapping the buffer object.

`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 buffer object mapping, measured in bytes. The initial value is 0.

`GL_BUFFER_MAP_OFFSET`

  `params` returns the offset (start) of the buffer object mapping, measured in bytes. The initial value is 0.

`GL_BUFFER_SIZE`

  `params` returns the size of the buffer object, measured in bytes. The initial value is 0.

`GL_BUFFER_USAGE`

  `params` returns the buffer object's usage pattern.

## Notes

If an error is generated, no change is made to the contents of `data`.

If `glGetBufferParameteriv` is used to query a `value` of `GL_BUFFER_SIZE`, values greater than or equal to 2 31 will be clamped to 2 31 - 1 .

## Errors

`GL_INVALID_ENUM` is generated if `target` or `value` is not an accepted value.

`GL_INVALID_OPERATION` is generated if the reserved buffer object name 0 is bound to `target`.

`GL_INVALID_ENUM` is generated if `glGetBufferParameteri64v` is used to query a `value` of `GL_BUFFER_ACCESS_FLAGS`, `GL_BUFFER_MAPPED` or `GL_BUFFER_USAGE`.

`GL_INVALID_ENUM` is generated if `glGetBufferParameteriv` is used to query a `value` of `GL_BUFFER_MAP_LENGTH` or `GL_BUFFER_MAP_OFFSET`.

## API Version Support

| OpenGL ES API Version
--- | ---
Function Name | 2.0 | 3.0 | 3.1
`glGetBufferParameteriv` | ✔ | ✔ | ✔
`glGetBufferParameteri64v` | - | ✔ | ✔

## See Also

glBindBuffer, glBufferData, glMapBufferRange, glUnmapBuffer

## Copyright

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

Think you can improve this page? Edit this page on GitHub.