Download lib/python3.9/site-packages/OpenGL/GL/ARB/gpu_shader5.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 4.13 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/ARB/gpu_shader5.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/site-packages/OpenGL/GL/ARB/gpu_shader5.py
-
curl -L -o gpu_shader5.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/ARB/gpu_shader5.py
4.13 kB
| '''OpenGL extension ARB.gpu_shader5 | |
| This module customises the behaviour of the | |
| OpenGL.raw.GL.ARB.gpu_shader5 to provide a more | |
| Python-friendly API | |
| Overview (from the spec) | |
| This extension provides a set of new features to the OpenGL Shading | |
| Language and related APIs to support capabilities of new GPUs, extending | |
| the capabilities of version 1.50 of the OpenGL Shading Language. Shaders | |
| using the new functionality provided by this extension should enable this | |
| functionality via the construct | |
| #extension GL_ARB_gpu_shader5 : require (or enable) | |
| This extension provides a variety of new features for all shader types, | |
| including: | |
| * support for indexing into arrays of samplers using non-constant | |
| indices, as long as the index doesn't diverge if multiple shader | |
| invocations are run in lockstep; | |
| * extending the uniform block capability of OpenGL 3.1 and 3.2 to allow | |
| shaders to index into an array of uniform blocks; | |
| * support for implicitly converting signed integer types to unsigned | |
| types, as well as more general implicit conversion and function | |
| overloading infrastructure to support new data types introduced by | |
| other extensions; | |
| * a "precise" qualifier allowing computations to be carried out exactly | |
| as specified in the shader source to avoid optimization-induced | |
| invariance issues (which might cause cracking in tessellation); | |
| * new built-in functions supporting: | |
| * fused floating-point multiply-add operations; | |
| * splitting a floating-point number into a significand and exponent | |
| (frexp), or building a floating-point number from a significand and | |
| exponent (ldexp); | |
| * integer bitfield manipulation, including functions to find the | |
| position of the most or least significant set bit, count the number | |
| of one bits, and bitfield insertion, extraction, and reversal; | |
| * packing and unpacking vectors of small fixed-point data types into a | |
| larger scalar; and | |
| * convert floating-point values to or from their integer bit | |
| encodings; | |
| * extending the textureGather() built-in functions provided by | |
| ARB_texture_gather: | |
| * allowing shaders to select any single component of a multi-component | |
| texture to produce the gathered 2x2 footprint; | |
| * allowing shaders to perform a per-sample depth comparison when | |
| gathering the 2x2 footprint using for shadow sampler types; | |
| * allowing shaders to use arbitrary offsets computed at run-time to | |
| select a 2x2 footprint to gather from; and | |
| * allowing shaders to use separate independent offsets for each of the | |
| four texels returned, instead of requiring a fixed 2x2 footprint. | |
| This extension also provides some new capabilities for individual | |
| shader types, including: | |
| * support for instanced geometry shaders, where a geometry shader may be | |
| run multiple times for each primitive, including a built-in | |
| gl_InvocationID to identify the invocation number; | |
| * support for emitting vertices in a geometry program where each vertex | |
| emitted may be directed independently at a specified vertex stream (as | |
| provided by ARB_transform_feedback3), and where each shader output is | |
| associated with a stream; | |
| * support for reading a mask of covered samples in a fragment shader; | |
| and | |
| * support for interpolating a fragment shader input at a programmable | |
| offset relative to the pixel center, a programmable sample number, or | |
| at the centroid. | |
| The official definition of this extension is available here: | |
| http://www.opengl.org/registry/specs/ARB/gpu_shader5.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.ARB.gpu_shader5 import * | |
| from OpenGL.raw.GL.ARB.gpu_shader5 import _EXTENSION_NAME | |
| def glInitGpuShader5ARB(): | |
| '''Return boolean indicating whether this extension is available''' | |
| from OpenGL import extensions | |
| return extensions.hasGLExtension( _EXTENSION_NAME ) | |
| ### END AUTOGENERATED SECTION |