Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  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 = !gs->draw->rasterizer->flatshade_first;  \
  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.