コード例 #1
0
/*
 * For drawing non-indexed primitives.
 */
void draw_pipeline_run_linear( struct draw_context *draw,
                               const struct draw_vertex_info *vert_info,
                               const struct draw_prim_info *prim_info)
{
   unsigned i, start;

   for (start = i = 0;
        i < prim_info->primitive_count;
        start += prim_info->primitive_lengths[i], i++)
   {
      unsigned count = prim_info->primitive_lengths[i];
      char *verts = ((char*)vert_info->verts) +
                    (start * vert_info->stride);

      draw->pipeline.verts = verts;
      draw->pipeline.vertex_stride = vert_info->stride;
      draw->pipeline.vertex_count = count;

      assert(count <= vert_info->count);

      pipe_run_linear(draw,
                      prim_info->prim,
                      prim_info->flags,
                      (struct vertex_header*)verts,
                      vert_info->stride,
                      count);
   }

   draw->pipeline.verts = NULL;
   draw->pipeline.vertex_count = 0;
}
コード例 #2
0
ファイル: draw_pipe.c プロジェクト: CPFDSoftware-Tony/gmv
/*
 * For drawing non-indexed primitives.
 */
void draw_pipeline_run_linear( struct draw_context *draw,
                               unsigned prim,
                               struct vertex_header *vertices,
                               unsigned count,
                               unsigned stride )
{
   char *verts = (char *)vertices;
   draw->pipeline.verts = verts;
   draw->pipeline.vertex_stride = stride;
   draw->pipeline.vertex_count = count;

   pipe_run_linear(draw, prim, vertices, stride, count);

   draw->pipeline.verts = NULL;
   draw->pipeline.vertex_count = 0;
}