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)