194d256591d83ac1330f7237e865784618d124d09Chia-I Wu#define FUNC_VARS \ 294d256591d83ac1330f7237e865784618d124d09Chia-I Wu struct pt_so_emit *so, \ 394d256591d83ac1330f7237e865784618d124d09Chia-I Wu const struct draw_prim_info *input_prims, \ 494d256591d83ac1330f7237e865784618d124d09Chia-I Wu const struct draw_vertex_info *input_verts, \ 594d256591d83ac1330f7237e865784618d124d09Chia-I Wu unsigned start, \ 694d256591d83ac1330f7237e865784618d124d09Chia-I Wu unsigned count 794d256591d83ac1330f7237e865784618d124d09Chia-I Wu 894d256591d83ac1330f7237e865784618d124d09Chia-I Wu#define FUNC_ENTER \ 994d256591d83ac1330f7237e865784618d124d09Chia-I Wu /* declare more local vars */ \ 1094d256591d83ac1330f7237e865784618d124d09Chia-I Wu const unsigned prim = input_prims->prim; \ 11f141abdc8fdbff41e16b0ce53fa3fa8fba32a7f9Chia-I Wu const unsigned prim_flags = input_prims->flags; \ 128b4f7b0672d663273310fffa9490ad996f5b914aChristoph Bumiller const boolean quads_flatshade_last = FALSE; \ 137b3beb22405ee2de0cf02951b6547964a2989ee5Chia-I Wu const boolean last_vertex_last = TRUE; \ 1494d256591d83ac1330f7237e865784618d124d09Chia-I Wu do { \ 1594d256591d83ac1330f7237e865784618d124d09Chia-I Wu debug_assert(input_prims->primitive_count == 1); \ 1694d256591d83ac1330f7237e865784618d124d09Chia-I Wu switch (prim) { \ 1794d256591d83ac1330f7237e865784618d124d09Chia-I Wu case PIPE_PRIM_LINES_ADJACENCY: \ 1894d256591d83ac1330f7237e865784618d124d09Chia-I Wu case PIPE_PRIM_LINE_STRIP_ADJACENCY: \ 1994d256591d83ac1330f7237e865784618d124d09Chia-I Wu case PIPE_PRIM_TRIANGLES_ADJACENCY: \ 2094d256591d83ac1330f7237e865784618d124d09Chia-I Wu case PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY: \ 2194d256591d83ac1330f7237e865784618d124d09Chia-I Wu debug_assert(!"unexpected primitive type in stream output"); \ 2294d256591d83ac1330f7237e865784618d124d09Chia-I Wu return; \ 2394d256591d83ac1330f7237e865784618d124d09Chia-I Wu default: \ 2494d256591d83ac1330f7237e865784618d124d09Chia-I Wu break; \ 2594d256591d83ac1330f7237e865784618d124d09Chia-I Wu } \ 2694d256591d83ac1330f7237e865784618d124d09Chia-I Wu } while (0) \ 2794d256591d83ac1330f7237e865784618d124d09Chia-I Wu 2894d256591d83ac1330f7237e865784618d124d09Chia-I Wu#define POINT(i0) so_point(so,i0) 2994d256591d83ac1330f7237e865784618d124d09Chia-I Wu#define LINE(flags,i0,i1) so_line(so,i0,i1) 3094d256591d83ac1330f7237e865784618d124d09Chia-I Wu#define TRIANGLE(flags,i0,i1,i2) so_tri(so,i0,i1,i2) 3194d256591d83ac1330f7237e865784618d124d09Chia-I Wu 3294d256591d83ac1330f7237e865784618d124d09Chia-I Wu#include "draw_decompose_tmp.h" 33