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 | ||||||
|
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> |