Supported Hardware

Series5, Series5XT, Series6, Series6XE, Series6XT

Valid APIs

OpenGL ES 1.x, 2.0


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.


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

Registry Link


// 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 
// The pointer is now invalid, so NULL it 
bufferData = NULL;