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