OpenGL.GL.ARB.vertex_attrib_binding
OpenGL extension ARB.vertex_attrib_binding
This module customises the behaviour of the
OpenGL.raw.GL.ARB.vertex_attrib_binding to provide a more
Python-friendly API
Overview (from the spec)
OpenGL currently supports (at least) 16 vertex attributes and 16 vertex
buffer bindings, with a fixed mapping between vertex attributes and
vertex buffer bindings. This extension allows the application to change
the mapping between attributes and bindings, which can make it more
efficient to update vertex buffer bindings for interleaved vertex formats
where many attributes share the same buffer.
This extension also separates the vertex binding update from the vertex
attribute format update, which saves applications the effort of
redundantly specifying the same format state over and over.
Conceptually, this extension splits the state for generic vertex attribute
arrays into:
- An array of vertex buffer binding points, each of which specifies:
- a bound buffer object,
- a starting offset for the vertex attribute data in that buffer object,
- a stride used by all attributes using that binding point, and
- a frequency divisor used by all attributes using that binding point.
- An array of generic vertex attribute format information records, each of which specifies:
- a reference to one of the new buffer binding points above,
- a component count and format, and a normalization flag for the attribute data, and
- the offset of the attribute data relative to the base offset of each vertex found at the associated binding point.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/vertex_attrib_binding.txt
Functions
Constants
GL_MAX_VERTEX_ATTRIB_BINDINGS (33498)
GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET (33497)
GL_VERTEX_ATTRIB_BINDING (33492)
GL_VERTEX_ATTRIB_RELATIVE_OFFSET (33493)
GL_VERTEX_BINDING_DIVISOR (33494)
GL_VERTEX_BINDING_OFFSET (33495)
GL_VERTEX_BINDING_STRIDE (33496)