GL_OES_mapbuffer

Supported Hardware

Series5, Series5XT, Series6, Series6XE, Series6XT

Valid APIs

OpenGL ES 1.x, 2.0

Description

This extension enables the user to upload data directly into memory that the driver provides for them, by mapping the storage of a buffer object into client address space. In many cases this means that the user can avoid an additional memory allocation on top of one performed by the driver.

Note

This functionality is core to OpenGL ES 3.0 in the form of glMapBufferRange

Example

// Bind a buffer
glBindBuffer(GL_ARRAY_BUFFER, aVertexBuffer);
// Map the buffer's data to a CPU addressable pointer, in a way that allows us to write to it,
// but not read the data back.
void* bufferData = glMapBufferOES(GL_ARRAY_BUFFER, GL_WRITE_ONLY_OES);
// Get the size of the buffer
GLint bufferSize = 0;
glGetBufferParameteriv(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, &bufferSize);
// Write some data into the pointer
memcpy(bufferData, newDataForTheBuffer, bufferSize);
// Unmap the pointer
glUnmapBufferOES(GL_ARRAY_BUFFER);
// The pointer is now invalid, so NULL it
bufferData = NULL;