summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_context.h
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2012-01-04 17:38:55 +0000
committerDave Airlie <[email protected]>2012-01-10 12:07:51 +0000
commitec8cbd79ac4065111365a6720c9564de56855cc8 (patch)
tree741b04a8e779a4ce401f59bbe505fbd1e55e78ab /src/gallium/auxiliary/draw/draw_context.h
parent67e3cbf1632e361220234013147331e4618b70cb (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.h19
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);