OpenGL.GL.ARB.geometry_shader4
OpenGL extension ARB.geometry_shader4
This module customises the behaviour of the
OpenGL.raw.GL.ARB.geometry_shader4 to provide a more
Python-friendly API
Overview (from the spec)
ARB_geometry_shader4 defines a new shader type available to be run on the
GPU, called a geometry shader. Geometry shaders are run after vertices are
transformed, but prior to color clamping, flat shading and clipping.
A geometry shader begins with a single primitive (point, line,
triangle). It can read the attributes of any of the vertices in the
primitive and use them to generate new primitives. A geometry shader has a
fixed output primitive type (point, line strip, or triangle strip) and
emits vertices to define a new primitive. A geometry shader can emit
multiple disconnected primitives. The primitives emitted by the geometry
shader are clipped and then processed like an equivalent OpenGL primitive
specified by the application.
Furthermore, ARB_geometry_shader4 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 vertices can be accessed by
geometry shaders and used to match up the vertices emitted by the geometry
shader with those of neighboring primitives.
Since geometry shaders expect a specific input primitive type, an error
will occur if the application presents primitives of a different type.
For example, if a geometry shader 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/ARB/geometry_shader4.txt
Functions
Constants
GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB (36263)
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER (36052)
GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB (36265)
GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB (36264)
GL_GEOMETRY_INPUT_TYPE_ARB (36315)
GL_GEOMETRY_OUTPUT_TYPE_ARB (36316)
GL_GEOMETRY_SHADER_ARB (36313)
GL_GEOMETRY_VERTICES_OUT_ARB (36314)
GL_LINE_STRIP_ADJACENCY_ARB (11)
GL_LINES_ADJACENCY_ARB (10)
GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB (36320)
GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB (35881)
GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB (36321)
GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB (36319)
GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB (36317)
GL_MAX_VARYING_COMPONENTS (35659)
GL_MAX_VERTEX_VARYING_COMPONENTS_ARB (36318)
GL_PROGRAM_POINT_SIZE_ARB (34370)
GL_TRIANGLE_STRIP_ADJACENCY_ARB (13)
GL_TRIANGLES_ADJACENCY_ARB (12)