Home | History | Annotate | Download | only in draw
      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 = TRUE;                         \
     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