• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <math.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include "utils.h"
5 
6 #define WIDTH 100
7 #define HEIGHT 100
8 
9 int
main()10 main ()
11 {
12     pixman_image_t *radial;
13     pixman_image_t *dest = pixman_image_create_bits (
14 	PIXMAN_a8r8g8b8, WIDTH, HEIGHT, NULL, -1);
15 
16     static const pixman_transform_t xform =
17 	{
18 	    { { 0x346f7, 0x0, 0x0 },
19 	      { 0x0, 0x346f7, 0x0 },
20 	      { 0x0, 0x0, 0x10000 }
21 	    },
22 	};
23 
24     static const pixman_gradient_stop_t stops[] =
25     {
26 	{ 0xde61, { 0x4481, 0x96e8, 0x1e6a, 0x29e1 } },
27 	{ 0xfdd5, { 0xfa10, 0xcc26, 0xbc43, 0x1eb7 } },
28 	{ 0xfe1e, { 0xd257, 0x5bac, 0x6fc2, 0xa33b } },
29     };
30 
31     static const pixman_point_fixed_t inner = { 0x320000, 0x320000 };
32     static const pixman_point_fixed_t outer = { 0x320000, 0x3cb074 };
33 
34     enable_divbyzero_exceptions ();
35     enable_invalid_exceptions ();
36 
37     radial = pixman_image_create_radial_gradient (
38 	&inner,
39 	&outer,
40 	0xab074, /* inner radius */
41 	0x0,	 /* outer radius */
42 	stops, sizeof (stops) / sizeof (stops[0]));
43 
44     pixman_image_set_repeat (radial, PIXMAN_REPEAT_REFLECT);
45     pixman_image_set_transform (radial, &xform);
46 
47     pixman_image_composite (
48 	PIXMAN_OP_OVER,
49 	radial, NULL, dest,
50 	0, 0, 0, 0,
51 	0, 0, WIDTH, HEIGHT);
52 
53     return 0;
54 }
55