Download lib/python3.9/site-packages/OpenGL/GL/APPLE/row_bytes.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 2.35 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/APPLE/row_bytes.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/site-packages/OpenGL/GL/APPLE/row_bytes.py
-
curl -L -o row_bytes.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/APPLE/row_bytes.py
2.35 kB
| '''OpenGL extension APPLE.row_bytes | |
| This module customises the behaviour of the | |
| OpenGL.raw.GL.APPLE.row_bytes to provide a more | |
| Python-friendly API | |
| Overview (from the spec) | |
| The APPLE_row_bytes extension was developed to relax the limitations | |
| within GL regarding the packing and unpacking of pixel data from | |
| arbitrary arrangements in memory. | |
| Prior to this extension, similar, albeit more restrictive, functionality | |
| existed in GL using pixel storage modes for unpacking, packing, and | |
| alignment. The limitation of the existing mechanism lies primarily in how | |
| packing or unpacking of data is specified with pixel atomicity rather than | |
| basic machine units. To some extent, this pixel granularity can be | |
| overcome using pixel storage modes GL_UNPACK_ALIGNMENT and | |
| GL_PACK_ALIGNMENT. Both of these parameters are specified in basic | |
| machine units but their range of possible values is restricted and even | |
| then they do not allow for the packing and unpacking of pixel data in a | |
| fully arbitrary manner. | |
| Consider this simple example: | |
| Consider a column of pixels in memory. The pixels are of GL_RGB | |
| format and GL_UNSIGNED_BYTE type resulting in 3 bytes per pixel. | |
| Now consider that this column of pixel data was arranged in memory | |
| such that each row of the image (in this case each pixel) has two | |
| bytes padding or space between them. | |
| Each row of 1 pixel then has 5 bytes. An attempting to express this | |
| memory arrangement with existing pixel storage semantics would | |
| naturally start with a GL_UNPACK_ROW_LENGTH of 1 because there is | |
| one pixel per row. However, no valid value of GL_UNPACK_ALIGNMENT, | |
| 1, 2, 4, or 8, will allow the proper row padding to express this | |
| memory arrangement. | |
| The official definition of this extension is available here: | |
| http://www.opengl.org/registry/specs/APPLE/row_bytes.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.row_bytes import * | |
| from OpenGL.raw.GL.APPLE.row_bytes import _EXTENSION_NAME | |
| def glInitRowBytesAPPLE(): | |
| '''Return boolean indicating whether this extension is available''' | |
| from OpenGL import extensions | |
| return extensions.hasGLExtension( _EXTENSION_NAME ) | |
| ### END AUTOGENERATED SECTION |