summaryrefslogtreecommitdiff
path: root/src/cairo-spans-compositor.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-02-09 22:08:41 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-02-09 22:08:41 +0000
commit3443ad903d2ccff7d63a9116df7629d69d87d673 (patch)
treefd3cadb2128a33d385ab0028ecd24ee5613456bb /src/cairo-spans-compositor.c
parent3023ff86d58f97f3b2d3304c337920647bc8a147 (diff)
downloadcairo-3443ad903d2ccff7d63a9116df7629d69d87d673.tar.gz
spans: Pass unbounded operations to the spans compositors
Only bail if we need to combine clipping with the spans (either for a bounded or unbounded operation). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-spans-compositor.c')
-rw-r--r--src/cairo-spans-compositor.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c
index 0abb505e9..f069bcdc5 100644
--- a/src/cairo-spans-compositor.c
+++ b/src/cairo-spans-compositor.c
@@ -565,16 +565,10 @@ composite_aligned_boxes (const cairo_spans_compositor_t *compositor,
}
static cairo_bool_t
-composite_needs_clip (const cairo_composite_rectangles_t *composit,
+composite_needs_clip (const cairo_composite_rectangles_t *composite,
const cairo_box_t *extents)
{
- cairo_bool_t needs_clip;
-
- needs_clip = ! composit->is_bounded;
- if (needs_clip)
- needs_clip = ! _cairo_clip_contains_box (composit->clip, extents);
-
- return needs_clip;
+ return !_cairo_clip_contains_box (composite->clip, extents);
}
static cairo_int_status_t
@@ -588,11 +582,11 @@ composite_boxes (const cairo_spans_compositor_t *compositor,
cairo_int_status_t status;
cairo_box_t box;
- _cairo_box_from_rectangle (&box, &extents->bounded);
+ _cairo_box_from_rectangle (&box, &extents->unbounded);
if (composite_needs_clip (extents, &box))
return CAIRO_INT_STATUS_UNSUPPORTED;
- _cairo_rectangular_scan_converter_init (&converter, &extents->bounded);
+ _cairo_rectangular_scan_converter_init (&converter, &extents->unbounded);
for (chunk = &boxes->chunks; chunk != NULL; chunk = chunk->next) {
const cairo_box_t *box = chunk->base;
int i;
@@ -633,7 +627,7 @@ composite_polygon (const cairo_spans_compositor_t *compositor,
polygon,
fill_rule, antialias);
} else {
- const cairo_rectangle_int_t *r = &extents->bounded;
+ const cairo_rectangle_int_t *r = &extents->unbounded;
if (antialias == CAIRO_ANTIALIAS_FAST) {
converter = _cairo_tor22_scan_converter_create (r->x, r->y,