'''OpenGL extension ARB.draw_indirect

This module customises the behaviour of the 
OpenGL.raw.GL.ARB.draw_indirect to provide a more 
Python-friendly API

Overview (from the spec)
	
	This extension provides a mechanism for supplying the arguments to a 
	DrawArraysInstanced or DrawElementsInstancedBaseVertex from buffer object
	memory. This is not particularly useful for applications where the CPU 
	knows the values of the arguments beforehand, but is helpful when the 
	values will be generated on the GPU through any mechanism that can write
	to a buffer object including image stores, atomic counters, or compute
	interop. This allows the GPU to consume these arguments without a round-
	trip to the CPU or the expensive synchronization that would involve. This
	is similar to the DrawTransformFeedbackEXT command from 
	EXT_transform_feedback2, but offers much more flexibility in both 
	generating the arguments and in the type of Draws that can be accomplished.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/draw_indirect.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.draw_indirect import *
from OpenGL.raw.GL.ARB.draw_indirect import _EXTENSION_NAME

def glInitDrawIndirectARB():
    '''Return boolean indicating whether this extension is available'''
    from OpenGL import extensions
    return extensions.hasGLExtension( _EXTENSION_NAME )


### END AUTOGENERATED SECTION