OpenGL.raw.GL.ARB.fragment_program | index /build/buildd/pyopengl-3.0.0~b6/OpenGL/raw/GL/ARB/fragment_program.py |
OpenGL extension ARB.fragment_program
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://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_program.txt
Automatically generated by the get_gl_extensions script, do not edit!
Modules | ||||||
|
Functions | ||
|
Data | ||
EXTENSION_NAME = 'GL_ARB_fragment_program' GL_FRAGMENT_PROGRAM_ARB = GL_FRAGMENT_PROGRAM_ARB GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB GL_MAX_TEXTURE_COORDS_ARB = GL_MAX_TEXTURE_COORDS_ARB GL_MAX_TEXTURE_IMAGE_UNITS_ARB = GL_MAX_TEXTURE_IMAGE_UNITS_ARB GL_PROGRAM_ALU_INSTRUCTIONS_ARB = GL_PROGRAM_ALU_INSTRUCTIONS_ARB GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB GL_PROGRAM_TEX_INDIRECTIONS_ARB = GL_PROGRAM_TEX_INDIRECTIONS_ARB GL_PROGRAM_TEX_INSTRUCTIONS_ARB = GL_PROGRAM_TEX_INSTRUCTIONS_ARB __file__ = '/build/buildd/pyopengl-3.0.0~b6/OpenGL/raw/GL/ARB/fragment_program.py' __name__ = 'OpenGL.raw.GL.ARB.fragment_program' |