public class EXTTransformFeedback
extends java.lang.Object
This extension provides a new mode to the GL, called transform feedback, which records selected vertex attributes for each primitive processed by the GL. The selected attributes are written into buffer objects, and can be written with each attribute in a separate buffer object or with all attributes interleaved into a single buffer object. If a geometry shader is active, the primitives recorded are those emitted by the geometry shader. Otherwise, transform feedback captures primitives whose vertices are transformed by a vertex shader. In either case, the primitives captured are those generated prior to clipping. Transform feedback mode captures the values of specified varying variables emitted from GLSL vertex or geometry shaders.
The vertex data recorded in transform feedback mode is stored into buffer objects as an array of vertex attributes. The regular representation and the
use of buffer objects allows the recorded data to be processed directly by the GL without requiring CPU intervention to copy data. In particular,
transform feedback data can be used for vertex arrays (via vertex buffer objects), as the source for pixel data (via pixel buffer objects), as shader
constant data (via the NV_parameter_buffer_object or EXT_bindable_uniform extensions), or via any other extension that
makes use of buffer objects.
This extension introduces new query object support to allow transform feedback mode to operate asynchronously. Query objects allow applications to determine when transform feedback results are complete, as well as the number of primitives processed and written back to buffer objects while in transform feedback mode. This extension also provides a new rasterizer discard enable, which allows applications to use transform feedback to capture vertex attributes without rendering anything.
Requires OpenGL 2.0 or ARB_shader_objects. Promoted to core in OpenGL 3.0.
| Modifier and Type | Field and Description |
|---|---|
static int |
GL_INTERLEAVED_ATTRIBS_EXT
Accepted by the
bufferMode parameter of TransformFeedbackVaryingsEXT. |
static int |
GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_PRIMITIVES_GENERATED_EXT
Accepted by the
target parameter of BeginQuery, EndQuery, and GetQueryiv. |
static int |
GL_RASTERIZER_DISCARD_EXT
Accepted by the
cap parameter of Enable, Disable, and IsEnabled, and by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and
GetDoublev. |
static int |
GL_SEPARATE_ATTRIBS_EXT
Accepted by the
bufferMode parameter of TransformFeedbackVaryingsEXT. |
static int |
GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT
Accepted by the
param parameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT, and by the pname parameter of GetBooleanv,
GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_TRANSFORM_FEEDBACK_BUFFER_EXT
Accepted by the
target parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferPointerv,
BindBufferRangeEXT, BindBufferOffsetEXT and BindBufferBaseEXT. |
static int |
GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT
Accepted by the
pname parameter of GetProgramiv. |
static int |
GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT
Accepted by the
param parameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT. |
static int |
GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT
Accepted by the
param parameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT. |
static int |
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT
Accepted by the
target parameter of BeginQuery, EndQuery, and GetQueryiv. |
static int |
GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT
Accepted by the
pname parameter of GetProgramiv. |
static int |
GL_TRANSFORM_FEEDBACK_VARYINGS_EXT
Accepted by the
pname parameter of GetProgramiv. |
| Modifier and Type | Method and Description |
|---|---|
static void |
glBeginTransformFeedbackEXT(int primitiveMode) |
static void |
glBindBufferBaseEXT(int target,
int index,
int buffer) |
static void |
glBindBufferOffsetEXT(int target,
int index,
int buffer,
long offset) |
static void |
glBindBufferRangeEXT(int target,
int index,
int buffer,
long offset,
long size) |
static void |
glEndTransformFeedbackEXT() |
static boolean |
glGetBooleanIndexedEXT(int target,
int index) |
static void |
glGetBooleanIndexedvEXT(int target,
int index,
java.nio.ByteBuffer data) |
static int |
glGetIntegerIndexedEXT(int target,
int index) |
static void |
glGetIntegerIndexedvEXT(int target,
int index,
int[] data)
Array version of:
GetIntegerIndexedvEXT |
static void |
glGetIntegerIndexedvEXT(int target,
int index,
java.nio.IntBuffer data) |
static void |
glGetTransformFeedbackVaryingEXT(int program,
int index,
int[] length,
int[] size,
int[] type,
java.nio.ByteBuffer name)
Array version of:
GetTransformFeedbackVaryingEXT |
static java.lang.String |
glGetTransformFeedbackVaryingEXT(int program,
int index,
java.nio.IntBuffer size,
java.nio.IntBuffer type) |
static void |
glGetTransformFeedbackVaryingEXT(int program,
int index,
java.nio.IntBuffer length,
java.nio.IntBuffer size,
java.nio.IntBuffer type,
java.nio.ByteBuffer name) |
static java.lang.String |
glGetTransformFeedbackVaryingEXT(int program,
int index,
int bufSize,
java.nio.IntBuffer size,
java.nio.IntBuffer type) |
static void |
glTransformFeedbackVaryingsEXT(int program,
java.lang.CharSequence[] varyings,
int bufferMode) |
static void |
glTransformFeedbackVaryingsEXT(int program,
java.lang.CharSequence varying,
int bufferMode) |
static void |
glTransformFeedbackVaryingsEXT(int program,
org.lwjgl.PointerBuffer varyings,
int bufferMode) |
static void |
nglGetBooleanIndexedvEXT(int target,
int index,
long data) |
static void |
nglGetIntegerIndexedvEXT(int target,
int index,
long data) |
static void |
nglGetTransformFeedbackVaryingEXT(int program,
int index,
int bufSize,
long length,
long size,
long type,
long name) |
static void |
nglTransformFeedbackVaryingsEXT(int program,
int count,
long varyings,
int bufferMode) |
public static final int GL_TRANSFORM_FEEDBACK_BUFFER_EXT
target parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferPointerv,
BindBufferRangeEXT, BindBufferOffsetEXT and BindBufferBaseEXT.public static final int GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT
param parameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT.public static final int GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT
param parameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT.public static final int GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT
param parameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT, and by the pname parameter of GetBooleanv,
GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_INTERLEAVED_ATTRIBS_EXT
bufferMode parameter of TransformFeedbackVaryingsEXT.public static final int GL_SEPARATE_ATTRIBS_EXT
bufferMode parameter of TransformFeedbackVaryingsEXT.public static final int GL_PRIMITIVES_GENERATED_EXT
target parameter of BeginQuery, EndQuery, and GetQueryiv.public static final int GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT
target parameter of BeginQuery, EndQuery, and GetQueryiv.public static final int GL_RASTERIZER_DISCARD_EXT
cap parameter of Enable, Disable, and IsEnabled, and by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and
GetDoublev.public static final int GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_TRANSFORM_FEEDBACK_VARYINGS_EXT
pname parameter of GetProgramiv.public static final int GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT
pname parameter of GetProgramiv.public static final int GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT
pname parameter of GetProgramiv.public static void glBindBufferRangeEXT(int target,
int index,
int buffer,
long offset,
long size)
public static void glBindBufferOffsetEXT(int target,
int index,
int buffer,
long offset)
public static void glBindBufferBaseEXT(int target,
int index,
int buffer)
public static void glBeginTransformFeedbackEXT(int primitiveMode)
public static void glEndTransformFeedbackEXT()
public static void nglTransformFeedbackVaryingsEXT(int program,
int count,
long varyings,
int bufferMode)
public static void glTransformFeedbackVaryingsEXT(int program,
org.lwjgl.PointerBuffer varyings,
int bufferMode)
public static void glTransformFeedbackVaryingsEXT(int program,
java.lang.CharSequence[] varyings,
int bufferMode)
public static void glTransformFeedbackVaryingsEXT(int program,
java.lang.CharSequence varying,
int bufferMode)
public static void nglGetTransformFeedbackVaryingEXT(int program,
int index,
int bufSize,
long length,
long size,
long type,
long name)
public static void glGetTransformFeedbackVaryingEXT(int program,
int index,
@Nullable
java.nio.IntBuffer length,
java.nio.IntBuffer size,
java.nio.IntBuffer type,
java.nio.ByteBuffer name)
public static java.lang.String glGetTransformFeedbackVaryingEXT(int program,
int index,
int bufSize,
java.nio.IntBuffer size,
java.nio.IntBuffer type)
public static java.lang.String glGetTransformFeedbackVaryingEXT(int program,
int index,
java.nio.IntBuffer size,
java.nio.IntBuffer type)
public static void nglGetIntegerIndexedvEXT(int target,
int index,
long data)
public static void glGetIntegerIndexedvEXT(int target,
int index,
java.nio.IntBuffer data)
public static int glGetIntegerIndexedEXT(int target,
int index)
public static void nglGetBooleanIndexedvEXT(int target,
int index,
long data)
public static void glGetBooleanIndexedvEXT(int target,
int index,
java.nio.ByteBuffer data)
public static boolean glGetBooleanIndexedEXT(int target,
int index)
public static void glGetTransformFeedbackVaryingEXT(int program,
int index,
@Nullable
int[] length,
int[] size,
int[] type,
java.nio.ByteBuffer name)
GetTransformFeedbackVaryingEXTpublic static void glGetIntegerIndexedvEXT(int target,
int index,
int[] data)
GetIntegerIndexedvEXTCopyright LWJGL. All Rights Reserved. License terms.