summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/draw/draw_private.h
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-09-06 17:07:09 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-09-06 17:07:09 -0600
commit63a51aee86f76ae54fb1ce572d584fb0f01aaec5 (patch)
treed506eebeccfc1365bd2dd982c497fe1d14be2117 /src/mesa/pipe/draw/draw_private.h
parent41ddd76b98e9e236a796f1bb9480ea0b2fb18010 (diff)
Initial work for post-transformed vertex feedback buffers.
This will be used for: GL_NV_transform_feedback, or similar GL3 functionality glRasterPos GL selection/feedback modes
Diffstat (limited to 'src/mesa/pipe/draw/draw_private.h')
-rw-r--r--src/mesa/pipe/draw/draw_private.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mesa/pipe/draw/draw_private.h b/src/mesa/pipe/draw/draw_private.h
index 9f90dc3e26..8bcc3717c4 100644
--- a/src/mesa/pipe/draw/draw_private.h
+++ b/src/mesa/pipe/draw/draw_private.h
@@ -126,6 +126,7 @@ struct draw_context
struct draw_stage *first; /**< one of the following */
/* stages (in logical order) */
+ struct draw_stage *feedback;
struct draw_stage *flatshade;
struct draw_stage *clip;
struct draw_stage *cull;
@@ -137,10 +138,13 @@ struct draw_context
/* pipe state that we need: */
struct pipe_setup_state setup;
+ struct pipe_feedback_state feedback;
struct pipe_viewport_state viewport;
struct pipe_vertex_buffer vertex_buffer[PIPE_ATTRIB_MAX];
struct pipe_vertex_element vertex_element[PIPE_ATTRIB_MAX];
struct pipe_shader_state vertex_shader;
+ struct pipe_vertex_buffer feedback_buffer[PIPE_ATTRIB_MAX];
+ struct pipe_vertex_element feedback_element[PIPE_ATTRIB_MAX];
/** The mapped vertex element/index buffer */
const void *mapped_elts;
@@ -150,6 +154,10 @@ struct draw_context
/** The mapped constant buffers (for vertex shader) */
const void *mapped_constants;
+ /** The mapped vertex element/index buffer */
+ void *mapped_feedback_buffer[PIPE_MAX_FEEDBACK_ATTRIBS];
+ uint mapped_feedback_buffer_size[PIPE_MAX_FEEDBACK_ATTRIBS]; /* in bytes */
+
/* Clip derived state:
*/
float plane[12][4];
@@ -203,6 +211,7 @@ struct draw_context
+extern struct draw_stage *draw_feedback_stage( struct draw_context *context );
extern struct draw_stage *draw_unfilled_stage( struct draw_context *context );
extern struct draw_stage *draw_twoside_stage( struct draw_context *context );
extern struct draw_stage *draw_offset_stage( struct draw_context *context );