diff options
author | Søren Sandmann <sandmann@redhat.com> | 2008-06-08 22:07:46 -0400 |
---|---|---|
committer | Søren Sandmann <sandmann@redhat.com> | 2008-06-08 22:07:46 -0400 |
commit | de150bf82fbe0e346fa38eae10a5bd43538bb3d9 (patch) | |
tree | 1a2968483110b880da9a45a521cca170e518f6ee /pixman/pixman-region32.c | |
parent | e30f7e2eb56b53667ee83e2cad942f171a9486a0 (diff) |
Add pixman_region32_copy_from_region16
Diffstat (limited to 'pixman/pixman-region32.c')
-rw-r--r-- | pixman/pixman-region32.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pixman/pixman-region32.c b/pixman/pixman-region32.c index 5a62b3e..4b5598d 100644 --- a/pixman/pixman-region32.c +++ b/pixman/pixman-region32.c @@ -38,4 +38,31 @@ typedef struct { #define PREFIX(x) pixman_region32##x +pixman_bool_t +pixman_region32_copy_from_region16 (pixman_region32_t *dst, + pixman_region16_t *src) +{ + int n_boxes, i; + pixman_box16_t *boxes16; + pixman_box32_t *boxes32; + + boxes16 = pixman_region_rectangles (src, &n_boxes); + + boxes32 = pixman_malloc_ab (n_boxes, sizeof (pixman_box32_t)); + + if (!boxes32) + return FALSE; + + for (i = 0; i < n_boxes; ++i) + { + boxes32[i].x1 = boxes16[i].x1; + boxes32[i].y1 = boxes16[i].y1; + boxes32[i].x2 = boxes16[i].x2; + boxes32[i].y2 = boxes16[i].y2; + } + + pixman_region32_fini (dst); + return pixman_region32_init_rects (dst, boxes32, n_boxes); +} + #include "pixman-region.c" |