summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_gs.h
diff options
context:
space:
mode:
authorZack Rusin <[email protected]>2013-03-14 00:42:06 -0700
committerZack Rusin <[email protected]>2013-03-27 03:53:01 -0700
commit014c4d1cd7f147d5365302d15bdb35d9e4b040d0 (patch)
tree63df1b566e7b144086affa5dc0a1173196a91fa3 /src/gallium/auxiliary/draw/draw_gs.h
parenta85c83e427e1d768781cc6b12fd126d02f5f14d7 (diff)
draw/gs: Abstract the portions of GS that are tgsi specific
To be able to add llvm paths later on we need to have some common interface for them. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_gs.h')
-rw-r--r--src/gallium/auxiliary/draw/draw_gs.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_gs.h b/src/gallium/auxiliary/draw/draw_gs.h
index 5d10d0dcd41..b17a4485b16 100644
--- a/src/gallium/auxiliary/draw/draw_gs.h
+++ b/src/gallium/auxiliary/draw/draw_gs.h
@@ -65,6 +65,20 @@ struct draw_geometry_shader {
unsigned input_vertex_stride;
const float (*input)[4];
const struct tgsi_shader_info *input_info;
+
+ void (*fetch_inputs)(struct draw_geometry_shader *shader,
+ unsigned *indices,
+ unsigned num_vertices,
+ unsigned prim_idx);
+ void (*fetch_outputs)(struct draw_geometry_shader *shader,
+ unsigned num_primitives,
+ float (**p_output)[4]);
+
+ void (*prepare)(struct draw_geometry_shader *shader,
+ const void *constants[PIPE_MAX_CONSTANT_BUFFERS],
+ const unsigned constants_size[PIPE_MAX_CONSTANT_BUFFERS]);
+ unsigned (*run)(struct draw_geometry_shader *shader,
+ unsigned input_primitives);
};
/*