| | '''OpenGL extension NV.fragment_program4 |
| | |
| | This module customises the behaviour of the |
| | OpenGL.raw.GL.NV.fragment_program4 to provide a more |
| | Python-friendly API |
| | |
| | Overview (from the spec) |
| | |
| | This extension builds on the common assembly instruction set |
| | infrastructure provided by NV_gpu_program4, adding fragment |
| | program-specific features. |
| | |
| | This extension provides interpolation modifiers to fragment program |
| | attributes allowing programs to specify that specified attributes be |
| | flat-shaded (constant over a primitive), centroid-sampled (multisample |
| | rendering), or interpolated linearly in screen space. The set of input |
| | and output bindings provided includes all bindings supported by |
| | ARB_fragment_program. Additional input bindings are provided to determine |
| | whether fragments were generated by front- or back-facing primitives |
| | ("fragment.facing"), to identify the individual primitive used to generate |
| | the fragment ("primitive.id"), and to determine distances to user clip |
| | planes ("fragment.clip[n]"). Additionally generic input attributes allow |
| | a fragment program to receive a greater number of attributes from previous |
| | pipeline stages than possible using only the pre-defined fixed-function |
| | attributes. |
| | |
| | By and large, programs written to ARB_fragment_program can be ported |
| | directly by simply changing the program header from "!!ARBfp1.0" to |
| | "!!NVfp4.0", and then modifying instructions to take advantage of the |
| | expanded feature set. There are a small number of areas where this |
| | extension is not a functional superset of previous fragment program |
| | extensions, which are documented in the NV_gpu_program4 specification. |
| | |
| | The official definition of this extension is available here: |
| | http://www.opengl.org/registry/specs/NV/fragment_program4.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.fragment_program4 import * |
| | from OpenGL.raw.GL.NV.fragment_program4 import _EXTENSION_NAME |
| |
|
| | def glInitFragmentProgram4NV(): |
| | '''Return boolean indicating whether this extension is available''' |
| | from OpenGL import extensions |
| | return extensions.hasGLExtension( _EXTENSION_NAME ) |
| |
|
| |
|
| | |