[cairo-commit] src/cairo-bentley-ottmann-rectangular.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Jun 15 08:19:46 PDT 2011


 src/cairo-bentley-ottmann-rectangular.c |    7 +++++++
 1 file changed, 7 insertions(+)

New commits:
commit 8e7589abcc4075d4a1de9151e79fda5d093d03bb
Author: Taekyun Kim <podain77 at gmail.com>
Date:   Wed Jun 15 23:23:02 2011 +0900

    tessellator: Fixed to produce an output box with x1 <= x2 for single box input
    
    Winding of a box is toggled by swapping x1, x2 coordinates. So
    we have to swap those coordinate rather than just copying.
    
    Many routines assume that boxes are left-top to right-bottom
    convention. So tessellator should produce such output boxes.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/cairo-bentley-ottmann-rectangular.c b/src/cairo-bentley-ottmann-rectangular.c
index 88986bb..9a4dcd9 100644
--- a/src/cairo-bentley-ottmann-rectangular.c
+++ b/src/cairo-bentley-ottmann-rectangular.c
@@ -739,6 +739,13 @@ _cairo_bentley_ottmann_tessellate_boxes (const cairo_boxes_t *in,
     if (unlikely (in->num_boxes == 1)) {
 	cairo_box_t box = in->chunks.base[0];
 	_cairo_boxes_clear (out);
+
+	if (box.p1.x > box.p2.x) {
+	    cairo_fixed_t tmp = box.p1.x;
+	    box.p1.x = box.p2.x;
+	    box.p2.x = tmp;
+	}
+
 	status = _cairo_boxes_add (out, &box);
 	assert (status == CAIRO_STATUS_SUCCESS);
 	return CAIRO_STATUS_SUCCESS;


More information about the cairo-commit mailing list