summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2006-12-12 16:37:35 -0800
committerCarl Worth <cworth@cworth.org>2006-12-14 07:57:59 -0800
commit55f776876d231a035cdc5da9bb90cbba14f19248 (patch)
tree6a1e4fe5c8fc0296e73ec43fe235280ebbb9ffa4
parent0d7870b6bf13edfe513e2de25a5814a0a1b78c79 (diff)
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.
-rw-r--r--test/buffer-diff.c28
-rw-r--r--test/buffer-diff.h15
2 files changed, 19 insertions, 24 deletions
diff --git a/test/buffer-diff.c b/test/buffer-diff.c
index 819ba163..99501bce 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 d95c213b..cd353450 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.
*