'''OpenGL extension APPLE.element_array

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

Overview (from the spec)
	
	This extension provides facilities to improve DrawElements style vertex
	indices submission performance by allowing index arrays.  Using this
	extension these arrays can be contained inside a vertex array range and
	thus pulled directly by the graphics processor, avoiding the CPU overhead
	of touching the index data.
	
	This extension is most useful when used in conjunction with the
	APPLE_vertex_array_range extension. APPLE_vertex_array_range provides an
	interface for storing vertex array data. In cases where large amounts of
	vertex data are in use, the index data used to construct primitives
	(typically as passed to the GL through DrawElements) can impose a
	significant bandwidth burden. APPLE_element_array allows the application to
	specify independent arrays of elements, which can then be cached using
	APPLE_vertex_array_range.  In effect this creates a more orthogonal
	interface for both vertex indices and data.
	

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

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

# INPUT glElementPointerAPPLE.pointer size not checked against 'type'
glElementPointerAPPLE=wrapper.wrapper(glElementPointerAPPLE).setInputArraySize(
    'pointer', None
)
# INPUT glMultiDrawElementArrayAPPLE.count size not checked against primcount
# INPUT glMultiDrawElementArrayAPPLE.first size not checked against primcount
glMultiDrawElementArrayAPPLE=wrapper.wrapper(glMultiDrawElementArrayAPPLE).setInputArraySize(
    'count', None
).setInputArraySize(
    'first', None
)
# INPUT glMultiDrawRangeElementArrayAPPLE.count size not checked against primcount
# INPUT glMultiDrawRangeElementArrayAPPLE.first size not checked against primcount
glMultiDrawRangeElementArrayAPPLE=wrapper.wrapper(glMultiDrawRangeElementArrayAPPLE).setInputArraySize(
    'count', None
).setInputArraySize(
    'first', None
)
### END AUTOGENERATED SECTION
