OpenGL extension ARB.shader_draw_parameters
This module customises the behaviour of the OpenGL.raw.GL.ARB.shader_draw_parameters to provide a more Python-friendly API
Overview (from the spec)
In unextended GL, vertex shaders have inputs named gl_VertexID and gl_InstanceID, which contain, respectively the index of the vertex and instance. The value of gl_VertexID is the implicitly passed index of the vertex being processed, which includes the value of baseVertex, for those commands that accept it. Meanwhile, gl_InstanceID is the integer index of the current instance being processed, but, even for commands that accept a baseInstance parameter, it does not include the value of this argument. Furthermore, the equivalents to these variables in other graphics APIs do not necessarily follow these conventions. The reason for this inconsistency is that there are legitimate use cases for both inclusion and exclusion of the baseVertex or baseInstance parameters in gl_VertexID and gl_InstanceID, respectively.
Rather than change the semantics of either built-in variable, this extension adds two new built-in variables to the GL shading language, gl_BaseVertexARB and gl_BaseInstanceARB, which contain the values passed in the baseVertex and baseInstance parameters, respectively. Shaders provided by the application may use these variables to offset gl_VertexID or gl_InstanceID if desired, or use them for any other purpose.
Additionally, this extension adds a further built-in variable, gl_DrawID to the shading language. This variable contains the index of the draw currently being processed by a Multi* variant of a drawing command (such as MultiDrawElements or MultiDrawArraysIndirect).
The official definition of this extension is available here: