public class ARBTransformFeedback2
extends java.lang.Object
The EXT_transform_feedback extension allows applications to capture primitives to one or more buffer objects when transformed by the GL. This
extension provides a few additional capabilities to these extensions, making transform feedback mode more useful.
First, it provides transform feedback objects which encapsulate transform feedback-related state, allowing applications to replace the entire transform feedback configuration in a single bind call. Second, it provides the ability to pause and resume transform feedback operations. When transform feedback is paused, applications may render without transform feedback or may use transform feedback with different state and a different transform feedback object. When transform feedback is resumed, additional primitives are captured and appended to previously captured primitives for the object.
Additionally, this extension provides the ability to draw primitives captured in transform feedback mode without querying the captured primitive count.
The command DrawTransformFeedback is equivalent to glDrawArrays(<mode>, 0, <count>), where count is the number of
vertices captured to buffer objects during the last transform feedback capture operation on the transform feedback object used. This draw operation
only provides a vertex count -- it does not automatically set up vertex array state or vertex buffer object bindings, which must be done separately by
the application.
Requires GL20 or ARB_shader_objects and NV_transform_feedback or EXT_transform_feedback.
Promoted to core in OpenGL 4.0.
| Modifier and Type | Field and Description |
|---|---|
static int |
GL_TRANSFORM_FEEDBACK
Accepted by the
target parameter of BindTransformFeedback. |
static int |
GL_TRANSFORM_FEEDBACK_BINDING
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
| Modifier and Type | Method and Description |
|---|---|
static void |
glBindTransformFeedback(int target,
int id)
Binds a transform feedback object.
|
static void |
glDeleteTransformFeedbacks(int id)
Deletes transform feedback objects.
|
static void |
glDeleteTransformFeedbacks(int[] ids)
Array version of:
DeleteTransformFeedbacks |
static void |
glDeleteTransformFeedbacks(java.nio.IntBuffer ids)
Deletes transform feedback objects.
|
static void |
glDrawTransformFeedback(int mode,
int id)
Render primitives using a count derived from a transform feedback object.
|
static int |
glGenTransformFeedbacks()
Reserves transform feedback object names.
|
static void |
glGenTransformFeedbacks(int[] ids)
Array version of:
GenTransformFeedbacks |
static void |
glGenTransformFeedbacks(java.nio.IntBuffer ids)
Reserves transform feedback object names.
|
static boolean |
glIsTransformFeedback(int id)
Determines if a name corresponds to a transform feedback object.
|
static void |
glPauseTransformFeedback()
Pauses transform feedback operations for the currently bound transform feedback object.
|
static void |
glResumeTransformFeedback()
Resumes transform feedback operations for the currently bound transform feedback object.
|
static void |
nglDeleteTransformFeedbacks(int n,
long ids)
Unsafe version of:
DeleteTransformFeedbacks |
static void |
nglGenTransformFeedbacks(int n,
long ids)
Unsafe version of:
GenTransformFeedbacks |
public static final int GL_TRANSFORM_FEEDBACK
target parameter of BindTransformFeedback.public static final int GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_TRANSFORM_FEEDBACK_BINDING
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static void glBindTransformFeedback(int target,
int id)
target - the target to which to bind the transform feedback object id. Must be:TRANSFORM_FEEDBACK |
id - the name of a transform feedback objectpublic static void nglDeleteTransformFeedbacks(int n,
long ids)
DeleteTransformFeedbacksn - the number of transform feedback objects to deletepublic static void glDeleteTransformFeedbacks(java.nio.IntBuffer ids)
ids - an array of names of transform feedback objects to deletepublic static void glDeleteTransformFeedbacks(int id)
public static void nglGenTransformFeedbacks(int n,
long ids)
GenTransformFeedbacksn - the number of transform feedback object names to reservepublic static void glGenTransformFeedbacks(java.nio.IntBuffer ids)
ids - an array of into which the reserved names will be writtenpublic static int glGenTransformFeedbacks()
public static boolean glIsTransformFeedback(int id)
id - a value that may be the name of a transform feedback objectpublic static void glPauseTransformFeedback()
When transform feedback operations are paused, transform feedback is still considered active and changing most transform feedback state related to the
object results in an error. However, a new transform feedback object may be bound while transform feedback is paused. The error INVALID_OPERATION
is generated by PauseTransformFeedback if the currently bound transform feedback is not active or is paused.
When transform feedback is active and not paused, all geometric primitives generated must be compatible with the value of primitiveMode passed
to BeginTransformFeedback. The error INVALID_OPERATION is generated by Begin or any operation that implicitly calls Begin
(such as DrawElements) if mode is not one of the allowed modes. If a geometry shader is active, its output primitive type is used instead
of the mode parameter passed to Begin for the purposes of this error check. Any primitive type may be used while transform feedback is
paused.
public static void glResumeTransformFeedback()
The error INVALID_OPERATION is generated by ResumeTransformFeedback if the currently bound transform feedback is not active or is not paused.
public static void glDrawTransformFeedback(int mode,
int id)
mode - what kind of primitives to render. One of:POINTS | LINE_STRIP | LINE_LOOP | LINES | TRIANGLE_STRIP | TRIANGLE_FAN | TRIANGLES |
LINES_ADJACENCY | LINE_STRIP_ADJACENCY | TRIANGLES_ADJACENCY | TRIANGLE_STRIP_ADJACENCY | PATCHES | POLYGON | QUADS |
QUAD_STRIP |
id - the name of a transform feedback object from which to retrieve a primitive countpublic static void glDeleteTransformFeedbacks(int[] ids)
DeleteTransformFeedbackspublic static void glGenTransformFeedbacks(int[] ids)
GenTransformFeedbacksCopyright LWJGL. All Rights Reserved. License terms.