diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-07-12 16:06:32 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-07-12 16:33:38 +0100 |
commit | 679e5a600bd7dae6cbde83070fb1f7355f8025a7 (patch) | |
tree | 97cab6a3ba733d77e61a128036d3b495b8db9e0d /src/cairo-clip.c | |
parent | 8546a877889bfafc056c867bc9aea25e9fdcdef0 (diff) | |
download | cairo-679e5a600bd7dae6cbde83070fb1f7355f8025a7.tar.gz |
Differentiate between reducing clip to composite extents and a rectangle
This is required for handling glyphs when rendering directly to the
surface.
Diffstat (limited to 'src/cairo-clip.c')
-rw-r--r-- | src/cairo-clip.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/cairo-clip.c b/src/cairo-clip.c index 0c6cb7425..3bd7edcae 100644 --- a/src/cairo-clip.c +++ b/src/cairo-clip.c @@ -1106,18 +1106,13 @@ _cairo_clip_path_get_surface (cairo_clip_path_t *clip_path, cairo_bool_t _cairo_clip_contains_rectangle (cairo_clip_t *clip, - const cairo_composite_rectangles_t *extents) + const cairo_rectangle_int_t *rect) { - cairo_clip_path_t *clip_path; - const cairo_rectangle_int_t *rect; + cairo_clip_path_t *clip_path = clip->path; if (clip == NULL) return FALSE; - rect = extents->is_bounded ? &extents->bounded : &extents->unbounded; - - clip_path = clip->path; - if (clip_path->extents.x > rect->x || clip_path->extents.y > rect->y || clip_path->extents.x + clip_path->extents.width < rect->x + rect->width || @@ -1147,6 +1142,19 @@ _cairo_clip_contains_rectangle (cairo_clip_t *clip, return TRUE; } +cairo_bool_t +_cairo_clip_contains_extents (cairo_clip_t *clip, + const cairo_composite_rectangles_t *extents) +{ + const cairo_rectangle_int_t *rect; + + if (clip == NULL) + return FALSE; + + rect = extents->is_bounded ? &extents->bounded : &extents->unbounded; + return _cairo_clip_contains_rectangle (clip, rect); +} + void _cairo_debug_print_clip (FILE *stream, cairo_clip_t *clip) { |