summaryrefslogtreecommitdiff
path: root/src/cairo-clip.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-02-28 22:27:18 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-02-28 22:27:18 +0000
commit3c665102c2b7ccd69aec7658e398ce6dd6dae38b (patch)
treed3d944842b95779043f787e18e027259b8ffe03a /src/cairo-clip.c
parentbe5ab6df68cba1bd0709fa4319e29141d4491d94 (diff)
downloadcairo-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.c18
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;