/* * 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; }
/* * 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; }