glVertexBindingDivisor

From OpenGL Reference
Jump to navigation Jump to search

Modify the rate at which generic vertex attributes

   advance.

C Specification[edit]

void glVertexBindingDivisor( GLuint bindingindex, GLuint divisor );
void glVertexArrayBindingDivisor( GLuint vaobj, GLuint bindingindex, GLuint divisor );


Parameters[edit]

vaobj - Specifies the name of the vertex array object for glVertexArrayBindingDivisor function.
bindingindex - The index of the binding whose divisor to modify.
divisor - The new value for the instance step rate to apply.


Description[edit]

 glVertexBindingDivisor and glVertexArrayBindingDivisor modify the rate at which generic vertex attributes advance when rendering multiple instances of primitives in a single draw command. If divisor is zero, the attributes using the buffer bound to bindingindex advance once per vertex. If divisor is non-zero, the attributes advance once per divisor instances of the set(s) of vertices being rendered. An attribute is referred to asinstancedif the corresponding divisor value is non-zero.

 glVertexBindingDivisor uses currently bound vertex array object , whereas glVertexArrayBindingDivisor updates state of the vertex array object with ID vaobj .


Errors[edit]

 GL_INVALID_VALUE is generated if bindingindex is greater than or equal to the value of GL_MAX_VERTEX_ATTRIB_BINDINGS .

 GL_INVALID_OPERATION by glVertexBindingDivisor is generated if no vertex array object is bound.

 GL_INVALID_OPERATION is generated by glVertexArrayBindingDivisor if vaobj is not the name of an existing vertex array object.


Associated Gets[edit]

 glGet with arguments GL_MAX_VERTEX_ATTRIB_BINDINGS , GL_VERTEX_BINDING_DIVISOR .


Version Support[edit]

 glVertexArrayBindingDivisor  4.5+
 glVertexBindingDivisor  4.3+

See Also[edit]

 glBindVertexBuffer , glVertexAttribBinding , glVertexAttribPointer , glVertexBindingDivisor , glVertexAttribPointer .


Copyright[edit]

Copyright© 2013-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/.