diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-02-28 22:27:18 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-02-28 22:27:18 +0000 |
commit | 3c665102c2b7ccd69aec7658e398ce6dd6dae38b (patch) | |
tree | d3d944842b95779043f787e18e027259b8ffe03a /src/cairo-clip.c | |
parent | be5ab6df68cba1bd0709fa4319e29141d4491d94 (diff) | |
download | cairo-3c665102c2b7ccd69aec7658e398ce6dd6dae38b.tar.gz |
spans+image: Fix clipping with polygons and spans
Fixes: clip-source, random-clip
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-clip.c')
-rw-r--r-- | src/cairo-clip.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/cairo-clip.c b/src/cairo-clip.c index d32bdec62..6bf1f39c8 100644 --- a/src/cairo-clip.c +++ b/src/cairo-clip.c @@ -174,6 +174,24 @@ _cairo_clip_copy (const cairo_clip_t *clip) } cairo_clip_t * +_cairo_clip_copy_path (const cairo_clip_t *clip) +{ + cairo_clip_t *copy; + + if (clip == NULL || _cairo_clip_is_all_clipped (clip)) + return (cairo_clip_t *) clip; + + assert (clip->num_boxes); + + copy = _cairo_clip_create (); + copy->extents = clip->extents; + if (clip->path) + copy->path = _cairo_clip_path_reference (clip->path); + + return copy; +} + +cairo_clip_t * _cairo_clip_copy_region (const cairo_clip_t *clip) { cairo_clip_t *copy; |