Download lib/python3.9/site-packages/OpenGL/GL/EXT/paletted_texture.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 3.57 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/EXT/paletted_texture.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/site-packages/OpenGL/GL/EXT/paletted_texture.py
-
curl -L -o paletted_texture.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/EXT/paletted_texture.py
3.57 kB
| '''OpenGL extension EXT.paletted_texture | |
| This module customises the behaviour of the | |
| OpenGL.raw.GL.EXT.paletted_texture to provide a more | |
| Python-friendly API | |
| Overview (from the spec) | |
| EXT_paletted_texture defines new texture formats and new calls to | |
| support the use of paletted textures in OpenGL. A paletted texture is | |
| defined by giving both a palette of colors and a set of image data which | |
| is composed of indices into the palette. The paletted texture cannot | |
| function properly without both pieces of information so it increases the | |
| work required to define a texture. This is offset by the fact that the | |
| overall amount of texture data can be reduced dramatically by factoring | |
| redundant information out of the logical view of the texture and placing | |
| it in the palette. | |
| Paletted textures provide several advantages over full-color textures: | |
| * As mentioned above, the amount of data required to define a | |
| texture can be greatly reduced over what would be needed for full-color | |
| specification. For example, consider a source texture that has only 256 | |
| distinct colors in a 256 by 256 pixel grid. Full-color representation | |
| requires three bytes per pixel, taking 192K of texture data. By putting | |
| the distinct colors in a palette only eight bits are required per pixel, | |
| reducing the 192K to 64K plus 768 bytes for the palette. Now add an | |
| alpha channel to the texture. The full-color representation increases | |
| by 64K while the paletted version would only increase by 256 bytes. | |
| This reduction in space required is particularly important for hardware | |
| accelerators where texture space is limited. | |
| * Paletted textures allow easy reuse of texture data for images | |
| which require many similar but slightly different colored objects. | |
| Consider a driving simulation with heavy traffic on the road. Many of | |
| the cars will be similar but with different color schemes. If | |
| full-color textures are used a separate texture would be needed for each | |
| color scheme, while paletted textures allow the same basic index data to | |
| be reused for each car, with a different palette to change the final | |
| colors. | |
| * Paletted textures also allow use of all the palette tricks | |
| developed for paletted displays. Simple animation can be done, along | |
| with strobing, glowing and other palette-cycling effects. All of these | |
| techniques can enhance the visual richness of a scene with very little | |
| data. | |
| The official definition of this extension is available here: | |
| http://www.opengl.org/registry/specs/EXT/paletted_texture.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.paletted_texture import * | |
| from OpenGL.raw.GL.EXT.paletted_texture import _EXTENSION_NAME | |
| def glInitPalettedTextureEXT(): | |
| '''Return boolean indicating whether this extension is available''' | |
| from OpenGL import extensions | |
| return extensions.hasGLExtension( _EXTENSION_NAME ) | |
| # INPUT glColorTableEXT.table size not checked against 'format,type,width' | |
| glColorTableEXT=wrapper.wrapper(glColorTableEXT).setInputArraySize( | |
| 'table', None | |
| ) | |
| # OUTPUT glGetColorTableEXT.data COMPSIZE(target,format,type) | |
| glGetColorTableParameterivEXT=wrapper.wrapper(glGetColorTableParameterivEXT).setOutput( | |
| 'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True | |
| ) | |
| glGetColorTableParameterfvEXT=wrapper.wrapper(glGetColorTableParameterfvEXT).setOutput( | |
| 'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True | |
| ) | |
| ### END AUTOGENERATED SECTION |