diff options
author | Dave Airlie <[email protected]> | 2012-01-04 17:38:55 +0000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2012-01-10 12:07:51 +0000 |
commit | ec8cbd79ac4065111365a6720c9564de56855cc8 (patch) | |
tree | 741b04a8e779a4ce401f59bbe505fbd1e55e78ab /src/gallium/auxiliary/draw/draw_context.h | |
parent | 67e3cbf1632e361220234013147331e4618b70cb (diff) |
draw/softpipe: EXT_transform_feedback support (v2)
This replaces the current code with an implementation compatible with
the new gallium interface. I've left some of the remains of the interface
intact so llvmpipe keeps building correctly, and I'll take a look at fixing
llvmpipe up later.
v2: fixup as per Brian's review
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_context.h')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_context.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.h b/src/gallium/auxiliary/draw/draw_context.h index 7655ad0a90d..02c176e8f4b 100644 --- a/src/gallium/auxiliary/draw/draw_context.h +++ b/src/gallium/auxiliary/draw/draw_context.h @@ -50,7 +50,18 @@ struct draw_fragment_shader; struct tgsi_sampler; struct gallivm_state; - +/* + * structure to contain driver internal information + * for stream out support. mapping stores the pointer + * to the buffer contents, and internal offset stores + * stores an internal counter to how much of the stream + * out buffer is used (in bytes). + */ +struct draw_so_target { + struct pipe_stream_output_target target; + void *mapping; + int internal_offset; +}; struct draw_context *draw_create( struct pipe_context *pipe ); @@ -202,6 +213,12 @@ void draw_set_mapped_so_buffers(struct draw_context *draw, void *buffers[PIPE_MAX_SO_BUFFERS], unsigned num_buffers); + +void +draw_set_mapped_so_targets(struct draw_context *draw, + int num_targets, + struct draw_so_target *targets[PIPE_MAX_SO_BUFFERS]); + void draw_set_so_state(struct draw_context *draw, struct pipe_stream_output_info *state); |