summaryrefslogtreecommitdiff
path: root/src/cairo-traps-compositor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo-traps-compositor.c')
-rw-r--r--src/cairo-traps-compositor.c35
1 files changed, 29 insertions, 6 deletions
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
index c26a5df6f..8c13ca202 100644
--- a/src/cairo-traps-compositor.c
+++ b/src/cairo-traps-compositor.c
@@ -59,6 +59,7 @@
#include "cairo-spans-private.h"
#include "cairo-traps-private.h"
#include "cairo-tristrip-private.h"
+#include "cairo-ttrace.h"
typedef cairo_int_status_t
(*draw_func_t) (const cairo_traps_compositor_t *compositor,
@@ -2110,6 +2111,7 @@ static cairo_int_status_t
_cairo_traps_compositor_paint (const cairo_compositor_t *_compositor,
cairo_composite_rectangles_t *extents)
{
+ CAIRO_TRACE_BEGIN (__func__);
cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t*)_compositor;
cairo_boxes_t boxes;
cairo_int_status_t status;
@@ -2117,13 +2119,16 @@ _cairo_traps_compositor_paint (const cairo_compositor_t *_compositor,
TRACE ((stderr, "%s\n", __FUNCTION__));
status = compositor->check_composite (extents);
- if (unlikely (status))
+ if (unlikely (status)) {
+ CAIRO_TRACE_END (__func__);
return status;
+ }
_cairo_clip_steal_boxes (extents->clip, &boxes);
status = clip_and_composite_boxes (compositor, extents, &boxes);
_cairo_clip_unsteal_boxes (extents->clip, &boxes);
+ CAIRO_TRACE_END (__func__);
return status;
}
@@ -2131,14 +2136,17 @@ static cairo_int_status_t
_cairo_traps_compositor_mask (const cairo_compositor_t *_compositor,
cairo_composite_rectangles_t *extents)
{
+ CAIRO_TRACE_BEGIN (__func__);
const cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t*)_compositor;
cairo_int_status_t status;
TRACE ((stderr, "%s\n", __FUNCTION__));
status = compositor->check_composite (extents);
- if (unlikely (status))
+ if (unlikely (status)) {
+ CAIRO_TRACE_END (__func__);
return status;
+ }
if (extents->mask_pattern.base.type == CAIRO_PATTERN_TYPE_SOLID &&
extents->clip->path == NULL) {
@@ -2157,8 +2165,10 @@ _cairo_traps_compositor_mask (const cairo_compositor_t *_compositor,
&extents->mask_sample_area,
&data.mask_x,
&data.mask_y);
- if (unlikely (data.mask->status))
+ if (unlikely (data.mask->status)) {
+ CAIRO_TRACE_END (__func__);
return data.mask->status;
+ }
status = clip_and_composite (compositor, extents,
composite_mask,
@@ -2168,6 +2178,7 @@ _cairo_traps_compositor_mask (const cairo_compositor_t *_compositor,
cairo_surface_destroy (data.mask);
}
+ CAIRO_TRACE_END (__func__);
return status;
}
@@ -2181,14 +2192,17 @@ _cairo_traps_compositor_stroke (const cairo_compositor_t *_compositor,
double tolerance,
cairo_antialias_t antialias)
{
+ CAIRO_TRACE_BEGIN (__func__);
const cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t *)_compositor;
cairo_int_status_t status;
TRACE ((stderr, "%s\n", __FUNCTION__));
status = compositor->check_composite (extents);
- if (unlikely (status))
+ if (unlikely (status)) {
+ CAIRO_TRACE_END (__func__);
return status;
+ }
status = CAIRO_INT_STATUS_UNSUPPORTED;
if (_cairo_path_fixed_stroke_is_rectilinear (path)) {
@@ -2265,6 +2279,7 @@ _cairo_traps_compositor_stroke (const cairo_compositor_t *_compositor,
_cairo_traps_fini (&info.traps);
}
+ CAIRO_TRACE_END (__func__);
return status;
}
@@ -2276,14 +2291,17 @@ _cairo_traps_compositor_fill (const cairo_compositor_t *_compositor,
double tolerance,
cairo_antialias_t antialias)
{
+ CAIRO_TRACE_BEGIN (__func__);
const cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t *)_compositor;
cairo_int_status_t status;
TRACE ((stderr, "%s\n", __FUNCTION__));
status = compositor->check_composite (extents);
- if (unlikely (status))
+ if (unlikely (status)) {
+ CAIRO_TRACE_END (__func__);
return status;
+ }
status = CAIRO_INT_STATUS_UNSUPPORTED;
if (_cairo_path_fixed_fill_is_rectilinear (path)) {
@@ -2332,6 +2350,7 @@ _cairo_traps_compositor_fill (const cairo_compositor_t *_compositor,
_cairo_polygon_fini (&polygon);
}
+ CAIRO_TRACE_END (__func__);
return status;
}
@@ -2367,14 +2386,17 @@ _cairo_traps_compositor_glyphs (const cairo_compositor_t *_compositor,
int num_glyphs,
cairo_bool_t overlap)
{
+ CAIRO_TRACE_BEGIN (__func__);
const cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t *)_compositor;
cairo_int_status_t status;
TRACE ((stderr, "%s\n", __FUNCTION__));
status = compositor->check_composite (extents);
- if (unlikely (status))
+ if (unlikely (status)) {
+ CAIRO_TRACE_END (__func__);
return status;
+ }
_cairo_scaled_font_freeze_cache (scaled_font);
status = compositor->check_composite_glyphs (extents,
@@ -2395,6 +2417,7 @@ _cairo_traps_compositor_glyphs (const cairo_compositor_t *_compositor,
}
_cairo_scaled_font_thaw_cache (scaled_font);
+ CAIRO_TRACE_END (__func__);
return status;
}