glGetBufferPointerv - OpenGL ES 3.2 Reference Pages

## Name

glGetBufferPointerv — return the pointer to a mapped buffer object's data store

## C Specification

`void glGetBufferPointerv(` | GLenum target,
| GLenum pname,
| GLvoid ** params`)`;

## Parameters

`target`

  Specifies the target to which the buffer object is bound for `glGetBufferPointerv`, 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_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

`pname`

  Specifies the pointer to be returned. The symbolic constant must be `GL_BUFFER_MAP_POINTER`.

`params`

  Returns the pointer value specified by `pname`.

## Description

`glGetBufferPointerv` returns pointer information. `pname` is a symbolic constant indicating the pointer to be returned, which must be `GL_BUFFER_MAP_POINTER`, the pointer to which the buffer object's data store is mapped. If the data store is not currently mapped, `NULL` is returned. `params` is a pointer to a location in which to place the returned pointer value.

## Notes

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

The initial value for the pointer is `NULL`.

The `GL_COPY_READ_BUFFER`, `GL_COPY_WRITE_BUFFER`, `GL_PIXEL_PACK_BUFFER`,`GL_PIXEL_UNPACK_READ_BUFFER`, `GL_TRANSFORM_FEEDBACK_BUFFER` and `GL_UNIFORM_BUFFER` targets are available only if the GL ES version is 3.0 or greater.

The `GL_ATOMIC_COUNTER_BUFFER`, `GL_DISPATCH_INDIRECT_BUFFER`, `GL_DRAW_INDIRECT_BUFFER` and `GL_SHADER_STORAGE_BUFFER` targets are available only if the GL ES version is 3.1 or greater.

The `GL_TEXTURE_BUFFER` target is available only if the GL ES version is 3.2 or greater.

## Errors

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

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

## API Version Support

| OpenGL ES API Version
--- | ---
Function Name | 2.0 | 3.0 | 3.1 | 3.2
glGetBufferPointerv | - | ✔ | ✔ | ✔

## See Also

glBindBuffer, glMapBufferRange

## Copyright

Copyright © 2005 Addison-Wesley. Copyright © 2010-2015 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/.