summaryrefslogtreecommitdiff
path: root/demo.c
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2010-11-08 03:53:10 -0500
committerSøren Sandmann Pedersen <ssp@redhat.com>2010-11-08 03:53:10 -0500
commite6029a6270402ee4240c75aa509c4855d16b7c36 (patch)
tree2b92d535addc4cfd40d339a1b3306e36a74953c2 /demo.c
parent595f5962e210b7f0970e2563a8c2f8cf97b082cd (diff)
qwer
Diffstat (limited to 'demo.c')
-rw-r--r--demo.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/demo.c b/demo.c
index 66e3e8d..1e35ba1 100644
--- a/demo.c
+++ b/demo.c
@@ -6,7 +6,6 @@
#include "region-iter.c"
static const pixman_rectangle32_t rects[] = {
-#if 0
{ 0, 50, 200, 100 },
{ 250, 0, 200, 100 },
{ 500, 0, 50, 350 },
@@ -21,19 +20,31 @@ static const pixman_rectangle32_t rects[] = {
{ 450, 350, 50, 50 },
{ 50, 450, 400, 50 },
{ 25, 135, 600, 25 }
-#endif
};
+#define N_RECTS (sizeof (rects) / sizeof (rects[0]))
+
static corner_t *
make_path (int *n_corners)
{
corner_t *corners;
pixman_region32_t region;
int i;
+ pixman_box32_t *boxes = malloc (N_RECTS * sizeof (pixman_box32_t));
+
+ for (i = 0; i < N_RECTS; ++i)
+ {
+ boxes[i].x1 = rects[i].x;
+ boxes[i].y1 = rects[i].y;
+ boxes[i].x2 = rects[i].x + rects[i].width;
+ boxes[i].y2 = rects[i].y + rects[i].height;
+ }
+ region_from_boxes (&region, boxes, N_RECTS);
+
pixman_region32_init (&region);
- for (i = 0; i < sizeof (rects) / sizeof (rects[0]); ++i)
+ for (i = 0; i < N_RECTS; ++i)
{
pixman_region32_union_rect (&region, &region,
50 + rects[i].x, 50 + rects[i].y,
@@ -61,7 +72,7 @@ on_expose (GtkWidget *widget, GdkEvent *event, gpointer data)
cr = gdk_cairo_create (widget->window);
- for (i = 0; i < sizeof (rects) / sizeof (rects[0]); ++i)
+ for (i = 0; i < N_RECTS; ++i)
{
cairo_rectangle (cr,
50 + rects[i].x, 50 + rects[i].y,