diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-05-11 20:51:58 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-05-11 21:31:13 +0100 |
commit | de1150cc0e1cb11710b196806335817255cb4abe (patch) | |
tree | f90bc04762442f33e7164373abc4036b347f7579 /src/cairo-spans-compositor.c | |
parent | 197e5b7324c569d3e8cd652dbf5a281a57317cbe (diff) | |
download | cairo-de1150cc0e1cb11710b196806335817255cb4abe.tar.gz |
spans-compositor: Add tracepoints for debugging
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.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c index 38a2d973e..2e2f4f457 100644 --- a/src/cairo-spans-compositor.c +++ b/src/cairo-spans-compositor.c @@ -245,6 +245,8 @@ fixup_unbounded_mask (const cairo_spans_compositor_t *compositor, cairo_surface_t *clip; cairo_int_status_t status; + TRACE((stderr, "%s\n", __FUNCTION__)); + clip = get_clip_surface (compositor, extents->surface, extents->clip, &extents->unbounded); if (unlikely (clip->status)) { @@ -288,6 +290,8 @@ fixup_unbounded_polygon (const cairo_spans_compositor_t *compositor, cairo_antialias_t antialias; cairo_int_status_t status; + TRACE((stderr, "%s\n", __FUNCTION__)); + /* Can we treat the clip as a regular clear-polygon and use it to fill? */ status = _cairo_clip_get_polygon (extents->clip, &polygon, &fill_rule, &antialias); @@ -712,8 +716,8 @@ composite_polygon (const cairo_spans_compositor_t *compositor, cairo_bool_t needs_clip; cairo_int_status_t status; - TRACE ((stderr, "%s\n", __FUNCTION__)); needs_clip = extents->clip->path != NULL || extents->clip->num_boxes > 1; + TRACE ((stderr, "%s - needs_clip=%d\n", __FUNCTION__, needs_clip)); if (needs_clip) { return CAIRO_INT_STATUS_UNSUPPORTED; converter = _cairo_clip_tor_scan_converter_create (extents->clip, @@ -882,6 +886,9 @@ clip_and_composite_polygon (const cairo_spans_compositor_t *compositor, cairo_antialias_t clip_antialias; cairo_fill_rule_t clip_fill_rule; + TRACE((stderr, "%s - combining shape with clip polygon\n", + __FUNCTION__)); + status = _cairo_clip_get_polygon (extents->clip, &clipper, &clip_fill_rule, @@ -1042,10 +1049,14 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor, const cairo_spans_compositor_t *compositor = (cairo_spans_compositor_t*)_compositor; cairo_int_status_t status; + TRACE((stderr, "%s op=%d, antialias=%d\n", __FUNCTION__, extents->op, antialias)); + status = CAIRO_INT_STATUS_UNSUPPORTED; if (_cairo_path_fixed_fill_is_rectilinear (path)) { cairo_boxes_t boxes; + TRACE((stderr, "%s - rectilinear\n", __FUNCTION__)); + _cairo_boxes_init (&boxes); if (! _cairo_clip_contains_rectangle (extents->clip, &extents->mask)) _cairo_boxes_limit (&boxes, @@ -1062,10 +1073,13 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor, if (status == CAIRO_INT_STATUS_UNSUPPORTED) { cairo_polygon_t polygon; + TRACE((stderr, "%s - polygon\n", __FUNCTION__)); + if (extents->mask.width > extents->unbounded.width || extents->mask.height > extents->unbounded.height) { cairo_box_t limits; + TRACE((stderr, "%s - clipping to bounds\n", __FUNCTION__)); _cairo_box_from_rectangle (&limits, &extents->unbounded); _cairo_polygon_init (&polygon, &limits, 1); } @@ -1076,6 +1090,8 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor, status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &polygon); 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)); status = _cairo_polygon_intersect_with_boxes (&polygon, &fill_rule, extents->clip->boxes, extents->clip->num_boxes); @@ -1084,6 +1100,8 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor, cairo_clip_t *saved_clip = extents->clip; if (extents->is_bounded) { + TRACE((stderr, "%s - polygon discard clip boxes\n", + __FUNCTION__)); extents->clip = _cairo_clip_copy_path (extents->clip); extents->clip = _cairo_clip_intersect_box(extents->clip, &polygon.extents); @@ -1098,6 +1116,8 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor, } } _cairo_polygon_fini (&polygon); + + TRACE((stderr, "%s - polygon status=%d\n", __FUNCTION__, status)); } return status; |