| | '''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 ) |
| |
|
| | |
| | glElementPointerAPPLE=wrapper.wrapper(glElementPointerAPPLE).setInputArraySize( |
| | 'pointer', None |
| | ) |
| | |
| | |
| | glMultiDrawElementArrayAPPLE=wrapper.wrapper(glMultiDrawElementArrayAPPLE).setInputArraySize( |
| | 'count', None |
| | ).setInputArraySize( |
| | 'first', None |
| | ) |
| | |
| | |
| | glMultiDrawRangeElementArrayAPPLE=wrapper.wrapper(glMultiDrawRangeElementArrayAPPLE).setInputArraySize( |
| | 'count', None |
| | ).setInputArraySize( |
| | 'first', None |
| | ) |
| | |
| |
|