1 #define FUNC_VARS struct draw_geometry_shader *gs, \ 2 const struct draw_prim_info *input_prims, \ 3 const struct draw_vertex_info *input_verts, \ 4 struct draw_prim_info *output_prims, \ 5 struct draw_vertex_info *output_verts 6 7 #define FUNC_ENTER \ 8 /* declare more local vars */ \ 9 const unsigned prim = input_prims->prim; \ 10 const unsigned prim_flags = input_prims->flags; \ 11 const unsigned count = input_prims->count; \ 12 const boolean quads_flatshade_last = FALSE; \ 13 const boolean last_vertex_last = !gs->draw->rasterizer->flatshade_first; \ 14 do { \ 15 debug_assert(input_prims->primitive_count == 1); \ 16 switch (prim) { \ 17 case PIPE_PRIM_QUADS: \ 18 case PIPE_PRIM_QUAD_STRIP: \ 19 case PIPE_PRIM_POLYGON: \ 20 debug_assert(!"unexpected primitive type in GS"); \ 21 return; \ 22 default: \ 23 break; \ 24 } \ 25 } while (0) 26 27 #define POINT(i0) gs_point(gs,i0) 28 #define LINE(flags,i0,i1) gs_line(gs,i0,i1) 29 #define TRIANGLE(flags,i0,i1,i2) gs_tri(gs,i0,i1,i2) 30 #define LINE_ADJ(flags,i0,i1,i2,i3) gs_line_adj(gs,i0,i1,i2,i3) 31 #define TRIANGLE_ADJ(flags,i0,i1,i2,i3,i4,i5) gs_tri_adj(gs,i0,i1,i2,i3,i4,i5) 32 33 #include "draw_decompose_tmp.h" 34