Class EXTTransformFeedback
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intAccepted by thebufferModeparameter of TransformFeedbackVaryingsEXT.static final intAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.static final intAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.static final intAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.static final intAccepted by thetargetparameter of BeginQuery, EndQuery, and GetQueryiv.static final intAccepted by thecapparameter of Enable, Disable, and IsEnabled, and by thepnameparameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final intAccepted by thebufferModeparameter of TransformFeedbackVaryingsEXT.static final intAccepted by theparamparameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT, and by thepnameparameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.static final intAccepted by thetargetparameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferPointerv, BindBufferRangeEXT, BindBufferOffsetEXT and BindBufferBaseEXT.static final intAccepted by thepnameparameter of GetProgramiv.static final intAccepted by theparamparameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT.static final intAccepted by theparamparameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT.static final intAccepted by thetargetparameter of BeginQuery, EndQuery, and GetQueryiv.static final intAccepted by thepnameparameter of GetProgramiv.static final intAccepted by thepnameparameter of GetProgramiv. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidglBeginTransformFeedbackEXT(int primitiveMode) static voidglBindBufferBaseEXT(int target, int index, int buffer) static voidglBindBufferOffsetEXT(int target, int index, int buffer, long offset) static voidglBindBufferRangeEXT(int target, int index, int buffer, long offset, long size) static voidstatic booleanglGetBooleanIndexedEXT(int target, int index) static voidglGetBooleanIndexedvEXT(int target, int index, ByteBuffer data) static intglGetIntegerIndexedEXT(int target, int index) static voidglGetIntegerIndexedvEXT(int target, int index, int[] data) Array version of:GetIntegerIndexedvEXTstatic voidglGetIntegerIndexedvEXT(int target, int index, IntBuffer data) static voidglGetTransformFeedbackVaryingEXT(int program, int index, int[] length, int[] size, int[] type, ByteBuffer name) Array version of:GetTransformFeedbackVaryingEXTstatic StringglGetTransformFeedbackVaryingEXT(int program, int index, int bufSize, IntBuffer size, IntBuffer type) static StringglGetTransformFeedbackVaryingEXT(int program, int index, IntBuffer size, IntBuffer type) static voidglGetTransformFeedbackVaryingEXT(int program, int index, IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name) static voidglTransformFeedbackVaryingsEXT(int program, CharSequence[] varyings, int bufferMode) static voidglTransformFeedbackVaryingsEXT(int program, CharSequence varying, int bufferMode) static voidglTransformFeedbackVaryingsEXT(int program, org.lwjgl.PointerBuffer varyings, int bufferMode) static voidnglGetBooleanIndexedvEXT(int target, int index, long data) static voidnglGetIntegerIndexedvEXT(int target, int index, long data) static voidnglGetTransformFeedbackVaryingEXT(int program, int index, int bufSize, long length, long size, long type, long name) static voidnglTransformFeedbackVaryingsEXT(int program, int count, long varyings, int bufferMode)
-
Field Details
-
GL_TRANSFORM_FEEDBACK_BUFFER_EXT
public static final int GL_TRANSFORM_FEEDBACK_BUFFER_EXTAccepted by thetargetparameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferPointerv, BindBufferRangeEXT, BindBufferOffsetEXT and BindBufferBaseEXT.- See Also:
-
GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT
public static final int GL_TRANSFORM_FEEDBACK_BUFFER_START_EXTAccepted by theparamparameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT.- See Also:
-
GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT
public static final int GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXTAccepted by theparamparameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT.- See Also:
-
GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT
public static final int GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXTAccepted by theparamparameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT, and by thepnameparameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.- See Also:
-
GL_INTERLEAVED_ATTRIBS_EXT
public static final int GL_INTERLEAVED_ATTRIBS_EXTAccepted by thebufferModeparameter of TransformFeedbackVaryingsEXT.- See Also:
-
GL_SEPARATE_ATTRIBS_EXT
public static final int GL_SEPARATE_ATTRIBS_EXTAccepted by thebufferModeparameter of TransformFeedbackVaryingsEXT.- See Also:
-
GL_PRIMITIVES_GENERATED_EXT
public static final int GL_PRIMITIVES_GENERATED_EXTAccepted by thetargetparameter of BeginQuery, EndQuery, and GetQueryiv.- See Also:
-
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT
public static final int GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXTAccepted by thetargetparameter of BeginQuery, EndQuery, and GetQueryiv.- See Also:
-
GL_RASTERIZER_DISCARD_EXT
public static final int GL_RASTERIZER_DISCARD_EXTAccepted by thecapparameter of Enable, Disable, and IsEnabled, and by thepnameparameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
public static final int GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXTAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.- See Also:
-
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
public static final int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXTAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.- See Also:
-
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
public static final int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXTAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.- See Also:
-
GL_TRANSFORM_FEEDBACK_VARYINGS_EXT
public static final int GL_TRANSFORM_FEEDBACK_VARYINGS_EXTAccepted by thepnameparameter of GetProgramiv.- See Also:
-
GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT
public static final int GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXTAccepted by thepnameparameter of GetProgramiv.- See Also:
-
GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT
public static final int GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXTAccepted by thepnameparameter of GetProgramiv.- See Also:
-
-
Method Details
-
glBindBufferRangeEXT
public static void glBindBufferRangeEXT(int target, int index, int buffer, long offset, long size) -
glBindBufferOffsetEXT
public static void glBindBufferOffsetEXT(int target, int index, int buffer, long offset) -
glBindBufferBaseEXT
public static void glBindBufferBaseEXT(int target, int index, int buffer) -
glBeginTransformFeedbackEXT
public static void glBeginTransformFeedbackEXT(int primitiveMode) -
glEndTransformFeedbackEXT
public static void glEndTransformFeedbackEXT() -
nglTransformFeedbackVaryingsEXT
public static void nglTransformFeedbackVaryingsEXT(int program, int count, long varyings, int bufferMode) -
glTransformFeedbackVaryingsEXT
public static void glTransformFeedbackVaryingsEXT(int program, org.lwjgl.PointerBuffer varyings, int bufferMode) -
glTransformFeedbackVaryingsEXT
public static void glTransformFeedbackVaryingsEXT(int program, CharSequence[] varyings, int bufferMode) -
glTransformFeedbackVaryingsEXT
public static void glTransformFeedbackVaryingsEXT(int program, CharSequence varying, int bufferMode) -
nglGetTransformFeedbackVaryingEXT
public static void nglGetTransformFeedbackVaryingEXT(int program, int index, int bufSize, long length, long size, long type, long name) -
glGetTransformFeedbackVaryingEXT
public static void glGetTransformFeedbackVaryingEXT(int program, int index, @Nullable IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name) -
glGetTransformFeedbackVaryingEXT
-
glGetTransformFeedbackVaryingEXT
-
nglGetIntegerIndexedvEXT
public static void nglGetIntegerIndexedvEXT(int target, int index, long data) -
glGetIntegerIndexedvEXT
-
glGetIntegerIndexedEXT
public static int glGetIntegerIndexedEXT(int target, int index) -
nglGetBooleanIndexedvEXT
public static void nglGetBooleanIndexedvEXT(int target, int index, long data) -
glGetBooleanIndexedvEXT
-
glGetBooleanIndexedEXT
public static boolean glGetBooleanIndexedEXT(int target, int index) -
glGetTransformFeedbackVaryingEXT
public static void glGetTransformFeedbackVaryingEXT(int program, int index, @Nullable int[] length, int[] size, int[] type, ByteBuffer name) Array version of:GetTransformFeedbackVaryingEXT -
glGetIntegerIndexedvEXT
public static void glGetIntegerIndexedvEXT(int target, int index, int[] data) Array version of:GetIntegerIndexedvEXT
-