From 55f776876d231a035cdc5da9bb90cbba14f19248 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 12 Dec 2006 16:37:35 -0800 Subject: [PATCH] test: Rework buffer_diff interface as new compare_surfaces This is a slightly kinder interface that accepts cairo_image_surface_t pointers rather than pointers to the raw image data and width, height, stride. This brings us closer to hooking up the pdiff code. --- test/buffer-diff.c | 28 +++++++++++++--------------- test/buffer-diff.h | 15 ++++++--------- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/test/buffer-diff.c b/test/buffer-diff.c index 819ba163c..99501bce8 100644 --- a/test/buffer-diff.c +++ b/test/buffer-diff.c @@ -117,17 +117,19 @@ buffer_diff_core (unsigned char *_buf_a, } void -buffer_diff (unsigned char *buf_a, - unsigned char *buf_b, - unsigned char *buf_diff, - int width, - int height, - int stride, - buffer_diff_result_t *result) +compare_surfaces (cairo_surface_t *surface_a, + cairo_surface_t *surface_b, + cairo_surface_t *surface_diff, + buffer_diff_result_t *result) { - buffer_diff_core(buf_a, buf_b, buf_diff, - width, height, stride, 0xffffffff, - result); + buffer_diff_core (cairo_image_surface_get_data (surface_a), + cairo_image_surface_get_data (surface_b), + cairo_image_surface_get_data (surface_diff), + cairo_image_surface_get_width (surface_a), + cairo_image_surface_get_height (surface_a), + cairo_image_surface_get_stride (surface_a), + 0xffffffff, + result); } void @@ -304,11 +306,7 @@ image_diff_core (const char *filename_a, surface_diff = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width_a, height_a); - buffer_diff (cairo_image_surface_get_data (surface_a), - cairo_image_surface_get_data (surface_b), - cairo_image_surface_get_data (surface_diff), - width_a, height_a, stride_a, - result); + compare_surfaces (surface_a, surface_b, surface_diff, result); if (result->pixels_changed) { FILE *png_file; diff --git a/test/buffer-diff.h b/test/buffer-diff.h index d95c213b6..cd3534508 100644 --- a/test/buffer-diff.h +++ b/test/buffer-diff.h @@ -36,22 +36,19 @@ typedef struct _buffer_diff_result { unsigned int max_diff; } buffer_diff_result_t; -/* Compares two image buffers. +/* Compares two image surfaces * * Provides number of pixels changed and maximum single-channel * difference in result. * - * Also fills in a "diff" buffer intended to visually show where the + * Also fills in a "diff" surface intended to visually show where the * images differ. */ void -buffer_diff (unsigned char *buf_a, - unsigned char *buf_b, - unsigned char *buf_diff, - int width, - int height, - int stride, - buffer_diff_result_t *result); +compare_surfaces (cairo_surface_t *surface_a, + cairo_surface_t *surface_b, + cairo_surface_t *surface_diff, + buffer_diff_result_t *result); /* Compares two image buffers ignoring the alpha channel. *