From 4eb70a602b5c146a3743f849d09ae4a131acbb03 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Thu, 9 Jun 2022 15:47:21 +0300 Subject: [PATCH] tests/client-helper: use image-iter.h Replace private pixel iterator helpers with the shared ones. No change in behaviour. Signed-off-by: Pekka Paalanen --- tests/weston-test-client-helper.c | 61 ++++++++----------------------- 1 file changed, 15 insertions(+), 46 deletions(-) diff --git a/tests/weston-test-client-helper.c b/tests/weston-test-client-helper.c index 30974d61..a19d5df8 100644 --- a/tests/weston-test-client-helper.c +++ b/tests/weston-test-client-helper.c @@ -41,6 +41,7 @@ #include "shared/xalloc.h" #include #include "weston-test-client-helper.h" +#include "image-iter.h" #define max(a, b) (((a) > (b)) ? (a) : (b)) #define min(a, b) (((a) > (b)) ? (b) : (a)) @@ -1254,29 +1255,6 @@ image_check_get_roi(pixman_image_t *img_a, pixman_image_t *img_b, return box; } -struct image_iterator { - char *data; - int stride; /* bytes */ -}; - -static void -image_iter_init(struct image_iterator *it, pixman_image_t *image) -{ - pixman_format_code_t fmt; - - it->stride = pixman_image_get_stride(image); - it->data = (void *)pixman_image_get_data(image); - - fmt = pixman_image_get_format(image); - assert(PIXMAN_FORMAT_BPP(fmt) == 32); -} - -static uint32_t * -image_iter_get_row(struct image_iterator *it, int y) -{ - return (uint32_t *)(it->data + y * it->stride); -} - struct pixel_diff_stat { struct pixel_diff_stat_channel { int min_diff; @@ -1347,8 +1325,8 @@ check_images_match(pixman_image_t *img_a, pixman_image_t *img_b, { struct range fuzz = range_get(prec); struct pixel_diff_stat diffstat = {}; - struct image_iterator it_a; - struct image_iterator it_b; + struct image_header ih_a = image_header_from(img_a); + struct image_header ih_b = image_header_from(img_b); pixman_box32_t box; int x, y; uint32_t *pix_a; @@ -1356,12 +1334,9 @@ check_images_match(pixman_image_t *img_a, pixman_image_t *img_b, box = image_check_get_roi(img_a, img_b, clip_rect); - image_iter_init(&it_a, img_a); - image_iter_init(&it_b, img_b); - for (y = box.y1; y < box.y2; y++) { - pix_a = image_iter_get_row(&it_a, y) + box.x1; - pix_b = image_iter_get_row(&it_b, y) + box.x1; + pix_a = image_header_get_row_u32(&ih_a, y) + box.x1; + pix_b = image_header_get_row_u32(&ih_b, y) + box.x1; for (x = box.x1; x < box.x2; x++) { if (!fuzzy_match_pixels(*pix_a, *pix_b, @@ -1431,11 +1406,9 @@ visualize_image_difference(pixman_image_t *img_a, pixman_image_t *img_b, struct pixel_diff_stat diffstat = {}; pixman_image_t *diffimg; pixman_image_t *shade; - struct image_iterator it_a; - struct image_iterator it_b; - struct image_iterator it_d; - int width; - int height; + struct image_header ih_a = image_header_from(img_a); + struct image_header ih_b = image_header_from(img_b); + struct image_header ih_d; pixman_box32_t box; int x, y; uint32_t *pix_a; @@ -1443,32 +1416,28 @@ visualize_image_difference(pixman_image_t *img_a, pixman_image_t *img_b, uint32_t *pix_d; pixman_color_t shade_color = { 0, 0, 0, 32768 }; - width = pixman_image_get_width(img_a); - height = pixman_image_get_height(img_a); box = image_check_get_roi(img_a, img_b, clip_rect); diffimg = pixman_image_create_bits_no_clear(PIXMAN_x8r8g8b8, - width, height, NULL, 0); + ih_a.width, ih_a.height, + NULL, 0); + ih_d = image_header_from(diffimg); /* Fill diffimg with a black-shaded copy of img_a, and then fill * the clip_rect area with original img_a. */ shade = pixman_image_create_solid_fill(&shade_color); pixman_image_composite32(PIXMAN_OP_SRC, img_a, shade, diffimg, - 0, 0, 0, 0, 0, 0, width, height); + 0, 0, 0, 0, 0, 0, ih_a.width, ih_a.height); pixman_image_unref(shade); pixman_image_composite32(PIXMAN_OP_SRC, img_a, NULL, diffimg, box.x1, box.y1, 0, 0, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - image_iter_init(&it_a, img_a); - image_iter_init(&it_b, img_b); - image_iter_init(&it_d, diffimg); - for (y = box.y1; y < box.y2; y++) { - pix_a = image_iter_get_row(&it_a, y) + box.x1; - pix_b = image_iter_get_row(&it_b, y) + box.x1; - pix_d = image_iter_get_row(&it_d, y) + box.x1; + pix_a = image_header_get_row_u32(&ih_a, y) + box.x1; + pix_b = image_header_get_row_u32(&ih_b, y) + box.x1; + pix_d = image_header_get_row_u32(&ih_d, y) + box.x1; for (x = box.x1; x < box.x2; x++) { if (fuzzy_match_pixels(*pix_a, *pix_b,