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

OpenGL extension NV.geometry_program4
 
This module customises the behaviour of the 
OpenGL.raw.GL.NV.geometry_program4 to provide a more 
Python-friendly API
 
Overview (from the spec)
        
        NV_geometry_program4 defines a new type of program available to be run on
        the GPU, called a geometry program.  Geometry programs are run on full
        primitives after vertices are transformed, but prior to flat shading and
        clipping.
        
        A geometry program begins with a single primitive - a point, line, or
        triangle.  Quads and polygons are allowed, but are decomposed into
        individual triangles prior to geometry program execution.  It can read the
        attributes of any of the vertex in the primitive and use them to generate
        new primitives.  A geometry program has a fixed output primitive type,
        either a point, a line strip, or a triangle strip.  It emits vertices
        (using the EMIT opcode) to define the output primitive.  The attributes of
        emitted vertices are specified by writing to the same set of result
        bindings (e.g., "result.position") provided for vertex programs.
        Additionally, a geometry program can emit multiple disconnected primitives
        by using the ENDPRIM opcode, which is roughly equivalent to calling End
        and then Begin again.  The primitives emitted by the geometry program are
        then clipped and then processed like an equivalent OpenGL primitive
        specified by the application.
        
        This extension provides four additional primitive types:  lines with
        adjacency, line strips with adjacency, separate triangles with adjacency,
        and triangle strips with adjacency.  Some of the vertices specified in
        these new primitive types are not part of the ordinary primitives.
        Instead, they represent neighboring vertices that are adjacent to the two
        line segment end points (lines/strips) or the three triangle edges
        (triangles/tstrips).  These "adjacency" vertices can be accessed by
        geometry programs and used to match up the outputs of the geometry program
        with those of neighboring primitives.
        
        Additionally, geometry programs allow for layered rendering, where entire
        three-dimensional, cube map, or array textures (EXT_texture_array) can be
        bound to the current framebuffer.  Geometry programs can use the
        "result.layer" binding to select a layer or cube map face to render to.
        Each primitive emitted by such a geometry program is rendered to the layer
        taken from its provoking vertex.
        
        Since geometry programs expect a specific input primitive type, an error
        will occur if the application presents primtives of a different type.  For
        example, if an enabled geometry program expects points, an error will
        occur at Begin() time, if a primitive mode of TRIANGLES is specified.
 
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/NV/geometry_program4.txt

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

 
Data
        EXTENSION_NAME = 'GL_NV_geometry_program4'
GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
GL_GEOMETRY_INPUT_TYPE_EXT = GL_GEOMETRY_INPUT_TYPE_EXT
GL_GEOMETRY_OUTPUT_TYPE_EXT = GL_GEOMETRY_OUTPUT_TYPE_EXT
GL_GEOMETRY_PROGRAM_NV = GL_GEOMETRY_PROGRAM_NV
GL_GEOMETRY_VERTICES_OUT_EXT = GL_GEOMETRY_VERTICES_OUT_EXT
GL_LINES_ADJACENCY_EXT = GL_LINES_ADJACENCY_EXT
GL_LINE_STRIP_ADJACENCY_EXT = GL_LINE_STRIP_ADJACENCY_EXT
GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = GL_MAX_PROGRAM_OUTPUT_VERTICES_NV
GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV
GL_PROGRAM_POINT_SIZE_EXT = GL_PROGRAM_POINT_SIZE_EXT
GL_TRIANGLES_ADJACENCY_EXT = GL_TRIANGLES_ADJACENCY_EXT
GL_TRIANGLE_STRIP_ADJACENCY_EXT = GL_TRIANGLE_STRIP_ADJACENCY_EXT
__file__ = '/home/mcfletch/pylive/OpenGL/GL/NV/geometry_program4.pyc'
__name__ = 'OpenGL.GL.NV.geometry_program4'
__package__ = 'OpenGL.GL.NV'
glFramebufferTextureEXT = <OpenGL.platform.baseplatform.glFramebufferTextureEXT object at 0x78e8910>
glFramebufferTextureFaceEXT = <OpenGL.platform.baseplatform.glFramebufferTextureFaceEXT object at 0x78e89d0>
glFramebufferTextureLayerEXT = <OpenGL.platform.baseplatform.glFramebufferTextureLayerEXT object at 0x78e8950>
glProgramVertexLimitNV = <OpenGL.platform.baseplatform.glProgramVertexLimitNV object at 0x78e88d0>