summaryrefslogtreecommitdiffstats
path: root/src/mesa/pipe/draw/draw_arrays.c
diff options
context:
space:
mode:
authorBrian <[email protected]>2007-08-30 16:49:24 -0600
committerBrian <[email protected]>2007-08-30 16:49:24 -0600
commit898d68a3762f84f0d435cda2f6aafddd356d1788 (patch)
tree50da7df858f9c160fe6bcd33b617975315a07eda /src/mesa/pipe/draw/draw_arrays.c
parent963b8a74493a474560447080b23407bfe4c707c5 (diff)
Consolidate vertex-related code in new draw_vertex.c
A few functions which were basically duplicated between softpipe and the i915 driver are now re-used: draw_emit_vertex_attr() draw_compute_vertex_size()
Diffstat (limited to 'src/mesa/pipe/draw/draw_arrays.c')
-rw-r--r--src/mesa/pipe/draw/draw_arrays.c79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/mesa/pipe/draw/draw_arrays.c b/src/mesa/pipe/draw/draw_arrays.c
index 9e219ed43be..bbb243c469e 100644
--- a/src/mesa/pipe/draw/draw_arrays.c
+++ b/src/mesa/pipe/draw/draw_arrays.c
@@ -74,82 +74,3 @@ draw_arrays(struct draw_context *draw, unsigned prim,
}
-static INLINE void
-emit_vertex_attr(struct vertex_info *vinfo, uint vfAttr, uint format, uint interp)
-{
- const uint n = vinfo->num_attribs;
- vinfo->attr_mask |= (1 << vfAttr);
- vinfo->slot_to_attrib[n] = vfAttr;
- if (n >= 2) {
- /* the first two slots are the vertex header & clippos */
- assert(vfAttr < Elements(vinfo->attrib_to_slot));
- vinfo->attrib_to_slot[vfAttr] = n - 2;
- }
- vinfo->interp_mode[n] = interp;
- vinfo->format[n] = format;
- vinfo->num_attribs++;
-
-}
-
-
-/** XXX this is duplicated in the i915 driver... */
-static void
-compute_vertex_size(struct vertex_info *vinfo)
-{
- uint i;
-
- vinfo->size = 0;
- for (i = 0; i < vinfo->num_attribs; i++) {
- switch (vinfo->format[i]) {
- case FORMAT_OMIT:
- break;
- case FORMAT_4UB:
- /* fall-through */
- case FORMAT_1F:
- vinfo->size += 1;
- break;
- case FORMAT_2F:
- vinfo->size += 2;
- break;
- case FORMAT_3F:
- vinfo->size += 3;
- break;
- case FORMAT_4F:
- vinfo->size += 4;
- break;
- default:
- assert(0);
- }
- }
-}
-
-
-void
-draw_set_vertex_attributes( struct draw_context *draw,
- const uint *slot_to_vf_attr,
- const uint *interp_mode,
- unsigned nr_attrs )
-{
- struct vertex_info *vinfo = &draw->vertex_info;
- unsigned i;
-
- assert(slot_to_vf_attr[0] == TGSI_ATTRIB_POS);
-
- memset(vinfo, 0, sizeof(*vinfo));
-
- /*
- * First three attribs are always the same: header, clip pos, winpos
- */
- emit_vertex_attr(vinfo, TGSI_ATTRIB_VERTEX_HEADER, FORMAT_1F, INTERP_NONE);
- emit_vertex_attr(vinfo, TGSI_ATTRIB_CLIP_POS, FORMAT_4F, INTERP_LINEAR);
- emit_vertex_attr(vinfo, TGSI_ATTRIB_POS, FORMAT_4F_VIEWPORT, INTERP_LINEAR);
-
- /*
- * Remaining attribs (color, texcoords, etc)
- */
- for (i = 1; i < nr_attrs; i++) {
- emit_vertex_attr(vinfo, slot_to_vf_attr[i], FORMAT_4F, interp_mode[i]);
- }
-
- compute_vertex_size(vinfo);
-}