OpenGL.GL.SUN.triangle_list
index
/home/mcfletch/pylive/OpenGL/GL/SUN/triangle_list.py

OpenGL extension SUN.triangle_list
 
This module customises the behaviour of the 
OpenGL.raw.GL.SUN.triangle_list to provide a more 
Python-friendly API
 
Overview (from the spec)
        
        OpenGL has two chained triangle primitives, TRIANGLE_STRIP and
        TRIANGLE_FAN.  For multiple, consecutive triangle strips or
        triangle fans, the overhead of Begin and End, or separate calls to
        DrawArrays, can be significant depending on the number of triangles
        per strip or fan.
        
        Many surface tessellators produce triangle strips with very few
        triangles per strip before needing to restart a new strip.  Even
        sophisticated tessellators typically need to restart a new strip,
        or switch from a triangle strip to a triangle fan, many times
        within a single object.  Such tessellators can often produce a more
        efficient tessellation--one with fewer vertices--by mixing strips
        and fans within the same object.  The ability to switch from one to
        the other without restarting the strip or fan yields even more
        savings.  Unfortunately, the overhead of switching from a triangle
        strip to a triangle fan, or vice versa, can reduce, or even
        eliminate the benefit gained from reducing the number of vertices.
        
        A new triangle list primitive, along with an associated replacement
        code attribute, is defined by this extension to allow multiple
        triangle strips and fans to be specified within the same Begin/End
        pair or from a single call to DrawArrays.  The triangle list
        extension also provides the means to switch between triangle strips
        and triangle fans with or without restarting the strip or fan.
        
        TRIANGLE_LIST is a new primitive type (i.e., new Begin mode) that
        uses the ReplacementCodeSUN state attribute to determine whether the
        current vertex replaces the oldest vertex, as in a triangle strip,
        the middle vertex, as in a triangle fan, or restarts a new chained
        triangle list.  The first vertex of a new triangle list is
        implicitly treated as a RESTART.  The first three vertices complete
        the first triangle, after which the replacement codes of the vertex
        are used.  The two vertices immediately following a
        restart--including the implicit restart on the first vertex--are
        ignored.  The ReplacementCodeSUN attribute is part of the vertex
        state, and is only used by the TRIANGLE_LIST primitive.
        
 
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/SUN/triangle_list.txt

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

 
Data
        EXTENSION_NAME = 'GL_SUN_triangle_list'
GL_R1UI_C3F_V3F_SUN = GL_R1UI_C3F_V3F_SUN
GL_R1UI_C4F_N3F_V3F_SUN = GL_R1UI_C4F_N3F_V3F_SUN
GL_R1UI_C4UB_V3F_SUN = GL_R1UI_C4UB_V3F_SUN
GL_R1UI_N3F_V3F_SUN = GL_R1UI_N3F_V3F_SUN
GL_R1UI_T2F_C4F_N3F_V3F_SUN = GL_R1UI_T2F_C4F_N3F_V3F_SUN
GL_R1UI_T2F_N3F_V3F_SUN = GL_R1UI_T2F_N3F_V3F_SUN
GL_R1UI_T2F_V3F_SUN = GL_R1UI_T2F_V3F_SUN
GL_R1UI_V3F_SUN = GL_R1UI_V3F_SUN
GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN
GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN
GL_REPLACEMENT_CODE_ARRAY_SUN = GL_REPLACEMENT_CODE_ARRAY_SUN
GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN
GL_REPLACEMENT_CODE_SUN = GL_REPLACEMENT_CODE_SUN
GL_REPLACE_MIDDLE_SUN = GL_REPLACE_MIDDLE_SUN
GL_REPLACE_OLDEST_SUN = GL_REPLACE_OLDEST_SUN
GL_RESTART_SUN = GL_RESTART_SUN
GL_TRIANGLE_LIST_SUN = GL_TRIANGLE_LIST_SUN
__file__ = '/home/mcfletch/pylive/OpenGL/GL/SUN/triangle_list.pyc'
__name__ = 'OpenGL.GL.SUN.triangle_list'
__package__ = 'OpenGL.GL.SUN'
glReplacementCodePointerSUN = <OpenGL.platform.baseplatform.glReplacementCodePointerSUN object at 0x7a6fd50>
glReplacementCodeubSUN = <OpenGL.platform.baseplatform.glReplacementCodeubSUN object at 0x7a902d0>
glReplacementCodeubvSUN = <OpenGL.platform.baseplatform.glReplacementCodeubvSUN object at 0x7a90510>
glReplacementCodeuiSUN = <OpenGL.platform.baseplatform.glReplacementCodeuiSUN object at 0x7a90190>
glReplacementCodeuivSUN = <OpenGL.platform.baseplatform.glReplacementCodeuivSUN object at 0x7a90390>
glReplacementCodeusSUN = <OpenGL.platform.baseplatform.glReplacementCodeusSUN object at 0x7a89790>
glReplacementCodeusvSUN = <OpenGL.platform.baseplatform.glReplacementCodeusvSUN object at 0x7a90450>