'''OpenGL extension NV.draw_instanced This module customises the behaviour of the OpenGL.raw.GLES2.NV.draw_instanced 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. This extension introduces two draw calls which are conceptually equivalent to a series of draw calls. Each conceptual call in this series is considered an "instance" of the actual draw call. This extension also introduces a read-only built-in variable to GLSL which contains the "instance ID." This variable initially contains 0, but increases by one after each conceptual draw call. By using the instance ID or multiples thereof as an index into a uniform array containing transform data, vertex shaders can draw multiple instances of an object with a single draw call. The official definition of this extension is available here: http://www.opengl.org/registry/specs/NV/draw_instanced.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.draw_instanced import * from OpenGL.raw.GLES2.NV.draw_instanced import _EXTENSION_NAME def glInitDrawInstancedNV(): '''Return boolean indicating whether this extension is available''' from OpenGL import extensions return extensions.hasGLExtension( _EXTENSION_NAME ) # INPUT glDrawElementsInstancedNV.indices size not checked against 'count,type' glDrawElementsInstancedNV=wrapper.wrapper(glDrawElementsInstancedNV).setInputArraySize( 'indices', None ) ### END AUTOGENERATED SECTION