#include #include #include #include "utils.h" #define WIDTH 100 #define HEIGHT 100 int main () { pixman_image_t *radial; pixman_image_t *dest = pixman_image_create_bits ( PIXMAN_a8r8g8b8, WIDTH, HEIGHT, NULL, -1); static const pixman_transform_t xform = { { { 0x346f7, 0x0, 0x0 }, { 0x0, 0x346f7, 0x0 }, { 0x0, 0x0, 0x10000 } }, }; static const pixman_gradient_stop_t stops[] = { { 0xde61, { 0x4481, 0x96e8, 0x1e6a, 0x29e1 } }, { 0xfdd5, { 0xfa10, 0xcc26, 0xbc43, 0x1eb7 } }, { 0xfe1e, { 0xd257, 0x5bac, 0x6fc2, 0xa33b } }, }; static const pixman_point_fixed_t inner = { 0x320000, 0x320000 }; static const pixman_point_fixed_t outer = { 0x320000, 0x3cb074 }; enable_divbyzero_exceptions (); enable_invalid_exceptions (); radial = pixman_image_create_radial_gradient ( &inner, &outer, 0xab074, /* inner radius */ 0x0, /* outer radius */ stops, sizeof (stops) / sizeof (stops[0])); pixman_image_set_repeat (radial, PIXMAN_REPEAT_REFLECT); pixman_image_set_transform (radial, &xform); pixman_image_composite ( PIXMAN_OP_OVER, radial, NULL, dest, 0, 0, 0, 0, 0, 0, WIDTH, HEIGHT); return 0; }