'''OpenGL extension NV.parameter_buffer_object2 This module customises the behaviour of the OpenGL.raw.GL.NV.parameter_buffer_object2 to provide a more Python-friendly API Overview (from the spec) This extension builds on the NV_parameter_buffer_object extension to provide additional flexibility in sourcing data from buffer objects. The original NV_parameter_buffer_object (PaBO) extension provided the ability to bind buffer objects to a set of numbered binding points and access them in assembly programs as though they were arrays of 32-bit scalars (via the BUFFER variable type) or arrays of four-component vectors with 32-bit scalar components (via the BUFFER4 variable type). However, the functionality it provided had some significant limits on flexibility. Since any given buffer binding point could be used either as a BUFFER or BUFFER4, but not both, programs couldn't do both 32- and 128-bit fetches from a single binding point. Additionally, No support was provided for 8-, 16-, or 64-bit fetches, though they could be emulated using a larger loads, with bitfield operations and/or write masking to put components in the right places. Indexing was supported, but strides were limited to 4- and 16-byte multiples, depending on whether BUFFER or BUFFER4 is used. This new extension provides the buffer variable declaration type CBUFFER to specify a buffer that is treated as an array of bytes, rather than an array of words or vectors. The LDC instruction allows programs to extract a vector of data from a CBUFFER variable, using a size and component count specified in the opcode modifier. 1-, 2-, and 4-component fetches are supported. The LDC instruction supports byte offsets using normal array indexing mechanisms; both run-time and immediate offsets are supported. Offsets used for a buffer object fetch are required to be aligned to the size of the fetch (1, 2, 4, 8, or 16 bytes). The official definition of this extension is available here: http://www.opengl.org/registry/specs/NV/parameter_buffer_object2.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.NV.parameter_buffer_object2 import * from OpenGL.raw.GL.NV.parameter_buffer_object2 import _EXTENSION_NAME def glInitParameterBufferObject2NV(): '''Return boolean indicating whether this extension is available''' from OpenGL import extensions return extensions.hasGLExtension( _EXTENSION_NAME ) ### END AUTOGENERATED SECTION