static cairo_bool_t composite_needs_clip (const cairo_composite_rectangles_t *composit, 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; }
cairo_bool_t _cairo_composite_rectangles_can_reduce_clip (cairo_composite_rectangles_t *composite, cairo_clip_t *clip) { cairo_rectangle_int_t extents; cairo_box_t box; if (clip == NULL) return TRUE; extents = composite->destination; if (composite->is_bounded & CAIRO_OPERATOR_BOUND_BY_SOURCE) _cairo_rectangle_intersect (&extents, &composite->source); if (composite->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) _cairo_rectangle_intersect (&extents, &composite->mask); _cairo_box_from_rectangle (&box, &extents); return _cairo_clip_contains_box (clip, &box); }
static cairo_bool_t composite_needs_clip (const cairo_composite_rectangles_t *composite, const cairo_box_t *extents) { return !_cairo_clip_contains_box (composite->clip, extents); }