summaryrefslogtreecommitdiff
path: root/src/cairo-clip.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-07-12 16:06:32 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-07-12 16:33:38 +0100
commit679e5a600bd7dae6cbde83070fb1f7355f8025a7 (patch)
tree97cab6a3ba733d77e61a128036d3b495b8db9e0d /src/cairo-clip.c
parent8546a877889bfafc056c867bc9aea25e9fdcdef0 (diff)
downloadcairo-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.c22
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)
{