diff options
author | Zack Rusin <[email protected]> | 2013-03-14 00:42:06 -0700 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2013-03-27 03:53:01 -0700 |
commit | 014c4d1cd7f147d5365302d15bdb35d9e4b040d0 (patch) | |
tree | 63df1b566e7b144086affa5dc0a1173196a91fa3 /src/gallium/auxiliary/draw/draw_gs.h | |
parent | a85c83e427e1d768781cc6b12fd126d02f5f14d7 (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.h | 14 |
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); }; /* |