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.c | |
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.c')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_context.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c index f91e408cbf0..10a20f76178 100644 --- a/src/gallium/auxiliary/draw/draw_context.c +++ b/src/gallium/auxiliary/draw/draw_context.c @@ -725,16 +725,25 @@ draw_get_rasterizer_no_cull( struct draw_context *draw, } void +draw_set_mapped_so_targets(struct draw_context *draw, + int num_targets, + struct draw_so_target *targets[PIPE_MAX_SO_BUFFERS]) +{ + int i; + + for (i = 0; i < num_targets; i++) + draw->so.targets[i] = targets[i]; + for (i = num_targets; i < PIPE_MAX_SO_BUFFERS; i++) + draw->so.targets[i] = NULL; + + draw->so.num_targets = num_targets; +} + +void draw_set_mapped_so_buffers(struct draw_context *draw, void *buffers[PIPE_MAX_SO_BUFFERS], unsigned num_buffers) { - int i; - - for (i = 0; i < num_buffers; ++i) { - draw->so.buffers[i] = buffers[i]; - } - draw->so.num_buffers = num_buffers; } void |