static cairo_int_status_t base_compositor_stroke (const cairo_compositor_t *_compositor, cairo_composite_rectangles_t *extents, const cairo_path_fixed_t *path, const cairo_stroke_style_t *style, const cairo_matrix_t *ctm, const cairo_matrix_t *ctm_inverse, double tolerance, cairo_antialias_t antialias) { composite_traps_info_t info; cairo_int_status_t status; info.antialias = antialias; _cairo_traps_init_with_clip (&info.traps, extents->clip); status = _cairo_path_fixed_stroke_to_traps (path, style, ctm, ctm_inverse, tolerance, &info.traps); if (likely (status == CAIRO_INT_STATUS_SUCCESS)) status = trim_extents_to_traps (extents, &info.traps); if (likely (status == CAIRO_INT_STATUS_SUCCESS)) status = clip_and_composite (extents, composite_traps, &info); _cairo_traps_fini (&info.traps); return status; }
static cairo_int_status_t base_compositor_fill (const cairo_compositor_t *_compositor, cairo_composite_rectangles_t *extents, const cairo_path_fixed_t *path, cairo_fill_rule_t fill_rule, double tolerance, cairo_antialias_t antialias) { composite_traps_info_t info; cairo_int_status_t status; TRACE ((stderr, "%s\n", __FUNCTION__)); info.antialias = antialias; _cairo_traps_init_with_clip (&info.traps, extents->clip); status = _cairo_path_fixed_fill_to_traps (path, fill_rule, tolerance, &info.traps); if (likely (status == CAIRO_INT_STATUS_SUCCESS)) status = trim_extents_to_traps (extents, &info.traps); if (likely (status == CAIRO_INT_STATUS_SUCCESS)) status = clip_and_composite (extents, composite_traps, &info); _cairo_traps_fini (&info.traps); return status; }