summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-09-27 12:21:00 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-09-27 12:21:00 +0100
commitcabb3c3bdf3153719b0ee538ea1b66137dc89085 (patch)
tree4494ec0d7aecd06ef387ba7910eb0123ee38fd5d
parentc05147b215072f9bd5e951011f68d9e647cf001f (diff)
spans-compositor: Remove polygon limits after construction
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/cairo-spans-compositor.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c
index 031ccbb0..ffbf56fc 100644
--- a/src/cairo-spans-compositor.c
+++ b/src/cairo-spans-compositor.c
@@ -111,6 +111,8 @@ get_clip_surface (const cairo_spans_compositor_t *compositor,
if (unlikely (status))
goto cleanup_polygon;
+ polygon.num_limits = 0;
+
antialias = clip_path->antialias;
fill_rule = clip_path->fill_rule;
@@ -918,9 +920,6 @@ clip_and_composite_polygon (const cairo_spans_compositor_t *compositor,
cairo_clip_t *old_clip;
if (clip_antialias == antialias) {
- /* refresh limits after trimming extents */
- _cairo_polygon_limit_to_clip(polygon, extents->clip);
-
status = _cairo_polygon_intersect (polygon, fill_rule,
&clipper, clip_fill_rule);
_cairo_polygon_fini (&clipper);
@@ -1040,6 +1039,8 @@ _cairo_spans_compositor_stroke (const cairo_compositor_t *_compositor,
tolerance,
&polygon);
TRACE_ (_cairo_debug_print_polygon (stderr, &polygon));
+ polygon.num_limits = 0;
+
if (status == CAIRO_INT_STATUS_SUCCESS && extents->clip->num_boxes > 1) {
status = _cairo_polygon_intersect_with_boxes (&polygon, &fill_rule,
extents->clip->boxes,
@@ -1123,6 +1124,9 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor,
}
status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &polygon);
+ TRACE_ (_cairo_debug_print_polygon (stderr, &polygon));
+ polygon.num_limits = 0;
+
if (status == CAIRO_INT_STATUS_SUCCESS && extents->clip->num_boxes > 1) {
TRACE((stderr, "%s - polygon intersect with %d clip boxes\n",
__FUNCTION__, extents->clip->num_boxes));