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 <pekka.paalanen@collabora.com>
This commit is contained in:
parent
9b82bfae9e
commit
4eb70a602b
@ -41,6 +41,7 @@
|
|||||||
#include "shared/xalloc.h"
|
#include "shared/xalloc.h"
|
||||||
#include <libweston/zalloc.h>
|
#include <libweston/zalloc.h>
|
||||||
#include "weston-test-client-helper.h"
|
#include "weston-test-client-helper.h"
|
||||||
|
#include "image-iter.h"
|
||||||
|
|
||||||
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
||||||
#define min(a, b) (((a) > (b)) ? (b) : (a))
|
#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;
|
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 {
|
||||||
struct pixel_diff_stat_channel {
|
struct pixel_diff_stat_channel {
|
||||||
int min_diff;
|
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 range fuzz = range_get(prec);
|
||||||
struct pixel_diff_stat diffstat = {};
|
struct pixel_diff_stat diffstat = {};
|
||||||
struct image_iterator it_a;
|
struct image_header ih_a = image_header_from(img_a);
|
||||||
struct image_iterator it_b;
|
struct image_header ih_b = image_header_from(img_b);
|
||||||
pixman_box32_t box;
|
pixman_box32_t box;
|
||||||
int x, y;
|
int x, y;
|
||||||
uint32_t *pix_a;
|
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);
|
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++) {
|
for (y = box.y1; y < box.y2; y++) {
|
||||||
pix_a = image_iter_get_row(&it_a, y) + box.x1;
|
pix_a = image_header_get_row_u32(&ih_a, y) + box.x1;
|
||||||
pix_b = image_iter_get_row(&it_b, y) + box.x1;
|
pix_b = image_header_get_row_u32(&ih_b, y) + box.x1;
|
||||||
|
|
||||||
for (x = box.x1; x < box.x2; x++) {
|
for (x = box.x1; x < box.x2; x++) {
|
||||||
if (!fuzzy_match_pixels(*pix_a, *pix_b,
|
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 = {};
|
struct pixel_diff_stat diffstat = {};
|
||||||
pixman_image_t *diffimg;
|
pixman_image_t *diffimg;
|
||||||
pixman_image_t *shade;
|
pixman_image_t *shade;
|
||||||
struct image_iterator it_a;
|
struct image_header ih_a = image_header_from(img_a);
|
||||||
struct image_iterator it_b;
|
struct image_header ih_b = image_header_from(img_b);
|
||||||
struct image_iterator it_d;
|
struct image_header ih_d;
|
||||||
int width;
|
|
||||||
int height;
|
|
||||||
pixman_box32_t box;
|
pixman_box32_t box;
|
||||||
int x, y;
|
int x, y;
|
||||||
uint32_t *pix_a;
|
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;
|
uint32_t *pix_d;
|
||||||
pixman_color_t shade_color = { 0, 0, 0, 32768 };
|
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);
|
box = image_check_get_roi(img_a, img_b, clip_rect);
|
||||||
|
|
||||||
diffimg = pixman_image_create_bits_no_clear(PIXMAN_x8r8g8b8,
|
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
|
/* Fill diffimg with a black-shaded copy of img_a, and then fill
|
||||||
* the clip_rect area with original img_a.
|
* the clip_rect area with original img_a.
|
||||||
*/
|
*/
|
||||||
shade = pixman_image_create_solid_fill(&shade_color);
|
shade = pixman_image_create_solid_fill(&shade_color);
|
||||||
pixman_image_composite32(PIXMAN_OP_SRC, img_a, shade, diffimg,
|
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_unref(shade);
|
||||||
pixman_image_composite32(PIXMAN_OP_SRC, img_a, NULL, diffimg,
|
pixman_image_composite32(PIXMAN_OP_SRC, img_a, NULL, diffimg,
|
||||||
box.x1, box.y1, 0, 0, box.x1, box.y1,
|
box.x1, box.y1, 0, 0, box.x1, box.y1,
|
||||||
box.x2 - box.x1, box.y2 - 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++) {
|
for (y = box.y1; y < box.y2; y++) {
|
||||||
pix_a = image_iter_get_row(&it_a, y) + box.x1;
|
pix_a = image_header_get_row_u32(&ih_a, y) + box.x1;
|
||||||
pix_b = image_iter_get_row(&it_b, y) + box.x1;
|
pix_b = image_header_get_row_u32(&ih_b, y) + box.x1;
|
||||||
pix_d = image_iter_get_row(&it_d, y) + box.x1;
|
pix_d = image_header_get_row_u32(&ih_d, y) + box.x1;
|
||||||
|
|
||||||
for (x = box.x1; x < box.x2; x++) {
|
for (x = box.x1; x < box.x2; x++) {
|
||||||
if (fuzzy_match_pixels(*pix_a, *pix_b,
|
if (fuzzy_match_pixels(*pix_a, *pix_b,
|
||||||
|
Loading…
Reference in New Issue
Block a user