pixman: Branch 'master'
Søren Sandmann Pedersen
sandmann at kemper.freedesktop.org
Wed Jun 20 12:25:22 PDT 2007
pixman/pixman-region.c | 27 +++++++++++++++++++++++++++
pixman/pixman.h | 3 ++-
2 files changed, 29 insertions(+), 1 deletion(-)
New commits:
diff-tree 8216ba1cbd27c5428970b8d393722d0f4343efed (from f1194a8bc0599e3ecceb785795ad8283a7c04dc0)
Author: Vladimir Vukicevic <vladimir at pobox.com>
Date: Wed Jun 20 15:13:30 2007 -0400
Add pixman_region_init_rects()
diff --git a/pixman/pixman-region.c b/pixman/pixman-region.c
index 7a0f9da..08ce2e2 100644
--- a/pixman/pixman-region.c
+++ b/pixman/pixman-region.c
@@ -2468,3 +2468,30 @@ pixman_region_selfcheck (reg)
}
}
+pixman_bool_t
+pixman_region_init_rects (pixman_region16_t *region,
+ pixman_box16_t *boxes, int count)
+{
+ int overlap;
+
+ if (count == 1) {
+ pixman_region_init_rect(region,
+ boxes[0].x1,
+ boxes[0].y1,
+ boxes[0].x2 - boxes[0].x1,
+ boxes[0].y2 - boxes[0].y1);
+ return TRUE;
+ }
+
+ pixman_region_init(region);
+ if (!pixman_rect_alloc(region, count))
+ return FALSE;
+
+ /* Copy in the rects */
+ memcpy (PIXREGION_RECTS(region), boxes, sizeof(pixman_box16_t) * count);
+ region->data->numRects = count;
+
+ /* Validate */
+ region->extents.x1 = region->extents.x2 = 0;
+ return pixman_region_validate (region, &overlap);
+}
diff --git a/pixman/pixman.h b/pixman/pixman.h
index 0014cef..cd64c8d 100644
--- a/pixman/pixman.h
+++ b/pixman/pixman.h
@@ -288,7 +288,8 @@ pixman_bool_t pixman_region_equal (pixm
pixman_region16_t *region2);
pixman_bool_t pixman_region_selfcheck (pixman_region16_t *region);
void pixman_region_reset(pixman_region16_t *region, pixman_box16_t *box);
-
+pixman_bool_t pixman_region_init_rects (pixman_region16_t *region,
+ pixman_box16_t *boxes, int count);
/* Copy / Fill */
pixman_bool_t pixman_blt (uint32_t *src_bits,
More information about the xorg-commit
mailing list