Minor refactoring to simplify initial sanity checks of surfaces. Conceivably useful for other basic checking.
Signed-off-by: Bryce Harrington <[email protected]> --- tests/weston-test-client-helper.c | 41 ++++++++++++++++++++++++++------------- tests/weston-test-client-helper.h | 3 +++ 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/tests/weston-test-client-helper.c b/tests/weston-test-client-helper.c index f9de7c8..b63634d 100644 --- a/tests/weston-test-client-helper.c +++ b/tests/weston-test-client-helper.c @@ -877,6 +877,31 @@ screenshot_reference_filename(const char *basename, uint32_t seq) { } /** + * check_surfaces_geometry() - verifies two surfaces are same size + * + * @returns true if surfaces have the same width and height, or false + * if not, or if there is no actual data. + */ +bool +check_surfaces_geometry(const struct surface *a, const struct surface *b) +{ + if (a == NULL || b == NULL) { + printf("Undefined surfaces\n"); + return false; + } + else if (a->data == NULL || b->data == NULL) { + printf("Undefined data\n"); + return false; + } + else if (a->width != b->width || a->height != b->height) { + printf("Mismatched dimensions: %d,%d != %d,%d\n", + a->width, a->height, b->width, b->height); + return false; + } + return true; +} + +/** * check_surfaces_equal() - tests if two surfaces are pixel-identical * * Returns true if surface buffers have all the same byte values, @@ -889,11 +914,8 @@ check_surfaces_equal(const struct surface *a, const struct surface *b) int y; void *p, *q; - if (a == NULL || b == NULL) + if (!check_surfaces_geometry(a, b)) return false; - if (a->width != b->width || a->height != a->height) - return false; - if (a->stride == b->stride) { printf("Checking data for equivalent strides\n"); return (memcmp(a->data, b->data, a->stride * a->height) == 0); @@ -926,18 +948,9 @@ check_surfaces_match_in_clip(const struct surface *a, const struct surface *b, c void *p, *q; char a_char, b_char; - if (a == NULL || b == NULL || clip_rect == NULL) + if (!check_surfaces_geometry(a, b) || clip_rect == NULL) return false; - if (a->data == NULL || b->data == NULL) { - printf("Undefined data\n"); - return false; - } - if (a->width != b->width || a->height != b->height) { - printf("Mismatched dimensions: %d,%d != %d,%d\n", - a->width, a->height, b->width, b->height); - return false; - } if (clip_rect->x > a->width || clip_rect->y > a->height) { printf("Clip outside image boundaries\n"); return true; diff --git a/tests/weston-test-client-helper.h b/tests/weston-test-client-helper.h index 1380bb6..407a8ab 100644 --- a/tests/weston-test-client-helper.h +++ b/tests/weston-test-client-helper.h @@ -201,6 +201,9 @@ char* screenshot_reference_filename(const char *basename, uint32_t seq); bool +check_surfaces_geometry(const struct surface *a, const struct surface *b); + +bool check_surfaces_equal(const struct surface *a, const struct surface *b); bool -- 1.9.1 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
