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