Top Description Fields Constructors Methods
org.lwjgl.opengles

public Class EXTGeometryShader

extends Object
Class Inheritance
Imports
org.lwjgl.system.*

Native bindings to the EXT_geometry_shader extension.

EXT_geometry_shader 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, flatshading 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 primitive specified by the application.

Furthermore, EXT_geometry_shader 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 drawing time if a primitive mode of TRIANGLES is specified.

This extension also adds the notion of layered framebuffer attachments and framebuffers that can be used in conjunction with geometry shaders to allow programs to direct primitives to a face of a cube map or layer of a three-dimensional texture or two-dimensional array texture. The layer used for rendering can be selected by the geometry shader at run time. The framebuffer layer count present in GL 4.x and removed from ES 3.1 is restored.

Not all geometry shader implementations have the ability to write the point size from a geometry shader. Thus a second extension string and shading language enable are provided for implementations which do support geometry shader point size.

This extension relies on the EXT_shader_io_blocks extension to provide the required functionality for declaring input and output blocks and interfacing between shaders.

Requires GLES 3.1.

Field Summary

Modifier and TypeField and Description
public static final int
GL_FIRST_VERTEX_CONVENTION_EXT

Returned in the data parameter from a Get query with a pname of LAYER_PROVOKING_VERTEX_EXT.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT

Accepted by the pname parameter of FramebufferParameteri, and GetFramebufferParameteriv.

public static final int
GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT

Returned by CheckFramebufferStatus.

public static final int
GL_GEOMETRY_LINKED_INPUT_TYPE_EXT

Accepted by the pname parameter of GetProgramiv.

public static final int
GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT

Accepted by the pname parameter of GetProgramiv.

public static final int
GL_GEOMETRY_LINKED_VERTICES_OUT_EXT

Accepted by the pname parameter of GetProgramiv.

public static final int
GL_GEOMETRY_SHADER_BIT_EXT

Accepted by the stages parameter of UseProgramStages.

public static final int
GL_GEOMETRY_SHADER_EXT

Accepted by the type parameter of CreateShader and CreateShaderProgramv, by the pname parameter of GetProgramPipelineiv and returned in the params parameter of GetShaderiv when pname is SHADER_TYPE.

public static final int
GL_GEOMETRY_SHADER_INVOCATIONS_EXT

Accepted by the pname parameter of GetProgramiv.

public static final int
GL_LAST_VERTEX_CONVENTION_EXT

Returned in the data parameter from a Get query with a pname of LAYER_PROVOKING_VERTEX_EXT.

public static final int
GL_LAYER_PROVOKING_VERTEX_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_LINE_STRIP_ADJACENCY_EXT

Accepted by the mode parameter of DrawArrays, DrawElements, and other commands which draw primitives.

public static final int
GL_LINES_ADJACENCY_EXT

Accepted by the mode parameter of DrawArrays, DrawElements, and other commands which draw primitives.

public static final int
GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_FRAMEBUFFER_LAYERS_EXT

Accepted by the pname parameter of GetIntegerv, GetBooleanv, GetInteger64v, and GetFloatv.

public static final int
GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

public static final int
GL_PRIMITIVES_GENERATED_EXT

Accepted by the target parameter of BeginQuery, EndQuery, GetQueryiv, and GetQueryObjectuiv.

public static final int
GL_REFERENCED_BY_GEOMETRY_SHADER_EXT

Accepted by the props parameter of GetProgramResourceiv.

public static final int
GL_TRIANGLE_STRIP_ADJACENCY_EXT

Accepted by the mode parameter of DrawArrays, DrawElements, and other commands which draw primitives.

public static final int
GL_TRIANGLES_ADJACENCY_EXT

Accepted by the mode parameter of DrawArrays, DrawElements, and other commands which draw primitives.

public static final int
GL_UNDEFINED_VERTEX_EXT

Returned in the data parameter from a Get query with a pname of LAYER_PROVOKING_VERTEX_EXT.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static native void
glFramebufferTextureEXT(int target, int attachment, int texture, int level)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_FIRST_VERTEX_CONVENTION_EXTback to summary
public static final int GL_FIRST_VERTEX_CONVENTION_EXT

Returned in the data parameter from a Get query with a pname of LAYER_PROVOKING_VERTEX_EXT.

GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXTback to summary
public static final int GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

GL_FRAMEBUFFER_DEFAULT_LAYERS_EXTback to summary
public static final int GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT

Accepted by the pname parameter of FramebufferParameteri, and GetFramebufferParameteriv.

GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXTback to summary
public static final int GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT

Returned by CheckFramebufferStatus.

GL_GEOMETRY_LINKED_INPUT_TYPE_EXTback to summary
public static final int GL_GEOMETRY_LINKED_INPUT_TYPE_EXT

Accepted by the pname parameter of GetProgramiv.

GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXTback to summary
public static final int GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT

Accepted by the pname parameter of GetProgramiv.

GL_GEOMETRY_LINKED_VERTICES_OUT_EXTback to summary
public static final int GL_GEOMETRY_LINKED_VERTICES_OUT_EXT

Accepted by the pname parameter of GetProgramiv.

GL_GEOMETRY_SHADER_BIT_EXTback to summary
public static final int GL_GEOMETRY_SHADER_BIT_EXT

Accepted by the stages parameter of UseProgramStages.

GL_GEOMETRY_SHADER_EXTback to summary
public static final int GL_GEOMETRY_SHADER_EXT

Accepted by the type parameter of CreateShader and CreateShaderProgramv, by the pname parameter of GetProgramPipelineiv and returned in the params parameter of GetShaderiv when pname is SHADER_TYPE.

GL_GEOMETRY_SHADER_INVOCATIONS_EXTback to summary
public static final int GL_GEOMETRY_SHADER_INVOCATIONS_EXT

Accepted by the pname parameter of GetProgramiv.

GL_LAST_VERTEX_CONVENTION_EXTback to summary
public static final int GL_LAST_VERTEX_CONVENTION_EXT

Returned in the data parameter from a Get query with a pname of LAYER_PROVOKING_VERTEX_EXT.

GL_LAYER_PROVOKING_VERTEX_EXTback to summary
public static final int GL_LAYER_PROVOKING_VERTEX_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_LINE_STRIP_ADJACENCY_EXTback to summary
public static final int GL_LINE_STRIP_ADJACENCY_EXT

Accepted by the mode parameter of DrawArrays, DrawElements, and other commands which draw primitives.

GL_LINES_ADJACENCY_EXTback to summary
public static final int GL_LINES_ADJACENCY_EXT

Accepted by the mode parameter of DrawArrays, DrawElements, and other commands which draw primitives.

GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXTback to summary
public static final int GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_FRAMEBUFFER_LAYERS_EXTback to summary
public static final int GL_MAX_FRAMEBUFFER_LAYERS_EXT

Accepted by the pname parameter of GetIntegerv, GetBooleanv, GetInteger64v, and GetFloatv.

GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXTback to summary
public static final int GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXTback to summary
public static final int GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXTback to summary
public static final int GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXTback to summary
public static final int GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXTback to summary
public static final int GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXTback to summary
public static final int GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXTback to summary
public static final int GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXTback to summary
public static final int GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXTback to summary
public static final int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXTback to summary
public static final int GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXTback to summary
public static final int GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXTback to summary
public static final int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v.

GL_PRIMITIVES_GENERATED_EXTback to summary
public static final int GL_PRIMITIVES_GENERATED_EXT

Accepted by the target parameter of BeginQuery, EndQuery, GetQueryiv, and GetQueryObjectuiv.

GL_REFERENCED_BY_GEOMETRY_SHADER_EXTback to summary
public static final int GL_REFERENCED_BY_GEOMETRY_SHADER_EXT

Accepted by the props parameter of GetProgramResourceiv.

GL_TRIANGLE_STRIP_ADJACENCY_EXTback to summary
public static final int GL_TRIANGLE_STRIP_ADJACENCY_EXT

Accepted by the mode parameter of DrawArrays, DrawElements, and other commands which draw primitives.

GL_TRIANGLES_ADJACENCY_EXTback to summary
public static final int GL_TRIANGLES_ADJACENCY_EXT

Accepted by the mode parameter of DrawArrays, DrawElements, and other commands which draw primitives.

GL_UNDEFINED_VERTEX_EXTback to summary
public static final int GL_UNDEFINED_VERTEX_EXT

Returned in the data parameter from a Get query with a pname of LAYER_PROVOKING_VERTEX_EXT.

Constructor Detail

EXTGeometryShaderback to summary
protected EXTGeometryShader()

Method Detail

glFramebufferTextureEXTback to summary
public static native void glFramebufferTextureEXT(int target, int attachment, int texture, int level)