Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class ARBTransformFeedback3

extends Object
Class Inheritance
Imports
java.nio.*, org.lwjgl.system.*

Native bindings to the ARB_transform_feedback3 extension.

This extension further extends the transform feedback capabilities provided by the EXT_transform_feedback, NV_transform_feedback, and NV_transform_feedback2 extensions. Those extensions provided a new transform feedback mode, where selected vertex attributes can be recorded to a buffer object for each primitive processed by the GL.

This extension provides increased flexibility in how vertex attributes can be written to buffer objects. Previous extensions allowed applications to record a set of attributes interleaved into a single buffer object (interleaved mode) or to record into multiple objects, but with only a single attribute per buffer (separate mode). This extension extends interleaved mode to write into multiple buffers, with multiple attributes per buffer. This capability is supported for all three styles of transform feedback:

Additionally, this extension adds new support for multiple separate vertex streams. New geometry shader functionality provided by the ARB_gpu_shader5 and NV_gpu_program5 extensions allows geometry shaders to direct each vertex arbitrarily at a specified vertex stream. For example, a geometry program might write each "regular" vertex it emits to one vertex stream while writing some per-primitive data it computes to a second vertex stream. This extension allows applications to choose a vertex stream for each buffer object it writes to, and allows the vertices written to each vertex stream to be recorded in separate buffer objects. Only one stream may be selected for rasterization, and in the initial implementation, the geometry shader output topology must be POINTS if multiple streams are used. When geometry shaders are not used, or when an old geometry shader not writing multiple streams is used, all vertices produced by the GL are directed at the stream numbered zero. The set of transform feedback-related query targets is extended to accommodate multiple vertex streams, so it is possible to count the number of processed and recorded primitives for each stream separately.

Requires OpenGL 3.0 or EXT_transform_feedback or NV_transform_feedback. Promoted to core in OpenGL 4.0.

Field Summary

Modifier and TypeField and Description
public static final int
GL_MAX_TRANSFORM_FEEDBACK_BUFFERS

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

public static final int
GL_MAX_VERTEX_STREAMS

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

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
glBeginQueryIndexed(int target, int
the index of the query target upon which to begin the query
index
,
int
the name of a query object
id
)

Begins a query object on an indexed target

public static void
glDrawTransformFeedbackStream(int mode, int
the name of a transform feedback object from which to retrieve a primitive count
id
,
int
the index of the transform feedback stream from which to retrieve a primitive count
stream
)

Renders primitives using a count derived from a specifed stream of a transform feedback object.

public static void
glEndQueryIndexed(int target, int
the index of the query target upon which to end the query
index
)

Ends a query object on an indexed target

public static int
glGetQueryIndexedi(int target, int
the index of the query object target
index
,
int
the symbolic name of a query object target parameter
pname
)

Returns parameters of an indexed query object target.

public static void
glGetQueryIndexediv(int target, int
the index of the query object target
index
,
int
the symbolic name of a query object target parameter
pname
,
IntBuffer
the requested data
params
)

Returns parameters of an indexed query object target.

public static void
glGetQueryIndexediv(int target, int index, int pname, int[] params)

Array version of: GetQueryIndexediv

public static void
nglGetQueryIndexediv(int target, int index, int pname, long params)

Unsafe version of: GetQueryIndexediv

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_MAX_TRANSFORM_FEEDBACK_BUFFERSback to summary
public static final int GL_MAX_TRANSFORM_FEEDBACK_BUFFERS

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

GL_MAX_VERTEX_STREAMSback to summary
public static final int GL_MAX_VERTEX_STREAMS

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

Constructor Detail

ARBTransformFeedback3back to summary
protected ARBTransformFeedback3()

Method Detail

glBeginQueryIndexedback to summary
public static void glBeginQueryIndexed(int target, int index, int id)

Begins a query object on an indexed target

Parameters
target:int

the target type of query object established between glBeginQueryIndexed and the subsequent EndQueryIndexed. One of:

SAMPLES_PASSEDPRIMITIVES_GENERATEDTRANSFORM_FEEDBACK_PRIMITIVES_WRITTENTIME_ELAPSED
TIMESTAMPANY_SAMPLES_PASSEDANY_SAMPLES_PASSED_CONSERVATIVE
index:int

the index of the query target upon which to begin the query

id:int

the name of a query object

glDrawTransformFeedbackStreamback to summary
public static void glDrawTransformFeedbackStream(int mode, int id, int stream)

Renders primitives using a count derived from a specifed stream of a transform feedback object.

Parameters
mode:int

what kind of primitives to render. One of:

POINTSLINE_STRIPLINE_LOOPLINESTRIANGLE_STRIPTRIANGLE_FANTRIANGLES
LINES_ADJACENCYLINE_STRIP_ADJACENCYTRIANGLES_ADJACENCYTRIANGLE_STRIP_ADJACENCYPATCHESPOLYGONQUADS
QUAD_STRIP
id:int

the name of a transform feedback object from which to retrieve a primitive count

stream:int

the index of the transform feedback stream from which to retrieve a primitive count

glEndQueryIndexedback to summary
public static void glEndQueryIndexed(int target, int index)

Ends a query object on an indexed target

Parameters
target:int

the target type of query object to be concluded. One of:

SAMPLES_PASSEDPRIMITIVES_GENERATEDTRANSFORM_FEEDBACK_PRIMITIVES_WRITTENTIME_ELAPSED
TIMESTAMPANY_SAMPLES_PASSEDANY_SAMPLES_PASSED_CONSERVATIVE
index:int

the index of the query target upon which to end the query

glGetQueryIndexediback to summary
public static int glGetQueryIndexedi(int target, int index, int pname)

Returns parameters of an indexed query object target.

Parameters
target:int

a query object target. One of:

SAMPLES_PASSEDPRIMITIVES_GENERATEDTRANSFORM_FEEDBACK_PRIMITIVES_WRITTENTIME_ELAPSED
TIMESTAMPANY_SAMPLES_PASSEDANY_SAMPLES_PASSED_CONSERVATIVE
index:int

the index of the query object target

pname:int

the symbolic name of a query object target parameter

Annotations
@NativeType:void
glGetQueryIndexedivback to summary
public static void glGetQueryIndexediv(int target, int index, int pname, IntBuffer params)

Returns parameters of an indexed query object target.

Parameters
target:int

a query object target. One of:

SAMPLES_PASSEDPRIMITIVES_GENERATEDTRANSFORM_FEEDBACK_PRIMITIVES_WRITTENTIME_ELAPSED
TIMESTAMPANY_SAMPLES_PASSEDANY_SAMPLES_PASSED_CONSERVATIVE
index:int

the index of the query object target

pname:int

the symbolic name of a query object target parameter

params:IntBuffer

the requested data

glGetQueryIndexedivback to summary
public static void glGetQueryIndexediv(int target, int index, int pname, int[] params)

Array version of: GetQueryIndexediv

nglGetQueryIndexedivback to summary
public static void nglGetQueryIndexediv(int target, int index, int pname, long params)

Unsafe version of: GetQueryIndexediv