'''OpenGL extension NV.instanced_arrays

This module customises the behaviour of the 
OpenGL.raw.GLES2.NV.instanced_arrays to provide a more 
Python-friendly API

Overview (from the spec)
	
	A common use case in GL for some applications is to be able to
	draw the same object, or groups of similar objects that share
	vertex data, primitive count and type, multiple times.  This
	extension provides a means of accelerating such use cases while
	limiting the number of required API calls, and keeping the amount
	of duplicate data to a minimum.
	
	In particular, this extension specifies an alternative to the
	read-only shader variable introduced by NV_draw_instanced.  It
	uses the same draw calls introduced by that extension, but
	redefines them so that a vertex shader can instead use vertex
	array attributes as a source of instance data.
	
	This extension introduces an array "divisor" for generic
	vertex array attributes, which when non-zero specifies that the
	attribute is "instanced."  An instanced attribute does not
	advance per-vertex as usual, but rather after every <divisor>
	conceptual draw calls.
	
	(Attributes which aren't instanced are repeated in their entirety
	for every conceptual draw call.)
	
	By specifying transform data in an instanced attribute or series
	of instanced attributes, vertex shaders can, in concert with the
	instancing draw calls, draw multiple instances of an object with
	one draw call.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/NV/instanced_arrays.txt
'''
from OpenGL import platform, constant, arrays
from OpenGL import extensions, wrapper
import ctypes
from OpenGL.raw.GLES2 import _types, _glgets
from OpenGL.raw.GLES2.NV.instanced_arrays import *
from OpenGL.raw.GLES2.NV.instanced_arrays import _EXTENSION_NAME

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


### END AUTOGENERATED SECTION