summaryrefslogtreecommitdiff
path: root/src/mesa/pipe
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-08-20 16:21:08 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-08-20 16:21:08 -0600
commit51da8ee85eccf0df3721cbd863cd174382d1ddfd (patch)
tree5fc9d29313fb9d8e1344434b6b0adf5116d277d5 /src/mesa/pipe
parent0a262998ef2813d19e9fee01d3e5808416e9cb04 (diff)
Start to remove the temporary draw_vb() and draw_vertices() code.
new st_draw_vertices() utility used by glClear and glDrawPixels
Diffstat (limited to 'src/mesa/pipe')
-rw-r--r--src/mesa/pipe/draw/draw_arrays.c7
-rw-r--r--src/mesa/pipe/draw/draw_vb.c66
-rw-r--r--src/mesa/pipe/i915simple/i915_context.c5
-rw-r--r--src/mesa/pipe/softpipe/sp_context.c6
4 files changed, 14 insertions, 70 deletions
diff --git a/src/mesa/pipe/draw/draw_arrays.c b/src/mesa/pipe/draw/draw_arrays.c
index 59098fe242..fe9ec44425 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 0eefb0b250..f83f8b8a0e 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
/**
diff --git a/src/mesa/pipe/i915simple/i915_context.c b/src/mesa/pipe/i915simple/i915_context.c
index 8a8582e0b2..c7d469583c 100644
--- a/src/mesa/pipe/i915simple/i915_context.c
+++ b/src/mesa/pipe/i915simple/i915_context.c
@@ -155,7 +155,9 @@ static void i915_draw_vb( struct pipe_context *pipe,
if (i915->dirty)
i915_update_derived( i915 );
+#if 0
draw_vb( i915->draw, VB );
+#endif
}
@@ -169,8 +171,9 @@ i915_draw_vertices(struct pipe_context *pipe,
if (i915->dirty)
i915_update_derived( i915 );
-
+#if 0
draw_vertices(i915->draw, mode, numVertex, verts, numAttribs, attribs);
+#endif
}
diff --git a/src/mesa/pipe/softpipe/sp_context.c b/src/mesa/pipe/softpipe/sp_context.c
index e7694bbe86..91ede05c05 100644
--- a/src/mesa/pipe/softpipe/sp_context.c
+++ b/src/mesa/pipe/softpipe/sp_context.c
@@ -195,6 +195,7 @@ static void softpipe_destroy( struct pipe_context *pipe )
}
+#if 0
static void softpipe_draw_vb( struct pipe_context *pipe,
struct vertex_buffer *VB )
{
@@ -208,6 +209,7 @@ static void softpipe_draw_vb( struct pipe_context *pipe,
draw_vb( softpipe->draw, VB );
softpipe_unmap_surfaces(softpipe);
}
+#endif
static void
@@ -223,7 +225,9 @@ softpipe_draw_vertices(struct pipe_context *pipe,
/* XXX move mapping/unmapping to higher/coarser level? */
softpipe_map_surfaces(softpipe);
+#if 0
draw_vertices(softpipe->draw, mode, numVertex, verts, numAttribs, attribs);
+#endif
softpipe_unmap_surfaces(softpipe);
}
@@ -285,8 +289,10 @@ struct pipe_context *softpipe_create( struct pipe_winsys *pipe_winsys,
softpipe->pipe.set_vertex_buffer = softpipe_set_vertex_buffer;
softpipe->pipe.set_vertex_element = softpipe_set_vertex_element;
+#if 0
softpipe->pipe.draw_vb = softpipe_draw_vb;
softpipe->pipe.draw_vertices = softpipe_draw_vertices;
+#endif
softpipe->pipe.draw_arrays = softpipe_draw_arrays;
softpipe->pipe.draw_elements = softpipe_draw_elements;