Class EXTGeometryShader4
EXT_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, EXT_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.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Accepted by thepname
parameter of GetFramebufferAttachment- ParameterivEXT.static final int
Accepted by thepname
parameter of GetFramebufferAttachment- ParameterivEXT.static final int
Returned by CheckFramebufferStatusEXT.static final int
Returned by CheckFramebufferStatusEXT.static final int
Accepted by thepname
parameter of ProgramParameteriEXT and GetProgramiv.static final int
Accepted by thepname
parameter of ProgramParameteriEXT and GetProgramiv.static final int
Accepted by thetype
parameter of CreateShader and returned by theparams
parameter of GetShaderiv.static final int
Accepted by thepname
parameter of ProgramParameteriEXT and GetProgramiv.static final int
Accepted by themode
parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.static final int
Accepted by themode
parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thecap
parameter of Enable, Disable, and IsEnabled, and by thepname
parameter of GetIntegerv, GetFloatv, GetDoublev, and GetBooleanv.static final int
Accepted by themode
parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.static final int
Accepted by themode
parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements. -
Method Summary
Modifier and TypeMethodDescriptionstatic void
glFramebufferTextureEXT
(int target, int attachment, int texture, int level) static void
glFramebufferTextureFaceEXT
(int target, int attachment, int texture, int level, int face) static void
glFramebufferTextureLayerEXT
(int target, int attachment, int texture, int level, int layer) static void
glProgramParameteriEXT
(int program, int pname, int value)
-
Field Details
-
GL_GEOMETRY_SHADER_EXT
public static final int GL_GEOMETRY_SHADER_EXTAccepted by thetype
parameter of CreateShader and returned by theparams
parameter of GetShaderiv.- See Also:
-
GL_GEOMETRY_VERTICES_OUT_EXT
public static final int GL_GEOMETRY_VERTICES_OUT_EXTAccepted by thepname
parameter of ProgramParameteriEXT and GetProgramiv.- See Also:
-
GL_GEOMETRY_INPUT_TYPE_EXT
public static final int GL_GEOMETRY_INPUT_TYPE_EXTAccepted by thepname
parameter of ProgramParameteriEXT and GetProgramiv.- See Also:
-
GL_GEOMETRY_OUTPUT_TYPE_EXT
public static final int GL_GEOMETRY_OUTPUT_TYPE_EXTAccepted by thepname
parameter of ProgramParameteriEXT and GetProgramiv.- See Also:
-
GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
public static final int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT
public static final int GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_VERTEX_VARYING_COMPONENTS_EXT
public static final int GL_MAX_VERTEX_VARYING_COMPONENTS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_VARYING_COMPONENTS_EXT
public static final int GL_MAX_VARYING_COMPONENTS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
public static final int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
public static final int GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
public static final int GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_LINES_ADJACENCY_EXT
public static final int GL_LINES_ADJACENCY_EXTAccepted by themode
parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.- See Also:
-
GL_LINE_STRIP_ADJACENCY_EXT
public static final int GL_LINE_STRIP_ADJACENCY_EXTAccepted by themode
parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.- See Also:
-
GL_TRIANGLES_ADJACENCY_EXT
public static final int GL_TRIANGLES_ADJACENCY_EXTAccepted by themode
parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.- See Also:
-
GL_TRIANGLE_STRIP_ADJACENCY_EXT
public static final int GL_TRIANGLE_STRIP_ADJACENCY_EXTAccepted by themode
parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.- See Also:
-
GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
public static final int GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXTReturned by CheckFramebufferStatusEXT.- See Also:
-
GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
public static final int GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXTReturned by CheckFramebufferStatusEXT.- See Also:
-
GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
public static final int GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXTAccepted by thepname
parameter of GetFramebufferAttachment- ParameterivEXT.- See Also:
-
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXTAccepted by thepname
parameter of GetFramebufferAttachment- ParameterivEXT.- See Also:
-
GL_PROGRAM_POINT_SIZE_EXT
public static final int GL_PROGRAM_POINT_SIZE_EXTAccepted by thecap
parameter of Enable, Disable, and IsEnabled, and by thepname
parameter of GetIntegerv, GetFloatv, GetDoublev, and GetBooleanv.- See Also:
-
-
Method Details
-
glProgramParameteriEXT
public static void glProgramParameteriEXT(int program, int pname, int value) -
glFramebufferTextureEXT
public static void glFramebufferTextureEXT(int target, int attachment, int texture, int level) -
glFramebufferTextureLayerEXT
public static void glFramebufferTextureLayerEXT(int target, int attachment, int texture, int level, int layer) -
glFramebufferTextureFaceEXT
public static void glFramebufferTextureFaceEXT(int target, int attachment, int texture, int level, int face)
-