123176779f88c5cff7365698f391194141e11e64cChia-I Wu#define FUNC_VARS struct draw_geometry_shader *gs, \ 223176779f88c5cff7365698f391194141e11e64cChia-I Wu const struct draw_prim_info *input_prims, \ 323176779f88c5cff7365698f391194141e11e64cChia-I Wu const struct draw_vertex_info *input_verts, \ 423176779f88c5cff7365698f391194141e11e64cChia-I Wu struct draw_prim_info *output_prims, \ 523176779f88c5cff7365698f391194141e11e64cChia-I Wu struct draw_vertex_info *output_verts 623176779f88c5cff7365698f391194141e11e64cChia-I Wu 723176779f88c5cff7365698f391194141e11e64cChia-I Wu#define FUNC_ENTER \ 823176779f88c5cff7365698f391194141e11e64cChia-I Wu /* declare more local vars */ \ 923176779f88c5cff7365698f391194141e11e64cChia-I Wu const unsigned prim = input_prims->prim; \ 10f141abdc8fdbff41e16b0ce53fa3fa8fba32a7f9Chia-I Wu const unsigned prim_flags = input_prims->flags; \ 117b3beb22405ee2de0cf02951b6547964a2989ee5Chia-I Wu const unsigned count = input_prims->count; \ 128b4f7b0672d663273310fffa9490ad996f5b914aChristoph Bumiller const boolean quads_flatshade_last = FALSE; \ 131a87473998b4af2dbe37aa3ce0c004e62d3fe2c0Zack Rusin const boolean last_vertex_last = !gs->draw->rasterizer->flatshade_first; \ 1423176779f88c5cff7365698f391194141e11e64cChia-I Wu do { \ 1523176779f88c5cff7365698f391194141e11e64cChia-I Wu debug_assert(input_prims->primitive_count == 1); \ 1623176779f88c5cff7365698f391194141e11e64cChia-I Wu switch (prim) { \ 1723176779f88c5cff7365698f391194141e11e64cChia-I Wu case PIPE_PRIM_QUADS: \ 1823176779f88c5cff7365698f391194141e11e64cChia-I Wu case PIPE_PRIM_QUAD_STRIP: \ 1923176779f88c5cff7365698f391194141e11e64cChia-I Wu case PIPE_PRIM_POLYGON: \ 2023176779f88c5cff7365698f391194141e11e64cChia-I Wu debug_assert(!"unexpected primitive type in GS"); \ 2123176779f88c5cff7365698f391194141e11e64cChia-I Wu return; \ 2223176779f88c5cff7365698f391194141e11e64cChia-I Wu default: \ 2323176779f88c5cff7365698f391194141e11e64cChia-I Wu break; \ 2423176779f88c5cff7365698f391194141e11e64cChia-I Wu } \ 2523176779f88c5cff7365698f391194141e11e64cChia-I Wu } while (0) \ 2623176779f88c5cff7365698f391194141e11e64cChia-I Wu 2723176779f88c5cff7365698f391194141e11e64cChia-I Wu#define POINT(i0) gs_point(gs,i0) 2823176779f88c5cff7365698f391194141e11e64cChia-I Wu#define LINE(flags,i0,i1) gs_line(gs,i0,i1) 2923176779f88c5cff7365698f391194141e11e64cChia-I Wu#define TRIANGLE(flags,i0,i1,i2) gs_tri(gs,i0,i1,i2) 3023176779f88c5cff7365698f391194141e11e64cChia-I Wu#define LINE_ADJ(flags,i0,i1,i2,i3) gs_line_adj(gs,i0,i1,i2,i3) 3123176779f88c5cff7365698f391194141e11e64cChia-I Wu#define TRIANGLE_ADJ(flags,i0,i1,i2,i3,i4,i5) gs_tri_adj(gs,i0,i1,i2,i3,i4,i5) 3223176779f88c5cff7365698f391194141e11e64cChia-I Wu 3323176779f88c5cff7365698f391194141e11e64cChia-I Wu#include "draw_decompose_tmp.h" 34