summaryrefslogtreecommitdiff
path: root/src/cairo-clip.c
diff options
context:
space:
mode:
authorSøren Sandmann <sandmann@redhat.com>2009-03-27 08:48:42 -0400
committerSøren Sandmann Pedersen <sandmann@daimi.au.dk>2009-03-28 18:02:58 -0400
commit26999e5aa8b5d353596e31d4b3823cafe007125c (patch)
treedcc2528d3387ab3c48d13409a2482525d0d83b4a /src/cairo-clip.c
parent4b3245481cfbf96388c140421a071fd1f79ad601 (diff)
[region] Add cairo_region_intersect_rectangle() and _subtract_rectangle()
Intersecting with and subtracting rectangles is quite common, and we already have cairo_union_rectangle().
Diffstat (limited to 'src/cairo-clip.c')
-rw-r--r--src/cairo-clip.c27
1 files changed, 4 insertions, 23 deletions
diff --git a/src/cairo-clip.c b/src/cairo-clip.c
index 8ee6a644..cc43c037 100644
--- a/src/cairo-clip.c
+++ b/src/cairo-clip.c
@@ -198,17 +198,8 @@ _cairo_clip_intersect_to_region (cairo_clip_t *clip,
if (!clip)
return CAIRO_STATUS_SUCCESS;
- if (clip->all_clipped) {
- cairo_region_t *clip_rect;
-
- clip_rect = cairo_region_create_rectangle (&clip->surface_rect);
-
- status = cairo_region_intersect (region, clip_rect);
-
- cairo_region_destroy (clip_rect);
-
- return status;
- }
+ if (clip->all_clipped)
+ return cairo_region_intersect_rectangle (region, &clip->surface_rect);
if (clip->path) {
/* Intersect clip path into region. */
@@ -220,18 +211,8 @@ _cairo_clip_intersect_to_region (cairo_clip_t *clip,
return status;
}
- if (clip->surface) {
- cairo_region_t *clip_rect;
-
- clip_rect = cairo_region_create_rectangle (&clip->surface_rect);
-
- status = cairo_region_intersect (region, clip_rect);
-
- cairo_region_destroy (clip_rect);
-
- if (unlikely (status))
- return status;
- }
+ if (clip->surface)
+ return cairo_region_intersect_rectangle (region, &clip->surface_rect);
return CAIRO_STATUS_SUCCESS;
}