summaryrefslogtreecommitdiff
path: root/src/mesa/main/mtypes.h
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2010-05-10 21:11:21 -0600
committerBrian Paul <brianp@vmware.com>2010-05-10 21:11:25 -0600
commitfef6e36e0736a68e24d7844bae65a01de8359214 (patch)
treee5d9abc8125f9166c55efe22dc11309099e1394c /src/mesa/main/mtypes.h
parent12bc39f30c2cc27fe9bc4d33c7c79919d895537d (diff)
mesa: more transform feedback infrastructure
Includes GL_ARB_transform_feedback2 which encapsulates transform feedback state in objects.
Diffstat (limited to 'src/mesa/main/mtypes.h')
-rw-r--r--src/mesa/main/mtypes.h35
1 files changed, 29 insertions, 6 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 81ab17c698..c34d9bac4a 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2034,24 +2034,46 @@ struct gl_shader_state
/**
- * Context state for transform feedback.
+ * Transform feedback object state
*/
-struct gl_transform_feedback
+struct gl_transform_feedback_object
{
+ GLuint Name; /**< AKA the object ID */
+ GLint RefCount;
GLboolean Active; /**< Is transform feedback enabled? */
- GLenum Mode; /**< GL_POINTS, GL_LINES or GL_TRIANGLES */
+ GLboolean Paused; /**< Is transform feedback paused? */
+
+ /** The feedback buffers */
+ GLuint BufferNames[MAX_FEEDBACK_ATTRIBS];
+ struct gl_buffer_object *Buffers[MAX_FEEDBACK_ATTRIBS];
+
/** Start of feedback data in dest buffer */
GLintptr Offset[MAX_FEEDBACK_ATTRIBS];
/** Max data to put into dest buffer (in bytes) */
GLsizeiptr Size[MAX_FEEDBACK_ATTRIBS];
+};
+
+
+/**
+ * Context state for transform feedback.
+ */
+struct gl_transform_feedback
+{
+ GLenum Mode; /**< GL_POINTS, GL_LINES or GL_TRIANGLES */
+
GLboolean RasterDiscard; /**< GL_RASTERIZER_DISCARD */
/** The general binding point (GL_TRANSFORM_FEEDBACK_BUFFER) */
struct gl_buffer_object *CurrentBuffer;
- /** The feedback buffers */
- GLuint BufferNames[MAX_FEEDBACK_ATTRIBS];
- struct gl_buffer_object *Buffers[MAX_FEEDBACK_ATTRIBS];
+ /** The table of all transform feedback objects */
+ struct _mesa_HashTable *Objects;
+
+ /** The current xform-fb object (GL_TRANSFORM_FEEDBACK_BINDING) */
+ struct gl_transform_feedback_object *CurrentObject;
+
+ /** The default xform-fb object (Name==0) */
+ struct gl_transform_feedback_object *DefaultObject;
};
@@ -2480,6 +2502,7 @@ struct gl_extensions
GLboolean ARB_texture_float;
GLboolean ARB_texture_mirrored_repeat;
GLboolean ARB_texture_non_power_of_two;
+ GLboolean ARB_transform_feedback2;
GLboolean ARB_transpose_matrix;
GLboolean ARB_vertex_array_object;
GLboolean ARB_vertex_buffer_object;