7 static const pixman_point_fixed_t inner = { 0x0000, 0x0000 };
8 static const pixman_point_fixed_t outer = { 0x0000, 0x0000 };
9 static const pixman_fixed_t r_inner = 0;
10 static const pixman_fixed_t r_outer = 64 << 16;
11 static const pixman_gradient_stop_t stops[] = {
12 { 0x00000, { 0x6666, 0x6666, 0x6666, 0xffff } },
13 { 0x10000, { 0x0000, 0x0000, 0x0000, 0xffff } }
15 static const pixman_transform_t transform = {
16 { { 0x0, 0x26ee, 0x0},
17 { 0xffffeeef, 0x0, 0x0},
21 static const pixman_color_t z = { 0x0000, 0x0000, 0x0000, 0x0000 };
22 pixman_image_t *dest, *radial, *zero;
26 dest = pixman_image_create_bits (
27 PIXMAN_x8r8g8b8, 640, 429, NULL, -1);
28 zero = pixman_image_create_solid_fill (&z);
29 radial = pixman_image_create_radial_gradient (
30 &inner, &outer, r_inner, r_outer, stops, ARRAY_LENGTH (stops));
31 pixman_image_set_transform (radial, &transform);
32 pixman_image_set_repeat (radial, PIXMAN_REPEAT_PAD);
34 #define N_COMPOSITE 500
37 for (i = 0; i < N_COMPOSITE; ++i)
41 pixman_image_composite (
42 PIXMAN_OP_SRC, zero, NULL, dest,
43 0, 0, 0, 0, 0, 0, 640, 429);
47 pixman_image_composite32 (
48 PIXMAN_OP_OVER, radial, NULL, dest,
49 - 150, -158, 0, 0, 0, 0, 640, 361);
54 write_png (dest, "radial.png");
56 printf ("Average time to composite: %f\n", (after - before) / N_COMPOSITE);