OpenGL extension APPLE.flush_buffer_range
This module customises the behaviour of the
OpenGL.raw.GL.APPLE.flush_buffer_range to provide a more
Overview (from the spec)
APPLE_flush_buffer_range expands the buffer object API to allow greater
performance when a client application only needs to write to a sub-range
of a buffer object. To that end, this extension introduces two new buffer
object features: non-serialized buffer modification and explicit sub-range
flushing for mapped buffer objects.
OpenGL requires that commands occur in a FIFO manner meaning that any
changes to buffer objects either block until the data has been processed by
the OpenGL pipeline or else create extra copies to avoid such a block. By
providing a method to asynchronously modify buffer object data, an
application is then able to manage the synchronization points themselves
and modify ranges of data contained by a buffer object even though OpenGL
might still be using other parts of it.
This extension also provides a method for explicitly flushing ranges of a
mapped buffer object so OpenGL does not have to assume that the entire
range may have been modified.
Affects ARB_vertex_buffer_object, ARB_pixel_buffer_object and OpenGL 1.5
The official definition of this extension is available here:
|EXTENSION_NAME = 'GL_APPLE_flush_buffer_range'|
GL_BUFFER_FLUSHING_UNMAP_APPLE = GL_BUFFER_FLUSHING_UNMAP_APPLE
GL_BUFFER_SERIALIZED_MODIFY_APPLE = GL_BUFFER_SERIALIZED_MODIFY_APPLE
__file__ = '/home/mcfletch/pylive/OpenGL/GL/APPLE/flush_buffer_range.pyc'
__name__ = 'OpenGL.GL.APPLE.flush_buffer_range'
__package__ = 'OpenGL.GL.APPLE'
glBufferParameteriAPPLE = <OpenGL.platform.baseplatform.glBufferParameteriAPPLE object at 0x77cc610>
glFlushMappedBufferRangeAPPLE = <OpenGL.platform.baseplatform.glFlushMappedBufferRangeAPPLE object at 0x77cc650>