diff options
author | Søren Sandmann Pedersen <sandmann@redhat.com> | 2009-02-17 23:03:25 -0500 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2010-05-03 10:59:36 +0300 |
commit | a3d29157b4a33162cabbda616c34c00d9a13f7a8 (patch) | |
tree | 32155db00a0dfce439d69afb5547cfaa5411ff7b | |
parent | c0d0d20bd282c1d049b5bce4d23e10ab5b28751e (diff) |
Add pixman_region{,32}_intersect_rect()
-rw-r--r-- | pixman/pixman-region.c | 18 | ||||
-rw-r--r-- | pixman/pixman.h | 13 |
2 files changed, 30 insertions, 1 deletions
diff --git a/pixman/pixman-region.c b/pixman/pixman-region.c index a6a40058..3ea88a00 100644 --- a/pixman/pixman-region.c +++ b/pixman/pixman-region.c @@ -1329,6 +1329,24 @@ pixman_region_union_o (region_type_t *region, return TRUE; } +PIXMAN_EXPORT pixman_bool_t +PREFIX(_intersect_rect) (region_type_t *dest, + region_type_t *source, + int x, int y, + unsigned int width, + unsigned int height) +{ + region_type_t region; + + region.data = NULL; + region.extents.x1 = x; + region.extents.y1 = y; + region.extents.x2 = x + width; + region.extents.y2 = y + height; + + return PREFIX(_intersect) (dest, source, ®ion); +} + /* Convenience function for performing union of region with a * single rectangle */ diff --git a/pixman/pixman.h b/pixman/pixman.h index 7b95fedf..8df58134 100644 --- a/pixman/pixman.h +++ b/pixman/pixman.h @@ -420,7 +420,6 @@ void pixman_region_init_from_image (pixman_region16_t *reg void pixman_region_fini (pixman_region16_t *region); - /* manipulation */ void pixman_region_translate (pixman_region16_t *region, int x, @@ -439,6 +438,12 @@ pixman_bool_t pixman_region_union_rect (pixman_region16_t *des int y, unsigned int width, unsigned int height); +pixman_bool_t pixman_region_intersect_rect (pixman_region16_t *dest, + pixman_region16_t *source, + int x, + int y, + unsigned int width, + unsigned int height); pixman_bool_t pixman_region_subtract (pixman_region16_t *reg_d, pixman_region16_t *reg_m, pixman_region16_t *reg_s); @@ -521,6 +526,12 @@ pixman_bool_t pixman_region32_intersect (pixman_region32_t *n pixman_bool_t pixman_region32_union (pixman_region32_t *new_reg, pixman_region32_t *reg1, pixman_region32_t *reg2); +pixman_bool_t pixman_region32_intersect_rect (pixman_region32_t *dest, + pixman_region32_t *source, + int x, + int y, + unsigned int width, + unsigned int height); pixman_bool_t pixman_region32_union_rect (pixman_region32_t *dest, pixman_region32_t *source, int x, |