Download lib/python3.9/site-packages/OpenGL/GL/NV/parameter_buffer_object2.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 2.58 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/NV/parameter_buffer_object2.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/site-packages/OpenGL/GL/NV/parameter_buffer_object2.py
-
curl -L -o parameter_buffer_object2.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/NV/parameter_buffer_object2.py
2.58 kB
| '''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 |