1a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin#define FUNC_VARS \ 2a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin struct draw_assembler *asmblr, \ 3a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin const struct draw_prim_info *input_prims, \ 4a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin const struct draw_vertex_info *input_verts, \ 5a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin unsigned start, \ 6a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin unsigned count 7a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin 8a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin#define FUNC_ENTER \ 9a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin /* declare more local vars */ \ 10a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin const unsigned prim = input_prims->prim; \ 11a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin const unsigned prim_flags = input_prims->flags; \ 12a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin const boolean quads_flatshade_last = FALSE; \ 13a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin const boolean last_vertex_last = !asmblr->draw->rasterizer->flatshade_first; \ 14a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin switch (prim) { \ 15a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin case PIPE_PRIM_QUADS: \ 16a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin case PIPE_PRIM_QUAD_STRIP: \ 17a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin case PIPE_PRIM_POLYGON: \ 18a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin debug_assert(!"unexpected primitive type in prim assembler"); \ 19a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin return; \ 20a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin default: \ 21a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin break; \ 22a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin } \ 23a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin 24a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin 25a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin#define POINT(i0) prim_point(asmblr, i0) 26a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin#define LINE(flags, i0, i1) prim_line(asmblr, i0, i1) 27a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin#define TRIANGLE(flags, i0, i1, i2) prim_tri(asmblr, i0, i1, i2) 28a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin 29a9cb914f49fa3810b15eb9df9f6209a16fafa491Zack Rusin#include "draw_decompose_tmp.h" 30