summaryrefslogtreecommitdiffstats
path: root/src/mesa/pipe/draw
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/pipe/draw')
-rw-r--r--src/mesa/pipe/draw/draw_arrays.c7
-rw-r--r--src/mesa/pipe/draw/draw_vb.c66
2 files changed, 4 insertions, 69 deletions
diff --git a/src/mesa/pipe/draw/draw_arrays.c b/src/mesa/pipe/draw/draw_arrays.c
index 59098fe2421..fe9ec444252 100644
--- a/src/mesa/pipe/draw/draw_arrays.c
+++ b/src/mesa/pipe/draw/draw_arrays.c
@@ -170,11 +170,12 @@ run_vertex_program(struct draw_context *draw,
unsigned attr;
for (attr = 0; attr < 16; attr++) {
if (draw->vertex_shader.inputs_read & (1 << attr)) {
+ unsigned buf = draw->vertex_element[attr].vertex_buffer_index;
const void *src
- = (const void *) ((const ubyte *) draw->mapped_vbuffer[attr]
- + draw->vertex_buffer[attr].buffer_offset
+ = (const void *) ((const ubyte *) draw->mapped_vbuffer[buf]
+ + draw->vertex_buffer[buf].buffer_offset
+ draw->vertex_element[attr].src_offset
- + elts[j] * draw->vertex_buffer[attr].pitch);
+ + elts[j] * draw->vertex_buffer[buf].pitch);
float p[4];
fetch_attrib4(src, draw->vertex_element[attr].src_format, p);
diff --git a/src/mesa/pipe/draw/draw_vb.c b/src/mesa/pipe/draw/draw_vb.c
index 0eefb0b250e..f83f8b8a0ec 100644
--- a/src/mesa/pipe/draw/draw_vb.c
+++ b/src/mesa/pipe/draw/draw_vb.c
@@ -259,72 +259,6 @@ void draw_vb(struct draw_context *draw,
#endif /*MESA*/
-/**
- * XXX Temporary mechanism to draw simple vertex arrays.
- * All attribs are float[4]. Arrays are interleaved, in GL-speak.
- */
-void
-draw_vertices(struct draw_context *draw,
- unsigned mode,
- unsigned numVerts, const float *vertices,
- unsigned numAttrs, const unsigned attribs[])
-{
- /*unsigned first, incr;*/
- unsigned i, j;
-
- assert(mode <= PIPE_PRIM_POLYGON);
-
- draw->vs_flush = vs_flush;
-
- draw->vertex_size
- = sizeof(struct vertex_header) + numAttrs * 4 * sizeof(float);
-
-
- /* no element/index buffer */
- draw_set_mapped_element_buffer(draw, 0, NULL);
-
- /*draw_prim_info(mode, &first, &incr);*/
- draw_allocate_vertices( draw, numVerts );
- draw->pipeline.first->begin( draw->pipeline.first );
-
- if (draw->prim != mode)
- draw_set_prim( draw, mode );
-
- /* setup attr info */
- draw->nr_attrs = numAttrs + 2;
- draw->attrs[0].attrib = VF_ATTRIB_VERTEX_HEADER;
- draw->attrs[0].format = EMIT_1F;
- draw->attrs[1].attrib = VF_ATTRIB_CLIP_POS;
- draw->attrs[1].format = EMIT_4F;
- for (j = 0; j < numAttrs; j++) {
- draw->vf_attr_to_slot[attribs[j]] = 2+j;
- draw->attrs[2+j].attrib = attribs[j];
- draw->attrs[2+j].format = EMIT_4F;
- }
-
- /* build vertices */
- for (i = 0; i < numVerts; i++) {
- struct vertex_header *v
- = (struct vertex_header *) (draw->verts + i * draw->vertex_size);
- v->clipmask = 0x0;
- v->edgeflag = 0;
- for (j = 0; j < numAttrs; j++) {
- COPY_4FV(v->data[j], vertices + (i * numAttrs + j) * 4);
- }
- }
-
- /* draw */
- draw_prim(draw, 0, numVerts);
- draw_flush(draw);
- draw->pipeline.first->end( draw->pipeline.first );
-
-
- /* clean up */
- draw_release_vertices( draw );
- draw->verts = NULL;
- draw->in_vb = 0;
-}
-
#if 000
/**