| | '''OpenGL extension ARB.indirect_parameters |
| | |
| | This module customises the behaviour of the |
| | OpenGL.raw.GL.ARB.indirect_parameters to provide a more |
| | Python-friendly API |
| | |
| | Overview (from the spec) |
| | |
| | OpenGL 4.3 (with the introduction of the GL_ARB_multi_draw_indirect |
| | extension) enhanced the ability of OpenGL to allow a large sets of |
| | parameters for indirect draws (introduced with OpenGL 4.0) into a buffer |
| | object and dispatch the entire list with one API call. This allows, for |
| | example, a shader (such as a compute shader via shader storage buffers, |
| | or a geometry shader via transform feedback) to produce lists of draw |
| | commands that can then be consumed by OpenGL without a server-client |
| | round trip. However, when a variable and potentially unknown number of |
| | draws are produced by such a shader, it becomes difficult to know how |
| | many draws are in the output array(s). Applications must resort to |
| | techniques such as transform feedback primitive queries, or mapping |
| | buffers containing the content of atomic counters, which can cause stalls |
| | or bubbles in the OpenGL pipeline. |
| | |
| | This extension introduces the concept of the "parameter buffer", which |
| | is a target allowing buffers to store parameters for certain drawing |
| | commands. Also in this extension, new variants of MultiDrawArraysIndirect |
| | and MultiDrawElementsIndirect are introduced that source some of their |
| | parameters from this buffer. Further commands could potentially be |
| | introduced that source other parameters from a buffer. |
| | |
| | The official definition of this extension is available here: |
| | http://www.opengl.org/registry/specs/ARB/indirect_parameters.txt |
| | ''' |
| | from OpenGL import platform, constant, arrays |
| | from OpenGL import extensions, wrapper |
| | import ctypes |
| | from OpenGL.raw.GL import _types, _glgets |
| | from OpenGL.raw.GL.ARB.indirect_parameters import * |
| | from OpenGL.raw.GL.ARB.indirect_parameters import _EXTENSION_NAME |
| |
|
| | def glInitIndirectParametersARB(): |
| | '''Return boolean indicating whether this extension is available''' |
| | from OpenGL import extensions |
| | return extensions.hasGLExtension( _EXTENSION_NAME ) |
| |
|
| |
|
| | |