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:
EXT_transform_feedback), where a list of varyings is provided prior to linking a program object and is
used whenever that program object is used.NV_transform_feedback2), where "locations" of active varyings are queried after linking
and are then passed to a function that sets the active transform feedback varyings for the program object. Unlike the "EXT"-style mode, the set of
varyings to capture can be changed without relinking.NV_transform_feedback2), where applications specify a set of
canonical attribute enums/numbers to capture.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. or EXT_transform_feedback or NV_transform_feedback. Promoted to core in OpenGL 4..
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
Accepted by the |
| public static final int | GL_MAX_VERTEX_STREAMS
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description | |||||||
|---|---|---|---|---|---|---|---|---|
| public static void | glBeginQueryIndexed(int
the target type of query object established between target, int glBeginQueryIndexed and the subsequent EndQueryIndexed. One of:
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
the target type of query object to be concluded. One of: 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: | |||||||
| public static void | nglGetQueryIndexediv(int target, int index, int pname, long params)
Unsafe version of: |
| GL_MAX_TRANSFORM_FEEDBACK_BUFFERS | back to summary |
|---|---|
| public static final int GL_MAX_TRANSFORM_FEEDBACK_BUFFERS Accepted by the | |
| GL_MAX_VERTEX_STREAMS | back to summary |
|---|---|
| public static final int GL_MAX_VERTEX_STREAMS Accepted by the | |
| ARBTransformFeedback3 | back to summary |
|---|---|
| protected ARBTransformFeedback3() | |
| glBeginQueryIndexed | back to summary | |||||||
|---|---|---|---|---|---|---|---|---|
| public static void glBeginQueryIndexed(int target, int index, int id) Begins a query object on an indexed target
| ||||||||
| glDrawTransformFeedbackStream | back 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.
| ||||||||||||||||
| glEndQueryIndexed | back to summary | |||||||
|---|---|---|---|---|---|---|---|---|
| public static void glEndQueryIndexed(int target, int index) Ends a query object on an indexed target
| ||||||||
| glGetQueryIndexedi | back to summary | |||||||
|---|---|---|---|---|---|---|---|---|
| public static int glGetQueryIndexedi(int target, int index, int pname) Returns parameters of an indexed query object target.
| ||||||||
| glGetQueryIndexediv | back to summary | |||||||
|---|---|---|---|---|---|---|---|---|
| public static void glGetQueryIndexediv(int target, int index, int pname, IntBuffer params) Returns parameters of an indexed query object target.
| ||||||||
| glGetQueryIndexediv | back to summary |
|---|---|
| public static void glGetQueryIndexediv(int target, int index, int pname, int[] params) Array version of: | |
| nglGetQueryIndexediv | back to summary |
|---|---|
| public static void nglGetQueryIndexediv(int target, int index, int pname, long params) Unsafe version of: | |