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

OpenGL extension NV.vertex_program
 
This module customises the behaviour of the 
OpenGL.raw.GL.NV.vertex_program to provide a more 
Python-friendly API
 
Overview (from the spec)
        
        Unextended OpenGL mandates a certain set of configurable per-vertex
        computations defining vertex transformation, texture coordinate
        generation and transformation, and lighting.  Several extensions
        have added further per-vertex computations to OpenGL.  For example,
        extensions have defined new texture coordinate generation modes
        (ARB_texture_cube_map, NV_texgen_reflection, NV_texgen_emboss), new
        vertex transformation modes (EXT_vertex_weighting), new lighting modes
        (OpenGL 1.2's separate specular and rescale normal functionality),
        several modes for fog distance generation (NV_fog_distance), and
        eye-distance point size attenuation (EXT_point_parameters).
        
        Each such extension adds a small set of relatively inflexible
        per-vertex computations.
        
        This inflexibility is in contrast to the typical flexibility provided
        by the underlying programmable floating point engines (whether
        micro-coded vertex engines, DSPs, or CPUs) that are traditionally used
        to implement OpenGL's per-vertex computations.  The purpose of this
        extension is to expose to the OpenGL application writer a significant
        degree of per-vertex programmability for computing vertex parameters.
        
        For the purposes of discussing this extension, a vertex program is
        a sequence of floating-point 4-component vector operations that
        determines how a set of program parameters (defined outside of
        OpenGL's begin/end pair) and an input set of per-vertex parameters
        are transformed to a set of per-vertex output parameters.
        
        The per-vertex computations for standard OpenGL given a particular
        set of lighting and texture coordinate generation modes (along with
        any state for extensions defining per-vertex computations) is, in
        essence, a vertex 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 vertex
        program instruction sequences for application-defined vertex programs.
        In order to define such vertex programs, this extension defines
        a vertex 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 vertex programming model is designed for efficient
        hardware implementation and to support a wide variety of vertex
        programs.  By design, the entire set of existing vertex programs
        defined by existing OpenGL per-vertex computation extensions can be
        implemented using the extension's vertex programming model.
 
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/NV/vertex_program.txt

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

 
Data
        EXTENSION_NAME = 'GL_NV_vertex_program'
GL_ATTRIB_ARRAY_POINTER_NV = GL_ATTRIB_ARRAY_POINTER_NV
GL_ATTRIB_ARRAY_SIZE_NV = GL_ATTRIB_ARRAY_SIZE_NV
GL_ATTRIB_ARRAY_STRIDE_NV = GL_ATTRIB_ARRAY_STRIDE_NV
GL_ATTRIB_ARRAY_TYPE_NV = GL_ATTRIB_ARRAY_TYPE_NV
GL_CURRENT_ATTRIB_NV = GL_CURRENT_ATTRIB_NV
GL_CURRENT_MATRIX_NV = GL_CURRENT_MATRIX_NV
GL_CURRENT_MATRIX_STACK_DEPTH_NV = GL_CURRENT_MATRIX_STACK_DEPTH_NV
GL_IDENTITY_NV = GL_IDENTITY_NV
GL_INVERSE_NV = GL_INVERSE_NV
GL_INVERSE_TRANSPOSE_NV = GL_INVERSE_TRANSPOSE_NV
GL_MAP1_VERTEX_ATTRIB0_4_NV = GL_MAP1_VERTEX_ATTRIB0_4_NV
GL_MAP1_VERTEX_ATTRIB10_4_NV = GL_MAP1_VERTEX_ATTRIB10_4_NV
GL_MAP1_VERTEX_ATTRIB11_4_NV = GL_MAP1_VERTEX_ATTRIB11_4_NV
GL_MAP1_VERTEX_ATTRIB12_4_NV = GL_MAP1_VERTEX_ATTRIB12_4_NV
GL_MAP1_VERTEX_ATTRIB13_4_NV = GL_MAP1_VERTEX_ATTRIB13_4_NV
GL_MAP1_VERTEX_ATTRIB14_4_NV = GL_MAP1_VERTEX_ATTRIB14_4_NV
GL_MAP1_VERTEX_ATTRIB15_4_NV = GL_MAP1_VERTEX_ATTRIB15_4_NV
GL_MAP1_VERTEX_ATTRIB1_4_NV = GL_MAP1_VERTEX_ATTRIB1_4_NV
GL_MAP1_VERTEX_ATTRIB2_4_NV = GL_MAP1_VERTEX_ATTRIB2_4_NV
GL_MAP1_VERTEX_ATTRIB3_4_NV = GL_MAP1_VERTEX_ATTRIB3_4_NV
GL_MAP1_VERTEX_ATTRIB4_4_NV = GL_MAP1_VERTEX_ATTRIB4_4_NV
GL_MAP1_VERTEX_ATTRIB5_4_NV = GL_MAP1_VERTEX_ATTRIB5_4_NV
GL_MAP1_VERTEX_ATTRIB6_4_NV = GL_MAP1_VERTEX_ATTRIB6_4_NV
GL_MAP1_VERTEX_ATTRIB7_4_NV = GL_MAP1_VERTEX_ATTRIB7_4_NV
GL_MAP1_VERTEX_ATTRIB8_4_NV = GL_MAP1_VERTEX_ATTRIB8_4_NV
GL_MAP1_VERTEX_ATTRIB9_4_NV = GL_MAP1_VERTEX_ATTRIB9_4_NV
GL_MAP2_VERTEX_ATTRIB0_4_NV = GL_MAP2_VERTEX_ATTRIB0_4_NV
GL_MAP2_VERTEX_ATTRIB10_4_NV = GL_MAP2_VERTEX_ATTRIB10_4_NV
GL_MAP2_VERTEX_ATTRIB11_4_NV = GL_MAP2_VERTEX_ATTRIB11_4_NV
GL_MAP2_VERTEX_ATTRIB12_4_NV = GL_MAP2_VERTEX_ATTRIB12_4_NV
GL_MAP2_VERTEX_ATTRIB13_4_NV = GL_MAP2_VERTEX_ATTRIB13_4_NV
GL_MAP2_VERTEX_ATTRIB14_4_NV = GL_MAP2_VERTEX_ATTRIB14_4_NV
GL_MAP2_VERTEX_ATTRIB15_4_NV = GL_MAP2_VERTEX_ATTRIB15_4_NV
GL_MAP2_VERTEX_ATTRIB1_4_NV = GL_MAP2_VERTEX_ATTRIB1_4_NV
GL_MAP2_VERTEX_ATTRIB2_4_NV = GL_MAP2_VERTEX_ATTRIB2_4_NV
GL_MAP2_VERTEX_ATTRIB3_4_NV = GL_MAP2_VERTEX_ATTRIB3_4_NV
GL_MAP2_VERTEX_ATTRIB4_4_NV = GL_MAP2_VERTEX_ATTRIB4_4_NV
GL_MAP2_VERTEX_ATTRIB5_4_NV = GL_MAP2_VERTEX_ATTRIB5_4_NV
GL_MAP2_VERTEX_ATTRIB6_4_NV = GL_MAP2_VERTEX_ATTRIB6_4_NV
GL_MAP2_VERTEX_ATTRIB7_4_NV = GL_MAP2_VERTEX_ATTRIB7_4_NV
GL_MAP2_VERTEX_ATTRIB8_4_NV = GL_MAP2_VERTEX_ATTRIB8_4_NV
GL_MAP2_VERTEX_ATTRIB9_4_NV = GL_MAP2_VERTEX_ATTRIB9_4_NV
GL_MATRIX0_NV = GL_MATRIX0_NV
GL_MATRIX1_NV = GL_MATRIX1_NV
GL_MATRIX2_NV = GL_MATRIX2_NV
GL_MATRIX3_NV = GL_MATRIX3_NV
GL_MATRIX4_NV = GL_MATRIX4_NV
GL_MATRIX5_NV = GL_MATRIX5_NV
GL_MATRIX6_NV = GL_MATRIX6_NV
GL_MATRIX7_NV = GL_MATRIX7_NV
GL_MAX_TRACK_MATRICES_NV = GL_MAX_TRACK_MATRICES_NV
GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
GL_MODELVIEW_PROJECTION_NV = GL_MODELVIEW_PROJECTION_NV
GL_PROGRAM_ERROR_POSITION_NV = GL_PROGRAM_ERROR_POSITION_NV
GL_PROGRAM_LENGTH_NV = GL_PROGRAM_LENGTH_NV
GL_PROGRAM_PARAMETER_NV = GL_PROGRAM_PARAMETER_NV
GL_PROGRAM_RESIDENT_NV = GL_PROGRAM_RESIDENT_NV
GL_PROGRAM_STRING_NV = GL_PROGRAM_STRING_NV
GL_PROGRAM_TARGET_NV = GL_PROGRAM_TARGET_NV
GL_TRACK_MATRIX_NV = GL_TRACK_MATRIX_NV
GL_TRACK_MATRIX_TRANSFORM_NV = GL_TRACK_MATRIX_TRANSFORM_NV
GL_TRANSPOSE_NV = GL_TRANSPOSE_NV
GL_VERTEX_ATTRIB_ARRAY0_NV = GL_VERTEX_ATTRIB_ARRAY0_NV
GL_VERTEX_ATTRIB_ARRAY10_NV = GL_VERTEX_ATTRIB_ARRAY10_NV
GL_VERTEX_ATTRIB_ARRAY11_NV = GL_VERTEX_ATTRIB_ARRAY11_NV
GL_VERTEX_ATTRIB_ARRAY12_NV = GL_VERTEX_ATTRIB_ARRAY12_NV
GL_VERTEX_ATTRIB_ARRAY13_NV = GL_VERTEX_ATTRIB_ARRAY13_NV
GL_VERTEX_ATTRIB_ARRAY14_NV = GL_VERTEX_ATTRIB_ARRAY14_NV
GL_VERTEX_ATTRIB_ARRAY15_NV = GL_VERTEX_ATTRIB_ARRAY15_NV
GL_VERTEX_ATTRIB_ARRAY1_NV = GL_VERTEX_ATTRIB_ARRAY1_NV
GL_VERTEX_ATTRIB_ARRAY2_NV = GL_VERTEX_ATTRIB_ARRAY2_NV
GL_VERTEX_ATTRIB_ARRAY3_NV = GL_VERTEX_ATTRIB_ARRAY3_NV
GL_VERTEX_ATTRIB_ARRAY4_NV = GL_VERTEX_ATTRIB_ARRAY4_NV
GL_VERTEX_ATTRIB_ARRAY5_NV = GL_VERTEX_ATTRIB_ARRAY5_NV
GL_VERTEX_ATTRIB_ARRAY6_NV = GL_VERTEX_ATTRIB_ARRAY6_NV
GL_VERTEX_ATTRIB_ARRAY7_NV = GL_VERTEX_ATTRIB_ARRAY7_NV
GL_VERTEX_ATTRIB_ARRAY8_NV = GL_VERTEX_ATTRIB_ARRAY8_NV
GL_VERTEX_ATTRIB_ARRAY9_NV = GL_VERTEX_ATTRIB_ARRAY9_NV
GL_VERTEX_PROGRAM_BINDING_NV = GL_VERTEX_PROGRAM_BINDING_NV
GL_VERTEX_PROGRAM_NV = GL_VERTEX_PROGRAM_NV
GL_VERTEX_PROGRAM_POINT_SIZE_NV = GL_VERTEX_PROGRAM_POINT_SIZE_NV
GL_VERTEX_PROGRAM_TWO_SIDE_NV = GL_VERTEX_PROGRAM_TWO_SIDE_NV
GL_VERTEX_STATE_PROGRAM_NV = GL_VERTEX_STATE_PROGRAM_NV
__file__ = '/home/mcfletch/pylive/OpenGL/GL/NV/vertex_program.pyc'
__name__ = 'OpenGL.GL.NV.vertex_program'
__package__ = 'OpenGL.GL.NV'
glAreProgramsResidentNV = <OpenGL.platform.baseplatform.glAreProgramsResidentNV object at 0x7999b50>
glBindProgramNV = <OpenGL.platform.baseplatform.glBindProgramNV object at 0x7999bd0>
glDeleteProgramsNV = <OpenGL.platform.baseplatform.glDeleteProgramsNV object at 0x7999c50>
glExecuteProgramNV = <OpenGL.platform.baseplatform.glExecuteProgramNV object at 0x7999c90>
glGenProgramsNV = <OpenGL.platform.baseplatform.glGenProgramsNV object at 0x7999d10>
glGetProgramParameterdvNV = <OpenGL.platform.baseplatform.glGetProgramParameterdvNV object at 0x7999d50>
glGetProgramParameterfvNV = <OpenGL.platform.baseplatform.glGetProgramParameterfvNV object at 0x7999d90>
glGetProgramStringNV = <OpenGL.platform.baseplatform.glGetProgramStringNV object at 0x7999e50>
glGetProgramivNV = <OpenGL.platform.baseplatform.glGetProgramivNV object at 0x7999dd0>
glGetTrackMatrixivNV = <OpenGL.platform.baseplatform.glGetTrackMatrixivNV object at 0x7999ed0>
glGetVertexAttribPointervNV = <OpenGL.platform.baseplatform.glGetVertexAttribPointervNV object at 0x799f110>
glGetVertexAttribdvNV = <OpenGL.platform.baseplatform.glGetVertexAttribdvNV object at 0x7999f50>
glGetVertexAttribfvNV = <OpenGL.platform.baseplatform.glGetVertexAttribfvNV object at 0x7999fd0>
glGetVertexAttribivNV = <OpenGL.platform.baseplatform.glGetVertexAttribivNV object at 0x799f090>
glIsProgramNV = <OpenGL.platform.baseplatform.glIsProgramNV object at 0x799f210>
glLoadProgramNV = <OpenGL.platform.baseplatform.glLoadProgramNV object at 0x799f250>
glProgramParameter4dNV = <OpenGL.platform.baseplatform.glProgramParameter4dNV object at 0x799f2d0>
glProgramParameter4dvNV = <OpenGL.platform.baseplatform.glProgramParameter4dvNV object at 0x799f350>
glProgramParameter4fNV = <OpenGL.platform.baseplatform.glProgramParameter4fNV object at 0x799f3d0>
glProgramParameter4fvNV = <OpenGL.platform.baseplatform.glProgramParameter4fvNV object at 0x799f450>
glProgramParameters4dvNV = <OpenGL.platform.baseplatform.glProgramParameters4dvNV object at 0x799f4d0>
glProgramParameters4fvNV = <OpenGL.platform.baseplatform.glProgramParameters4fvNV object at 0x799f550>
glRequestResidentProgramsNV = <OpenGL.platform.baseplatform.glRequestResidentProgramsNV object at 0x799f5d0>
glTrackMatrixNV = <OpenGL.platform.baseplatform.glTrackMatrixNV object at 0x799f650>
glVertexAttrib1dNV = <OpenGL.platform.baseplatform.glVertexAttrib1dNV object at 0x799f750>
glVertexAttrib1dvNV = <OpenGL.platform.baseplatform.glVertexAttrib1dvNV object at 0x799f850>
glVertexAttrib1fNV = <OpenGL.platform.baseplatform.glVertexAttrib1fNV object at 0x799f890>
glVertexAttrib1fvNV = <OpenGL.platform.baseplatform.glVertexAttrib1fvNV object at 0x799f990>
glVertexAttrib1sNV = <OpenGL.platform.baseplatform.glVertexAttrib1sNV object at 0x799f9d0>
glVertexAttrib1svNV = <OpenGL.platform.baseplatform.glVertexAttrib1svNV object at 0x799fad0>
glVertexAttrib2dNV = <OpenGL.platform.baseplatform.glVertexAttrib2dNV object at 0x799fb10>
glVertexAttrib2dvNV = <OpenGL.platform.baseplatform.glVertexAttrib2dvNV object at 0x799fc10>
glVertexAttrib2fNV = <OpenGL.platform.baseplatform.glVertexAttrib2fNV object at 0x799fc50>
glVertexAttrib2fvNV = <OpenGL.platform.baseplatform.glVertexAttrib2fvNV object at 0x799fd50>
glVertexAttrib2sNV = <OpenGL.platform.baseplatform.glVertexAttrib2sNV object at 0x799fd90>
glVertexAttrib2svNV = <OpenGL.platform.baseplatform.glVertexAttrib2svNV object at 0x799fe90>
glVertexAttrib3dNV = <OpenGL.platform.baseplatform.glVertexAttrib3dNV object at 0x799fed0>
glVertexAttrib3dvNV = <OpenGL.platform.baseplatform.glVertexAttrib3dvNV object at 0x799ffd0>
glVertexAttrib3fNV = <OpenGL.platform.baseplatform.glVertexAttrib3fNV object at 0x79a2050>
glVertexAttrib3fvNV = <OpenGL.platform.baseplatform.glVertexAttrib3fvNV object at 0x79a2150>
glVertexAttrib3sNV = <OpenGL.platform.baseplatform.glVertexAttrib3sNV object at 0x79a2190>
glVertexAttrib3svNV = <OpenGL.platform.baseplatform.glVertexAttrib3svNV object at 0x79a2290>
glVertexAttrib4dNV = <OpenGL.platform.baseplatform.glVertexAttrib4dNV object at 0x79a22d0>
glVertexAttrib4dvNV = <OpenGL.platform.baseplatform.glVertexAttrib4dvNV object at 0x79a23d0>
glVertexAttrib4fNV = <OpenGL.platform.baseplatform.glVertexAttrib4fNV object at 0x79a2410>
glVertexAttrib4fvNV = <OpenGL.platform.baseplatform.glVertexAttrib4fvNV object at 0x79a2510>
glVertexAttrib4sNV = <OpenGL.platform.baseplatform.glVertexAttrib4sNV object at 0x79a2550>
glVertexAttrib4svNV = <OpenGL.platform.baseplatform.glVertexAttrib4svNV object at 0x79a2650>
glVertexAttrib4ubNV = <OpenGL.platform.baseplatform.glVertexAttrib4ubNV object at 0x79a2690>
glVertexAttrib4ubvNV = <OpenGL.platform.baseplatform.glVertexAttrib4ubvNV object at 0x79a2790>
glVertexAttribPointerNV = <OpenGL.platform.baseplatform.glVertexAttribPointerNV object at 0x799f6d0>
glVertexAttribs1dvNV = <OpenGL.platform.baseplatform.glVertexAttribs1dvNV object at 0x79a27d0>
glVertexAttribs1fvNV = <OpenGL.platform.baseplatform.glVertexAttribs1fvNV object at 0x79a2850>
glVertexAttribs1svNV = <OpenGL.platform.baseplatform.glVertexAttribs1svNV object at 0x79a28d0>
glVertexAttribs2dvNV = <OpenGL.platform.baseplatform.glVertexAttribs2dvNV object at 0x79a2950>
glVertexAttribs2fvNV = <OpenGL.platform.baseplatform.glVertexAttribs2fvNV object at 0x79a29d0>
glVertexAttribs2svNV = <OpenGL.platform.baseplatform.glVertexAttribs2svNV object at 0x79a2a50>
glVertexAttribs3dvNV = <OpenGL.platform.baseplatform.glVertexAttribs3dvNV object at 0x79a2ad0>
glVertexAttribs3fvNV = <OpenGL.platform.baseplatform.glVertexAttribs3fvNV object at 0x79a2b50>
glVertexAttribs3svNV = <OpenGL.platform.baseplatform.glVertexAttribs3svNV object at 0x79a2bd0>
glVertexAttribs4dvNV = <OpenGL.platform.baseplatform.glVertexAttribs4dvNV object at 0x79a2c50>
glVertexAttribs4fvNV = <OpenGL.platform.baseplatform.glVertexAttribs4fvNV object at 0x79a2cd0>
glVertexAttribs4svNV = <OpenGL.platform.baseplatform.glVertexAttribs4svNV object at 0x79a2d50>
glVertexAttribs4ubvNV = <OpenGL.platform.baseplatform.glVertexAttribs4ubvNV object at 0x79a2dd0>