OpenGL.GL.NV.register_combiners
index
/home/mcfletch/pylive/OpenGL/GL/NV/register_combiners.py

OpenGL extension NV.register_combiners
 
This module customises the behaviour of the 
OpenGL.raw.GL.NV.register_combiners to provide a more 
Python-friendly API
 
Overview (from the spec)
        
        NVIDIA's next-generation graphics processor and its derivative
        designs support an extremely configurable mechanism know as "register
        combiners" for computing fragment colors.
        
        The register combiner mechanism is a significant redesign of NVIDIA's
        original TNT combiner mechanism as introduced by NVIDIA's RIVA
        TNT graphics processor.  Familiarity with the TNT combiners will
        help the reader appreciate the greatly enhanced register combiners
        functionality (see the NV_texture_env_combine4 OpenGL extension
        specification for this background).  The register combiner mechanism
        has the following enhanced functionality: 
        
          The numeric range of combiner computations is from [-1,1]
          (instead of TNT's [0,1] numeric range),
        
          The set of available combiner inputs is expanded to include the
          secondary color, fog color, fog factor, and a second combiner
          constant color (TNT's available combiner inputs consist of
          only zero, a single combiner constant color, the primary color,
          texture 0, texture 1, and, in the case of combiner 1, the result
          of combiner 0).
        
          Each combiner variable input can be independently scaled and
          biased into several possible numeric ranges (TNT can only
          complement combiner inputs).
        
          Each combiner stage computes three distinct outputs (instead
          TNT's single combiner output).
        
          The output operations include support for computing dot products
          (TNT has no support for computing dot products).
        
          After each output operation, there is a configurable scale and bias
          applied (TNT's combiner operations builds in a scale and/or bias
          into some of its combiner operations).
        
          Each input variable for each combiner stage is fetched from any
          entry in a combiner register set.  Moreover, the outputs of each
          combiner stage are written into the register set of the subsequent
          combiner stage (TNT could only use the result from combiner 0 as
          a possible input to combiner 1; TNT lacks the notion of an
          input/output register set).
        
          The register combiner mechanism supports at least two general
          combiner stages and then a special final combiner stage appropriate
          for applying a color sum and fog computation (TNT provides two
          simpler combiner stages, and TNT's color sum and fog stages are
          hard-wired and not subsumed by the combiner mechanism as in register
          combiners).
        
        The register combiners fit into the OpenGL pipeline as a rasterization
        processing stage operating in parallel to the traditional OpenGL
        texture environment, color sum, AND fog application.  Enabling this
        extension bypasses OpenGL's existing texture environment, color
        sum, and fog application processing and instead use the register
        combiners.  The combiner and texture environment state is orthogonal
        so modifying combiner state does not change the traditional OpenGL
        texture environment state and the texture environment state is
        ignored when combiners are enabled.
        
        OpenGL application developers can use the register combiner mechanism
        for very sophisticated shading techniques.  For example, an
        approximation of Blinn's bump mapping technique can be achieved with
        the combiner mechanism.  Additionally, multi-pass shading models
        that require several passes with unextended OpenGL 1.2 functionality
        can be implemented in several fewer passes with register combiners.
 
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/NV/register_combiners.txt

 
Modules
       
OpenGL.arrays
OpenGL.constant
OpenGL.constants
ctypes
OpenGL.extensions
OpenGL.GL.glget
OpenGL.platform
OpenGL.wrapper

 
Data
        EXTENSION_NAME = 'GL_NV_register_combiners'
GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
GL_COLOR_SUM_CLAMP_NV = GL_COLOR_SUM_CLAMP_NV
GL_COMBINER0_NV = GL_COMBINER0_NV
GL_COMBINER1_NV = GL_COMBINER1_NV
GL_COMBINER2_NV = GL_COMBINER2_NV
GL_COMBINER3_NV = GL_COMBINER3_NV
GL_COMBINER4_NV = GL_COMBINER4_NV
GL_COMBINER5_NV = GL_COMBINER5_NV
GL_COMBINER6_NV = GL_COMBINER6_NV
GL_COMBINER7_NV = GL_COMBINER7_NV
GL_COMBINER_AB_DOT_PRODUCT_NV = GL_COMBINER_AB_DOT_PRODUCT_NV
GL_COMBINER_AB_OUTPUT_NV = GL_COMBINER_AB_OUTPUT_NV
GL_COMBINER_BIAS_NV = GL_COMBINER_BIAS_NV
GL_COMBINER_CD_DOT_PRODUCT_NV = GL_COMBINER_CD_DOT_PRODUCT_NV
GL_COMBINER_CD_OUTPUT_NV = GL_COMBINER_CD_OUTPUT_NV
GL_COMBINER_COMPONENT_USAGE_NV = GL_COMBINER_COMPONENT_USAGE_NV
GL_COMBINER_INPUT_NV = GL_COMBINER_INPUT_NV
GL_COMBINER_MAPPING_NV = GL_COMBINER_MAPPING_NV
GL_COMBINER_MUX_SUM_NV = GL_COMBINER_MUX_SUM_NV
GL_COMBINER_SCALE_NV = GL_COMBINER_SCALE_NV
GL_COMBINER_SUM_OUTPUT_NV = GL_COMBINER_SUM_OUTPUT_NV
GL_CONSTANT_COLOR0_NV = GL_CONSTANT_COLOR0_NV
GL_CONSTANT_COLOR1_NV = GL_CONSTANT_COLOR1_NV
GL_DISCARD_NV = GL_DISCARD_NV
GL_EXPAND_NEGATE_NV = GL_EXPAND_NEGATE_NV
GL_EXPAND_NORMAL_NV = GL_EXPAND_NORMAL_NV
GL_E_TIMES_F_NV = GL_E_TIMES_F_NV
GL_HALF_BIAS_NEGATE_NV = GL_HALF_BIAS_NEGATE_NV
GL_HALF_BIAS_NORMAL_NV = GL_HALF_BIAS_NORMAL_NV
GL_MAX_GENERAL_COMBINERS_NV = GL_MAX_GENERAL_COMBINERS_NV
GL_NUM_GENERAL_COMBINERS_NV = GL_NUM_GENERAL_COMBINERS_NV
GL_PRIMARY_COLOR_NV = GL_PRIMARY_COLOR_NV
GL_REGISTER_COMBINERS_NV = GL_REGISTER_COMBINERS_NV
GL_SCALE_BY_FOUR_NV = GL_SCALE_BY_FOUR_NV
GL_SCALE_BY_ONE_HALF_NV = GL_SCALE_BY_ONE_HALF_NV
GL_SCALE_BY_TWO_NV = GL_SCALE_BY_TWO_NV
GL_SECONDARY_COLOR_NV = GL_SECONDARY_COLOR_NV
GL_SIGNED_IDENTITY_NV = GL_SIGNED_IDENTITY_NV
GL_SIGNED_NEGATE_NV = GL_SIGNED_NEGATE_NV
GL_SPARE0_NV = GL_SPARE0_NV
GL_SPARE0_PLUS_SECONDARY_COLOR_NV = GL_SPARE0_PLUS_SECONDARY_COLOR_NV
GL_SPARE1_NV = GL_SPARE1_NV
GL_UNSIGNED_IDENTITY_NV = GL_UNSIGNED_IDENTITY_NV
GL_UNSIGNED_INVERT_NV = GL_UNSIGNED_INVERT_NV
GL_VARIABLE_A_NV = GL_VARIABLE_A_NV
GL_VARIABLE_B_NV = GL_VARIABLE_B_NV
GL_VARIABLE_C_NV = GL_VARIABLE_C_NV
GL_VARIABLE_D_NV = GL_VARIABLE_D_NV
GL_VARIABLE_E_NV = GL_VARIABLE_E_NV
GL_VARIABLE_F_NV = GL_VARIABLE_F_NV
GL_VARIABLE_G_NV = GL_VARIABLE_G_NV
__file__ = '/home/mcfletch/pylive/OpenGL/GL/NV/register_combiners.pyc'
__name__ = 'OpenGL.GL.NV.register_combiners'
__package__ = 'OpenGL.GL.NV'
glCombinerInputNV = <OpenGL.platform.baseplatform.glCombinerInputNV object at 0x797af50>
glCombinerOutputNV = <OpenGL.platform.baseplatform.glCombinerOutputNV object at 0x797afd0>
glCombinerParameterfNV = <OpenGL.platform.baseplatform.glCombinerParameterfNV object at 0x797ae10>
glCombinerParameterfvNV = <OpenGL.platform.baseplatform.glCombinerParameterfvNV object at 0x797ad50>
glCombinerParameteriNV = <OpenGL.platform.baseplatform.glCombinerParameteriNV object at 0x797af10>
glCombinerParameterivNV = <OpenGL.platform.baseplatform.glCombinerParameterivNV object at 0x797a9d0>
glFinalCombinerInputNV = <OpenGL.platform.baseplatform.glFinalCombinerInputNV object at 0x7980090>
glGetCombinerInputParameterfvNV = <OpenGL.platform.baseplatform.glGetCombinerInputParameterfvNV object at 0x7980110>
glGetCombinerInputParameterivNV = <OpenGL.platform.baseplatform.glGetCombinerInputParameterivNV object at 0x7980190>
glGetCombinerOutputParameterfvNV = <OpenGL.platform.baseplatform.glGetCombinerOutputParameterfvNV object at 0x7980210>
glGetCombinerOutputParameterivNV = <OpenGL.platform.baseplatform.glGetCombinerOutputParameterivNV object at 0x7980290>
glGetFinalCombinerInputParameterfvNV = <OpenGL.platform.baseplatform.glGetFinalCombinerInputParameterfvNV object at 0x7980310>
glGetFinalCombinerInputParameterivNV = <OpenGL.platform.baseplatform.glGetFinalCombinerInputParameterivNV object at 0x7980390>