Download lib/python3.9/site-packages/OpenGL/GL/ARB/fragment_program.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 5 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/ARB/fragment_program.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/site-packages/OpenGL/GL/ARB/fragment_program.py
-
curl -L -o fragment_program.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/ARB/fragment_program.py
5 kB
| '''OpenGL extension ARB.fragment_program | |
| This module customises the behaviour of the | |
| OpenGL.raw.GL.ARB.fragment_program to provide a more | |
| Python-friendly API | |
| Overview (from the spec) | |
| Unextended OpenGL mandates a certain set of configurable per- | |
| fragment computations defining texture application, texture | |
| environment, color sum, and fog operations. Several extensions have | |
| added further per-fragment computations to OpenGL. For example, | |
| extensions have defined new texture environment capabilities | |
| (ARB_texture_env_add, ARB_texture_env_combine, ARB_texture_env_dot3, | |
| ARB_texture_env_crossbar), per-fragment depth comparisons | |
| (ARB_depth_texture, ARB_shadow, ARB_shadow_ambient, | |
| EXT_shadow_funcs), per-fragment lighting (EXT_fragment_lighting, | |
| EXT_light_texture), and environment mapped bump mapping | |
| (ATI_envmap_bumpmap). | |
| Each such extension adds a small set of relatively inflexible per- | |
| fragment computations. | |
| This inflexibility is in contrast to the typical flexibility | |
| provided by the underlying programmable floating point engines | |
| (whether micro-coded fragment engines, DSPs, or CPUs) that are | |
| traditionally used to implement OpenGL's texturing computations. | |
| The purpose of this extension is to expose to the OpenGL application | |
| writer a significant degree of per-fragment programmability for | |
| computing fragment parameters. | |
| For the purposes of discussing this extension, a fragment program is | |
| a sequence of floating-point 4-component vector operations that | |
| determines how a set of program parameters (not specific to an | |
| individual fragment) and an input set of per-fragment parameters are | |
| transformed to a set of per-fragment result parameters. | |
| The per-fragment computations for standard OpenGL given a particular | |
| set of texture and fog application modes (along with any state for | |
| extensions defining per-fragment computations) is, in essence, a | |
| fragment program. However, the sequence of operations is defined | |
| implicitly by the current OpenGL state settings rather than defined | |
| explicitly as a sequence of instructions. | |
| This extension provides an explicit mechanism for defining fragment | |
| program instruction sequences for application-defined fragment | |
| programs. In order to define such fragment programs, this extension | |
| defines a fragment programming model including a floating-point | |
| 4-component vector instruction set and a relatively large set of | |
| floating-point 4-component registers. | |
| The extension's fragment programming model is designed for efficient | |
| hardware implementation and to support a wide variety of fragment | |
| programs. By design, the entire set of existing fragment programs | |
| defined by existing OpenGL per-fragment computation extensions can | |
| be implemented using the extension's fragment programming model. | |
| The official definition of this extension is available here: | |
| http://www.opengl.org/registry/specs/ARB/fragment_program.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.fragment_program import * | |
| from OpenGL.raw.GL.ARB.fragment_program import _EXTENSION_NAME | |
| def glInitFragmentProgramARB(): | |
| '''Return boolean indicating whether this extension is available''' | |
| from OpenGL import extensions | |
| return extensions.hasGLExtension( _EXTENSION_NAME ) | |
| # INPUT glProgramStringARB.string size not checked against len | |
| glProgramStringARB=wrapper.wrapper(glProgramStringARB).setInputArraySize( | |
| 'string', None | |
| ) | |
| # INPUT glDeleteProgramsARB.programs size not checked against n | |
| glDeleteProgramsARB=wrapper.wrapper(glDeleteProgramsARB).setInputArraySize( | |
| 'programs', None | |
| ) | |
| glGenProgramsARB=wrapper.wrapper(glGenProgramsARB).setOutput( | |
| 'programs',size=lambda x:(x,),pnameArg='n',orPassIn=True | |
| ) | |
| glProgramEnvParameter4dvARB=wrapper.wrapper(glProgramEnvParameter4dvARB).setInputArraySize( | |
| 'params', 4 | |
| ) | |
| glProgramEnvParameter4fvARB=wrapper.wrapper(glProgramEnvParameter4fvARB).setInputArraySize( | |
| 'params', 4 | |
| ) | |
| glProgramLocalParameter4dvARB=wrapper.wrapper(glProgramLocalParameter4dvARB).setInputArraySize( | |
| 'params', 4 | |
| ) | |
| glProgramLocalParameter4fvARB=wrapper.wrapper(glProgramLocalParameter4fvARB).setInputArraySize( | |
| 'params', 4 | |
| ) | |
| glGetProgramEnvParameterdvARB=wrapper.wrapper(glGetProgramEnvParameterdvARB).setOutput( | |
| 'params',size=(4,),orPassIn=True | |
| ) | |
| glGetProgramEnvParameterfvARB=wrapper.wrapper(glGetProgramEnvParameterfvARB).setOutput( | |
| 'params',size=(4,),orPassIn=True | |
| ) | |
| glGetProgramLocalParameterdvARB=wrapper.wrapper(glGetProgramLocalParameterdvARB).setOutput( | |
| 'params',size=(4,),orPassIn=True | |
| ) | |
| glGetProgramLocalParameterfvARB=wrapper.wrapper(glGetProgramLocalParameterfvARB).setOutput( | |
| 'params',size=(4,),orPassIn=True | |
| ) | |
| glGetProgramivARB=wrapper.wrapper(glGetProgramivARB).setOutput( | |
| 'params',size=(1,),orPassIn=True | |
| ) | |
| # OUTPUT glGetProgramStringARB.string COMPSIZE(target,pname) | |
| ### END AUTOGENERATED SECTION | |