'''OpenGL extension EXT.vertex_array This module customises the behaviour of the OpenGL.raw.GL.EXT.vertex_array to provide a more Python-friendly API Overview (from the spec) This extension adds the ability to specify multiple geometric primitives with very few subroutine calls. Instead of calling an OpenGL procedure to pass each individual vertex, normal, or color, separate arrays of vertexes, normals, and colors are prespecified, and are used to define a sequence of primitives (all of the same type) when a single call is made to DrawArraysEXT. A stride mechanism is provided so that an application can choose to keep all vertex data staggered in a single array, or sparsely in separate arrays. Single-array storage may optimize performance on some implementations. This extension also supports the rendering of individual array elements, each specified as an index into the enabled arrays. The official definition of this extension is available here: http://www.opengl.org/registry/specs/EXT/vertex_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.EXT.vertex_array import * from OpenGL.raw.GL.EXT.vertex_array import _EXTENSION_NAME def glInitVertexArrayEXT(): '''Return boolean indicating whether this extension is available''' from OpenGL import extensions return extensions.hasGLExtension( _EXTENSION_NAME ) # INPUT glColorPointerEXT.pointer size not checked against 'size,type,stride,count' glColorPointerEXT=wrapper.wrapper(glColorPointerEXT).setInputArraySize( 'pointer', None ) # INPUT glEdgeFlagPointerEXT.pointer size not checked against 'stride,count' glEdgeFlagPointerEXT=wrapper.wrapper(glEdgeFlagPointerEXT).setInputArraySize( 'pointer', None ) glGetPointervEXT=wrapper.wrapper(glGetPointervEXT).setOutput( 'params',size=(1,),orPassIn=True ) # INPUT glIndexPointerEXT.pointer size not checked against 'type,stride,count' glIndexPointerEXT=wrapper.wrapper(glIndexPointerEXT).setInputArraySize( 'pointer', None ) # INPUT glNormalPointerEXT.pointer size not checked against 'type,stride,count' glNormalPointerEXT=wrapper.wrapper(glNormalPointerEXT).setInputArraySize( 'pointer', None ) # INPUT glTexCoordPointerEXT.pointer size not checked against 'size,type,stride,count' glTexCoordPointerEXT=wrapper.wrapper(glTexCoordPointerEXT).setInputArraySize( 'pointer', None ) # INPUT glVertexPointerEXT.pointer size not checked against 'size,type,stride,count' glVertexPointerEXT=wrapper.wrapper(glVertexPointerEXT).setInputArraySize( 'pointer', None ) ### END AUTOGENERATED SECTION