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