diff options
author | Brian <brian.paul@tungstengraphics.com> | 2007-09-06 17:07:09 -0600 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2007-09-06 17:07:09 -0600 |
commit | 63a51aee86f76ae54fb1ce572d584fb0f01aaec5 (patch) | |
tree | d506eebeccfc1365bd2dd982c497fe1d14be2117 /src/mesa/pipe/draw/draw_private.h | |
parent | 41ddd76b98e9e236a796f1bb9480ea0b2fb18010 (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.h | 9 |
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 ); |