diff options
author | marha <marha@users.sourceforge.net> | 2013-03-25 10:23:25 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-03-25 10:23:25 +0100 |
commit | 30ac3efa02bbd1aecff4a0aa2da17bc886bdd5ea (patch) | |
tree | 7ae924e3fb64c93a0f59e55fd08a914db9bb551b /pixman/test/radial-perf-test.c | |
parent | 55a9a54c65cd0ff58966408ea4d7879a3d9c749c (diff) | |
parent | 176eab9e8277db1549bfc6c9ae805c4e1858f0b0 (diff) | |
download | vcxsrv-30ac3efa02bbd1aecff4a0aa2da17bc886bdd5ea.tar.gz vcxsrv-30ac3efa02bbd1aecff4a0aa2da17bc886bdd5ea.tar.bz2 vcxsrv-30ac3efa02bbd1aecff4a0aa2da17bc886bdd5ea.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
fontconfig mesa pixman xserver git update 25 Mar 2013
Diffstat (limited to 'pixman/test/radial-perf-test.c')
-rw-r--r-- | pixman/test/radial-perf-test.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/pixman/test/radial-perf-test.c b/pixman/test/radial-perf-test.c new file mode 100644 index 000000000..71092e27b --- /dev/null +++ b/pixman/test/radial-perf-test.c @@ -0,0 +1,58 @@ +#include "utils.h" +#include <stdio.h> + +int +main () +{ + static const pixman_point_fixed_t inner = { 0x0000, 0x0000 }; + static const pixman_point_fixed_t outer = { 0x0000, 0x0000 }; + static const pixman_fixed_t r_inner = 0; + static const pixman_fixed_t r_outer = 64 << 16; + static const pixman_gradient_stop_t stops[] = { + { 0x00000, { 0x6666, 0x6666, 0x6666, 0xffff } }, + { 0x10000, { 0x0000, 0x0000, 0x0000, 0xffff } } + }; + static const pixman_transform_t transform = { + { { 0x0, 0x26ee, 0x0}, + { 0xffffeeef, 0x0, 0x0}, + { 0x0, 0x0, 0x10000} + } + }; + static const pixman_color_t z = { 0x0000, 0x0000, 0x0000, 0x0000 }; + pixman_image_t *dest, *radial, *zero; + int i; + double before, after; + + dest = pixman_image_create_bits ( + PIXMAN_x8r8g8b8, 640, 429, NULL, -1); + zero = pixman_image_create_solid_fill (&z); + radial = pixman_image_create_radial_gradient ( + &inner, &outer, r_inner, r_outer, stops, ARRAY_LENGTH (stops)); + pixman_image_set_transform (radial, &transform); + pixman_image_set_repeat (radial, PIXMAN_REPEAT_PAD); + +#define N_COMPOSITE 500 + + before = gettime(); + for (i = 0; i < N_COMPOSITE; ++i) + { + before -= gettime(); + + pixman_image_composite ( + PIXMAN_OP_SRC, zero, NULL, dest, + 0, 0, 0, 0, 0, 0, 640, 429); + + before += gettime(); + + pixman_image_composite32 ( + PIXMAN_OP_OVER, radial, NULL, dest, + - 150, -158, 0, 0, 0, 0, 640, 361); + } + + after = gettime(); + + write_png (dest, "radial.png"); + + printf ("Average time to composite: %f\n", (after - before) / N_COMPOSITE); + return 0; +} |