summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-05-23 11:38:07 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-05-23 11:50:34 +0100
commitc09be681123388d562822d677db631101a8faa07 (patch)
tree591718798cca817bf4594824e34b9c58c82f7c7a
parent7b2f787d1999bcc351b2e2904322020732939f5f (diff)
bo-rectangular: Emit subsummed boxes for overlapping edges
Fixes bug-bo-collins Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49446 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/cairo-bentley-ottmann-rectangular.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cairo-bentley-ottmann-rectangular.c b/src/cairo-bentley-ottmann-rectangular.c
index b69d4254..5541bdc3 100644
--- a/src/cairo-bentley-ottmann-rectangular.c
+++ b/src/cairo-bentley-ottmann-rectangular.c
@@ -487,6 +487,8 @@ active_edges_to_traps (sweep_line_t *sweep)
}
if (winding == 0) {
+ if (left->right != NULL)
+ edge_end_box (sweep, left, top);
pos = right;
continue;
}
@@ -557,7 +559,7 @@ sweep_line_delete_edge (sweep_line_t *sweep, edge_t *edge)
}
static inline cairo_bool_t
-sweep_line_delete (sweep_line_t *sweep, rectangle_t *rectangle)
+sweep_line_delete (sweep_line_t *sweep, rectangle_t *rectangle)
{
cairo_bool_t update;
@@ -651,7 +653,6 @@ _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles,
active_edges_to_traps (&sweep_line);
update = FALSE;
}
-
sweep_line.current_y = rectangle->bottom;
}