NAME¶
glUnmapBuffer, glUnmapNamedBuffer - release the mapping of a buffer object's
data store into the client's address space
C SPECIFICATION¶
GLboolean
glUnmapBuffer(GLenum target);
GLboolean
glUnmapNamedBuffer(GLuint buffer);
PARAMETERS¶
target
Specifies the target to which the buffer object is bound
for
glUnmapBuffer, 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_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
glUnmapNamedBuffer.
DESCRIPTION¶
glUnmapBuffer and
glUnmapNamedBuffer unmap (release) any mapping
of a specified buffer object into the client's address space (see
glMapBufferRange() and
glMapBuffer()).
If a mapping is not unmapped before the corresponding buffer object's data store
is used by the GL, an error will be generated by any GL command that attempts
to dereference the buffer object's data store, unless the buffer was
successfully mapped with
GL_MAP_PERSISTENT_BIT (see
glMapBufferRange()). When a data store is unmapped, the mapped pointer
becomes invalid.
glUnmapBuffer returns
GL_TRUE unless the data store contents have
become corrupt during the time the data store was mapped. This can occur for
system-specific reasons that affect the availability of graphics memory, such
as screen mode changes. In such situations,
GL_FALSE is returned and
the data store contents are undefined. An application must detect this rare
condition and reinitialize the data store.
A buffer object's mapped data store is automatically unmapped when the buffer
object is deleted or its data store is recreated with
glBufferData()).
NOTES¶
If an error is generated,
glUnmapBuffer returns
GL_FALSE.
The
GL_ATOMIC_COUNTER_BUFFER target is accepted 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
glUnmapBuffer if
target is
not one of the buffer binding targets listed above.
GL_INVALID_OPERATION is generated by
glUnmapBuffer if zero is
bound to
target.
GL_INVALID_OPERATION is generated by
glUnmapNamedBuffer if
buffer is not the name of an existing buffer object.
GL_INVALID_OPERATION is generated if the buffer object is not in a mapped
state.
ASSOCIATED GETS¶
glGetBufferParameter() with argument
GL_BUFFER_MAPPED.
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 |
glUnmapBuffer |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
glUnmapNamedBuffer |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
✔ |
SEE ALSO¶
glBufferData(),
glDeleteBuffers(),
glMapBuffer(),
glMapBufferRange()
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.
http://opencontent.org/openpub/.
COPYRIGHT¶
Copyright © 2005 Addison-Wesley Group
Copyright © 2010-2014 Khronos Group