summaryrefslogtreecommitdiff
path: root/boilerplate/cairo-boilerplate-test-surfaces.c
diff options
context:
space:
mode:
Diffstat (limited to 'boilerplate/cairo-boilerplate-test-surfaces.c')
-rw-r--r--boilerplate/cairo-boilerplate-test-surfaces.c35
1 files changed, 24 insertions, 11 deletions
diff --git a/boilerplate/cairo-boilerplate-test-surfaces.c b/boilerplate/cairo-boilerplate-test-surfaces.c
index e112dca6..f38dda95 100644
--- a/boilerplate/cairo-boilerplate-test-surfaces.c
+++ b/boilerplate/cairo-boilerplate-test-surfaces.c
@@ -38,7 +38,10 @@ _cairo_boilerplate_test_fallback_create_surface (const char *name,
cairo_content_t content,
int width,
int height,
+ int max_width,
+ int max_height,
cairo_boilerplate_mode_t mode,
+ int id,
void **closure)
{
*closure = NULL;
@@ -50,7 +53,10 @@ _cairo_boilerplate_test_meta_create_surface (const char *name,
cairo_content_t content,
int width,
int height,
+ int max_width,
+ int max_height,
cairo_boilerplate_mode_t mode,
+ int id,
void **closure)
{
*closure = NULL;
@@ -72,11 +78,15 @@ _cairo_boilerplate_test_paginated_create_surface (const char *name,
cairo_content_t content,
int width,
int height,
+ int max_width,
+ int max_height,
cairo_boilerplate_mode_t mode,
+ int id,
void **closure)
{
test_paginated_closure_t *tpc;
cairo_surface_t *surface;
+ cairo_status_t status;
*closure = tpc = xmalloc (sizeof (test_paginated_closure_t));
@@ -92,11 +102,21 @@ _cairo_boilerplate_test_paginated_create_surface (const char *name,
tpc->width,
tpc->height,
tpc->stride);
+ if (cairo_surface_status (surface))
+ goto CLEANUP;
+
+ status = cairo_surface_set_user_data (surface,
+ &test_paginated_closure_key,
+ tpc, NULL);
+ if (status == CAIRO_STATUS_SUCCESS)
+ return surface;
- cairo_boilerplate_surface_set_user_data (surface,
- &test_paginated_closure_key,
- tpc, NULL);
+ cairo_surface_destroy (surface);
+ surface = cairo_boilerplate_surface_create_in_error (status);
+ CLEANUP:
+ free (tpc->data);
+ free (tpc);
return surface;
}
@@ -137,16 +157,9 @@ _cairo_boilerplate_test_paginated_surface_write_to_png (cairo_surface_t *surface
tpc->stride);
status = cairo_surface_write_to_png (image, filename);
- if (status) {
- CAIRO_BOILERPLATE_LOG ("Error writing %s: %s. Exiting\n",
- filename,
- cairo_status_to_string (status));
- exit (1);
- }
-
cairo_surface_destroy (image);
- return CAIRO_STATUS_SUCCESS;
+ return status;
}
void