Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class ARBGeometryShader4

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

Native bindings to the ARB_geometry_shader4 extension.

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.

Promoted to core in OpenGL 3.2.

Field Summary

Modifier and TypeField and Description
public static final int
GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB

Accepted by the pname parameter of GetFramebufferAttachment- ParameterivARB.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER

Accepted by the pname parameter of GetFramebufferAttachment- ParameterivARB.

public static final int
GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB

Returned by CheckFramebufferStatusARB.

public static final int
GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB

Returned by CheckFramebufferStatusARB.

public static final int
GL_GEOMETRY_INPUT_TYPE_ARB

Accepted by the pname parameter of ProgramParameteriARB and GetProgramiv.

public static final int
GL_GEOMETRY_OUTPUT_TYPE_ARB

Accepted by the pname parameter of ProgramParameteriARB and GetProgramiv.

public static final int
GL_GEOMETRY_SHADER_ARB

Accepted by the type parameter of CreateShader and returned by the params parameter of GetShaderiv.

public static final int
GL_GEOMETRY_VERTICES_OUT_ARB

Accepted by the pname parameter of ProgramParameteriARB and GetProgramiv.

public static final int
GL_LINE_STRIP_ADJACENCY_ARB

Accepted by the mode parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.

public static final int
GL_LINES_ADJACENCY_ARB

Accepted by the mode parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.

public static final int
GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB

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

public static final int
GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB

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

public static final int
GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB

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

public static final int
GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB

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

public static final int
GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB

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

public static final int
GL_MAX_VERTEX_VARYING_COMPONENTS_ARB

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

public static final int
GL_PROGRAM_POINT_SIZE_ARB

Accepted by the cap parameter of Enable, Disable, and IsEnabled, and by the pname parameter of GetIntegerv, GetFloatv, GetDoublev, and GetBooleanv.

public static final int
GL_TRIANGLE_STRIP_ADJACENCY_ARB

Accepted by the mode parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.

public static final int
GL_TRIANGLES_ADJACENCY_ARB

Accepted by the mode parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static native void
glFramebufferTextureARB(int
the render target. Must be:
FRAMEBUFFER
target
,
int
must be one of the attachments points of the framebuffer
attachment
,
int
the texture object name
texture
,
int
the texture level
level
)

Attaches a specified level of a texture object as one of the logical buffers of the currently bound framebuffer object, to render directly into the texture image.

public static native void
glFramebufferTextureFaceARB(int
the render target. Must be:
FRAMEBUFFER
target
,
int
must be one of the attachments points of the framebuffer
attachment
,
int
the texture object name
texture
,
int
the texture level
level
,
int face)

Operates like FramebufferTextureARB, except that only a single face of a cube map texture, given by face, is attached to the attachment point.

public static native void
glFramebufferTextureLayerARB(int
the render target. Must be:
FRAMEBUFFER
target
,
int
must be one of the attachments points of the framebuffer
attachment
,
int
the texture object name
texture
,
int
the texture level
level
,
int
the texture layer
layer
)

Operates like FramebufferTextureARB, except that only a single layer of the texture level, numbered layer, is attached to the attachment point.

public static native void
glProgramParameteriARB(int
the program object
program
,
int pname, int
the value being set
value
)

Sets a program object parameter.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARBback to summary
public static final int GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB

Accepted by the pname parameter of GetFramebufferAttachment- ParameterivARB.

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYERback to summary
public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER

Accepted by the pname parameter of GetFramebufferAttachment- ParameterivARB.

GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARBback to summary
public static final int GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB

Returned by CheckFramebufferStatusARB.

GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARBback to summary
public static final int GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB

Returned by CheckFramebufferStatusARB.

GL_GEOMETRY_INPUT_TYPE_ARBback to summary
public static final int GL_GEOMETRY_INPUT_TYPE_ARB

Accepted by the pname parameter of ProgramParameteriARB and GetProgramiv.

GL_GEOMETRY_OUTPUT_TYPE_ARBback to summary
public static final int GL_GEOMETRY_OUTPUT_TYPE_ARB

Accepted by the pname parameter of ProgramParameteriARB and GetProgramiv.

GL_GEOMETRY_SHADER_ARBback to summary
public static final int GL_GEOMETRY_SHADER_ARB

Accepted by the type parameter of CreateShader and returned by the params parameter of GetShaderiv.

GL_GEOMETRY_VERTICES_OUT_ARBback to summary
public static final int GL_GEOMETRY_VERTICES_OUT_ARB

Accepted by the pname parameter of ProgramParameteriARB and GetProgramiv.

GL_LINE_STRIP_ADJACENCY_ARBback to summary
public static final int GL_LINE_STRIP_ADJACENCY_ARB

Accepted by the mode parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.

GL_LINES_ADJACENCY_ARBback to summary
public static final int GL_LINES_ADJACENCY_ARB

Accepted by the mode parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.

GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARBback to summary
public static final int GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB

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

GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARBback to summary
public static final int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB

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

GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARBback to summary
public static final int GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB

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

GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARBback to summary
public static final int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB

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

GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARBback to summary
public static final int GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB

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

GL_MAX_VERTEX_VARYING_COMPONENTS_ARBback to summary
public static final int GL_MAX_VERTEX_VARYING_COMPONENTS_ARB

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

GL_PROGRAM_POINT_SIZE_ARBback to summary
public static final int GL_PROGRAM_POINT_SIZE_ARB

Accepted by the cap parameter of Enable, Disable, and IsEnabled, and by the pname parameter of GetIntegerv, GetFloatv, GetDoublev, and GetBooleanv.

GL_TRIANGLE_STRIP_ADJACENCY_ARBback to summary
public static final int GL_TRIANGLE_STRIP_ADJACENCY_ARB

Accepted by the mode parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.

GL_TRIANGLES_ADJACENCY_ARBback to summary
public static final int GL_TRIANGLES_ADJACENCY_ARB

Accepted by the mode parameter of Begin, DrawArrays, MultiDrawArrays, DrawElements, MultiDrawElements, and DrawRangeElements.

Constructor Detail

ARBGeometryShader4back to summary
protected ARBGeometryShader4()

Method Detail

glFramebufferTextureARBback to summary
public static native void glFramebufferTextureARB(int target, int attachment, int texture, int level)

Attaches a specified level of a texture object as one of the logical buffers of the currently bound framebuffer object, to render directly into the texture image.

If texture is zero, any image or array of images attached to the attachment point named by attachment is detached, and the state of the attachment point is reset to its initial values. level is ignored if texture is zero.

If texture is non-zero, FramebufferTextureARB attaches level level of the texture object named texture to the framebuffer attachment point named by attachment. The error INVALID_VALUE is generated if texture is not the name of a texture object, or if level is not a supported texture level number for textures of the type corresponding to target. The error INVALID_OPERATION is generated if texture is the name of a buffer texture.

If texture is the name of a three-dimensional texture, cube map texture, or one- or two-dimensional array texture, the texture level attached to the framebuffer attachment point is an array of images, and the framebuffer attachment is considered layered.

Parameters
target:int

the render target. Must be:

FRAMEBUFFER
attachment:int

must be one of the attachments points of the framebuffer

texture:int

the texture object name

level:int

the texture level

glFramebufferTextureFaceARBback to summary
public static native void glFramebufferTextureFaceARB(int target, int attachment, int texture, int level, int face)

Operates like FramebufferTextureARB, except that only a single face of a cube map texture, given by face, is attached to the attachment point.

If texture is non-zero, the error INVALID_VALUE is generated if texture is not the name of a texture object. The error INVALID_OPERATION is generated unless texture is zero or the name of a cube map texture.

Parameters
target:int

the render target. Must be:

FRAMEBUFFER
attachment:int

must be one of the attachments points of the framebuffer

texture:int

the texture object name

level:int

the texture level

face:int

the cube map face. One of:

TEXTURE_CUBE_MAP_POSITIVE_XTEXTURE_CUBE_MAP_NEGATIVE_X
TEXTURE_CUBE_MAP_POSITIVE_YTEXTURE_CUBE_MAP_NEGATIVE_Y
TEXTURE_CUBE_MAP_POSITIVE_ZTEXTURE_CUBE_MAP_NEGATIVE_Z
glFramebufferTextureLayerARBback to summary
public static native void glFramebufferTextureLayerARB(int target, int attachment, int texture, int level, int layer)

Operates like FramebufferTextureARB, except that only a single layer of the texture level, numbered layer, is attached to the attachment point.

If texture is non-zero, the error INVALID_VALUE is generated if layer is negative, or if texture is not the name of a texture object. The error INVALID_OPERATION is generated unless texture is zero or the name of a three-dimensional or one- or two-dimensional array texture.

Parameters
target:int

the render target. Must be:

FRAMEBUFFER
attachment:int

must be one of the attachments points of the framebuffer

texture:int

the texture object name

level:int

the texture level

layer:int

the texture layer

glProgramParameteriARBback to summary
public static native void glProgramParameteriARB(int program, int pname, int value)

Sets a program object parameter.

The error INVALID_VALUE is generated if pname is GEOMETRY_INPUT_TYPE_ARB and value is not one of POINTS, LINES, LINES_ADJACENCY_ARB, TRIANGLES or TRIANGLES_ADJACENCY_ARB.

The error INVALID_VALUE is generated if pname is GEOMETRY_OUTPUT_TYPE_ARB and value is not one of POINTS, LINE_STRIP or TRIANGLE_STRIP.

The error INVALID_VALUE is generated if pname is GEOMETRY_VERTICES_OUT_ARB and value is negative.

The error INVALID_VALUE is generated if pname is GEOMETRY_VERTICES_OUT_ARB and value exceeds MAX_GEOMETRY_OUTPUT_VERTICES_ARB.

The error INVALID_VALUE is generated if pname is set to GEOMETRY_VERTICES_OUT_ARB and the product of value and the sum of all components of all active varying variables exceeds MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB.

Parameters
program:int

the program object

pname:int

the parameter to set. One of:

GEOMETRY_VERTICES_OUT_ARBGEOMETRY_INPUT_TYPE_ARBGEOMETRY_OUTPUT_TYPE_ARB
value:int

the value being set