diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-05-24 15:30:41 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-05-24 15:30:41 -0400 |
commit | 1e59e18d73a6e45729a99fe6ccc74d61631ff5f0 (patch) | |
tree | 2652e85d763cabc4a0a91c79f110f47cbf52b4c3 | |
parent | 30816e3068bccf7c78c78f916b54971d24873bdc (diff) |
test: Composite with solid images instead of using pixman_image_fill_*
There is a couple of places where the test suite uses the
pixman_image_fill_* functions to initialize images. These functions
can fail, and will do so if the "fast" implementation is disabled.
So to make sure the test suite passes even using
PIXMAN_DISABLE="fast", use pixman_image_composite32() with a solid
image instead of pixman_image_fill_*.
-rw-r--r-- | test/composite.c | 19 | ||||
-rw-r--r-- | test/scaling-crash-test.c | 7 |
2 files changed, 15 insertions, 11 deletions
diff --git a/test/composite.c b/test/composite.c index 48bde9c7..94b48255 100644 --- a/test/composite.c +++ b/test/composite.c @@ -525,15 +525,16 @@ composite_test (image_t *dst, int testno) { pixman_color_t fill; - pixman_rectangle16_t rect; color_t expected, tdst, tsrc, tmsk; pixel_checker_t checker; + pixman_image_t *solid; /* Initialize dst */ compute_pixman_color (dst->color, &fill); - rect.x = rect.y = 0; - rect.width = rect.height = dst->size; - pixman_image_fill_rectangles (PIXMAN_OP_SRC, dst->image, &fill, 1, &rect); + solid = pixman_image_create_solid_fill (&fill); + pixman_image_composite32 (PIXMAN_OP_SRC, solid, NULL, dst->image, + 0, 0, 0, 0, 0, 0, dst->size, dst->size); + pixman_image_unref (solid); if (mask) { @@ -644,16 +645,16 @@ image_init (image_t *info, if (info->size) { - pixman_rectangle16_t rect; + pixman_image_t *solid; info->image = pixman_image_create_bits (info->format->format, info->size, info->size, NULL, 0); - rect.x = rect.y = 0; - rect.width = rect.height = info->size; - pixman_image_fill_rectangles (PIXMAN_OP_SRC, info->image, &fill, - 1, &rect); + solid = pixman_image_create_solid_fill (&fill); + pixman_image_composite32 (PIXMAN_OP_SRC, solid, NULL, info->image, + 0, 0, 0, 0, 0, 0, info->size, info->size); + pixman_image_unref (solid); if (sizes[size] & REPEAT) { diff --git a/test/scaling-crash-test.c b/test/scaling-crash-test.c index ed57ae02..0dac892b 100644 --- a/test/scaling-crash-test.c +++ b/test/scaling-crash-test.c @@ -32,8 +32,8 @@ run_test (int32_t dst_width, pixman_transform_t transform; uint32_t * srcbuf; uint32_t * dstbuf; - pixman_box32_t box = { 0, 0, src_width, src_height }; pixman_color_t color_cc = { 0xcccc, 0xcccc, 0xcccc, 0xcccc }; + pixman_image_t * solid; int result; int i; @@ -62,7 +62,10 @@ run_test (int32_t dst_width, PIXMAN_a8r8g8b8, src_width, src_height, srcbuf + (src_width + 10) * 5 + 5, (src_width + 10) * 4); - pixman_image_fill_boxes (PIXMAN_OP_SRC, src_img, &color_cc, 1, &box); + solid = pixman_image_create_solid_fill (&color_cc); + pixman_image_composite32 (PIXMAN_OP_SRC, solid, NULL, src_img, + 0, 0, 0, 0, 0, 0, src_width, src_height); + pixman_image_unref (solid); dst_img = pixman_image_create_bits ( PIXMAN_a8r8g8b8, dst_width, dst_height, dstbuf, dst_width * 4); |