Mesa (master): draw: fix decomposition to work with adjacency primitives

Zack Rusin zack at kemper.freedesktop.org
Wed Jul 14 01:50:24 UTC 2010


Module: Mesa
Branch: master
Commit: f52f8e9a8c24e54f27a1841e382fd8f6dfe17b6d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f52f8e9a8c24e54f27a1841e382fd8f6dfe17b6d

Author: Zack Rusin <zackr at vmware.com>
Date:   Sat Jul 10 18:13:48 2010 -0400

draw: fix decomposition to work with adjacency primitives

---

 src/gallium/auxiliary/draw/draw_pt_varray.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pt_varray.c b/src/gallium/auxiliary/draw/draw_pt_varray.c
index d89d5cd..cd7bb7b 100644
--- a/src/gallium/auxiliary/draw/draw_pt_varray.c
+++ b/src/gallium/auxiliary/draw/draw_pt_varray.c
@@ -120,17 +120,21 @@ static void varray_fan_segment(struct varray_frontend *varray,
 #define FUNC varray_run
 #include "draw_pt_varray_tmp_linear.h"
 
-static unsigned decompose_prim[PIPE_PRIM_POLYGON + 1] = {
+static unsigned decompose_prim[PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY + 1] = {
    PIPE_PRIM_POINTS,
    PIPE_PRIM_LINES,
    PIPE_PRIM_LINE_STRIP,        /* decomposed LINELOOP */
    PIPE_PRIM_LINE_STRIP,
    PIPE_PRIM_TRIANGLES,
    PIPE_PRIM_TRIANGLE_STRIP,
-   PIPE_PRIM_TRIANGLE_FAN, 
+   PIPE_PRIM_TRIANGLE_FAN,
    PIPE_PRIM_QUADS,
    PIPE_PRIM_QUAD_STRIP,
-   PIPE_PRIM_POLYGON
+   PIPE_PRIM_POLYGON,
+   PIPE_PRIM_LINES_ADJACENCY,
+   PIPE_PRIM_LINE_STRIP_ADJACENCY,
+   PIPE_PRIM_TRIANGLES_ADJACENCY,
+   PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY
 };
 
 
@@ -145,6 +149,7 @@ static void varray_prepare(struct draw_pt_front_end *frontend,
    varray->base.run = varray_run;
 
    varray->input_prim = in_prim;
+   assert(in_prim < Elements(decompose_prim));
    varray->output_prim = decompose_prim[in_prim];
 
    varray->middle = middle;




More information about the mesa-commit mailing list