diff options
author | marha <marha@users.sourceforge.net> | 2010-02-27 16:22:52 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-02-27 16:22:52 +0000 |
commit | 56389060042079a1d526e98c54a7f54b1a4853f7 (patch) | |
tree | 791a212b1eaebe8b028a390444b5a98a88e09868 /pixman/test/a1-trap-test.c | |
parent | 0235891665ad311e1f81d1b0f003f433b4af4cbb (diff) | |
parent | 65fbbe1531c1e09cd40014374fdd93cff3a1d33a (diff) | |
download | vcxsrv-56389060042079a1d526e98c54a7f54b1a4853f7.tar.gz vcxsrv-56389060042079a1d526e98c54a7f54b1a4853f7.tar.bz2 vcxsrv-56389060042079a1d526e98c54a7f54b1a4853f7.zip |
svn merge ^/branches/released .
Diffstat (limited to 'pixman/test/a1-trap-test.c')
-rw-r--r-- | pixman/test/a1-trap-test.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/pixman/test/a1-trap-test.c b/pixman/test/a1-trap-test.c new file mode 100644 index 000000000..6163e7c61 --- /dev/null +++ b/pixman/test/a1-trap-test.c @@ -0,0 +1,50 @@ +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "pixman.h" + +int +main (int argc, char **argv) +{ +#define WIDTH 20 +#define HEIGHT 20 + + pixman_image_t *src_img; + pixman_image_t *mask_img; + pixman_image_t *dest_img; + pixman_trap_t trap; + pixman_color_t red = { 0xffff, 0x0000, 0x0000, 0xffff }; + uint32_t *bits = malloc (WIDTH * HEIGHT * 4); + uint32_t *mbits = malloc (WIDTH * HEIGHT); + + memset (mbits, 0, WIDTH * HEIGHT); + memset (bits, 0xff, WIDTH * HEIGHT * 4); + + trap.top.l = pixman_double_to_fixed (0.5); + trap.top.r = pixman_double_to_fixed (1.5); + trap.top.y = pixman_double_to_fixed (0.5); + + trap.bot.l = pixman_double_to_fixed (0.5); + trap.bot.r = pixman_double_to_fixed (1.5); + trap.bot.y = pixman_double_to_fixed (1.5); + + mask_img = pixman_image_create_bits ( + PIXMAN_a1, WIDTH, HEIGHT, mbits, WIDTH); + src_img = pixman_image_create_solid_fill (&red); + dest_img = pixman_image_create_bits ( + PIXMAN_a8r8g8b8, WIDTH, HEIGHT, bits, WIDTH * 4); + + pixman_add_traps (mask_img, 0, 0, 1, &trap); + + pixman_image_composite (PIXMAN_OP_OVER, + src_img, mask_img, dest_img, + 0, 0, 0, 0, 0, 0, WIDTH, HEIGHT); + + assert (bits[0] == 0xffff0000); + assert (bits[1] == 0xffffffff); + assert (bits[1 * WIDTH + 0] == 0xffffffff); + assert (bits[1 * WIDTH + 1] == 0xffffffff); + + return 0; +} |