[cairo-commit] 9 commits - perf/cairo-perf-compare-backends.c perf/cairo-perf-diff-files.c src/cairo-clip.c src/cairo.h src/cairo-win32-surface.c test/extended-blend-alpha.c test/extended-blend.c test/extended-blend-solid-alpha.argb32.ref.png test/extended-blend-solid-alpha.image16.ref.png test/extended-blend-solid-alpha.rgb24.ref.png test/extended-blend-solid.argb32.ref.png test/extended-blend-solid.image16.ref.png test/extended-blend-solid.rgb24.ref.png test/.gitignore test/Makefile.am test/Makefile.refs test/Makefile.sources test/testtable.js test/text-antialias.c test/text-antialias-gray.c test/text-antialias-none.c test/text-antialias-subpixel.c

Andrea Canciani ranma42 at kemper.freedesktop.org
Sat Jun 25 04:38:48 PDT 2011


 perf/cairo-perf-compare-backends.c              |    2 
 perf/cairo-perf-diff-files.c                    |    2 
 src/cairo-clip.c                                |   26 
 src/cairo-win32-surface.c                       |   24 
 src/cairo.h                                     |    6 
 test/.gitignore                                 |    1 
 test/Makefile.am                                | 1401 ------------------------
 test/Makefile.refs                              | 1354 +++++++++++++++++++++++
 test/Makefile.sources                           |    5 
 test/extended-blend-alpha.c                     |  115 -
 test/extended-blend-solid-alpha.argb32.ref.png  |binary
 test/extended-blend-solid-alpha.image16.ref.png |binary
 test/extended-blend-solid-alpha.rgb24.ref.png   |binary
 test/extended-blend-solid.argb32.ref.png        |binary
 test/extended-blend-solid.image16.ref.png       |binary
 test/extended-blend-solid.rgb24.ref.png         |binary
 test/extended-blend.c                           |  170 ++
 test/testtable.js                               |    8 
 test/text-antialias-gray.c                      |   76 -
 test/text-antialias-none.c                      |   76 -
 test/text-antialias-subpixel.c                  |   74 -
 test/text-antialias.c                           |  106 +
 22 files changed, 1658 insertions(+), 1788 deletions(-)

New commits:
commit ffdfdf2fa99dab340e03884267218b134d68265b
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Sat Jun 25 10:29:04 2011 +0200

    test: Merge text-antialias-*
    
    The test-antialias-* tests perform the same operation with just a
    different antialias flag. Sharing the code ensures that they are kept
    in sync and permits adding new flags combinations easily.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=14268

diff --git a/test/Makefile.sources b/test/Makefile.sources
index c5a949a..7027389 100644
--- a/test/Makefile.sources
+++ b/test/Makefile.sources
@@ -273,9 +273,7 @@ test_sources = \
 	surface-pattern-scale-down.c			\
 	surface-pattern-scale-down-extend.c		\
 	surface-pattern-scale-up.c			\
-	text-antialias-gray.c				\
-	text-antialias-none.c				\
-	text-antialias-subpixel.c			\
+	text-antialias.c				\
 	text-cache-crash.c				\
 	text-glyph-range.c				\
 	text-pattern.c					\
diff --git a/test/text-antialias-gray.c b/test/text-antialias-gray.c
deleted file mode 100644
index 84143f0..0000000
--- a/test/text-antialias-gray.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright © 2005 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without
- * fee, provided that the above copyright notice appear in all copies
- * and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of
- * Red Hat, Inc. not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. Red Hat, Inc. makes no representations about the
- * suitability of this software for any purpose.  It is provided "as
- * is" without express or implied warranty.
- *
- * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
- * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Carl D. Worth <cworth at cworth.org>
- */
-
-#include "cairo-test.h"
-
-#define WIDTH  31
-#define HEIGHT 22
-#define TEXT_SIZE 12
-
-static cairo_test_status_t
-draw (cairo_t *cr, int width, int height)
-{
-    cairo_text_extents_t extents;
-    cairo_font_options_t *font_options;
-    const char black[] = "black", blue[] = "blue";
-
-    /* We draw in the default black, so paint white first. */
-    cairo_save (cr);
-    cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */
-    cairo_paint (cr);
-    cairo_restore (cr);
-
-    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans",
-			    CAIRO_FONT_SLANT_NORMAL,
-			    CAIRO_FONT_WEIGHT_NORMAL);
-    cairo_set_font_size (cr, TEXT_SIZE);
-
-    font_options = cairo_font_options_create ();
-    cairo_get_font_options (cr, font_options);
-    cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_GRAY);
-    cairo_set_font_options (cr, font_options);
-
-    cairo_font_options_destroy (font_options);
-
-    cairo_set_source_rgb (cr, 0, 0, 0); /* black */
-    cairo_text_extents (cr, black, &extents);
-    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
-    cairo_show_text (cr, black);
-    cairo_translate (cr, 0, -extents.y_bearing + 1);
-
-    cairo_set_source_rgb (cr, 0, 0, 1); /* blue */
-    cairo_text_extents (cr, blue, &extents);
-    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
-    cairo_show_text (cr, blue);
-
-    return CAIRO_TEST_SUCCESS;
-}
-
-CAIRO_TEST (text_antialias_gray,
-	    "Tests text rendering with grayscale antialiasing",
-	    "text", /* keywords */
-	    "target=raster", /* requirements */
-	    WIDTH, HEIGHT,
-	    NULL, draw)
diff --git a/test/text-antialias-none.c b/test/text-antialias-none.c
deleted file mode 100644
index dbfcdee..0000000
--- a/test/text-antialias-none.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright © 2005 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without
- * fee, provided that the above copyright notice appear in all copies
- * and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of
- * Red Hat, Inc. not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. Red Hat, Inc. makes no representations about the
- * suitability of this software for any purpose.  It is provided "as
- * is" without express or implied warranty.
- *
- * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
- * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Carl D. Worth <cworth at cworth.org>
- */
-
-#include "cairo-test.h"
-
-#define WIDTH  31
-#define HEIGHT 22
-#define TEXT_SIZE 12
-
-static cairo_test_status_t
-draw (cairo_t *cr, int width, int height)
-{
-    cairo_text_extents_t extents;
-    cairo_font_options_t *font_options;
-    const char black[] = "black", blue[] = "blue";
-
-    /* We draw in the default black, so paint white first. */
-    cairo_save (cr);
-    cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */
-    cairo_paint (cr);
-    cairo_restore (cr);
-
-    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans",
-			    CAIRO_FONT_SLANT_NORMAL,
-			    CAIRO_FONT_WEIGHT_NORMAL);
-    cairo_set_font_size (cr, TEXT_SIZE);
-
-    font_options = cairo_font_options_create ();
-    cairo_get_font_options (cr, font_options);
-    cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_NONE);
-    cairo_set_font_options (cr, font_options);
-
-    cairo_font_options_destroy (font_options);
-
-    cairo_set_source_rgb (cr, 0, 0, 0); /* black */
-    cairo_text_extents (cr, black, &extents);
-    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
-    cairo_show_text (cr, black);
-    cairo_translate (cr, 0, -extents.y_bearing + 1);
-
-    cairo_set_source_rgb (cr, 0, 0, 1); /* blue */
-    cairo_text_extents (cr, blue, &extents);
-    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
-    cairo_show_text (cr, blue);
-
-    return CAIRO_TEST_SUCCESS;
-}
-
-CAIRO_TEST (text_antialias_none,
-	    "Tests text rendering with no antialiasing",
-	    "text", /* keywords */
-	    "target=raster", /* requirements */
-	    WIDTH, HEIGHT,
-	    NULL, draw)
diff --git a/test/text-antialias-subpixel.c b/test/text-antialias-subpixel.c
deleted file mode 100644
index e6eadc2..0000000
--- a/test/text-antialias-subpixel.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright © 2005 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without
- * fee, provided that the above copyright notice appear in all copies
- * and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of
- * Red Hat, Inc. not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. Red Hat, Inc. makes no representations about the
- * suitability of this software for any purpose.  It is provided "as
- * is" without express or implied warranty.
- *
- * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
- * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Carl D. Worth <cworth at cworth.org>
- */
-
-#include "cairo-test.h"
-
-#define WIDTH  31
-#define HEIGHT 22
-#define TEXT_SIZE 12
-
-static cairo_test_status_t
-draw (cairo_t *cr, int width, int height)
-{
-    cairo_text_extents_t extents;
-    cairo_font_options_t *font_options;
-    const char black[] = "black", blue[] = "blue";
-
-    cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
-    cairo_paint (cr);
-
-    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans",
-			    CAIRO_FONT_SLANT_NORMAL,
-			    CAIRO_FONT_WEIGHT_NORMAL);
-    cairo_set_font_size (cr, TEXT_SIZE);
-
-    font_options = cairo_font_options_create ();
-    cairo_get_font_options (cr, font_options);
-    cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_SUBPIXEL);
-    cairo_font_options_set_subpixel_order (font_options, CAIRO_SUBPIXEL_ORDER_RGB);
-    cairo_set_font_options (cr, font_options);
-
-    cairo_font_options_destroy (font_options);
-
-    cairo_set_source_rgb (cr, 0, 0, 0); /* black */
-    cairo_text_extents (cr, black, &extents);
-    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
-    cairo_show_text (cr, black);
-    cairo_translate (cr, 0, -extents.y_bearing + 1);
-
-    cairo_set_source_rgb (cr, 0, 0, 1); /* blue */
-    cairo_text_extents (cr, blue, &extents);
-    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
-    cairo_show_text (cr, blue);
-
-    return CAIRO_TEST_SUCCESS;
-}
-
-CAIRO_TEST (text_antialias_subpixel,
-	    "Tests text rendering with subpixel antialiasing",
-	    "text", /* keywords */
-	    "target=raster", /* requirements */
-	    WIDTH, HEIGHT,
-	    NULL, draw)
diff --git a/test/text-antialias.c b/test/text-antialias.c
new file mode 100644
index 0000000..7d33892
--- /dev/null
+++ b/test/text-antialias.c
@@ -0,0 +1,106 @@
+/*
+ * Copyright © 2005 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Red Hat, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. Red Hat, Inc. makes no representations about the
+ * suitability of this software for any purpose.  It is provided "as
+ * is" without express or implied warranty.
+ *
+ * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Carl D. Worth <cworth at cworth.org>
+ */
+
+#include "cairo-test.h"
+
+#define WIDTH  31
+#define HEIGHT 22
+#define TEXT_SIZE 12
+
+static cairo_test_status_t
+draw (cairo_t *cr, cairo_antialias_t antialias)
+{
+    cairo_text_extents_t extents;
+    cairo_font_options_t *font_options;
+    const char black[] = "black", blue[] = "blue";
+
+    cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */
+    cairo_paint (cr);
+
+    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans",
+			    CAIRO_FONT_SLANT_NORMAL,
+			    CAIRO_FONT_WEIGHT_NORMAL);
+    cairo_set_font_size (cr, TEXT_SIZE);
+
+    font_options = cairo_font_options_create ();
+    cairo_get_font_options (cr, font_options);
+    cairo_font_options_set_antialias (font_options, antialias);
+    cairo_font_options_set_subpixel_order (font_options, CAIRO_SUBPIXEL_ORDER_RGB);
+    cairo_set_font_options (cr, font_options);
+
+    cairo_font_options_destroy (font_options);
+
+    cairo_set_source_rgb (cr, 0, 0, 0); /* black */
+    cairo_text_extents (cr, black, &extents);
+    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
+    cairo_show_text (cr, black);
+    cairo_translate (cr, 0, -extents.y_bearing + 1);
+
+    cairo_set_source_rgb (cr, 0, 0, 1); /* blue */
+    cairo_text_extents (cr, blue, &extents);
+    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
+    cairo_show_text (cr, blue);
+
+    return CAIRO_TEST_SUCCESS;
+}
+
+static cairo_test_status_t
+draw_gray (cairo_t *cr, int width, int height)
+{
+    return draw (cr, CAIRO_ANTIALIAS_GRAY);
+}
+
+static cairo_test_status_t
+draw_none (cairo_t *cr, int width, int height)
+{
+    return draw (cr, CAIRO_ANTIALIAS_NONE);
+}
+
+static cairo_test_status_t
+draw_subpixel (cairo_t *cr, int width, int height)
+{
+    return draw (cr, CAIRO_ANTIALIAS_SUBPIXEL);
+}
+
+CAIRO_TEST (text_antialias_gray,
+	    "Tests text rendering with grayscale antialiasing",
+	    "text", /* keywords */
+	    "target=raster", /* requirements */
+	    WIDTH, HEIGHT,
+	    NULL, draw_gray)
+
+CAIRO_TEST (text_antialias_none,
+	    "Tests text rendering with no antialiasing",
+	    "text", /* keywords */
+	    "target=raster", /* requirements */
+	    WIDTH, HEIGHT,
+	    NULL, draw_none)
+
+CAIRO_TEST (text_antialias_subpixel,
+	    "Tests text rendering with subpixel antialiasing",
+	    "text", /* keywords */
+	    "target=raster", /* requirements */
+	    WIDTH, HEIGHT,
+	    NULL, draw_subpixel)
commit a468489270faabacbf89febc250c2d393fda1a13
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Fri Jun 24 16:23:28 2011 +0200

    win32: Fallback upon PDF blend operators
    
    GDI does not support PDF blend modes, so they are implemented by
    falling back.
    
    Fixes extended-blend-solid, extended-blend-solid-alpha.
    
    Bug pointed out by Peter Frentrup <peter_frentrup at gmx.de> in
    http://lists.cairographics.org/archives/cairo/2011-April/021908.html

diff --git a/src/cairo-win32-surface.c b/src/cairo-win32-surface.c
index 4a36226..1be2192 100644
--- a/src/cairo-win32-surface.c
+++ b/src/cairo-win32-surface.c
@@ -1402,10 +1402,28 @@ categorize_solid_dest_operator (cairo_operator_t op,
 	else
 	    return DO_UNSUPPORTED;
 	break;
-    }
 
-    ASSERT_NOT_REACHED;
-    return DO_UNSUPPORTED;
+    case CAIRO_OPERATOR_MULTIPLY:
+    case CAIRO_OPERATOR_SCREEN:
+    case CAIRO_OPERATOR_OVERLAY:
+    case CAIRO_OPERATOR_DARKEN:
+    case CAIRO_OPERATOR_LIGHTEN:
+    case CAIRO_OPERATOR_COLOR_DODGE:
+    case CAIRO_OPERATOR_COLOR_BURN:
+    case CAIRO_OPERATOR_HARD_LIGHT:
+    case CAIRO_OPERATOR_SOFT_LIGHT:
+    case CAIRO_OPERATOR_DIFFERENCE:
+    case CAIRO_OPERATOR_EXCLUSION:
+    case CAIRO_OPERATOR_HSL_HUE:
+    case CAIRO_OPERATOR_HSL_SATURATION:
+    case CAIRO_OPERATOR_HSL_COLOR:
+    case CAIRO_OPERATOR_HSL_LUMINOSITY:
+	return DO_UNSUPPORTED;
+
+    default:
+	ASSERT_NOT_REACHED;
+	return DO_UNSUPPORTED;
+    }
 }
 
 static cairo_int_status_t
commit acfc00168571928a882787d3c6622efde22172e0
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Sat Jun 25 08:41:52 2011 +0200

    test: Add extended-blend-solid tests
    
    Unify extended-blend* tests and add a solid pattern version, which
    crashes on the win32 backend.
    
    Bug pointed out by Peter Frentrup <peter_frentrup at gmx.de> in
    http://lists.cairographics.org/archives/cairo/2011-April/021908.html

diff --git a/test/Makefile.refs b/test/Makefile.refs
index d1d6c80..10cab7a 100644
--- a/test/Makefile.refs
+++ b/test/Makefile.refs
@@ -391,6 +391,12 @@ REFERENCE_IMAGES = \
 	extended-blend-alpha.rgb24.ref.png \
 	extended-blend-alpha.svg12.argb32.xfail.png \
 	extended-blend-alpha.svg12.rgb24.xfail.png \
+	extended-blend-solid-alpha.argb32.ref.png \
+	extended-blend-solid-alpha.image16.ref.png \
+	extended-blend-solid-alpha.rgb24.ref.png \
+	extended-blend-solid.argb32.ref.png \
+	extended-blend-solid.image16.ref.png \
+	extended-blend-solid.rgb24.ref.png \
 	extended-blend.argb32.ref.png \
 	extended-blend.image16.ref.png \
 	extended-blend.quartz.argb32.ref.png \
diff --git a/test/Makefile.sources b/test/Makefile.sources
index 5a0beb3..c5a949a 100644
--- a/test/Makefile.sources
+++ b/test/Makefile.sources
@@ -95,7 +95,6 @@ test_sources = \
 	extend-repeat.c					\
 	extend-repeat-similar.c				\
 	extended-blend.c				\
-	extended-blend-alpha.c				\
 	fill-alpha.c					\
 	fill-alpha-pattern.c				\
 	fill-and-stroke.c				\
diff --git a/test/extended-blend-alpha.c b/test/extended-blend-alpha.c
deleted file mode 100644
index e0316f3..0000000
--- a/test/extended-blend-alpha.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright © 2005 Red Hat, Inc.
- * Copyright © 2007 Emmanuel Pacaud
- * Copyright © 2008 Benjamin Otte
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without
- * fee, provided that the above copyright notice appear in all copies
- * and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of
- * Red Hat, Inc. not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. Red Hat, Inc. makes no representations about the
- * suitability of this software for any purpose.  It is provided "as
- * is" without express or implied warranty.
- *
- * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
- * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors: Owen Taylor <otaylor at redhat.com>
- *          Kristian Høgsberg <krh at redhat.com>
- *          Emmanuel Pacaud <emmanuel.pacaud at lapp.in2p3.fr>
- */
-
-#include <math.h>
-#include "cairo-test.h"
-#include <stdio.h>
-
-#define STEPS 16
-#define START_OPERATOR	CAIRO_OPERATOR_MULTIPLY
-#define STOP_OPERATOR	CAIRO_OPERATOR_HSL_LUMINOSITY
-
-static void
-create_patterns (cairo_t *bg, cairo_t *fg)
-{
-    int x;
-
-    for (x = 0; x < STEPS; x++) {
-	/* draw a yellow background fading in using discrete steps */
-	cairo_set_source_rgba (bg, 1, 1, 0, (double) x / (STEPS - 1));
-	cairo_rectangle (bg, x, 0, 1, STEPS);
-	cairo_fill (bg);
-
-	/* draw an orthogonal teal pattern fading in using discrete steps */
-	cairo_set_source_rgba (fg, 0, 1, 1, (double) x / (STEPS - 1));
-	cairo_rectangle (fg, 0, x, STEPS, 1);
-	cairo_fill (fg);
-    }
-}
-
-/* expects a STEP*STEP pixel rectangle */
-static void
-do_blend (cairo_t *cr, cairo_operator_t op, cairo_surface_t *bg, cairo_surface_t *fg)
-{
-    /* not using CAIRO_OPERATOR_SOURCE here, it triggers a librsvg bug */
-    cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
-    cairo_set_source_surface (cr, bg, 0, 0);
-    cairo_paint (cr);
-
-    cairo_set_operator (cr, op);
-    cairo_set_source_surface (cr, fg, 0, 0);
-    cairo_paint (cr);
-}
-
-#define SIZE 5
-#define COUNT 4
-#define FULL_WIDTH  ((STEPS + 1) * COUNT - 1)
-#define FULL_HEIGHT ((COUNT + STOP_OPERATOR - START_OPERATOR) / COUNT) * (STEPS + 1)
-
-static cairo_test_status_t
-draw (cairo_t *cr, int width, int height)
-{
-    size_t i = 0;
-    cairo_operator_t op;
-    cairo_t *bgcr, *fgcr;
-    cairo_surface_t *bg, *fg;
-
-    bg = cairo_surface_create_similar (cairo_get_target (cr), 
-	    CAIRO_CONTENT_COLOR_ALPHA, SIZE * STEPS, SIZE * STEPS);
-    fg = cairo_surface_create_similar (cairo_get_target (cr), 
-	    CAIRO_CONTENT_COLOR_ALPHA, SIZE * STEPS, SIZE * STEPS);
-    bgcr = cairo_create (bg);
-    fgcr = cairo_create (fg);
-    cairo_scale (bgcr, SIZE, SIZE);
-    cairo_scale (fgcr, SIZE, SIZE);
-    create_patterns (bgcr, fgcr);
-    cairo_destroy (bgcr);
-    cairo_destroy (fgcr);
-
-    for (op = START_OPERATOR; op <= STOP_OPERATOR; op++, i++) {
-	cairo_save (cr);
-	cairo_translate (cr, 
-		SIZE * (STEPS + 1) * (i % COUNT),
-		SIZE * (STEPS + 1) * (i / COUNT));
-	do_blend (cr, op, bg, fg);
-	cairo_restore (cr);
-    }
-
-    cairo_surface_destroy (fg);
-    cairo_surface_destroy (bg);
-
-    return CAIRO_TEST_SUCCESS;
-}
-
-CAIRO_TEST (extended_blend_alpha,
-	    "Tests extended blend modes with alpha",
-	    "operator", /* keywords */
-	    NULL, /* requirements */
-	    FULL_WIDTH * SIZE, FULL_HEIGHT * SIZE,
-	    NULL, draw)
diff --git a/test/extended-blend-solid-alpha.argb32.ref.png b/test/extended-blend-solid-alpha.argb32.ref.png
new file mode 100644
index 0000000..4d56a21
Binary files /dev/null and b/test/extended-blend-solid-alpha.argb32.ref.png differ
diff --git a/test/extended-blend-solid-alpha.image16.ref.png b/test/extended-blend-solid-alpha.image16.ref.png
new file mode 100644
index 0000000..df96469
Binary files /dev/null and b/test/extended-blend-solid-alpha.image16.ref.png differ
diff --git a/test/extended-blend-solid-alpha.rgb24.ref.png b/test/extended-blend-solid-alpha.rgb24.ref.png
new file mode 100644
index 0000000..f62dda9
Binary files /dev/null and b/test/extended-blend-solid-alpha.rgb24.ref.png differ
diff --git a/test/extended-blend-solid.argb32.ref.png b/test/extended-blend-solid.argb32.ref.png
new file mode 100644
index 0000000..083fe87
Binary files /dev/null and b/test/extended-blend-solid.argb32.ref.png differ
diff --git a/test/extended-blend-solid.image16.ref.png b/test/extended-blend-solid.image16.ref.png
new file mode 100644
index 0000000..2052ea7
Binary files /dev/null and b/test/extended-blend-solid.image16.ref.png differ
diff --git a/test/extended-blend-solid.rgb24.ref.png b/test/extended-blend-solid.rgb24.ref.png
new file mode 100644
index 0000000..53c1b22
Binary files /dev/null and b/test/extended-blend-solid.rgb24.ref.png differ
diff --git a/test/extended-blend.c b/test/extended-blend.c
index cd2b06b..45e0e48 100644
--- a/test/extended-blend.c
+++ b/test/extended-blend.c
@@ -35,29 +35,97 @@
 #define START_OPERATOR	CAIRO_OPERATOR_MULTIPLY
 #define STOP_OPERATOR	CAIRO_OPERATOR_HSL_LUMINOSITY
 
+#define SIZE 5
+#define COUNT 4
+#define FULL_WIDTH  ((STEPS + 1) * COUNT - 1)
+#define FULL_HEIGHT ((COUNT + STOP_OPERATOR - START_OPERATOR) / COUNT) * (STEPS + 1)
+
+static void
+set_solid_pattern (cairo_t *cr,
+		   int step,
+		   cairo_bool_t bg,
+		   cairo_bool_t alpha)
+{
+    double c, a;
+
+    a = ((double) step) / (STEPS - 1);
+    if (alpha) {
+	c = 1;
+    } else {
+	c = a;
+	a = 1;
+    }
+
+    if (bg) /* draw a yellow background fading in using discrete steps */
+	cairo_set_source_rgba (cr, c, c, 0, a);
+    else /* draw a teal foreground pattern fading in using discrete steps */
+	cairo_set_source_rgba (cr, 0, c, c, a);
+}
+
+/* expects a STEP*STEP pixel rectangle */
 static void
-create_patterns (cairo_t *bg, cairo_t *fg)
+do_blend_solid (cairo_t *cr, cairo_operator_t op, cairo_bool_t alpha)
 {
     int x;
 
+    cairo_save (cr);
+    cairo_scale (cr, SIZE, SIZE);
+
+    /* not using CAIRO_OPERATOR_SOURCE here, it triggers a librsvg bug */
+    cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+    for (x = 0; x < STEPS; x++) {
+	/* draw the background using discrete steps */
+	set_solid_pattern (cr, x, TRUE, alpha);
+	cairo_rectangle (cr, x, 0, 1, STEPS);
+	cairo_fill (cr);
+    }
+
+    cairo_set_operator (cr, op);
     for (x = 0; x < STEPS; x++) {
-	double i = (double) x / (STEPS - 1);
-	/* draw a yellow background fading in using discrete steps */
-	cairo_set_source_rgba (bg, i, i, 0, 1);
-	cairo_rectangle (bg, x, 0, 1, STEPS);
-	cairo_fill (bg);
-
-	/* draw an orthogonal teal pattern fading in using discrete steps */
-	cairo_set_source_rgba (fg, 0, i, i, 1);
-	cairo_rectangle (fg, 0, x, STEPS, 1);
-	cairo_fill (fg);
+	/* draw an orthogonal foreground pattern using discrete steps */
+	set_solid_pattern (cr, x, FALSE, alpha);
+	cairo_rectangle (cr, 0, x, STEPS, 1);
+	cairo_fill (cr);
     }
+
+    cairo_restore (cr);
+}
+
+static void
+create_patterns (cairo_t *cr,
+		 cairo_surface_t **bg,
+		 cairo_surface_t **fg,
+		 cairo_bool_t alpha)
+{
+    cairo_t *bgcr, *fgcr;
+
+    *bg = cairo_surface_create_similar (cairo_get_target (cr),
+					CAIRO_CONTENT_COLOR_ALPHA,
+					SIZE * STEPS,
+					SIZE * STEPS);
+    *fg = cairo_surface_create_similar (cairo_get_target (cr),
+					CAIRO_CONTENT_COLOR_ALPHA,
+					SIZE * STEPS,
+					SIZE * STEPS);
+
+    bgcr = cairo_create (*bg);
+    fgcr = cairo_create (*fg);
+
+    do_blend_solid (bgcr, CAIRO_OPERATOR_DEST, alpha);
+    do_blend_solid (fgcr, CAIRO_OPERATOR_SOURCE, alpha);
+
+    cairo_destroy (bgcr);
+    cairo_destroy (fgcr);
 }
 
 /* expects a STEP*STEP pixel rectangle */
 static void
-do_blend (cairo_t *cr, cairo_operator_t op, cairo_surface_t *bg, cairo_surface_t *fg)
+do_blend (cairo_t *cr, cairo_operator_t op, cairo_bool_t alpha)
 {
+    cairo_surface_t *bg, *fg;
+
+    create_patterns (cr, &bg, &fg, alpha);
+
     /* not using CAIRO_OPERATOR_SOURCE here, it triggers a librsvg bug */
     cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
     cairo_set_source_surface (cr, bg, 0, 0);
@@ -66,52 +134,78 @@ do_blend (cairo_t *cr, cairo_operator_t op, cairo_surface_t *bg, cairo_surface_t
     cairo_set_operator (cr, op);
     cairo_set_source_surface (cr, fg, 0, 0);
     cairo_paint (cr);
-}
 
-#define SIZE 5
-#define COUNT 4
-#define FULL_WIDTH  ((STEPS + 1) * COUNT - 1)
-#define FULL_HEIGHT ((COUNT + STOP_OPERATOR - START_OPERATOR) / COUNT) * (STEPS + 1)
+    cairo_surface_destroy (fg);
+    cairo_surface_destroy (bg);
+}
 
 static cairo_test_status_t
-draw (cairo_t *cr, int width, int height)
+draw (cairo_t *cr, cairo_bool_t alpha,
+      void (*blend)(cairo_t *, cairo_operator_t, cairo_bool_t))
 {
     size_t i = 0;
     cairo_operator_t op;
-    cairo_t *bgcr, *fgcr;
-    cairo_surface_t *bg, *fg;
-
-    bg = cairo_surface_create_similar (cairo_get_target (cr), 
-	    CAIRO_CONTENT_COLOR_ALPHA, SIZE * STEPS, SIZE * STEPS);
-    fg = cairo_surface_create_similar (cairo_get_target (cr), 
-	    CAIRO_CONTENT_COLOR_ALPHA, SIZE * STEPS, SIZE * STEPS);
-    bgcr = cairo_create (bg);
-    fgcr = cairo_create (fg);
-    cairo_scale (bgcr, SIZE, SIZE);
-    cairo_scale (fgcr, SIZE, SIZE);
-    create_patterns (bgcr, fgcr);
-    cairo_destroy (bgcr);
-    cairo_destroy (fgcr);
 
     for (op = START_OPERATOR; op <= STOP_OPERATOR; op++, i++) {
 	cairo_save (cr);
-	cairo_translate (cr, 
+	cairo_translate (cr,
 		SIZE * (STEPS + 1) * (i % COUNT),
 		SIZE * (STEPS + 1) * (i / COUNT));
-	do_blend (cr, op, bg, fg);
+	blend (cr, op, alpha);
 	cairo_restore (cr);
     }
 
-    cairo_surface_destroy (fg);
-    cairo_surface_destroy (bg);
-
     return CAIRO_TEST_SUCCESS;
 }
 
+static cairo_test_status_t
+draw_extended_blend (cairo_t *cr, int width, int height)
+{
+    return draw (cr, FALSE, do_blend);
+}
+
+static cairo_test_status_t
+draw_extended_blend_alpha (cairo_t *cr, int width, int height)
+{
+    return draw (cr, TRUE, do_blend);
+}
+
+static cairo_test_status_t
+draw_extended_blend_solid (cairo_t *cr, int width, int height)
+{
+    return draw (cr, FALSE, do_blend_solid);
+}
+
+static cairo_test_status_t
+draw_extended_blend_solid_alpha (cairo_t *cr, int width, int height)
+{
+    return draw (cr, TRUE, do_blend_solid);
+}
+
 CAIRO_TEST (extended_blend,
 	    "Tests extended blend modes without alpha",
 	    "operator", /* keywords */
 	    NULL, /* requirements */
 	    FULL_WIDTH * SIZE, FULL_HEIGHT * SIZE,
-	    NULL, draw)
+	    NULL, draw_extended_blend)
 
+CAIRO_TEST (extended_blend_alpha,
+	    "Tests extended blend modes with alpha",
+	    "operator", /* keywords */
+	    NULL, /* requirements */
+	    FULL_WIDTH * SIZE, FULL_HEIGHT * SIZE,
+	    NULL, draw_extended_blend_alpha)
+
+CAIRO_TEST (extended_blend_solid,
+	    "Tests extended blend modes on solid patterns without alpha",
+	    "operator", /* keywords */
+	    NULL, /* requirements */
+	    FULL_WIDTH * SIZE, FULL_HEIGHT * SIZE,
+	    NULL, draw_extended_blend_solid)
+
+CAIRO_TEST (extended_blend_solid_alpha,
+	    "Tests extended blend modes on solid patterns with alpha",
+	    "operator", /* keywords */
+	    NULL, /* requirements */
+	    FULL_WIDTH * SIZE, FULL_HEIGHT * SIZE,
+	    NULL, draw_extended_blend_solid_alpha)
commit 5fffa3fae122da624aa79923ff13c781842e005d
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Fri Jun 24 23:04:11 2011 +0200

    test: Ignore \r when parsing test log files
    
    This fixes the log parsing on win32.

diff --git a/test/testtable.js b/test/testtable.js
index daf6450..8cf7156 100644
--- a/test/testtable.js
+++ b/test/testtable.js
@@ -358,7 +358,7 @@ function parseTest (testData) {
     var rows = new Array ();
     var data = new Object ();
     var t = new Test ();
-    var lines = testData.split ("\n");
+    var lines = testData.replace (/\r/g, "").split ("\n");
     for (var i = 0; i < lines.length; i++) {
 	t.addData (lines[i].split (" "));
 	if (t.isComplete ()) {
@@ -406,7 +406,7 @@ function parseFile (fileName, parser) {
 
 function parseTestList (listData) {
     var summaryRE = /\d+ Passed, \d+ Failed \x5b\d+ crashed, \d+ expected\x5d, \d+ Skipped/;
-    var lines = listData.split ("\n");
+    var lines = listData.replace (/\r/g, "").split ("\n");
     for (var i = 0; i < lines.length; i++) {
 	if (summaryRE.test (lines[i]))
 	    return;
commit 0baf009b39c75dbc604800b9bd4c9f017a87d763
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Fri Jun 24 23:02:25 2011 +0200

    test: Make parsing of log files more solid
    
    The old code considered every even "word" as a key and every odd
    "word" as a value when parsing a test log file.
    All of the keys end with ':', so restrict with this requirement.

diff --git a/test/testtable.js b/test/testtable.js
index f51b0fd..daf6450 100644
--- a/test/testtable.js
+++ b/test/testtable.js
@@ -48,6 +48,7 @@ function resetGlobals () {
 
 
 /* utility functions */
+function isKey (key) { return key[key.length-1] == ':'; }
 function normalizeKey (key) { return key.toLowerCase ().replace (/[^a-z0-9]/, ""); }
 function isVisible (x) { return x.style.display != "none"; }
 
@@ -293,7 +294,8 @@ function Test () {
 
     this.addData = function (array) {
 	for (var i = 0; i < array.length - 1; i += 2)
-	    this[normalizeKey (array[i])] = array[i+1];
+	    if (isKey (array[i]))
+		this[normalizeKey (array[i])] = array[i+1];
     };
 }
 
commit a447e949799000760835beeafd2d45c76580fb9e
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Fri Jun 24 15:52:24 2011 +0200

    clip: Fix boxes extents computation in intersect_with_boxes
    
    The extents of the boxes were being computed by taking into account
    just the first box instead of all of them.
    
    Based on a patch by James Cloos.
    
    Fixes clip-disjoint, clip-stroke-unbounded, clip-fill-nz-unbounded,
    clip-fill-eo-unbounded, clip-fill, clip-stroke, trap-clip.
    
    See https://bugs.freedesktop.org/show_bug.cgi?id=38641
    
    Reviewed-by: James Cloos <cloos at jhcloos.com>
    Tested-by: James Cloos <cloos at jhcloos.com>

diff --git a/src/cairo-clip.c b/src/cairo-clip.c
index b03e27c..9527c59 100644
--- a/src/cairo-clip.c
+++ b/src/cairo-clip.c
@@ -1398,20 +1398,22 @@ intersect_with_boxes (cairo_composite_rectangles_t *extents,
 {
     cairo_rectangle_int_t rect;
     cairo_box_t box;
+    int i;
+
+    assert (num_boxes > 0);
 
     /* Find the extents over all the clip boxes */
-    box.p1.x = box.p1.y = INT_MAX;
-    box.p2.x = box.p2.y = INT_MIN;
-    while (num_boxes--) {
-	if (boxes->p1.x < box.p1.x)
-	    box.p1.x = boxes->p1.x;
-	if (boxes->p1.y < box.p1.y)
-	    box.p1.y = boxes->p1.y;
-
-	if (boxes->p2.x > box.p2.x)
-	    box.p2.x = boxes->p2.x;
-	if (boxes->p2.y > box.p2.y)
-	    box.p2.y = boxes->p2.y;
+    box = boxes[0];
+    for (i = 1; i < num_boxes; i++) {
+	if (boxes[i].p1.x < box.p1.x)
+	    box.p1.x = boxes[i].p1.x;
+	if (boxes[i].p1.y < box.p1.y)
+	    box.p1.y = boxes[i].p1.y;
+
+	if (boxes[i].p2.x > box.p2.x)
+	    box.p2.x = boxes[i].p2.x;
+	if (boxes[i].p2.y > box.p2.y)
+	    box.p2.y = boxes[i].p2.y;
     }
 
     _cairo_box_round_to_rectangle (&box, &rect);
commit 1a4e9f1e9189e9dcb69afff009a10d6eb3bd2bd4
Author: Nis Martensen <nis.martensen at web.de>
Date:   Mon May 2 20:58:28 2011 +0200

    Fix typos
    
    Reported in
    http://lists.cairographics.org/archives/cairo/2011-May/021921.html

diff --git a/perf/cairo-perf-compare-backends.c b/perf/cairo-perf-compare-backends.c
index 6d8de26..f4a425f 100644
--- a/perf/cairo-perf-compare-backends.c
+++ b/perf/cairo-perf-compare-backends.c
@@ -300,7 +300,7 @@ usage (const char *argv0)
 	     "--no-bars   Don't display change bars at all.\n\n"
 	     "\n"
 	     "--use-ms    Use milliseconds to calculate differences.\n"
-	     "            (instead of ticks which are hardware dependant)\n"
+	     "            (instead of ticks which are hardware dependent)\n"
 	     "\n"
 	     "--min-change threshold[%%]\n"
 	     "            Suppress all changes below the given threshold.\n"
diff --git a/perf/cairo-perf-diff-files.c b/perf/cairo-perf-diff-files.c
index 2551cd1..34311b0 100644
--- a/perf/cairo-perf-diff-files.c
+++ b/perf/cairo-perf-diff-files.c
@@ -398,7 +398,7 @@ usage (const char *argv0)
 	     "--no-bars   Don't display change bars at all.\n\n"
 	     "\n"
 	     "--use-ms    Use milliseconds to calculate differences.\n"
-	     "            (instead of ticks which are hardware dependant)\n"
+	     "            (instead of ticks which are hardware dependent)\n"
 	     "\n"
 	     "--min-change threshold[%%]\n"
 	     "            Suppress all changes below the given threshold.\n"
diff --git a/src/cairo.h b/src/cairo.h
index 1510971..6871665 100644
--- a/src/cairo.h
+++ b/src/cairo.h
@@ -474,9 +474,9 @@ cairo_pop_group_to_source (cairo_t *cr);
  * the source color.
  * @CAIRO_OPERATOR_COLOR_BURN: darkens the destination color to reflect
  * the source color.
- * @CAIRO_OPERATOR_HARD_LIGHT: Multiplies or screens, dependant on source
+ * @CAIRO_OPERATOR_HARD_LIGHT: Multiplies or screens, dependent on source
  * color.
- * @CAIRO_OPERATOR_SOFT_LIGHT: Darkens or lightens, dependant on source
+ * @CAIRO_OPERATOR_SOFT_LIGHT: Darkens or lightens, dependent on source
  * color.
  * @CAIRO_OPERATOR_DIFFERENCE: Takes the difference of the source and
  * destination color.
@@ -486,7 +486,7 @@ cairo_pop_group_to_source (cairo_t *cr);
  * and the saturation and luminosity of the target.
  * @CAIRO_OPERATOR_HSL_SATURATION: Creates a color with the saturation
  * of the source and the hue and luminosity of the target. Painting with
- * this mode onto a gray area prduces no change.
+ * this mode onto a gray area produces no change.
  * @CAIRO_OPERATOR_HSL_COLOR: Creates a color with the hue and saturation
  * of the source and the luminosity of the target. This preserves the gray
  * levels of the target and is useful for coloring monochrome images or
commit 6835421003d4ecf9d9ac32f0bc8db7395f6a5980
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Sat Jun 25 09:39:41 2011 +0200

    test: Fix typo
    
    scrdir -> srcdir

diff --git a/test/Makefile.am b/test/Makefile.am
index 83d55ca..76b6c32 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -442,7 +442,7 @@ $(NOLOG_TESTS_LOG):
 # Identify identical reference images
 check-ref-dups:
 	@LANG=C; \
-	( cd "$(scrdir)" && sha1sum *.ref.png | sort ) > ref.hash; \
+	( cd "$(srcdir)" && sha1sum *.ref.png | sort ) > ref.hash; \
 	join ref.hash ref.hash | grep -v -E '( .*.ref.png).*\1' | cut -d' ' -f 1-2 | sort -u
 
 # Not exactly the best script in the world...
commit 5c798bcf86ce113b961f0b62d924e78d0be65614
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Mon Mar 21 11:08:46 2011 +0100

    test: Improve check-ref-missing
    
    On linux it is impossible to check the missing references because of
    argument length constraints:
    make: execvp: /bin/bash: Argument list too long
    
    Using a temporary file instead of variable expansion makes it possible
    to work around this.
    
    Makefile.refs is now required to be in lexicographical order, which
    avoids ordering problems and the risk of duplicated entries (like
    clipped-surface.ref.png).

diff --git a/test/.gitignore b/test/.gitignore
index 400ce92..dba5877 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -6,6 +6,7 @@ output
 Makefile
 Makefile.in
 ref.hash
+ref.list
 any2ppm
 .any2ppm
 .any2ppm.pid
diff --git a/test/Makefile.am b/test/Makefile.am
index ebbc230..83d55ca 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -2,6 +2,8 @@ include $(top_srcdir)/build/Makefile.am.common
 
 include $(top_srcdir)/test/Makefile.sources
 
+include $(top_srcdir)/test/Makefile.refs
+
 SUBDIRS=pdiff .
 
 # Then we have a collection of tests that are only run if certain
@@ -123,1357 +125,6 @@ BUILT_SOURCES += cairo-test-constructors.c
 EXTRA_DIST += $(BUILT_SOURCES) $(noinst_SCRIPTS) COPYING make-cairo-test-constructors.sh run-cairo-test-suite.sh
 CLEANFILES += $(BUILT_SOURCES)
 
-# All tests which have a reference image go here.
-REFERENCE_IMAGES = \
-	a1-bug.ref.png \
-	a1-bug.image16.ref.png \
-	a1-bug.quartz.xfail.png \
-	a1-bug.xlib.ref.png \
-	a1-image-sample.ref.png \
-	a1-image-sample.gl.xfail.png \
-	a1-mask.ref.png \
-	a1-mask-sample.ref.png \
-	a1-rasterisation-rectangles.ref.png \
-	a1-rasterisation-rectangles.quartz.xfail.png \
-	a1-rasterisation-triangles.ref.png \
-	a1-rasterisation-triangles.quartz.xfail.png \
-	a1-traps-sample.ref.png \
-	a1-traps-sample.quartz.xfail.png \
-	a8-clear.ref.png \
-	a8-clear.quartz.ref.png \
-	a8-mask.ref.png \
-	aliasing.ref.png \
-	aliasing.image16.ref.png \
-	aliasing.quartz.ref.png \
-	aliasing.xlib.ref.png \
-	alpha-similar.gl.argb32.xfail.png \
-	alpha-similar.gl.rgb24.xfail.png \
-	alpha-similar.pdf.argb32.xfail.png \
-	alpha-similar.pdf.rgb24.xfail.png \
-	alpha-similar.ps.argb32.xfail.png \
-	alpha-similar.ps.rgb24.xfail.png \
-	alpha-similar.ref.png \
-	alpha-similar.rgb24.ref.png \
-	alpha-similar.svg.argb32.xfail.png \
-	alpha-similar.svg.rgb24.xfail.png \
-	api-special-cases.ref.png \
-	arc-infinite-loop.ref.png \
-	arc-looping-dash.image16.ref.png \
-	arc-looping-dash.ps.ref.png \
-	arc-looping-dash.quartz.ref.png \
-	arc-looping-dash.ref.png \
-	big-line.ref.png \
-	big-line.image16.ref.png \
-	big-line.ps.ref.png \
-	big-line.quartz.ref.png \
-	big-line.xlib.ref.png \
-	bug-bo-rectangular.ref.png \
-	bug-bo-rectangular.image16.ref.png \
-	bug-bo-rectangular.ps.xfail.png \
-	bug-extents.image16.ref.png \
-	bug-extents.quartz.ref.png \
-	bug-extents.ps.ref.png \
-	bug-extents.ref.png \
-	bug-extents.xlib.ref.png \
-	bug-seams.ref.png \
-	bug-seams.xlib.ref.png \
-	bug-seams.xlib-fallback.ref.png \
-	bilevel-image.ref.png \
-	bitmap-font.ref.png \
-	bitmap-font.rgb24.ref.png \
-	caps-joins-alpha.image16.ref.png \
-	caps-joins-alpha.quartz.ref.png \
-	caps-joins-alpha.ref.png \
-	caps-joins-alpha.xlib.ref.png \
-	caps-joins-curve.image16.ref.png \
-	caps-joins-curve.ps.ref.png \
-	caps-joins-curve.quartz.ref.png \
-	caps-joins-curve.ref.png \
-	caps-joins-curve.xlib.ref.png \
-	caps-joins.ps.ref.png \
-	caps-joins.ref.png \
-	caps-joins.image16.ref.png \
-	caps-sub-paths.ref.png \
-	caps-sub-paths.image16.ref.png \
-	caps-sub-paths.ps.ref.png \
-	caps.image16.ref.png \
-	caps.ps.ref.png \
-	caps.ref.png \
-	clear.argb32.ref.png \
-	clear.rgb24.ref.png \
-	clear.pdf.argb32.ref.png \
-	clear.ps.argb32.ref.png \
-	clear.quartz.argb32.ref.png \
-	clear.quartz.rgb24.ref.png \
-	clear.svg12.argb32.xfail.png \
-	clear.svg12.rgb24.xfail.png \
-	clear-source.ref.png \
-	clear-source.image16.ref.png \
-	clear-source.ps.xfail.png \
-	clear-source.pdf.xfail.png \
-	clip-all.ref.png \
-	clip-contexts.ref.png \
-	clip-device-offset.argb32.ref.png \
-	clip-device-offset.rgb24.ref.png \
-	clip-disjoint.ref.png \
-	clip-disjoint.image16.ref.png \
-	clip-disjoint.ps.ref.png \
-	clip-disjoint.quartz.ref.png \
-	clip-disjoint.xlib.ref.png \
-	clip-empty.ref.png \
-	clip-empty-group.ref.png \
-	clip-empty-save.ref.png \
-	clip-fill.ref.png \
-	clip-fill.image16.ref.png \
-	clip-fill.ps.xfail.png \
-	clip-fill.quartz.ref.png \
-	clip-fill.xlib.ref.png \
-	clip-fill.xlib-fallback.ref.png \
-	clip-fill-eo-unbounded.image16.ref.png \
-	clip-fill-eo-unbounded.argb32.ref.png \
-	clip-fill-eo-unbounded.rgb24.ref.png \
-	clip-fill-eo-unbounded.quartz.argb32.ref.png \
-	clip-fill-eo-unbounded.quartz.rgb24.ref.png \
-	clip-fill-eo-unbounded.svg12.rgb24.xfail.png \
-	clip-fill-eo-unbounded.xlib.argb32.ref.png \
-	clip-fill-eo-unbounded.xlib.rgb24.ref.png \
-	clip-fill-eo-unbounded.xlib-fallback.rgb24.ref.png \
-	clip-fill-no-op.image16.ref.png \
-	clip-fill-no-op.ref.png \
-	clip-fill-nz-unbounded.image16.ref.png \
-	clip-fill-nz-unbounded.argb32.ref.png \
-	clip-fill-nz-unbounded.rgb24.ref.png \
-	clip-fill-nz-unbounded.quartz.argb32.ref.png \
-	clip-fill-nz-unbounded.quartz.rgb24.ref.png \
-	clip-fill-nz-unbounded.svg12.rgb24.xfail.png \
-	clip-fill-nz-unbounded.xlib.argb32.ref.png \
-	clip-fill-nz-unbounded.xlib.rgb24.ref.png \
-	clip-fill-nz-unbounded.xlib-fallback.rgb24.ref.png \
-	clip-fill-rule-pixel-aligned.ref.png \
-	clip-fill-rule-pixel-aligned.rgb24.ref.png \
-	clip-fill-rule.image16.ref.png \
-	clip-fill-rule.pdf.argb32.ref.png \
-	clip-fill-rule.ps.argb32.ref.png \
-	clip-fill-rule.ps.rgb24.ref.png \
-	clip-fill-rule.quartz.rgb24.ref.png \
-	clip-fill-rule.ref.png \
-	clip-fill-rule.rgb24.ref.png \
-	clip-fill-rule.test-paginated.rgb24.ref.png \
-	clip-fill-rule.xlib.rgb24.ref.png \
-	clip-group-shapes-aligned-rectangles.ref.png \
-	clip-group-shapes-unaligned-rectangles.ref.png \
-	clip-group-shapes-unaligned-rectangles.xlib.ref.png \
-	clip-group-shapes-circles.ref.png \
-	clip-group-shapes-circles.quartz.ref.png \
-	clip-group-shapes-circles.xlib.ref.png \
-	clip-image.image16.ref.png \
-	clip-image.ref.png \
-	clip-image.ps.ref.png \
-	clip-nesting.pdf.argb32.ref.png \
-	clip-nesting.ps.argb32.ref.png \
-	clip-nesting.ps.rgb24.ref.png \
-	clip-nesting.quartz.argb32.ref.png \
-	clip-nesting.quartz.rgb24.ref.png \
-	clip-nesting.ref.png \
-	clip-nesting.rgb24.ref.png \
-	clip-nesting.test-paginated.rgb24.ref.png \
-	clip-nesting.xlib.rgb24.ref.png \
-	clip-operator.image16.ref.png \
-	clip-operator.gl.argb32.ref.png \
-	clip-operator.pdf.argb32.ref.png \
-	clip-operator.pdf.rgb24.ref.png \
-	clip-operator.ps2.rgb24.ref.png \
-	clip-operator.ps3.argb32.ref.png \
-	clip-operator.ps3.ref.png \
-	clip-operator.ps3.rgb24.ref.png \
-	clip-operator.quartz.argb32.ref.png \
-	clip-operator.quartz.rgb24.ref.png \
-	clip-operator.ref.png \
-	clip-operator.rgb24.ref.png \
-	clip-operator.svg12.argb32.xfail.png \
-	clip-operator.svg12.rgb24.xfail.png \
-	clip-operator.test-paginated.argb32.ref.png \
-	clip-operator.xlib-fallback.ref.png \
-	clip-operator.xlib.ref.png \
-	clip-operator.xlib.rgb24.ref.png \
-	clip-unbounded.ref.png \
-	clip-unbounded.rgb24.ref.png \
-	clip-unbounded.svg12.rgb24.xfail.png \
-	clip-unbounded.pdf.rgb24.xfail.png \
-	clip-unbounded.pdf.argb32.xfail.png \
-	clipped-surface.image16.ref.png \
-	clipped-surface.ref.png \
-	clip-push-group.image16.ref.png \
-	clip-push-group.pdf.ref.png \
-	clip-push-group.ps.ref.png \
-	clip-push-group.quartz.ref.png \
-	clip-push-group.ref.png \
-	clip-push-group.svg.ref.png \
-	clip-push-group.xlib.ref.png \
-	clip-shape.image16.ref.png \
-	clip-shape.ref.png \
-	clip-shape.ps.ref.png \
-	clip-shape.quartz.ref.png \
-	clip-shape.xlib.ref.png \
-	clip-shape.xlib-fallback.ref.png \
-	clip-stroke.image16.ref.png \
-	clip-stroke.ref.png \
-	clip-stroke.ps.xfail.png \
-	clip-stroke.quartz.ref.png \
-	clip-stroke.xlib.ref.png \
-	clip-stroke.xlib-fallback.ref.png \
-	clip-stroke-no-op.image16.ref.png \
-	clip-stroke-no-op.ref.png \
-	clip-stroke-unbounded.image16.rgb24.ref.png \
-	clip-stroke-unbounded.argb32.ref.png \
-	clip-stroke-unbounded.rgb24.ref.png \
-	clip-stroke-unbounded.quartz.argb32.ref.png \
-	clip-stroke-unbounded.quartz.rgb24.ref.png \
-	clip-stroke-unbounded.svg12.rgb24.xfail.png \
-	clip-stroke-unbounded.xlib.argb32.ref.png \
-	clip-stroke-unbounded.xlib.rgb24.ref.png \
-	clip-stroke-unbounded.xlib-fallback.rgb24.ref.png \
-	clip-text.image16.ref.png \
-	clip-text.ref.png \
-	clip-text.ps.xfail.png \
-	clip-text.quartz.ref.png \
-	clip-text.svg.ref.png \
-	clip-text.xlib.ref.png \
-	clip-twice.image16.ref.png \
-	clip-twice.pdf.argb32.ref.png \
-	clip-twice.ps.argb32.ref.png \
-	clip-twice.ps.rgb24.ref.png \
-	clip-twice.quartz.argb32.ref.png \
-	clip-twice.quartz.rgb24.ref.png \
-	clip-twice.ref.png \
-	clip-twice.rgb24.ref.png \
-	clip-twice.test-paginated.argb32.ref.png \
-	clip-twice.test-paginated.rgb24.ref.png \
-	clip-twice.xlib.ref.png \
-	clip-twice.xlib.rgb24.ref.png \
-	clip-twice-rectangle.ref.png \
-	clipped-group.image16.ref.png \
-	clipped-group.pdf.ref.png \
-	clipped-group.ps2.ref.png \
-	clipped-group.ps3.ref.png \
-	clipped-group.quartz.ref.png \
-	clipped-group.svg.ref.png \
-	clipped-group.xlib.ref.png \
-	clipped-group.xlib-fallback.ref.png \
-	clipped-group.ref.png \
-	clipped-surface.ref.png \
-	clipped-trapezoids.ref.png \
-	close-path-current-point.image16.ref.png \
-	close-path-current-point.ps.ref.png \
-	close-path-current-point.ref.png \
-	close-path.ps2.ref.png \
-	close-path.ps3.ref.png \
-	close-path.ref.png \
-	composite-integer-translate-over.image16.ref.png \
-	composite-integer-translate-over-repeat.ps2.ref.png \
-	composite-integer-translate-over-repeat.ps3.ref.png \
-	composite-integer-translate-over-repeat.ref.png \
-	composite-integer-translate-over.ps2.ref.png \
-	composite-integer-translate-over.ps3.ref.png \
-	composite-integer-translate-over.ref.png \
-	composite-integer-translate-source.image16.ref.png \
-	composite-integer-translate-source.ps2.ref.png \
-	composite-integer-translate-source.ps3.ref.png \
-	composite-integer-translate-source.ref.png \
-	composite-integer-translate-source.svg12.argb32.xfail.png \
-	composite-integer-translate-source.svg12.rgb24.xfail.png \
-	copy-path.image16.ref.png \
-	copy-path.ps.ref.png \
-	copy-path.ref.png \
-	coverage-rectangles.ref.png \
-	coverage-rectangles.xlib.xfail.png \
-	coverage-intersecting-triangles.ref.png \
-	coverage-intersecting-triangles.xlib.xfail.png \
-	coverage-intersecting-quads.ref.png \
-	coverage-intersecting-quads.xlib.xfail.png \
-	coverage-row-triangles.ref.png \
-	coverage-row-triangles.xlib.xfail.png \
-	coverage-column-triangles.ref.png \
-	coverage-column-triangles.xlib.xfail.png \
-	coverage-triangles.ref.png \
-	coverage-triangles.xlib.xfail.png \
-	create-from-png-stream.ref.png \
-	create-from-png.alpha.ref.png \
-	create-from-png.gray-alpha.ref.png \
-	create-from-png.gray.ref.png \
-	create-from-png.indexed-alpha.ref.png \
-	create-from-png.indexed.ref.png \
-	create-from-png.ref.png \
-	culled-glyphs.image16.ref.png \
-	culled-glyphs.ps.ref.png \
-	culled-glyphs.quartz.ref.png \
-	culled-glyphs.ref.png \
-	curve-to-as-line-to.ps.xfail.png \
-	curve-to-as-line-to.ref.png \
-	dash-caps-joins.image16.ref.png \
-	dash-caps-joins.ps.ref.png \
-	dash-caps-joins.quartz.xfail.png \
-	dash-caps-joins.ref.png \
-	dash-curve.image16.ref.png \
-	dash-curve.ps2.ref.png \
-	dash-curve.ps3.ref.png \
-	dash-curve.quartz.xfail.png \
-	dash-curve.ref.png \
-	dash-curve.xlib.ref.png \
-	dash-infinite-loop.ref.png \
-	dash-infinite-loop.ps.ref.png \
-	dash-no-dash.ref.png \
-	dash-offset.ref.png \
-	dash-offset-negative.ref.png \
-	dash-scale.image16.ref.png \
-	dash-scale.ps.ref.png \
-	dash-scale.quartz.ref.png \
-	dash-scale.ref.png \
-	dash-state.image16.ref.png \
-	dash-state.ps2.ref.png \
-	dash-state.ps3.ref.png \
-	dash-state.quartz.xfail.png \
-	dash-state.ref.png \
-	dash-zero-length.ps2.ref.png \
-	dash-zero-length.ps2.rgb24.ref.png \
-	dash-zero-length.ps3.ref.png \
-	dash-zero-length.ps3.rgb24.ref.png \
-	dash-zero-length.ref.png \
-	dash-zero-length.rgb24.ref.png \
-	degenerate-arc.image16.ref.png \
-	degenerate-arc.ps2.ref.png \
-	degenerate-arc.ps3.ref.png \
-	degenerate-arc.quartz.ref.png \
-	degenerate-arc.ref.png \
-	degenerate-arc.xlib.ref.png \
-	degenerate-arcs.image16.ref.png \
-	degenerate-arcs.ref.png \
-	degenerate-curve-to.image16.ref.png \
-	degenerate-curve-to.ref.png \
-	degenerate-curve-to.ps.xfail.png \
-	degenerate-curve-to.quartz.ref.png \
-	degenerate-dash.ps.xfail.png \
-	degenerate-dash.quartz.xfail.png \
-	degenerate-dash.ref.png \
-	degenerate-dash.xlib.ref.png \
-	degenerate-linear-gradient.ref.png \
-	degenerate-path.ps.argb32.xfail.png \
-	degenerate-path.ps.rgb24.xfail.png \
-	degenerate-path.quartz.argb32.xfail.png \
-	degenerate-path.quartz.rgb24.xfail.png \
-	degenerate-path.argb32.ref.png \
-	degenerate-path.rgb24.ref.png \
-	degenerate-pen.image16.ref.png \
-	degenerate-pen.ps.ref.png \
-	degenerate-pen.ref.png \
-	degenerate-pen.xlib.ref.png \
-	degenerate-radial-gradient.ref.png \
-	degenerate-rel-curve-to.image16.ref.png \
-	degenerate-rel-curve-to.ref.png \
-	degenerate-rel-curve-to.ps.ref.png \
-	degenerate-rel-curve-to.quartz.ref.png \
-	device-offset-fractional.gl.xfail.png \
-	device-offset-fractional.pdf.xfail.png \
-	device-offset-fractional.ps2.ref.png \
-	device-offset-fractional.ps3.ref.png \
-	device-offset-fractional.ref.png \
-	device-offset-positive.ref.png \
-	device-offset-positive.rgb24.ref.png \
-	device-offset-scale.ref.png \
-	device-offset-scale.svg.xfail.png \
-	device-offset.ref.png \
-	device-offset.rgb24.ref.png \
-	extended-blend.image16.ref.png \
-	extended-blend.argb32.ref.png \
-	extended-blend.rgb24.ref.png \
-	extended-blend.quartz.argb32.ref.png \
-	extended-blend.quartz.rgb24.ref.png \
-	extended-blend.svg12.argb32.xfail.png \
-	extended-blend.svg12.rgb24.xfail.png \
-	extended-blend-alpha.image16.ref.png \
-	extended-blend-alpha.argb32.ref.png \
-	extended-blend-alpha.rgb24.ref.png \
-	extended-blend-alpha.quartz.argb32.ref.png \
-	extended-blend-alpha.quartz.rgb24.ref.png \
-	extended-blend-alpha.svg12.argb32.xfail.png \
-	extended-blend-alpha.svg12.rgb24.xfail.png \
-	extend-pad-border.image16.ref.png \
-	extend-pad-border.ps.ref.png \
-	extend-pad-border.quartz.ref.png \
-	extend-pad-border.ref.png \
-	extend-pad-border.svg.xfail.png \
-	extend-pad-similar.quartz.xfail.png \
-	extend-pad-similar.ref.png \
-	extend-pad-similar.svg.xfail.png \
-	extend-pad.ps.ref.png \
-	extend-pad.quartz.xfail.png \
-	extend-pad.ref.png \
-	extend-pad.svg.xfail.png \
-	extend-reflect-similar.image16.ref.png \
-	extend-reflect-similar.ps2.ref.png \
-	extend-reflect-similar.ps3.ref.png \
-	extend-reflect-similar.ref.png \
-	extend-reflect.image16.ref.png \
-	extend-reflect.ps2.ref.png \
-	extend-reflect.ps3.ref.png \
-	extend-reflect.ref.png \
-	extend-repeat-similar.image16.ref.png \
-	extend-repeat-similar.ps2.ref.png \
-	extend-repeat-similar.ps3.ref.png \
-	extend-repeat-similar.ref.png \
-	extend-repeat.image16.ref.png \
-	extend-repeat.ps2.ref.png \
-	extend-repeat.ps3.ref.png \
-	extend-repeat.ref.png \
-	fallback-resolution.ppi144x144.ps.ref.png \
-	fallback-resolution.ppi144x144.ref.png \
-	fallback-resolution.ppi144x72.ps.ref.png \
-	fallback-resolution.ppi144x72.ref.png \
-	fallback-resolution.ppi288x288.pdf.ref.png \
-	fallback-resolution.ppi288x288.ps.ref.png \
-	fallback-resolution.ppi288x288.svg.ref.png \
-	fallback-resolution.ppi288x72.ps.ref.png \
-	fallback-resolution.ppi288x72.ref.png \
-	fallback-resolution.ppi576x576.pdf.ref.png \
-	fallback-resolution.ppi576x576.ps.ref.png \
-	fallback-resolution.ppi576x576.svg.ref.png \
-	fallback-resolution.ppi576x72.ps.ref.png \
-	fallback-resolution.ppi576x72.ref.png \
-	fallback-resolution.ppi72x144.ps.ref.png \
-	fallback-resolution.ppi72x144.ref.png \
-	fallback-resolution.ppi72x288.ps.ref.png \
-	fallback-resolution.ppi72x288.ref.png \
-	fallback-resolution.ppi72x576.ps.ref.png \
-	fallback-resolution.ppi72x576.ref.png \
-	fallback-resolution.ppi72x72.ref.png \
-	fill-alpha-pattern.image16.ref.png \
-	fill-alpha-pattern.ps3.argb32.ref.png \
-	fill-alpha-pattern.ps3.ref.png \
-	fill-alpha-pattern.ps3.rgb24.ref.png \
-	fill-alpha-pattern.quartz.ref.png \
-	fill-alpha-pattern.ref.png \
-	fill-alpha-pattern.xlib.ref.png \
-	fill-alpha.image16.ref.png \
-	fill-alpha.quartz.ref.png \
-	fill-alpha.ref.png \
-	fill-alpha.xlib.ref.png \
-	fill-and-stroke-alpha-add.image16.ref.png \
-	fill-and-stroke-alpha-add.quartz.ref.png \
-	fill-and-stroke-alpha-add.ref.png \
-	fill-and-stroke-alpha-add.svg12.xfail.png \
-	fill-and-stroke-alpha.image16.ref.png \
-	fill-and-stroke-alpha.ref.png \
-	fill-and-stroke.image16.ref.png \
-	fill-and-stroke.ps.argb32.ref.png \
-	fill-and-stroke.ps.rgb24.ref.png \
-	fill-and-stroke.quartz.argb32.ref.png \
-	fill-and-stroke.quartz.rgb24.ref.png \
-	fill-and-stroke.argb32.ref.png \
-	fill-and-stroke.rgb24.ref.png \
-	fill-and-stroke.xlib.argb32.ref.png \
-	fill-and-stroke.xlib.rgb24.ref.png \
-	fill-degenerate-sort-order.image16.ref.png \
-	fill-degenerate-sort-order.ps.argb32.xfail.png \
-	fill-degenerate-sort-order.ps.rgb24.xfail.png \
-	fill-degenerate-sort-order.quartz.argb32.ref.png \
-	fill-degenerate-sort-order.quartz.rgb24.ref.png \
-	fill-degenerate-sort-order.ref.png \
-	fill-degenerate-sort-order.rgb24.ref.png \
-	fill-degenerate-sort-order.xlib.ref.png \
-	fill-degenerate-sort-order.xlib.rgb24.ref.png \
-	fill-empty.argb32.ref.png \
-	fill-empty.rgb24.ref.png \
-	fill-empty.svg12.rgb24.xfail.png \
-	fill-image.image16.ref.png \
-	fill-image.ps.ref.png \
-	fill-image.quartz.ref.png \
-	fill-image.ref.png \
-	fill-image.xlib.ref.png \
-	fill-missed-stop.pdf.argb32.ref.png \
-	fill-missed-stop.ps2.argb32.ref.png \
-	fill-missed-stop.ps2.rgb24.ref.png \
-	fill-missed-stop.ps3.argb32.ref.png \
-	fill-missed-stop.ps3.rgb24.ref.png \
-	fill-missed-stop.ref.png \
-	fill-missed-stop.rgb24.ref.png \
-	fill-rule.image16.ref.png \
-	fill-rule.ps2.argb32.ref.png \
-	fill-rule.ps2.rgb24.ref.png \
-	fill-rule.ps3.argb32.ref.png \
-	fill-rule.ps3.rgb24.ref.png \
-	fill-rule.quartz.argb32.ref.png \
-	fill-rule.quartz.rgb24.ref.png \
-	fill-rule.ref.png \
-	fill-rule.rgb24.ref.png \
-	fill-rule.xlib.ref.png \
-	fill-rule.xlib.rgb24.ref.png \
-	filter-bilinear-extents.image16.ref.png \
-	filter-bilinear-extents.pdf.xfail.png \
-	filter-bilinear-extents.ps2.ref.png \
-	filter-bilinear-extents.ps3.ref.png \
-	filter-bilinear-extents.quartz.xfail.png \
-	filter-bilinear-extents.ref.png \
-	filter-nearest-offset.gl.xfail.png \
-	filter-nearest-offset.pdf.xfail.png \
-	filter-nearest-offset.ps2.ref.png \
-	filter-nearest-offset.ps3.ref.png \
-	filter-nearest-offset.ref.png \
-	filter-nearest-offset.svg.xfail.png \
-	filter-nearest-transformed.image16.ref.png \
-	filter-nearest-transformed.gl.xfail.png \
-	filter-nearest-transformed.pdf.xfail.png \
-	filter-nearest-transformed.quartz.xfail.png \
-	filter-nearest-transformed.ref.png \
-	filter-nearest-transformed.svg.xfail.png \
-	finer-grained-fallbacks.image16.ref.png \
-	finer-grained-fallbacks.gl.argb32.ref.png \
-	finer-grained-fallbacks.ps2.argb32.ref.png \
-	finer-grained-fallbacks.ps2.ref.png \
-	finer-grained-fallbacks.ps2.rgb24.ref.png \
-	finer-grained-fallbacks.ps3.argb32.ref.png \
-	finer-grained-fallbacks.ps3.ref.png \
-	finer-grained-fallbacks.ps3.rgb24.ref.png \
-	finer-grained-fallbacks.quartz.argb32.ref.png \
-	finer-grained-fallbacks.quartz.rgb24.ref.png \
-	finer-grained-fallbacks.argb32.ref.png \
-	finer-grained-fallbacks.rgb24.ref.png \
-	finer-grained-fallbacks.svg12.argb32.ref.png \
-	finer-grained-fallbacks.svg12.rgb24.ref.png \
-	finer-grained-fallbacks.xlib.ref.png \
-	finer-grained-fallbacks.xlib.rgb24.ref.png \
-	finer-grained-fallbacks.xlib-fallback.ref.png \
-	font-matrix-translation.image16.ref.png \
-	font-matrix-translation.ps2.argb32.ref.png \
-	font-matrix-translation.ps2.rgb24.ref.png \
-	font-matrix-translation.ps3.argb32.ref.png \
-	font-matrix-translation.ps3.rgb24.ref.png \
-	font-matrix-translation.quartz.ref.png \
-	font-matrix-translation.ref.png \
-	font-matrix-translation.svg.ref.png \
-	ft-show-glyphs-positioning.image16.ref.png \
-	ft-show-glyphs-positioning.pdf.ref.png \
-	ft-show-glyphs-positioning.ps2.ref.png \
-	ft-show-glyphs-positioning.ps3.ref.png \
-	ft-show-glyphs-positioning.ref.png \
-	ft-show-glyphs-positioning.svg.ref.png \
-	ft-show-glyphs-table.image16.ref.png \
-	ft-show-glyphs-table.ps2.ref.png \
-	ft-show-glyphs-table.ps3.ref.png \
-	ft-show-glyphs-table.quartz.xfail.png \
-	ft-show-glyphs-table.ref.png \
-	ft-show-glyphs-table.svg.ref.png \
-	ft-text-antialias-none.ps2.argb32.ref.png \
-	ft-text-antialias-none.ps3.argb32.ref.png \
-	ft-text-antialias-none.ref.png \
-	ft-text-vertical-layout-type1.image16.ref.png \
-	ft-text-vertical-layout-type1.pdf.ref.png \
-	ft-text-vertical-layout-type1.ps.ref.png \
-	ft-text-vertical-layout-type1.quartz.xfail.png \
-	ft-text-vertical-layout-type1.ref.png \
-	ft-text-vertical-layout-type1.svg.ref.png \
-	ft-text-vertical-layout-type1.xlib.ref.png \
-	ft-text-vertical-layout-type3.image16.ref.png \
-	ft-text-vertical-layout-type3.pdf.ref.png \
-	ft-text-vertical-layout-type3.ps.ref.png \
-	ft-text-vertical-layout-type3.quartz.ref.png \
-	ft-text-vertical-layout-type3.ref.png \
-	ft-text-vertical-layout-type3.svg.ref.png \
-	ft-text-vertical-layout-type3.xlib.ref.png \
-	get-group-target.ref.png \
-	gl-surface-source.rgb24.ref.png \
-	gl-surface-source.argb32.ref.png \
-	gl-surface-source.image16.ref.png \
-	glyph-cache-pressure.image16.ref.png \
-	glyph-cache-pressure.ps2.ref.png \
-	glyph-cache-pressure.ps3.ref.png \
-	glyph-cache-pressure.quartz.ref.png \
-	glyph-cache-pressure.ref.png \
-	gradient-alpha.ps2.argb32.ref.png \
-	gradient-alpha.ps2.rgb24.ref.png \
-	gradient-alpha.ps3.argb32.ref.png \
-	gradient-alpha.ps3.rgb24.ref.png \
-	gradient-alpha.ref.png \
-	gradient-alpha.rgb24.ref.png \
-	gradient-constant-alpha.ps3.ref.png \
-	gradient-constant-alpha.ps3.rgb24.ref.png \
-	gradient-constant-alpha.quartz.argb32.ref.png \
-	gradient-constant-alpha.ref.png \
-	gradient-constant-alpha.rgb24.ref.png \
-	gradient-zero-stops.ref.png \
-	gradient-zero-stops.rgb24.ref.png \
-	gradient-zero-stops-mask.argb32.ref.png \
-	gradient-zero-stops-mask.rgb24.ref.png \
-	group-clip.image16.ref.png \
-	group-clip.ref.png \
-	group-paint.ref.png \
-	group-unaligned.image16.ref.png \
-	group-unaligned.ps.ref.png \
-	group-unaligned.ps.rgb24.xfail.png \
-	group-unaligned.quartz.ref.png \
-	group-unaligned.ref.png \
-	group-unaligned.svg.argb32.xfail.png \
-	group-unaligned.svg.rgb24.xfail.png \
-	group-unaligned.xlib-fallback.ref.png \
-	group-unaligned.xlib.ref.png \
-	halo.ref.png \
-	halo.image16.ref.png \
-	halo.xlib.ref.png \
-	halo.ps.ref.png \
-	halo.quartz.ref.png \
-	halo-transform.ref.png \
-	halo-transform.image16.ref.png \
-	halo-transform.xlib.ref.png \
-	halo-transform.ps.ref.png \
-	halo-transform.quartz.ref.png \
-	huge-linear.image16.ref.png \
-	huge-linear.pdf.ref.png \
-	huge-linear.ps3.ref.png \
-	huge-linear.quartz.ref.png \
-	huge-linear.ref.png \
-	huge-radial.image16.ref.png \
-	huge-radial.pdf.argb32.ref.png \
-	huge-radial.pdf.rgb24.ref.png \
-	huge-radial.ps3.ref.png \
-	huge-radial.quartz.ref.png \
-	huge-radial.ref.png \
-	image-bug-710072-aligned.ref.png \
-	image-bug-710072-unaligned.ref.png \
-	image-bug-710072-unaligned.xlib.ref.png \
-	image-surface-source.image16.ref.png \
-	image-surface-source.ps2.ref.png \
-	image-surface-source.ps3.ref.png \
-	image-surface-source.rgb24.ref.png \
-	image-surface-source.argb32.ref.png \
-	image-surface-source.svg12.argb32.xfail.png \
-	image-surface-source.svg12.rgb24.xfail.png \
-	implicit-close.ref.png \
-	implicit-close.ps.ref.png \
-	infinite-join.ps2.ref.png \
-	infinite-join.ps3.ref.png \
-	infinite-join.ref.png \
-	inverse-text.ref.png \
-	inverse-text.image16.ref.png \
-	inverse-text.ps.ref.png \
-	inverse-text.quartz.ref.png \
-	joins.image16.ref.png \
-	joins.ps.ref.png \
-	joins.quartz.ref.png \
-	joins.ref.png \
-	large-clip.ref.png \
-	large-font.image16.ref.png \
-	large-font.ref.png \
-	large-source.ref.png \
-	large-source-roi.ref.png \
-	large-twin-antialias-mixed.image16.ref.png \
-	large-twin-antialias-mixed.ref.png \
-	large-twin-antialias-mixed.xlib.ref.png \
-	leaky-dash.ps2.argb32.ref.png \
-	leaky-dash.ps2.rgb24.ref.png \
-	leaky-dash.ps3.argb32.ref.png \
-	leaky-dash.ps3.rgb24.ref.png \
-	leaky-dash.quartz.ref.png \
-	leaky-dash.ref.png \
-	leaky-dashed-rectangle.image16.ref.png \
-	leaky-dashed-rectangle.pdf.ref.png \
-	leaky-dashed-rectangle.ps.ref.png \
-	leaky-dashed-rectangle.quartz.ref.png \
-	leaky-dashed-rectangle.ref.png \
-	leaky-dashed-rectangle.xlib.ref.png \
-	leaky-dashed-stroke.image16.ref.png \
-	leaky-dashed-stroke.ps.ref.png \
-	leaky-dashed-stroke.quartz.ref.png \
-	leaky-dashed-stroke.ref.png \
-	leaky-dashed-stroke.xlib.ref.png \
-	leaky-polygon.image16.ref.png \
-	leaky-polygon.ref.png \
-	leaky-polygon.ps.ref.png \
-	line-width-overlap.ref.png \
-	line-width-scale.image16.ref.png \
-	line-width-scale.ps2.ref.png \
-	line-width-scale.ps3.ref.png \
-	line-width-scale.quartz.ref.png \
-	line-width-scale.ref.png \
-	line-width-tolerance.ref.png \
-	line-width.ref.png \
-	linear-gradient-extend.ref.png \
-	linear-gradient-reflect.image16.ref.png \
-	linear-gradient-reflect.pdf.argb32.ref.png \
-	linear-gradient-reflect.pdf.rgb24.ref.png \
-	linear-gradient-reflect.ps3.ref.png \
-	linear-gradient-reflect.quartz.ref.png \
-	linear-gradient-reflect.ref.png \
-	linear-gradient.image16.ref.png \
-	linear-gradient.ps3.ref.png \
-	linear-gradient.quartz.ref.png \
-	linear-gradient.ref.png \
-	linear-gradient.xlib.ref.png \
-	linear-gradient-large.quartz.ref.png \
-	linear-gradient-large.ref.png \
-	linear-gradient-one-stop.argb32.ref.png \
-	linear-gradient-one-stop.rgb24.ref.png \
-	linear-gradient-subset.image16.ref.png \
-	linear-gradient-subset.quartz.ref.png \
-	linear-gradient-subset.ref.png \
-	linear-gradient-subset.xlib.ref.png \
-	linear-gradient-subset.ps3.ref.png \
-	linear-step-function.xfail.png \
-	linear-uniform.image16.ref.png \
-	linear-uniform.ref.png \
-	long-dashed-lines.image16.ref.png \
-	long-dashed-lines.ps2.ref.png \
-	long-dashed-lines.ps3.ref.png \
-	long-dashed-lines.quartz.ref.png \
-	long-dashed-lines.ref.png \
-	mask-alpha.image16.ref.png \
-	mask-alpha.quartz.argb32.ref.png \
-	mask-alpha.ref.png \
-	mask-alpha.rgb24.ref.png \
-	mask-alpha.svg.rgb24.xfail.png \
-	mask-alpha.xlib.ref.png \
-	mask-alpha.xlib.rgb24.ref.png \
-	mask-ctm.ref.png \
-	mask-ctm.rgb24.ref.png \
-	mask-glyphs.image16.ref.png \
-	mask-glyphs.gl.ref.png \
-	mask-glyphs.pdf.ref.png \
-	mask-glyphs.ref.png \
-	mask-glyphs.svg.ref.png \
-	mask-surface-ctm.ref.png \
-	mask-surface-ctm.rgb24.ref.png \
-	mask-transformed-image.image16.ref.png \
-	mask-transformed-image.pdf.ref.png \
-	mask-transformed-image.quartz.ref.png \
-	mask-transformed-image.ref.png \
-	mask-transformed-similar.image16.ref.png \
-	mask-transformed-similar.pdf.ref.png \
-	mask-transformed-similar.quartz.ref.png \
-	mask-transformed-similar.ref.png \
-	mask-transformed-similar.svg.ref.png \
-	mask.image16.ref.png \
-	mask.pdf.argb32.ref.png \
-	mask.pdf.rgb24.ref.png \
-	mask.quartz.argb32.ref.png \
-	mask.quartz.rgb24.ref.png \
-	mask.ref.png \
-	mask.rgb24.ref.png \
-	mask.svg.argb32.xfail.png \
-	mask.svg.rgb24.xfail.png \
-	mask.xlib.ref.png \
-	mask.xlib.rgb24.ref.png \
-	mesh-pattern.image16.ref.png \
-	mesh-pattern.ref.png \
-	mesh-pattern-accuracy.image16.ref.png \
-	mesh-pattern-accuracy.ref.png \
-	mesh-pattern-conical.image16.ref.png \
-	mesh-pattern-conical.ref.png \
-	mesh-pattern-control-points.image16.ref.png \
-	mesh-pattern-control-points.ref.png \
-	mesh-pattern-fold.image16.ref.png \
-	mesh-pattern-fold.ref.png \
-	mesh-pattern-overlap.image16.ref.png \
-	mesh-pattern-overlap.ref.png \
-	mesh-pattern-transformed.image16.ref.png \
-	mesh-pattern-transformed.ref.png \
-	mime-data.pdf.ref.png \
-	mime-data.ps.ref.png \
-	mime-data.ref.png \
-	mime-data.script.ref.png \
-	mime-data.svg.ref.png \
-	miter-precision.ps2.ref.png \
-	miter-precision.ps3.ref.png \
-	miter-precision.ref.png \
-	move-to-show-surface.ref.png \
-	new-sub-path.pdf.argb32.ref.png \
-	new-sub-path.ps2.argb32.ref.png \
-	new-sub-path.ps2.rgb24.ref.png \
-	new-sub-path.ps3.argb32.ref.png \
-	new-sub-path.ps3.rgb24.ref.png \
-	new-sub-path.quartz.ref.png \
-	new-sub-path.argb32.ref.png \
-	new-sub-path.rgb24.ref.png \
-	nil-surface.ref.png \
-	nil-surface.rgb24.ref.png \
-	operator-alpha-alpha.image16.ref.png \
-	operator-alpha.ref.png \
-	operator-alpha.rgb24.ref.png \
-	operator-alpha.svg12.argb32.xfail.png \
-	operator-alpha.svg12.rgb24.xfail.png \
-	operator-alpha-alpha.ref.png \
-	operator-alpha-alpha.pdf.xfail.png \
-	operator-alpha-alpha.ps.xfail.png \
-	operator-alpha-alpha.svg.xfail.png \
-	operator-clear.ps2.argb32.ref.png \
-	operator-clear.ps3.argb32.ref.png \
-	operator-clear.quartz.argb32.ref.png \
-	operator-clear.quartz.rgb24.ref.png \
-	operator-clear.ref.png \
-	operator-clear.rgb24.ref.png \
-	operator-clear.svg12.argb32.xfail.png \
-	operator-clear.svg12.rgb24.xfail.png \
-	operator-clear.xlib.argb32.ref.png \
-	operator-clear.xlib.rgb24.ref.png \
-	operator-source.image16.ref.png \
-	operator-source.ref.png \
-	operator-source.rgb24.ref.png \
-	operator-source.xlib-fallback.ref.png \
-	operator-source.xlib.ref.png \
-	operator-source.xlib.rgb24.ref.png \
-	operator.ref.png \
-	operator.rgb24.ref.png \
-	operator.svg12.argb32.xfail.png \
-	operator.svg12.rgb24.xfail.png \
-	over-above-source.ps2.argb32.ref.png \
-	over-above-source.ps3.argb32.ref.png \
-	over-above-source.quartz.argb32.ref.png \
-	over-above-source.quartz.rgb24.ref.png \
-	over-above-source.ref.png \
-	over-above-source.rgb24.ref.png \
-	over-above-source.svg12.rgb24.xfail.png \
-	over-above-source.xlib.ref.png \
-	over-above-source.xlib.rgb24.ref.png \
-	over-around-source.image16.ref.png \
-	over-around-source.pdf.argb32.ref.png \
-	over-around-source.ps2.argb32.ref.png \
-	over-around-source.ps2.rgb24.ref.png \
-	over-around-source.ps3.argb32.ref.png \
-	over-around-source.ps3.rgb24.ref.png \
-	over-around-source.quartz.argb32.ref.png \
-	over-around-source.ref.png \
-	over-around-source.rgb24.ref.png \
-	over-around-source.svg12.argb32.xfail.png \
-	over-around-source.svg12.rgb24.xfail.png \
-	over-around-source.xlib.ref.png \
-	over-around-source.xlib.rgb24.ref.png \
-	over-below-source.pdf.argb32.ref.png \
-	over-below-source.ps2.argb32.ref.png \
-	over-below-source.ps3.argb32.ref.png \
-	over-below-source.ps2.rgb24.ref.png \
-	over-below-source.ps3.rgb24.ref.png \
-	over-below-source.ref.png \
-	over-below-source.rgb24.ref.png \
-	over-below-source.svg12.argb32.xfail.png \
-	over-below-source.svg12.rgb24.xfail.png \
-	over-between-source.ps2.argb32.ref.png \
-	over-between-source.ps3.argb32.ref.png \
-	over-between-source.quartz.argb32.ref.png \
-	over-between-source.ref.png \
-	over-between-source.rgb24.ref.png \
-	over-between-source.svg12.argb32.xfail.png \
-	over-between-source.svg12.rgb24.xfail.png \
-	over-between-source.xlib.ref.png \
-	over-between-source.xlib.rgb24.ref.png \
-	overlapping-glyphs.argb32.ref.png \
-	overlapping-glyphs.rgb24.ref.png \
-	overlapping-glyphs.pdf.argb32.xfail.png \
-	overlapping-glyphs.pdf.rgb24.xfail.png \
-	overlapping-glyphs.quartz.argb32.ref.png \
-	overlapping-glyphs.quartz.rgb24.ref.png \
-	overlapping-glyphs.svg.rgb24.ref.png \
-	overlapping-glyphs.svg.argb32.ref.png \
-	paint-repeat.ref.png \
-	paint-source-alpha.image16.ref.png \
-	paint-source-alpha.ref.png \
-	paint-source-alpha.svg.ref.png \
-	paint-with-alpha.image16.ref.png \
-	paint-with-alpha.ref.png \
-	paint-with-alpha.svg.ref.png \
-	paint.ref.png \
-	partial-clip-text.ref.png \
-	partial-clip-text.ps.ref.png \
-	partial-clip-text.quartz.ref.png \
-	partial-clip-text.svg.ref.png \
-	partial-coverage-half-reference.ref.png \
-	partial-coverage-half-triangles.ref.png \
-	partial-coverage-intersecting-quads.ref.png \
-	partial-coverage-intersecting-quads.xfail.png \
-	partial-coverage-intersecting-triangles.ref.png \
-	partial-coverage-overlap-half-triangles.ref.png \
-	partial-coverage-overlap-half-triangles-eo.ref.png \
-	partial-coverage-overlap-three-quarter-triangles.ref.png \
-	partial-coverage-rectangles.ref.png \
-	partial-coverage-reference.ref.png \
-	partial-coverage-three-quarter-reference.ref.png \
-	partial-coverage-triangles.ref.png \
-	pass-through.ref.png \
-	pass-through.rgb24.ref.png \
-	path-append.image16.ref.png \
-	path-append.ps.ref.png \
-	path-append.quartz.ref.png \
-	path-append.ref.png \
-	path-append.test-fallback.ref.png \
-	path-append.xlib-fallback.ref.png \
-	path-append.xlib.ref.png \
-	path-stroke-twice.image16.ref.png \
-	path-stroke-twice.ref.png \
-	path-stroke-twice.ps.ref.png \
-	pattern-getters.ref.png \
-	pdf-surface-source.image16.ref.png \
-	pdf-surface-source.rgb24.ref.png \
-	pdf-surface-source.argb32.ref.png \
-	pdf-surface-source.svg12.argb32.xfail.png \
-	pdf-surface-source.svg12.rgb24.xfail.png \
-	pixman-rotate.ref.png \
-	pixman-rotate.rgb24.ref.png \
-	pixman-rotate.ps.argb32.ref.png \
-	ps-eps.ref.png \
-	pthread-same-source.image16.ref.png \
-	pthread-same-source.quartz.xfail.png \
-	pthread-same-source.ref.png \
-	pthread-similar.ref.png \
-	pthread-show-text.ref.png \
-	pthread-show-text.image16.ref.png \
-	pthread-show-text.ps.ref.png \
-	pthread-show-text.pdf.ref.png \
-	pthread-show-text.quartz.ref.png \
-	pthread-show-text.xlib-fallback.ref.png \
-	ps-surface-source.image16.ref.png \
-	ps-surface-source.rgb24.ref.png \
-	ps-surface-source.argb32.ref.png \
-	ps-surface-source.svg12.argb32.xfail.png \
-	ps-surface-source.svg12.rgb24.xfail.png \
-	push-group-path-offset.ref.png \
-	push-group.image16.ref.png \
-	push-group.quartz.argb32.ref.png \
-	push-group.quartz.rgb24.ref.png \
-	push-group.ref.png \
-	push-group.rgb24.ref.png \
-	push-group.xlib.ref.png \
-	push-group.xlib.rgb24.ref.png \
-	push-group-color.image16.ref.png \
-	push-group-color.quartz.ref.png \
-	push-group-color.ref.png \
-	push-group-color.ps2.ref.png \
-	push-group-color.ps3.ref.png \
-	push-group-color.xlib.ref.png \
-	quartz-surface-source.rgb24.ref.png \
-	quartz-surface-source.argb32.ref.png \
-	quartz-surface-source.ps2.ref.png \
-	quartz-surface-source.ps3.ref.png \
-	radial-gradient.image16.ref.png \
-	radial-gradient.ref.png \
-	radial-gradient.quartz.ref.png \
-	radial-gradient-extend.ps3.ref.png \
-	radial-gradient-extend.ref.png \
-	radial-gradient-source.image16.ref.png \
-	radial-gradient-source.argb32.ref.png \
-	radial-gradient-source.rgb24.ref.png \
-	radial-gradient-source.quartz.argb32.ref.png \
-	radial-gradient-source.quartz.rgb24.ref.png \
-	radial-gradient-mask.ref.png \
-	radial-gradient-mask.image16.ref.png \
-	radial-gradient-mask.quartz.ref.png \
-	radial-gradient-mask-source.argb32.ref.png \
-	radial-gradient-mask-source.rgb24.ref.png \
-	radial-gradient-mask-source.image16.ref.png \
-	radial-gradient-mask-source.quartz.argb32.ref.png \
-	radial-gradient-mask-source.quartz.rgb24.ref.png \
-	radial-gradient-mask-source.xlib.argb32.ref.png \
-	radial-gradient-mask-source.xlib.rgb24.ref.png \
-	radial-gradient-one-stop.ref.png \
-	radial-gradient-one-stop.quartz.ref.png \
-	random-intersections-eo.image16.ref.png \
-	random-intersections-eo.ps.ref.png \
-	random-intersections-eo.quartz.ref.png \
-	random-intersections-eo.ref.png \
-	random-intersections-eo.xlib.ref.png \
-	random-intersections-nonzero.image16.ref.png \
-	random-intersections-nonzero.ref.png \
-	random-intersections-nonzero.ps.ref.png \
-	random-intersections-nonzero.quartz.ref.png \
-	random-intersections-nonzero.xlib.ref.png \
-	random-intersections-curves-eo.image16.ref.png \
-	random-intersections-curves-eo.ps.ref.png \
-	random-intersections-curves-eo.pdf.ref.png \
-	random-intersections-curves-eo.quartz.ref.png \
-	random-intersections-curves-eo.ref.png \
-	random-intersections-curves-eo.xlib.ref.png \
-	random-intersections-curves-eo.xlib-fallback.ref.png \
-	random-intersections-curves-nz.image16.ref.png \
-	random-intersections-curves-nz.ps.ref.png \
-	random-intersections-curves-nz.pdf.ref.png \
-	random-intersections-curves-nz.quartz.ref.png \
-	random-intersections-curves-nz.ref.png \
-	random-intersections-curves-nz.xlib.ref.png \
-	random-intersections-curves-nz.xlib-fallback.ref.png \
-	recording-surface-pattern.image16.ref.png \
-	recording-surface-pattern.gl.argb32.ref.png \
-	recording-surface-pattern.pdf.argb32.ref.png \
-	recording-surface-pattern.pdf.rgb24.ref.png \
-	recording-surface-pattern.ps.argb32.ref.png \
-	recording-surface-pattern.ps.rgb24.ref.png \
-	recording-surface-pattern.quartz.argb32.ref.png \
-	recording-surface-pattern.quartz.rgb24.ref.png \
-	recording-surface-pattern.ref.png \
-	recording-surface-pattern.rgb24.ref.png \
-	recording-surface-pattern.svg.argb32.ref.png \
-	recording-surface-pattern.svg.rgb24.ref.png \
-	recording-surface-pattern.xlib.argb32.ref.png \
-	recording-surface-pattern.xlib.rgb24.ref.png \
-	rectangle-rounding-error.ref.png \
-	rectilinear-dash.quartz.xfail.png \
-	rectilinear-dash.ref.png \
-	rectilinear-fill.ref.png \
-	rectilinear-grid.image16.ref.png \
-	rectilinear-grid.ref.png \
-	rectilinear-miter-limit.ps2.ref.png \
-	rectilinear-miter-limit.ps3.ref.png \
-	rectilinear-miter-limit.ref.png \
-	rectilinear-stroke.quartz.xfail.png \
-	rectilinear-stroke.ref.png \
-	reflected-stroke.image16.ref.png \
-	reflected-stroke.ps.ref.png \
-	reflected-stroke.ref.png \
-	rel-path.ps2.rgb24.ref.png \
-	rel-path.ps3.rgb24.ref.png \
-	rel-path.ref.png \
-	rel-path.rgb24.ref.png \
-	rgb24-ignore-alpha.ref.png \
-	rotate-image-surface-paint.pdf.xfail.png \
-	rotate-image-surface-paint.ps.ref.png \
-	rotate-image-surface-paint.quartz.ref.png \
-	rotate-image-surface-paint.ref.png \
-	rotate-image-surface-paint.svg.xfail.png \
-	rotate-image-surface-paint.svg.ref.png \
-	rotated-clip.image16.ref.png \
-	rotated-clip.quartz.ref.png \
-	rotated-clip.ref.png \
-	rotated-clip.ps.ref.png \
-	rotated-clip.xlib.ref.png \
-	rounded-rectangle-fill.image16.ref.png \
-	rounded-rectangle-fill.ref.png \
-	rounded-rectangle-fill.ps.ref.png \
-	rounded-rectangle-fill.quartz.ref.png \
-	rounded-rectangle-fill.xlib.ref.png \
-	rounded-rectangle-stroke.image16.ref.png \
-	rounded-rectangle-stroke.ref.png \
-	rounded-rectangle-stroke.ps.ref.png \
-	rounded-rectangle-stroke.xlib.ref.png \
-	scale-down-source-surface-paint.ref.png \
-	scale-offset-image.image16.ref.png \
-	scale-offset-image.gl.ref.png \
-	scale-offset-image.pdf.argb32.ref.png \
-	scale-offset-image.pdf.rgb24.ref.png \
-	scale-offset-image.ps.ref.png \
-	scale-offset-image.quartz.ref.png \
-	scale-offset-image.ref.png \
-	scale-offset-image.xfail.png \
-	scale-offset-image.script.xfail.png \
-	scale-offset-image.xlib.ref.png \
-	scale-offset-image.xlib-fallback.xfail.png \
-	scale-offset-similar.image16.ref.png \
-	scale-offset-similar.gl.ref.png \
-	scale-offset-similar.pdf.argb32.ref.png \
-	scale-offset-similar.pdf.rgb24.ref.png \
-	scale-offset-similar.ps.ref.png \
-	scale-offset-similar.quartz.ref.png \
-	scale-offset-similar.ref.png \
-	scale-offset-similar.xfail.png \
-	scale-offset-similar.recording.xfail.png \
-	scale-offset-similar.script.xfail.png \
-	scale-offset-similar.xlib.xfail.png \
-	scale-offset-similar.xlib-fallback.xfail.png \
-	scale-source-surface-paint.ref.png \
-	scale-source-surface-paint.rgb24.ref.png \
-	scale-source-surface-paint.pdf.argb32.xfail.png \
-	scale-source-surface-paint.pdf.rgb24.xfail.png \
-	scale-source-surface-paint.svg.argb32.xfail.png \
-	scale-source-surface-paint.svg.rgb24.xfail.png \
-	select-font-face.image16.ref.png \
-	select-font-face.ps2.ref.png \
-	select-font-face.ps3.ref.png \
-	select-font-face.quartz.ref.png \
-	select-font-face.ref.png \
-	self-copy.ps2.ref.png \
-	self-copy.ps3.ref.png \
-	self-copy.ref.png \
-	self-intersecting.ps.ref.png \
-	self-intersecting.quartz.xfail.png \
-	self-intersecting.ref.png \
-	self-intersecting.xlib.ref.png \
-	set-source.ref.png \
-	set-source.rgb24.ref.png \
-	show-glyphs-advance.image16.ref.png \
-	show-glyphs-advance.ps.ref.png \
-	show-glyphs-advance.quartz.ref.png \
-	show-glyphs-advance.ref.png \
-	show-glyphs-advance.svg.ref.png \
-	show-glyphs-many.ref.png \
-	show-text-current-point.image16.ref.png \
-	show-text-current-point.ps2.ref.png \
-	show-text-current-point.ps3.ref.png \
-	show-text-current-point.quartz.ref.png \
-	show-text-current-point.ref.png \
-	skew-extreme.ps2.ref.png \
-	skew-extreme.ps3.ref.png \
-	skew-extreme.ref.png \
-	smask-fill.image16.ref.png \
-	smask-fill.quartz.ref.png \
-	smask-fill.ref.png \
-	smask-fill.svg.ref.png \
-	smask-fill.xlib.ref.png \
-	smask-image-mask.ref.png \
-	smask-mask.image16.ref.png \
-	smask-mask.pdf.xfail.png \
-	smask-mask.quartz.ref.png \
-	smask-mask.ref.png \
-	smask-mask.svg.ref.png \
-	smask-paint.image16.ref.png \
-	smask-paint.pdf.xfail.png \
-	smask-paint.quartz.ref.png \
-	smask-paint.ref.png \
-	smask-paint.svg.ref.png \
-	smask-stroke.image16.ref.png \
-	smask-stroke.pdf.xfail.png \
-	smask-stroke.quartz.ref.png \
-	smask-stroke.ref.png \
-	smask-stroke.xlib.ref.png \
-	smask-text.image16.ref.png \
-	smask-text.pdf.ref.png \
-	smask-text.ps2.ref.png \
-	smask-text.ps3.ref.png \
-	smask-text.quartz.ref.png \
-	smask-text.ref.png \
-	smask-text.svg.ref.png \
-	smask-text.script.ref.png \
-	smask-text.xlib.ref.png \
-	smask-text.xlib-fallback.ref.png \
-	smask.image16.ref.png \
-	smask.pdf.xfail.png \
-	smask.ps.ref.png \
-	smask.quartz.ref.png \
-	smask.ref.png \
-	smask.svg.ref.png \
-	smask.script.ref.png \
-	smask.xlib.ref.png \
-	smask.xlib-fallback.ref.png \
-	solid-pattern-cache-stress.ref.png \
-	source-clip-scale.gl.ref.png \
-	source-clip-scale.pdf.ref.png \
-	source-clip-scale.ps2.argb32.ref.png \
-	source-clip-scale.ps2.rgb24.ref.png \
-	source-clip-scale.ps3.argb32.ref.png \
-	source-clip-scale.ps3.rgb24.ref.png \
-	source-clip-scale.quartz.ref.png \
-	source-clip-scale.ref.png \
-	source-clip-scale.svg.ref.png \
-	source-clip.ref.png \
-	source-surface-scale-paint.ref.png \
-	source-surface-scale-paint.rgb24.ref.png \
-	spline-decomposition.image16.ref.png \
-	spline-decomposition.pdf.ref.png \
-	spline-decomposition.ps.ref.png \
-	spline-decomposition.quartz.xfail.png \
-	spline-decomposition.ref.png \
-	spline-decomposition.svg.ref.png \
-	spline-decomposition.xlib.ref.png \
-	stroke-ctm-caps.image16.ref.png \
-	stroke-ctm-caps.ps2.ref.png \
-	stroke-ctm-caps.ps3.ref.png \
-	stroke-ctm-caps.quartz.ref.png \
-	stroke-ctm-caps.ref.png \
-	stroke-image.image16.ref.png \
-	stroke-image.pdf.ref.png \
-	stroke-image.ps.ref.png \
-	stroke-image.quartz.ref.png \
-	stroke-image.ref.png \
-	stroke-image.xlib.ref.png \
-	stroke-open-box.ref.png \
-	subsurface.ref.png \
-	subsurface.image16.ref.png \
-	subsurface.ps.ref.png \
-	subsurface.xlib.ref.png \
-	subsurface-reflect.ref.png \
-	subsurface-repeat.ref.png \
-	subsurface-image-repeat.ref.png \
-	subsurface-image-repeat.image16.ref.png \
-	subsurface-pad.ref.png \
-	subsurface-pad.quartz.xfail.png \
-	subsurface-modify-child.ref.png \
-	subsurface-modify-parent.ref.png \
-	subsurface-outside-target.argb32.ref.png \
-	subsurface-outside-target.rgb24.ref.png \
-	subsurface-similar-repeat.ref.png \
-	surface-pattern-big-scale-down.ref.png \
-	surface-pattern-big-scale-down.ps.ref.png \
-	surface-pattern-big-scale-down.quartz.ref.png \
-	surface-pattern-operator.argb32.ref.png \
-	surface-pattern-operator.rgb24.ref.png \
-	surface-pattern-operator.image16.ref.png \
-	surface-pattern-operator.xlib.argb32.ref.png \
-	surface-pattern-operator.xlib.rgb24.ref.png \
-	surface-pattern-operator.pdf.argb32.xfail.png \
-	surface-pattern-operator.pdf.rgb24.xfail.png \
-	surface-pattern-operator.quartz.argb32.ref.png \
-	surface-pattern-operator.quartz.rgb24.ref.png \
-	surface-pattern-scale-down.image16.ref.png \
-	surface-pattern-scale-down.pdf.ref.png \
-	surface-pattern-scale-down.ps2.ref.png \
-	surface-pattern-scale-down.ps3.ref.png \
-	surface-pattern-scale-down.quartz.ref.png \
-	surface-pattern-scale-down.ref.png \
-	surface-pattern-scale-down-extend-none.ref.png \
-	surface-pattern-scale-down-extend-none.quartz.ref.png \
-	surface-pattern-scale-down-extend-pad.ref.png \
-	surface-pattern-scale-down-extend-pad.quartz.xfail.png \
-	surface-pattern-scale-down-extend-reflect.ref.png \
-	surface-pattern-scale-down-extend-reflect.quartz.ref.png \
-	surface-pattern-scale-down-extend-repeat.ref.png \
-	surface-pattern-scale-down-extend-repeat.quartz.ref.png \
-	surface-pattern-scale-up.image16.ref.png \
-	surface-pattern-scale-up.pdf.ref.png \
-	surface-pattern-scale-up.ps2.ref.png \
-	surface-pattern-scale-up.ps3.ref.png \
-	surface-pattern-scale-up.quartz.xfail.png \
-	surface-pattern-scale-up.ref.png \
-	surface-pattern.image16.ref.png \
-	surface-pattern.pdf.xfail.png \
-	surface-pattern.ps.xfail.png \
-	surface-pattern.quartz.xfail.png \
-	surface-pattern.ref.png \
-	surface-pattern.svg.xfail.png \
-	svg-surface-source.image16.ref.png \
-	svg-surface-source.rgb24.ref.png \
-	svg-surface-source.argb32.ref.png \
-	svg-surface-source.svg12.argb32.xfail.png \
-	svg-surface-source.svg12.rgb24.xfail.png \
-	test-fallback16-surface-source.ps.ref.png \
-	test-fallback16-surface-source.svg12.argb32.xfail.png \
-	test-fallback16-surface-source.svg12.rgb24.xfail.png \
-	text-antialias-gray.image16.ref.png \
-	text-antialias-gray.quartz.ref.png \
-	text-antialias-gray.ref.png \
-	text-antialias-none.quartz.ref.png \
-	text-antialias-none.ref.png \
-	text-antialias-subpixel.image16.ref.png \
-	text-antialias-subpixel.quartz.ref.png \
-	text-antialias-subpixel.ref.png \
-	text-glyph-range.image16.ref.png \
-	text-glyph-range.ps.ref.png \
-	text-glyph-range.quartz.ref.png \
-	text-glyph-range.ref.png \
-	text-pattern.pdf.argb32.ref.png \
-	text-pattern.pdf.rgb24.ref.png \
-	text-pattern.ps3.argb32.ref.png \
-	text-pattern.ps3.rgb24.ref.png \
-	text-pattern.quartz.argb32.ref.png \
-	text-pattern.quartz.rgb24.ref.png \
-	text-pattern.ref.png \
-	text-pattern.rgb24.ref.png \
-	text-pattern.svg.argb32.ref.png \
-	text-pattern.svg.rgb24.ref.png \
-	text-rotate.image16.ref.png \
-	text-rotate.pdf.ref.png \
-	text-rotate.ps.ref.png \
-	text-rotate.quartz.ref.png \
-	text-rotate.ref.png \
-	text-rotate.svg.ref.png \
-	text-rotate.xlib.ref.png \
-	text-rotate.xlib-fallback.ref.png \
-	text-transform.image16.ref.png \
-	text-transform.pdf.ref.png \
-	text-transform.ps.ref.png \
-	text-transform.ref.png \
-	text-transform.svg.ref.png \
-	transforms.image16.ref.png \
-	transforms.ps2.ref.png \
-	transforms.ps3.ref.png \
-	transforms.ref.png \
-	translate-show-surface.ref.png \
-	trap-clip.image16.ref.png \
-	trap-clip.ps2.argb32.ref.png \
-	trap-clip.ps2.rgb24.ref.png \
-	trap-clip.ps3.argb32.ref.png \
-	trap-clip.ps3.rgb24.ref.png \
-	trap-clip.quartz.argb32.ref.png \
-	trap-clip.quartz.rgb24.ref.png \
-	trap-clip.ref.png \
-	trap-clip.rgb24.ref.png \
-	trap-clip.test-paginated.argb32.ref.png \
-	trap-clip.xlib.ref.png \
-	trap-clip.xlib.rgb24.ref.png \
-	twin.image16.ref.png \
-	twin.ps.ref.png \
-	twin.ref.png \
-	twin.svg.ref.png \
-	twin.xlib.ref.png \
-	twin-antialias-gray.ref.png \
-	twin-antialias-gray.image16.ref.png \
-	twin-antialias-gray.xlib.ref.png \
-	twin-antialias-none.ref.png \
-	twin-antialias-none.xlib.ref.png \
-	twin-antialias-mixed.ref.png \
-	twin-antialias-mixed.image16.ref.png \
-	twin-antialias-mixed.xlib.ref.png \
-	twin-antialias-subpixel.ref.png \
-	twin-antialias-subpixel.image16.ref.png \
-	twin-antialias-subpixel.xlib.ref.png \
-	unaligned-box.ref.png \
-	unantialiased-shapes.quartz.ref.png \
-	unantialiased-shapes.ref.png \
-	unbounded-operator.gl.argb32.xfail.png \
-	unbounded-operator.gl.rgb24.xfail.png \
-	unbounded-operator.image16.ref.png \
-	unbounded-operator.pdf.argb32.ref.png \
-	unbounded-operator.ps2.argb32.ref.png \
-	unbounded-operator.ps3.argb32.ref.png \
-	unbounded-operator.quartz.argb32.ref.png \
-	unbounded-operator.quartz.rgb24.ref.png \
-	unbounded-operator.ref.png \
-	unbounded-operator.rgb24.ref.png \
-	unbounded-operator.svg12.argb32.ref.png \
-	unbounded-operator.svg12.rgb24.xfail.png \
-	unbounded-operator.xlib.rgb24.ref.png \
-	user-font-mask.image16.ref.png \
-	user-font-mask.pdf.ref.png \
-	user-font-mask.ps2.ref.png \
-	user-font-mask.ps3.ref.png \
-	user-font-mask.ref.png \
-	user-font-mask.svg.ref.png \
-	user-font-proxy.image16.ref.png \
-	user-font-proxy.pdf.argb32.ref.png \
-	user-font-proxy.pdf.ref.png \
-	user-font-proxy.pdf.rgb24.ref.png \
-	user-font-proxy.ps.ref.png \
-	user-font-proxy.quartz.ref.png \
-	user-font-proxy.ref.png \
-	user-font-proxy.svg.ref.png \
-	user-font-proxy.xlib.ref.png \
-	user-font-rescale.image16.ref.png \
-	user-font-rescale.ps.ref.png \
-	user-font-rescale.quartz.ref.png \
-	user-font-rescale.ref.png \
-	user-font-rescale.svg.ref.png \
-	user-font.image16.ref.png \
-	user-font.pdf.ref.png \
-	user-font.ps.ref.png \
-	user-font.quartz.ref.png \
-	user-font.ref.png \
-	user-font.svg.ref.png \
-	user-font.xlib.ref.png \
-	xcb-stress-cache.ref.png \
-	xcb-surface-source.rgb24.ref.png \
-	xcb-surface-source.argb32.ref.png \
-	xcb-surface-source.image16.ref.png \
-	xcb-surface-source.ps.argb32.ref.png \
-	xcb-surface-source.ps.rgb24.ref.png \
-	xcomposite-projection.ref.png \
-	xcomposite-projection.image16.ref.png \
-	xcomposite-projection.quartz.ref.png \
-	xlib-expose-event.ref.png \
-	xlib-expose-event.image16.ref.png \
-	xlib-expose-event.ps.ref.png \
-	xlib-surface-source.rgb24.ref.png \
-	xlib-surface-source.argb32.ref.png \
-	xlib-surface-source.image16.ref.png \
-	xlib-surface-source.ps.argb32.ref.png \
-	xlib-surface-source.ps.rgb24.ref.png \
-	xlib-surface-source.svg12.argb32.xfail.png \
-	xlib-surface-source.svg12.rgb24.xfail.png \
-	white-in-noop.ref.png \
-	zero-mask.ref.png \
-	zero-mask.rgb24.ref.png \
-	zero-alpha.ref.png
-
 EXTRA_DIST +=		\
 6x13.pcf		\
 index.html		\
@@ -1720,6 +371,7 @@ VALGRIND_FLAGS = \
 CLEANFILES +=					\
 	valgrind-log				\
 	ref.hash				\
+	ref.list				\
 	png-test.png				\
 	png.out.png				\
 	create-for-stream.pdf			\
@@ -1796,41 +448,26 @@ check-ref-dups:
 # Not exactly the best script in the world...
 check-ref-missing:
 	@cd "$(srcdir)"; \
-	REFS=`git ls-files "*.ref.png" "*.xfail.png" "*.new.png"`; \
+	LANG=C; \
 	ret=true; \
-	missing=""; \
-	for i in $$REFS; do \
-	    echo "" $(REFERENCE_IMAGES) "" | grep -sq " $$i " || missing="$$missing $$i" ; \
-	done ; \
-	if test -n "$$missing"; then \
+	tail -n+2 Makefile.refs | sed 's/\\$$//' | sed 's/^\t//' | sed 's/ $$//' > ref.list; \
+	if ! (find . -name '*.ref.png' ; find . -name '*.xfail.png' ; find . -name '*.new.png' ) \
+		| cut -d/ -f2- | sort | diff -u ref.list - ; then \
 		echo "*** Error: Sanity check failed"; \
-		echo "Some reference files are not included in the distribution."; \
-		echo "You probably need to add these to Makefile.am's REFERENCE_IMAGES."; \
-		echo "Missing: $$missing"; \
+		echo "The reference images marked with '-' are not included in the distribution."; \
+		echo "You probably need to generate them and add them to git."; \
+		echo "The reference images marked with '+' are not listed in Makefile.refs."; \
+		echo "You probably need to add them there (and maybe to git)."; \
+		echo "Please remember to preserve the lexicographical order."; \
 		ret=false; \
 	fi >&2; \
-	if $$ret; then \
-	    REFS=`ls *.ref.png *.xfail.png *.new.png`; \
-	    for i in $$REFS; do \
-		echo "" $(REFERENCE_IMAGES) "" | grep -sq " $$i " || missing="$$missing $$i" ; \
-	    done ; \
-	    if test -n "$$missing"; then \
-		    echo "*** Error: Sanity check failed"; \
-		    echo "Some local reference files are not included in the distribution or been added to git."; \
-		    echo "You probably need to add these to git and Makefile.am's REFERENCE_IMAGES."; \
-		    echo "Missing: $$missing"; \
-		    ret=false; \
-	    fi >&2; \
-	fi >&2; \
-	missing=""; \
-	for i in $(REFERENCE_IMAGES); do \
-	    echo "" $$REFS "" | grep -sq " $$i " || missing="$$missing $$i" ; \
-	done ; \
-	if test -n "$$missing"; then \
+	if ! git ls-files "*.ref.png" "*.xfail.png" "*.new.png" | sort | diff -u ref.list - ; then \
 		echo "*** Error: Sanity check failed"; \
-		echo "Some reference files included in the distribution do not exist"; \
-		echo "or are not in git.  You probably want to add these to git first."; \
-		echo "Missing: $$missing"; \
+		echo "The reference images marked with '-' are not included in the distribution."; \
+		echo "You probably need to add them to git."; \
+		echo "The reference images marked with '+' are not listed in Makefile.refs."; \
+		echo "You probably need to add them there."; \
+		echo "Please remember to preserve the lexicographical order."; \
 		ret=false; \
 	fi >&2; \
 	$$ret
diff --git a/test/Makefile.refs b/test/Makefile.refs
new file mode 100644
index 0000000..d1d6c80
--- /dev/null
+++ b/test/Makefile.refs
@@ -0,0 +1,1348 @@
+REFERENCE_IMAGES = \
+	a1-bug.image16.ref.png \
+	a1-bug.quartz.xfail.png \
+	a1-bug.ref.png \
+	a1-bug.xlib.ref.png \
+	a1-image-sample.gl.xfail.png \
+	a1-image-sample.ref.png \
+	a1-mask-sample.ref.png \
+	a1-mask.ref.png \
+	a1-rasterisation-rectangles.quartz.xfail.png \
+	a1-rasterisation-rectangles.ref.png \
+	a1-rasterisation-triangles.quartz.xfail.png \
+	a1-rasterisation-triangles.ref.png \
+	a1-traps-sample.quartz.xfail.png \
+	a1-traps-sample.ref.png \
+	a8-clear.quartz.ref.png \
+	a8-clear.ref.png \
+	a8-mask.ref.png \
+	aliasing.image16.ref.png \
+	aliasing.quartz.ref.png \
+	aliasing.ref.png \
+	aliasing.xlib.ref.png \
+	alpha-similar.gl.argb32.xfail.png \
+	alpha-similar.gl.rgb24.xfail.png \
+	alpha-similar.pdf.argb32.xfail.png \
+	alpha-similar.pdf.rgb24.xfail.png \
+	alpha-similar.ps.argb32.xfail.png \
+	alpha-similar.ps.rgb24.xfail.png \
+	alpha-similar.ref.png \
+	alpha-similar.rgb24.ref.png \
+	alpha-similar.svg.argb32.xfail.png \
+	alpha-similar.svg.rgb24.xfail.png \
+	api-special-cases.ref.png \
+	arc-infinite-loop.ref.png \
+	arc-looping-dash.image16.ref.png \
+	arc-looping-dash.ps.ref.png \
+	arc-looping-dash.quartz.ref.png \
+	arc-looping-dash.ref.png \
+	big-line.image16.ref.png \
+	big-line.ps.ref.png \
+	big-line.quartz.ref.png \
+	big-line.ref.png \
+	big-line.xlib.ref.png \
+	bilevel-image.ref.png \
+	bitmap-font.ref.png \
+	bitmap-font.rgb24.ref.png \
+	bug-bo-rectangular.image16.ref.png \
+	bug-bo-rectangular.ps.xfail.png \
+	bug-bo-rectangular.ref.png \
+	bug-extents.image16.ref.png \
+	bug-extents.ps.ref.png \
+	bug-extents.quartz.ref.png \
+	bug-extents.ref.png \
+	bug-extents.xlib.ref.png \
+	bug-seams.ref.png \
+	bug-seams.xlib-fallback.ref.png \
+	bug-seams.xlib.ref.png \
+	caps-joins-alpha.image16.ref.png \
+	caps-joins-alpha.quartz.ref.png \
+	caps-joins-alpha.ref.png \
+	caps-joins-alpha.xlib.ref.png \
+	caps-joins-curve.image16.ref.png \
+	caps-joins-curve.ps.ref.png \
+	caps-joins-curve.quartz.ref.png \
+	caps-joins-curve.ref.png \
+	caps-joins-curve.xlib.ref.png \
+	caps-joins.image16.ref.png \
+	caps-joins.ps.ref.png \
+	caps-joins.ref.png \
+	caps-sub-paths.image16.ref.png \
+	caps-sub-paths.ps.ref.png \
+	caps-sub-paths.ref.png \
+	caps.image16.ref.png \
+	caps.ps.ref.png \
+	caps.ref.png \
+	clear-source.image16.ref.png \
+	clear-source.pdf.xfail.png \
+	clear-source.ps.xfail.png \
+	clear-source.ref.png \
+	clear.argb32.ref.png \
+	clear.pdf.argb32.ref.png \
+	clear.ps.argb32.ref.png \
+	clear.quartz.argb32.ref.png \
+	clear.quartz.rgb24.ref.png \
+	clear.rgb24.ref.png \
+	clear.svg12.argb32.xfail.png \
+	clear.svg12.rgb24.xfail.png \
+	clip-all.ref.png \
+	clip-contexts.ref.png \
+	clip-device-offset.argb32.ref.png \
+	clip-device-offset.rgb24.ref.png \
+	clip-disjoint.image16.ref.png \
+	clip-disjoint.ps.ref.png \
+	clip-disjoint.quartz.ref.png \
+	clip-disjoint.ref.png \
+	clip-disjoint.xlib.ref.png \
+	clip-empty-group.ref.png \
+	clip-empty-save.ref.png \
+	clip-empty.ref.png \
+	clip-fill-eo-unbounded.argb32.ref.png \
+	clip-fill-eo-unbounded.image16.ref.png \
+	clip-fill-eo-unbounded.quartz.argb32.ref.png \
+	clip-fill-eo-unbounded.quartz.rgb24.ref.png \
+	clip-fill-eo-unbounded.rgb24.ref.png \
+	clip-fill-eo-unbounded.svg12.rgb24.xfail.png \
+	clip-fill-eo-unbounded.xlib-fallback.rgb24.ref.png \
+	clip-fill-eo-unbounded.xlib.argb32.ref.png \
+	clip-fill-eo-unbounded.xlib.rgb24.ref.png \
+	clip-fill-no-op.image16.ref.png \
+	clip-fill-no-op.ref.png \
+	clip-fill-nz-unbounded.argb32.ref.png \
+	clip-fill-nz-unbounded.image16.ref.png \
+	clip-fill-nz-unbounded.quartz.argb32.ref.png \
+	clip-fill-nz-unbounded.quartz.rgb24.ref.png \
+	clip-fill-nz-unbounded.rgb24.ref.png \
+	clip-fill-nz-unbounded.svg12.rgb24.xfail.png \
+	clip-fill-nz-unbounded.xlib-fallback.rgb24.ref.png \
+	clip-fill-nz-unbounded.xlib.argb32.ref.png \
+	clip-fill-nz-unbounded.xlib.rgb24.ref.png \
+	clip-fill-rule-pixel-aligned.ref.png \
+	clip-fill-rule-pixel-aligned.rgb24.ref.png \
+	clip-fill-rule.image16.ref.png \
+	clip-fill-rule.pdf.argb32.ref.png \
+	clip-fill-rule.ps.argb32.ref.png \
+	clip-fill-rule.ps.rgb24.ref.png \
+	clip-fill-rule.quartz.rgb24.ref.png \
+	clip-fill-rule.ref.png \
+	clip-fill-rule.rgb24.ref.png \
+	clip-fill-rule.test-paginated.rgb24.ref.png \
+	clip-fill-rule.xlib.rgb24.ref.png \
+	clip-fill.image16.ref.png \
+	clip-fill.ps.xfail.png \
+	clip-fill.quartz.ref.png \
+	clip-fill.ref.png \
+	clip-fill.xlib-fallback.ref.png \
+	clip-fill.xlib.ref.png \
+	clip-group-shapes-aligned-rectangles.ref.png \
+	clip-group-shapes-circles.quartz.ref.png \
+	clip-group-shapes-circles.ref.png \
+	clip-group-shapes-circles.xlib.ref.png \
+	clip-group-shapes-unaligned-rectangles.ref.png \
+	clip-group-shapes-unaligned-rectangles.xlib.ref.png \
+	clip-image.image16.ref.png \
+	clip-image.ps.ref.png \
+	clip-image.ref.png \
+	clip-nesting.pdf.argb32.ref.png \
+	clip-nesting.ps.argb32.ref.png \
+	clip-nesting.ps.rgb24.ref.png \
+	clip-nesting.quartz.argb32.ref.png \
+	clip-nesting.quartz.rgb24.ref.png \
+	clip-nesting.ref.png \
+	clip-nesting.rgb24.ref.png \
+	clip-nesting.test-paginated.rgb24.ref.png \
+	clip-nesting.xlib.rgb24.ref.png \
+	clip-operator.gl.argb32.ref.png \
+	clip-operator.image16.ref.png \
+	clip-operator.pdf.argb32.ref.png \
+	clip-operator.pdf.rgb24.ref.png \
+	clip-operator.ps2.rgb24.ref.png \
+	clip-operator.ps3.argb32.ref.png \
+	clip-operator.ps3.ref.png \
+	clip-operator.ps3.rgb24.ref.png \
+	clip-operator.quartz.argb32.ref.png \
+	clip-operator.quartz.rgb24.ref.png \
+	clip-operator.ref.png \
+	clip-operator.rgb24.ref.png \
+	clip-operator.svg12.argb32.xfail.png \
+	clip-operator.svg12.rgb24.xfail.png \
+	clip-operator.test-paginated.argb32.ref.png \
+	clip-operator.xlib-fallback.ref.png \
+	clip-operator.xlib.ref.png \
+	clip-operator.xlib.rgb24.ref.png \
+	clip-push-group.image16.ref.png \
+	clip-push-group.pdf.ref.png \
+	clip-push-group.ps.ref.png \
+	clip-push-group.quartz.ref.png \
+	clip-push-group.ref.png \
+	clip-push-group.svg.ref.png \
+	clip-push-group.xlib.ref.png \
+	clip-shape.image16.ref.png \
+	clip-shape.ps.ref.png \
+	clip-shape.quartz.ref.png \
+	clip-shape.ref.png \
+	clip-shape.xlib-fallback.ref.png \
+	clip-shape.xlib.ref.png \
+	clip-stroke-no-op.image16.ref.png \
+	clip-stroke-no-op.ref.png \
+	clip-stroke-unbounded.argb32.ref.png \
+	clip-stroke-unbounded.image16.rgb24.ref.png \
+	clip-stroke-unbounded.quartz.argb32.ref.png \
+	clip-stroke-unbounded.quartz.rgb24.ref.png \
+	clip-stroke-unbounded.rgb24.ref.png \
+	clip-stroke-unbounded.svg12.rgb24.xfail.png \
+	clip-stroke-unbounded.xlib-fallback.rgb24.ref.png \
+	clip-stroke-unbounded.xlib.argb32.ref.png \
+	clip-stroke-unbounded.xlib.rgb24.ref.png \
+	clip-stroke.image16.ref.png \
+	clip-stroke.ps.xfail.png \
+	clip-stroke.quartz.ref.png \
+	clip-stroke.ref.png \
+	clip-stroke.xlib-fallback.ref.png \
+	clip-stroke.xlib.ref.png \
+	clip-text.image16.ref.png \
+	clip-text.ps.xfail.png \
+	clip-text.quartz.ref.png \
+	clip-text.ref.png \
+	clip-text.svg.ref.png \
+	clip-text.xlib.ref.png \
+	clip-twice-rectangle.ref.png \
+	clip-twice.image16.ref.png \
+	clip-twice.pdf.argb32.ref.png \
+	clip-twice.ps.argb32.ref.png \
+	clip-twice.ps.rgb24.ref.png \
+	clip-twice.quartz.argb32.ref.png \
+	clip-twice.quartz.rgb24.ref.png \
+	clip-twice.ref.png \
+	clip-twice.rgb24.ref.png \
+	clip-twice.test-paginated.argb32.ref.png \
+	clip-twice.test-paginated.rgb24.ref.png \
+	clip-twice.xlib.ref.png \
+	clip-twice.xlib.rgb24.ref.png \
+	clip-unbounded.pdf.argb32.xfail.png \
+	clip-unbounded.pdf.rgb24.xfail.png \
+	clip-unbounded.ref.png \
+	clip-unbounded.rgb24.ref.png \
+	clip-unbounded.svg12.rgb24.xfail.png \
+	clipped-group.image16.ref.png \
+	clipped-group.pdf.ref.png \
+	clipped-group.ps2.ref.png \
+	clipped-group.ps3.ref.png \
+	clipped-group.quartz.ref.png \
+	clipped-group.ref.png \
+	clipped-group.svg.ref.png \
+	clipped-group.xlib-fallback.ref.png \
+	clipped-group.xlib.ref.png \
+	clipped-surface.image16.ref.png \
+	clipped-surface.ref.png \
+	clipped-trapezoids.ref.png \
+	close-path-current-point.image16.ref.png \
+	close-path-current-point.ps.ref.png \
+	close-path-current-point.ref.png \
+	close-path.ps2.ref.png \
+	close-path.ps3.ref.png \
+	close-path.ref.png \
+	composite-integer-translate-over-repeat.ps2.ref.png \
+	composite-integer-translate-over-repeat.ps3.ref.png \
+	composite-integer-translate-over-repeat.ref.png \
+	composite-integer-translate-over.image16.ref.png \
+	composite-integer-translate-over.ps2.ref.png \
+	composite-integer-translate-over.ps3.ref.png \
+	composite-integer-translate-over.ref.png \
+	composite-integer-translate-source.image16.ref.png \
+	composite-integer-translate-source.ps2.ref.png \
+	composite-integer-translate-source.ps3.ref.png \
+	composite-integer-translate-source.ref.png \
+	composite-integer-translate-source.svg12.argb32.xfail.png \
+	composite-integer-translate-source.svg12.rgb24.xfail.png \
+	copy-path.image16.ref.png \
+	copy-path.ps.ref.png \
+	copy-path.ref.png \
+	coverage-column-triangles.ref.png \
+	coverage-column-triangles.xlib.xfail.png \
+	coverage-intersecting-quads.ref.png \
+	coverage-intersecting-quads.xlib.xfail.png \
+	coverage-intersecting-triangles.ref.png \
+	coverage-intersecting-triangles.xlib.xfail.png \
+	coverage-rectangles.ref.png \
+	coverage-rectangles.xlib.xfail.png \
+	coverage-row-triangles.ref.png \
+	coverage-row-triangles.xlib.xfail.png \
+	coverage-triangles.ref.png \
+	coverage-triangles.xlib.xfail.png \
+	create-from-png-stream.ref.png \
+	create-from-png.alpha.ref.png \
+	create-from-png.gray-alpha.ref.png \
+	create-from-png.gray.ref.png \
+	create-from-png.indexed-alpha.ref.png \
+	create-from-png.indexed.ref.png \
+	create-from-png.ref.png \
+	culled-glyphs.image16.ref.png \
+	culled-glyphs.ps.ref.png \
+	culled-glyphs.quartz.ref.png \
+	culled-glyphs.ref.png \
+	curve-to-as-line-to.ps.xfail.png \
+	curve-to-as-line-to.ref.png \
+	dash-caps-joins.image16.ref.png \
+	dash-caps-joins.ps.ref.png \
+	dash-caps-joins.quartz.xfail.png \
+	dash-caps-joins.ref.png \
+	dash-curve.image16.ref.png \
+	dash-curve.ps2.ref.png \
+	dash-curve.ps3.ref.png \
+	dash-curve.quartz.xfail.png \
+	dash-curve.ref.png \
+	dash-curve.xlib.ref.png \
+	dash-infinite-loop.ps.ref.png \
+	dash-infinite-loop.ref.png \
+	dash-no-dash.ref.png \
+	dash-offset-negative.ref.png \
+	dash-offset.ref.png \
+	dash-scale.image16.ref.png \
+	dash-scale.ps.ref.png \
+	dash-scale.quartz.ref.png \
+	dash-scale.ref.png \
+	dash-state.image16.ref.png \
+	dash-state.ps2.ref.png \
+	dash-state.ps3.ref.png \
+	dash-state.quartz.xfail.png \
+	dash-state.ref.png \
+	dash-zero-length.ps2.ref.png \
+	dash-zero-length.ps2.rgb24.ref.png \
+	dash-zero-length.ps3.ref.png \
+	dash-zero-length.ps3.rgb24.ref.png \
+	dash-zero-length.ref.png \
+	dash-zero-length.rgb24.ref.png \
+	degenerate-arc.image16.ref.png \
+	degenerate-arc.ps2.ref.png \
+	degenerate-arc.ps3.ref.png \
+	degenerate-arc.quartz.ref.png \
+	degenerate-arc.ref.png \
+	degenerate-arc.xlib.ref.png \
+	degenerate-arcs.image16.ref.png \
+	degenerate-arcs.ref.png \
+	degenerate-curve-to.image16.ref.png \
+	degenerate-curve-to.ps.xfail.png \
+	degenerate-curve-to.quartz.ref.png \
+	degenerate-curve-to.ref.png \
+	degenerate-dash.ps.xfail.png \
+	degenerate-dash.quartz.xfail.png \
+	degenerate-dash.ref.png \
+	degenerate-dash.xlib.ref.png \
+	degenerate-linear-gradient.ref.png \
+	degenerate-path.argb32.ref.png \
+	degenerate-path.ps.argb32.xfail.png \
+	degenerate-path.ps.rgb24.xfail.png \
+	degenerate-path.quartz.argb32.xfail.png \
+	degenerate-path.quartz.rgb24.xfail.png \
+	degenerate-path.rgb24.ref.png \
+	degenerate-pen.image16.ref.png \
+	degenerate-pen.ps.ref.png \
+	degenerate-pen.ref.png \
+	degenerate-pen.xlib.ref.png \
+	degenerate-radial-gradient.ref.png \
+	degenerate-rel-curve-to.image16.ref.png \
+	degenerate-rel-curve-to.ps.ref.png \
+	degenerate-rel-curve-to.quartz.ref.png \
+	degenerate-rel-curve-to.ref.png \
+	device-offset-fractional.gl.xfail.png \
+	device-offset-fractional.pdf.xfail.png \
+	device-offset-fractional.ps2.ref.png \
+	device-offset-fractional.ps3.ref.png \
+	device-offset-fractional.ref.png \
+	device-offset-positive.ref.png \
+	device-offset-positive.rgb24.ref.png \
+	device-offset-scale.ref.png \
+	device-offset-scale.svg.xfail.png \
+	device-offset.ref.png \
+	device-offset.rgb24.ref.png \
+	extend-pad-border.image16.ref.png \
+	extend-pad-border.ps.ref.png \
+	extend-pad-border.quartz.ref.png \
+	extend-pad-border.ref.png \
+	extend-pad-border.svg.xfail.png \
+	extend-pad-similar.quartz.xfail.png \
+	extend-pad-similar.ref.png \
+	extend-pad-similar.svg.xfail.png \
+	extend-pad.ps.ref.png \
+	extend-pad.quartz.xfail.png \
+	extend-pad.ref.png \
+	extend-pad.svg.xfail.png \
+	extend-reflect-similar.image16.ref.png \
+	extend-reflect-similar.ps2.ref.png \
+	extend-reflect-similar.ps3.ref.png \
+	extend-reflect-similar.ref.png \
+	extend-reflect.image16.ref.png \
+	extend-reflect.ps2.ref.png \
+	extend-reflect.ps3.ref.png \
+	extend-reflect.ref.png \
+	extend-repeat-similar.image16.ref.png \
+	extend-repeat-similar.ps2.ref.png \
+	extend-repeat-similar.ps3.ref.png \
+	extend-repeat-similar.ref.png \
+	extend-repeat.image16.ref.png \
+	extend-repeat.ps2.ref.png \
+	extend-repeat.ps3.ref.png \
+	extend-repeat.ref.png \
+	extended-blend-alpha.argb32.ref.png \
+	extended-blend-alpha.image16.ref.png \
+	extended-blend-alpha.quartz.argb32.ref.png \
+	extended-blend-alpha.quartz.rgb24.ref.png \
+	extended-blend-alpha.rgb24.ref.png \
+	extended-blend-alpha.svg12.argb32.xfail.png \
+	extended-blend-alpha.svg12.rgb24.xfail.png \
+	extended-blend.argb32.ref.png \
+	extended-blend.image16.ref.png \
+	extended-blend.quartz.argb32.ref.png \
+	extended-blend.quartz.rgb24.ref.png \
+	extended-blend.rgb24.ref.png \
+	extended-blend.svg12.argb32.xfail.png \
+	extended-blend.svg12.rgb24.xfail.png \
+	fallback-resolution.ppi144x144.ps.ref.png \
+	fallback-resolution.ppi144x144.ref.png \
+	fallback-resolution.ppi144x72.ps.ref.png \
+	fallback-resolution.ppi144x72.ref.png \
+	fallback-resolution.ppi288x288.pdf.ref.png \
+	fallback-resolution.ppi288x288.ps.ref.png \
+	fallback-resolution.ppi288x288.svg.ref.png \
+	fallback-resolution.ppi288x72.ps.ref.png \
+	fallback-resolution.ppi288x72.ref.png \
+	fallback-resolution.ppi576x576.pdf.ref.png \
+	fallback-resolution.ppi576x576.ps.ref.png \
+	fallback-resolution.ppi576x576.svg.ref.png \
+	fallback-resolution.ppi576x72.ps.ref.png \
+	fallback-resolution.ppi576x72.ref.png \
+	fallback-resolution.ppi72x144.ps.ref.png \
+	fallback-resolution.ppi72x144.ref.png \
+	fallback-resolution.ppi72x288.ps.ref.png \
+	fallback-resolution.ppi72x288.ref.png \
+	fallback-resolution.ppi72x576.ps.ref.png \
+	fallback-resolution.ppi72x576.ref.png \
+	fallback-resolution.ppi72x72.ref.png \
+	fill-alpha-pattern.image16.ref.png \
+	fill-alpha-pattern.ps3.argb32.ref.png \
+	fill-alpha-pattern.ps3.ref.png \
+	fill-alpha-pattern.ps3.rgb24.ref.png \
+	fill-alpha-pattern.quartz.ref.png \
+	fill-alpha-pattern.ref.png \
+	fill-alpha-pattern.xlib.ref.png \
+	fill-alpha.image16.ref.png \
+	fill-alpha.quartz.ref.png \
+	fill-alpha.ref.png \
+	fill-alpha.xlib.ref.png \
+	fill-and-stroke-alpha-add.image16.ref.png \
+	fill-and-stroke-alpha-add.quartz.ref.png \
+	fill-and-stroke-alpha-add.ref.png \
+	fill-and-stroke-alpha-add.svg12.xfail.png \
+	fill-and-stroke-alpha.image16.ref.png \
+	fill-and-stroke-alpha.ref.png \
+	fill-and-stroke.argb32.ref.png \
+	fill-and-stroke.image16.ref.png \
+	fill-and-stroke.ps.argb32.ref.png \
+	fill-and-stroke.ps.rgb24.ref.png \
+	fill-and-stroke.quartz.argb32.ref.png \
+	fill-and-stroke.quartz.rgb24.ref.png \
+	fill-and-stroke.rgb24.ref.png \
+	fill-and-stroke.xlib.argb32.ref.png \
+	fill-and-stroke.xlib.rgb24.ref.png \
+	fill-degenerate-sort-order.image16.ref.png \
+	fill-degenerate-sort-order.ps.argb32.xfail.png \
+	fill-degenerate-sort-order.ps.rgb24.xfail.png \
+	fill-degenerate-sort-order.quartz.argb32.ref.png \
+	fill-degenerate-sort-order.quartz.rgb24.ref.png \
+	fill-degenerate-sort-order.ref.png \
+	fill-degenerate-sort-order.rgb24.ref.png \
+	fill-degenerate-sort-order.xlib.ref.png \
+	fill-degenerate-sort-order.xlib.rgb24.ref.png \
+	fill-empty.argb32.ref.png \
+	fill-empty.rgb24.ref.png \
+	fill-empty.svg12.rgb24.xfail.png \
+	fill-image.image16.ref.png \
+	fill-image.ps.ref.png \
+	fill-image.quartz.ref.png \
+	fill-image.ref.png \
+	fill-image.xlib.ref.png \
+	fill-missed-stop.pdf.argb32.ref.png \
+	fill-missed-stop.ps2.argb32.ref.png \
+	fill-missed-stop.ps2.rgb24.ref.png \
+	fill-missed-stop.ps3.argb32.ref.png \
+	fill-missed-stop.ps3.rgb24.ref.png \
+	fill-missed-stop.ref.png \
+	fill-missed-stop.rgb24.ref.png \
+	fill-rule.image16.ref.png \
+	fill-rule.ps2.argb32.ref.png \
+	fill-rule.ps2.rgb24.ref.png \
+	fill-rule.ps3.argb32.ref.png \
+	fill-rule.ps3.rgb24.ref.png \
+	fill-rule.quartz.argb32.ref.png \
+	fill-rule.quartz.rgb24.ref.png \
+	fill-rule.ref.png \
+	fill-rule.rgb24.ref.png \
+	fill-rule.xlib.ref.png \
+	fill-rule.xlib.rgb24.ref.png \
+	filter-bilinear-extents.image16.ref.png \
+	filter-bilinear-extents.pdf.xfail.png \
+	filter-bilinear-extents.ps2.ref.png \
+	filter-bilinear-extents.ps3.ref.png \
+	filter-bilinear-extents.quartz.xfail.png \
+	filter-bilinear-extents.ref.png \
+	filter-nearest-offset.gl.xfail.png \
+	filter-nearest-offset.pdf.xfail.png \
+	filter-nearest-offset.ps2.ref.png \
+	filter-nearest-offset.ps3.ref.png \
+	filter-nearest-offset.ref.png \
+	filter-nearest-offset.svg.xfail.png \
+	filter-nearest-transformed.gl.xfail.png \
+	filter-nearest-transformed.image16.ref.png \
+	filter-nearest-transformed.pdf.xfail.png \
+	filter-nearest-transformed.quartz.xfail.png \
+	filter-nearest-transformed.ref.png \
+	filter-nearest-transformed.svg.xfail.png \
+	finer-grained-fallbacks.argb32.ref.png \
+	finer-grained-fallbacks.gl.argb32.ref.png \
+	finer-grained-fallbacks.image16.ref.png \
+	finer-grained-fallbacks.ps2.argb32.ref.png \
+	finer-grained-fallbacks.ps2.ref.png \
+	finer-grained-fallbacks.ps2.rgb24.ref.png \
+	finer-grained-fallbacks.ps3.argb32.ref.png \
+	finer-grained-fallbacks.ps3.ref.png \
+	finer-grained-fallbacks.ps3.rgb24.ref.png \
+	finer-grained-fallbacks.quartz.argb32.ref.png \
+	finer-grained-fallbacks.quartz.rgb24.ref.png \
+	finer-grained-fallbacks.rgb24.ref.png \
+	finer-grained-fallbacks.svg12.argb32.ref.png \
+	finer-grained-fallbacks.svg12.rgb24.ref.png \
+	finer-grained-fallbacks.xlib-fallback.ref.png \
+	finer-grained-fallbacks.xlib.ref.png \
+	finer-grained-fallbacks.xlib.rgb24.ref.png \
+	font-matrix-translation.image16.ref.png \
+	font-matrix-translation.ps2.argb32.ref.png \
+	font-matrix-translation.ps2.rgb24.ref.png \
+	font-matrix-translation.ps3.argb32.ref.png \
+	font-matrix-translation.ps3.rgb24.ref.png \
+	font-matrix-translation.quartz.ref.png \
+	font-matrix-translation.ref.png \
+	font-matrix-translation.svg.ref.png \
+	ft-show-glyphs-positioning.image16.ref.png \
+	ft-show-glyphs-positioning.pdf.ref.png \
+	ft-show-glyphs-positioning.ps2.ref.png \
+	ft-show-glyphs-positioning.ps3.ref.png \
+	ft-show-glyphs-positioning.ref.png \
+	ft-show-glyphs-positioning.svg.ref.png \
+	ft-show-glyphs-table.image16.ref.png \
+	ft-show-glyphs-table.ps2.ref.png \
+	ft-show-glyphs-table.ps3.ref.png \
+	ft-show-glyphs-table.quartz.xfail.png \
+	ft-show-glyphs-table.ref.png \
+	ft-show-glyphs-table.svg.ref.png \
+	ft-text-antialias-none.ps2.argb32.ref.png \
+	ft-text-antialias-none.ps3.argb32.ref.png \
+	ft-text-antialias-none.ref.png \
+	ft-text-vertical-layout-type1.image16.ref.png \
+	ft-text-vertical-layout-type1.pdf.ref.png \
+	ft-text-vertical-layout-type1.ps.ref.png \
+	ft-text-vertical-layout-type1.quartz.xfail.png \
+	ft-text-vertical-layout-type1.ref.png \
+	ft-text-vertical-layout-type1.svg.ref.png \
+	ft-text-vertical-layout-type1.xlib.ref.png \
+	ft-text-vertical-layout-type3.image16.ref.png \
+	ft-text-vertical-layout-type3.pdf.ref.png \
+	ft-text-vertical-layout-type3.ps.ref.png \
+	ft-text-vertical-layout-type3.quartz.ref.png \
+	ft-text-vertical-layout-type3.ref.png \
+	ft-text-vertical-layout-type3.svg.ref.png \
+	ft-text-vertical-layout-type3.xlib.ref.png \
+	get-group-target.ref.png \
+	gl-surface-source.argb32.ref.png \
+	gl-surface-source.image16.ref.png \
+	gl-surface-source.rgb24.ref.png \
+	glyph-cache-pressure.image16.ref.png \
+	glyph-cache-pressure.ps2.ref.png \
+	glyph-cache-pressure.ps3.ref.png \
+	glyph-cache-pressure.quartz.ref.png \
+	glyph-cache-pressure.ref.png \
+	gradient-alpha.ps2.argb32.ref.png \
+	gradient-alpha.ps2.rgb24.ref.png \
+	gradient-alpha.ps3.argb32.ref.png \
+	gradient-alpha.ps3.rgb24.ref.png \
+	gradient-alpha.ref.png \
+	gradient-alpha.rgb24.ref.png \
+	gradient-constant-alpha.ps3.ref.png \
+	gradient-constant-alpha.ps3.rgb24.ref.png \
+	gradient-constant-alpha.quartz.argb32.ref.png \
+	gradient-constant-alpha.ref.png \
+	gradient-constant-alpha.rgb24.ref.png \
+	gradient-zero-stops-mask.argb32.ref.png \
+	gradient-zero-stops-mask.rgb24.ref.png \
+	gradient-zero-stops.ref.png \
+	gradient-zero-stops.rgb24.ref.png \
+	group-clip.image16.ref.png \
+	group-clip.ref.png \
+	group-paint.ref.png \
+	group-unaligned.image16.ref.png \
+	group-unaligned.ps.ref.png \
+	group-unaligned.ps.rgb24.xfail.png \
+	group-unaligned.quartz.ref.png \
+	group-unaligned.ref.png \
+	group-unaligned.svg.argb32.xfail.png \
+	group-unaligned.svg.rgb24.xfail.png \
+	group-unaligned.xlib-fallback.ref.png \
+	group-unaligned.xlib.ref.png \
+	halo-transform.image16.ref.png \
+	halo-transform.ps.ref.png \
+	halo-transform.quartz.ref.png \
+	halo-transform.ref.png \
+	halo-transform.xlib.ref.png \
+	halo.image16.ref.png \
+	halo.ps.ref.png \
+	halo.quartz.ref.png \
+	halo.ref.png \
+	halo.xlib.ref.png \
+	huge-linear.image16.ref.png \
+	huge-linear.pdf.ref.png \
+	huge-linear.ps3.ref.png \
+	huge-linear.quartz.ref.png \
+	huge-linear.ref.png \
+	huge-radial.image16.ref.png \
+	huge-radial.pdf.argb32.ref.png \
+	huge-radial.pdf.rgb24.ref.png \
+	huge-radial.ps3.ref.png \
+	huge-radial.quartz.ref.png \
+	huge-radial.ref.png \
+	image-bug-710072-aligned.ref.png \
+	image-bug-710072-unaligned.ref.png \
+	image-bug-710072-unaligned.xlib.ref.png \
+	image-surface-source.argb32.ref.png \
+	image-surface-source.image16.ref.png \
+	image-surface-source.ps2.ref.png \
+	image-surface-source.ps3.ref.png \
+	image-surface-source.rgb24.ref.png \
+	image-surface-source.svg12.argb32.xfail.png \
+	image-surface-source.svg12.rgb24.xfail.png \
+	implicit-close.ps.ref.png \
+	implicit-close.ref.png \
+	infinite-join.ps2.ref.png \
+	infinite-join.ps3.ref.png \
+	infinite-join.ref.png \
+	inverse-text.image16.ref.png \
+	inverse-text.ps.ref.png \
+	inverse-text.quartz.ref.png \
+	inverse-text.ref.png \
+	joins.image16.ref.png \
+	joins.ps.ref.png \
+	joins.quartz.ref.png \
+	joins.ref.png \
+	large-clip.ref.png \
+	large-font.image16.ref.png \
+	large-font.ref.png \
+	large-source-roi.ref.png \
+	large-source.ref.png \
+	large-twin-antialias-mixed.image16.ref.png \
+	large-twin-antialias-mixed.ref.png \
+	large-twin-antialias-mixed.xlib.ref.png \
+	leaky-dash.ps2.argb32.ref.png \
+	leaky-dash.ps2.rgb24.ref.png \
+	leaky-dash.ps3.argb32.ref.png \
+	leaky-dash.ps3.rgb24.ref.png \
+	leaky-dash.quartz.ref.png \
+	leaky-dash.ref.png \
+	leaky-dashed-rectangle.image16.ref.png \
+	leaky-dashed-rectangle.pdf.ref.png \
+	leaky-dashed-rectangle.ps.ref.png \
+	leaky-dashed-rectangle.quartz.ref.png \
+	leaky-dashed-rectangle.ref.png \
+	leaky-dashed-rectangle.xlib.ref.png \
+	leaky-dashed-stroke.image16.ref.png \
+	leaky-dashed-stroke.ps.ref.png \
+	leaky-dashed-stroke.quartz.ref.png \
+	leaky-dashed-stroke.ref.png \
+	leaky-dashed-stroke.xlib.ref.png \
+	leaky-polygon.image16.ref.png \
+	leaky-polygon.ps.ref.png \
+	leaky-polygon.ref.png \
+	line-width-overlap.ref.png \
+	line-width-scale.image16.ref.png \
+	line-width-scale.ps2.ref.png \
+	line-width-scale.ps3.ref.png \
+	line-width-scale.quartz.ref.png \
+	line-width-scale.ref.png \
+	line-width-tolerance.ref.png \
+	line-width.ref.png \
+	linear-gradient-extend.ref.png \
+	linear-gradient-large.quartz.ref.png \
+	linear-gradient-large.ref.png \
+	linear-gradient-one-stop.argb32.ref.png \
+	linear-gradient-one-stop.rgb24.ref.png \
+	linear-gradient-reflect.image16.ref.png \
+	linear-gradient-reflect.pdf.argb32.ref.png \
+	linear-gradient-reflect.pdf.rgb24.ref.png \
+	linear-gradient-reflect.ps3.ref.png \
+	linear-gradient-reflect.quartz.ref.png \
+	linear-gradient-reflect.ref.png \
+	linear-gradient-subset.image16.ref.png \
+	linear-gradient-subset.ps3.ref.png \
+	linear-gradient-subset.quartz.ref.png \
+	linear-gradient-subset.ref.png \
+	linear-gradient-subset.xlib.ref.png \
+	linear-gradient.image16.ref.png \
+	linear-gradient.ps3.ref.png \
+	linear-gradient.quartz.ref.png \
+	linear-gradient.ref.png \
+	linear-gradient.xlib.ref.png \
+	linear-step-function.xfail.png \
+	linear-uniform.image16.ref.png \
+	linear-uniform.ref.png \
+	long-dashed-lines.image16.ref.png \
+	long-dashed-lines.ps2.ref.png \
+	long-dashed-lines.ps3.ref.png \
+	long-dashed-lines.quartz.ref.png \
+	long-dashed-lines.ref.png \
+	mask-alpha.image16.ref.png \
+	mask-alpha.quartz.argb32.ref.png \
+	mask-alpha.ref.png \
+	mask-alpha.rgb24.ref.png \
+	mask-alpha.svg.rgb24.xfail.png \
+	mask-alpha.xlib.ref.png \
+	mask-alpha.xlib.rgb24.ref.png \
+	mask-ctm.ref.png \
+	mask-ctm.rgb24.ref.png \
+	mask-glyphs.gl.ref.png \
+	mask-glyphs.image16.ref.png \
+	mask-glyphs.pdf.ref.png \
+	mask-glyphs.ref.png \
+	mask-glyphs.svg.ref.png \
+	mask-surface-ctm.ref.png \
+	mask-surface-ctm.rgb24.ref.png \
+	mask-transformed-image.image16.ref.png \
+	mask-transformed-image.pdf.ref.png \
+	mask-transformed-image.quartz.ref.png \
+	mask-transformed-image.ref.png \
+	mask-transformed-similar.image16.ref.png \
+	mask-transformed-similar.pdf.ref.png \
+	mask-transformed-similar.quartz.ref.png \
+	mask-transformed-similar.ref.png \
+	mask-transformed-similar.svg.ref.png \
+	mask.image16.ref.png \
+	mask.pdf.argb32.ref.png \
+	mask.pdf.rgb24.ref.png \
+	mask.quartz.argb32.ref.png \
+	mask.quartz.rgb24.ref.png \
+	mask.ref.png \
+	mask.rgb24.ref.png \
+	mask.svg.argb32.xfail.png \
+	mask.svg.rgb24.xfail.png \
+	mask.xlib.ref.png \
+	mask.xlib.rgb24.ref.png \
+	mesh-pattern-accuracy.image16.ref.png \
+	mesh-pattern-accuracy.ref.png \
+	mesh-pattern-conical.image16.ref.png \
+	mesh-pattern-conical.ref.png \
+	mesh-pattern-control-points.image16.ref.png \
+	mesh-pattern-control-points.ref.png \
+	mesh-pattern-fold.image16.ref.png \
+	mesh-pattern-fold.ref.png \
+	mesh-pattern-overlap.image16.ref.png \
+	mesh-pattern-overlap.ref.png \
+	mesh-pattern-transformed.image16.ref.png \
+	mesh-pattern-transformed.ref.png \
+	mesh-pattern.image16.ref.png \
+	mesh-pattern.ref.png \
+	mime-data.pdf.ref.png \
+	mime-data.ps.ref.png \
+	mime-data.ref.png \
+	mime-data.script.ref.png \
+	mime-data.svg.ref.png \
+	miter-precision.ps2.ref.png \
+	miter-precision.ps3.ref.png \
+	miter-precision.ref.png \
+	move-to-show-surface.ref.png \
+	new-sub-path.argb32.ref.png \
+	new-sub-path.pdf.argb32.ref.png \
+	new-sub-path.ps2.argb32.ref.png \
+	new-sub-path.ps2.rgb24.ref.png \
+	new-sub-path.ps3.argb32.ref.png \
+	new-sub-path.ps3.rgb24.ref.png \
+	new-sub-path.quartz.ref.png \
+	new-sub-path.rgb24.ref.png \
+	nil-surface.ref.png \
+	nil-surface.rgb24.ref.png \
+	operator-alpha-alpha.image16.ref.png \
+	operator-alpha-alpha.pdf.xfail.png \
+	operator-alpha-alpha.ps.xfail.png \
+	operator-alpha-alpha.ref.png \
+	operator-alpha-alpha.svg.xfail.png \
+	operator-alpha.ref.png \
+	operator-alpha.rgb24.ref.png \
+	operator-alpha.svg12.argb32.xfail.png \
+	operator-alpha.svg12.rgb24.xfail.png \
+	operator-clear.ps2.argb32.ref.png \
+	operator-clear.ps3.argb32.ref.png \
+	operator-clear.quartz.argb32.ref.png \
+	operator-clear.quartz.rgb24.ref.png \
+	operator-clear.ref.png \
+	operator-clear.rgb24.ref.png \
+	operator-clear.svg12.argb32.xfail.png \
+	operator-clear.svg12.rgb24.xfail.png \
+	operator-clear.xlib.argb32.ref.png \
+	operator-clear.xlib.rgb24.ref.png \
+	operator-source.image16.ref.png \
+	operator-source.ref.png \
+	operator-source.rgb24.ref.png \
+	operator-source.xlib-fallback.ref.png \
+	operator-source.xlib.ref.png \
+	operator-source.xlib.rgb24.ref.png \
+	operator.ref.png \
+	operator.rgb24.ref.png \
+	operator.svg12.argb32.xfail.png \
+	operator.svg12.rgb24.xfail.png \
+	over-above-source.ps2.argb32.ref.png \
+	over-above-source.ps3.argb32.ref.png \
+	over-above-source.quartz.argb32.ref.png \
+	over-above-source.quartz.rgb24.ref.png \
+	over-above-source.ref.png \
+	over-above-source.rgb24.ref.png \
+	over-above-source.svg12.rgb24.xfail.png \
+	over-above-source.xlib.ref.png \
+	over-above-source.xlib.rgb24.ref.png \
+	over-around-source.image16.ref.png \
+	over-around-source.pdf.argb32.ref.png \
+	over-around-source.ps2.argb32.ref.png \
+	over-around-source.ps2.rgb24.ref.png \
+	over-around-source.ps3.argb32.ref.png \
+	over-around-source.ps3.rgb24.ref.png \
+	over-around-source.quartz.argb32.ref.png \
+	over-around-source.ref.png \
+	over-around-source.rgb24.ref.png \
+	over-around-source.svg12.argb32.xfail.png \
+	over-around-source.svg12.rgb24.xfail.png \
+	over-around-source.xlib.ref.png \
+	over-around-source.xlib.rgb24.ref.png \
+	over-below-source.pdf.argb32.ref.png \
+	over-below-source.ps2.argb32.ref.png \
+	over-below-source.ps2.rgb24.ref.png \
+	over-below-source.ps3.argb32.ref.png \
+	over-below-source.ps3.rgb24.ref.png \
+	over-below-source.ref.png \
+	over-below-source.rgb24.ref.png \
+	over-below-source.svg12.argb32.xfail.png \
+	over-below-source.svg12.rgb24.xfail.png \
+	over-between-source.ps2.argb32.ref.png \
+	over-between-source.ps3.argb32.ref.png \
+	over-between-source.quartz.argb32.ref.png \
+	over-between-source.ref.png \
+	over-between-source.rgb24.ref.png \
+	over-between-source.svg12.argb32.xfail.png \
+	over-between-source.svg12.rgb24.xfail.png \
+	over-between-source.xlib.ref.png \
+	over-between-source.xlib.rgb24.ref.png \
+	overlapping-glyphs.argb32.ref.png \
+	overlapping-glyphs.pdf.argb32.xfail.png \
+	overlapping-glyphs.pdf.rgb24.xfail.png \
+	overlapping-glyphs.quartz.argb32.ref.png \
+	overlapping-glyphs.quartz.rgb24.ref.png \
+	overlapping-glyphs.rgb24.ref.png \
+	overlapping-glyphs.svg.argb32.ref.png \
+	overlapping-glyphs.svg.rgb24.ref.png \
+	paint-repeat.ref.png \
+	paint-source-alpha.image16.ref.png \
+	paint-source-alpha.ref.png \
+	paint-source-alpha.svg.ref.png \
+	paint-with-alpha.image16.ref.png \
+	paint-with-alpha.ref.png \
+	paint-with-alpha.svg.ref.png \
+	paint.ref.png \
+	partial-clip-text.ps.ref.png \
+	partial-clip-text.quartz.ref.png \
+	partial-clip-text.ref.png \
+	partial-clip-text.svg.ref.png \
+	partial-coverage-half-reference.ref.png \
+	partial-coverage-half-triangles.ref.png \
+	partial-coverage-intersecting-quads.ref.png \
+	partial-coverage-intersecting-quads.xfail.png \
+	partial-coverage-intersecting-triangles.ref.png \
+	partial-coverage-overlap-half-triangles-eo.ref.png \
+	partial-coverage-overlap-half-triangles.ref.png \
+	partial-coverage-overlap-three-quarter-triangles.ref.png \
+	partial-coverage-rectangles.ref.png \
+	partial-coverage-reference.ref.png \
+	partial-coverage-three-quarter-reference.ref.png \
+	partial-coverage-triangles.ref.png \
+	pass-through.ref.png \
+	pass-through.rgb24.ref.png \
+	path-append.image16.ref.png \
+	path-append.ps.ref.png \
+	path-append.quartz.ref.png \
+	path-append.ref.png \
+	path-append.test-fallback.ref.png \
+	path-append.xlib-fallback.ref.png \
+	path-append.xlib.ref.png \
+	path-stroke-twice.image16.ref.png \
+	path-stroke-twice.ps.ref.png \
+	path-stroke-twice.ref.png \
+	pattern-getters.ref.png \
+	pdf-surface-source.argb32.ref.png \
+	pdf-surface-source.image16.ref.png \
+	pdf-surface-source.rgb24.ref.png \
+	pdf-surface-source.svg12.argb32.xfail.png \
+	pdf-surface-source.svg12.rgb24.xfail.png \
+	pixman-rotate.ps.argb32.ref.png \
+	pixman-rotate.ref.png \
+	pixman-rotate.rgb24.ref.png \
+	ps-eps.ref.png \
+	ps-surface-source.argb32.ref.png \
+	ps-surface-source.image16.ref.png \
+	ps-surface-source.rgb24.ref.png \
+	ps-surface-source.svg12.argb32.xfail.png \
+	ps-surface-source.svg12.rgb24.xfail.png \
+	pthread-same-source.image16.ref.png \
+	pthread-same-source.quartz.xfail.png \
+	pthread-same-source.ref.png \
+	pthread-show-text.image16.ref.png \
+	pthread-show-text.pdf.ref.png \
+	pthread-show-text.ps.ref.png \
+	pthread-show-text.quartz.ref.png \
+	pthread-show-text.ref.png \
+	pthread-show-text.xlib-fallback.ref.png \
+	pthread-similar.ref.png \
+	push-group-color.image16.ref.png \
+	push-group-color.ps2.ref.png \
+	push-group-color.ps3.ref.png \
+	push-group-color.quartz.ref.png \
+	push-group-color.ref.png \
+	push-group-color.xlib.ref.png \
+	push-group-path-offset.ref.png \
+	push-group.image16.ref.png \
+	push-group.quartz.argb32.ref.png \
+	push-group.quartz.rgb24.ref.png \
+	push-group.ref.png \
+	push-group.rgb24.ref.png \
+	push-group.xlib.ref.png \
+	push-group.xlib.rgb24.ref.png \
+	quartz-surface-source.argb32.ref.png \
+	quartz-surface-source.ps2.ref.png \
+	quartz-surface-source.ps3.ref.png \
+	quartz-surface-source.rgb24.ref.png \
+	radial-gradient-extend.ps3.ref.png \
+	radial-gradient-extend.ref.png \
+	radial-gradient-mask-source.argb32.ref.png \
+	radial-gradient-mask-source.image16.ref.png \
+	radial-gradient-mask-source.quartz.argb32.ref.png \
+	radial-gradient-mask-source.quartz.rgb24.ref.png \
+	radial-gradient-mask-source.rgb24.ref.png \
+	radial-gradient-mask-source.xlib.argb32.ref.png \
+	radial-gradient-mask-source.xlib.rgb24.ref.png \
+	radial-gradient-mask.image16.ref.png \
+	radial-gradient-mask.quartz.ref.png \
+	radial-gradient-mask.ref.png \
+	radial-gradient-one-stop.quartz.ref.png \
+	radial-gradient-one-stop.ref.png \
+	radial-gradient-source.argb32.ref.png \
+	radial-gradient-source.image16.ref.png \
+	radial-gradient-source.quartz.argb32.ref.png \
+	radial-gradient-source.quartz.rgb24.ref.png \
+	radial-gradient-source.rgb24.ref.png \
+	radial-gradient.image16.ref.png \
+	radial-gradient.quartz.ref.png \
+	radial-gradient.ref.png \
+	random-intersections-curves-eo.image16.ref.png \
+	random-intersections-curves-eo.pdf.ref.png \
+	random-intersections-curves-eo.ps.ref.png \
+	random-intersections-curves-eo.quartz.ref.png \
+	random-intersections-curves-eo.ref.png \
+	random-intersections-curves-eo.xlib-fallback.ref.png \
+	random-intersections-curves-eo.xlib.ref.png \
+	random-intersections-curves-nz.image16.ref.png \
+	random-intersections-curves-nz.pdf.ref.png \
+	random-intersections-curves-nz.ps.ref.png \
+	random-intersections-curves-nz.quartz.ref.png \
+	random-intersections-curves-nz.ref.png \
+	random-intersections-curves-nz.xlib-fallback.ref.png \
+	random-intersections-curves-nz.xlib.ref.png \
+	random-intersections-eo.image16.ref.png \
+	random-intersections-eo.ps.ref.png \
+	random-intersections-eo.quartz.ref.png \
+	random-intersections-eo.ref.png \
+	random-intersections-eo.xlib.ref.png \
+	random-intersections-nonzero.image16.ref.png \
+	random-intersections-nonzero.ps.ref.png \
+	random-intersections-nonzero.quartz.ref.png \
+	random-intersections-nonzero.ref.png \
+	random-intersections-nonzero.xlib.ref.png \
+	recording-surface-pattern.gl.argb32.ref.png \
+	recording-surface-pattern.image16.ref.png \
+	recording-surface-pattern.pdf.argb32.ref.png \
+	recording-surface-pattern.pdf.rgb24.ref.png \
+	recording-surface-pattern.ps.argb32.ref.png \
+	recording-surface-pattern.ps.rgb24.ref.png \
+	recording-surface-pattern.quartz.argb32.ref.png \
+	recording-surface-pattern.quartz.rgb24.ref.png \
+	recording-surface-pattern.ref.png \
+	recording-surface-pattern.rgb24.ref.png \
+	recording-surface-pattern.svg.argb32.ref.png \
+	recording-surface-pattern.svg.rgb24.ref.png \
+	recording-surface-pattern.xlib.argb32.ref.png \
+	recording-surface-pattern.xlib.rgb24.ref.png \
+	rectangle-rounding-error.ref.png \
+	rectilinear-dash.quartz.xfail.png \
+	rectilinear-dash.ref.png \
+	rectilinear-fill.ref.png \
+	rectilinear-grid.image16.ref.png \
+	rectilinear-grid.ref.png \
+	rectilinear-miter-limit.ps2.ref.png \
+	rectilinear-miter-limit.ps3.ref.png \
+	rectilinear-miter-limit.ref.png \
+	rectilinear-stroke.quartz.xfail.png \
+	rectilinear-stroke.ref.png \
+	reflected-stroke.image16.ref.png \
+	reflected-stroke.ps.ref.png \
+	reflected-stroke.ref.png \
+	rel-path.ps2.rgb24.ref.png \
+	rel-path.ps3.rgb24.ref.png \
+	rel-path.ref.png \
+	rel-path.rgb24.ref.png \
+	rgb24-ignore-alpha.ref.png \
+	rotate-image-surface-paint.pdf.xfail.png \
+	rotate-image-surface-paint.ps.ref.png \
+	rotate-image-surface-paint.quartz.ref.png \
+	rotate-image-surface-paint.ref.png \
+	rotate-image-surface-paint.svg.ref.png \
+	rotate-image-surface-paint.svg.xfail.png \
+	rotated-clip.image16.ref.png \
+	rotated-clip.ps.ref.png \
+	rotated-clip.quartz.ref.png \
+	rotated-clip.ref.png \
+	rotated-clip.xlib.ref.png \
+	rounded-rectangle-fill.image16.ref.png \
+	rounded-rectangle-fill.ps.ref.png \
+	rounded-rectangle-fill.quartz.ref.png \
+	rounded-rectangle-fill.ref.png \
+	rounded-rectangle-fill.xlib.ref.png \
+	rounded-rectangle-stroke.image16.ref.png \
+	rounded-rectangle-stroke.ps.ref.png \
+	rounded-rectangle-stroke.ref.png \
+	rounded-rectangle-stroke.xlib.ref.png \
+	scale-down-source-surface-paint.ref.png \
+	scale-offset-image.gl.ref.png \
+	scale-offset-image.image16.ref.png \
+	scale-offset-image.pdf.argb32.ref.png \
+	scale-offset-image.pdf.rgb24.ref.png \
+	scale-offset-image.ps.ref.png \
+	scale-offset-image.quartz.ref.png \
+	scale-offset-image.ref.png \
+	scale-offset-image.script.xfail.png \
+	scale-offset-image.xfail.png \
+	scale-offset-image.xlib-fallback.xfail.png \
+	scale-offset-image.xlib.ref.png \
+	scale-offset-similar.gl.ref.png \
+	scale-offset-similar.image16.ref.png \
+	scale-offset-similar.pdf.argb32.ref.png \
+	scale-offset-similar.pdf.rgb24.ref.png \
+	scale-offset-similar.ps.ref.png \
+	scale-offset-similar.quartz.ref.png \
+	scale-offset-similar.recording.xfail.png \
+	scale-offset-similar.ref.png \
+	scale-offset-similar.script.xfail.png \
+	scale-offset-similar.xfail.png \
+	scale-offset-similar.xlib-fallback.xfail.png \
+	scale-offset-similar.xlib.xfail.png \
+	scale-source-surface-paint.pdf.argb32.xfail.png \
+	scale-source-surface-paint.pdf.rgb24.xfail.png \
+	scale-source-surface-paint.ref.png \
+	scale-source-surface-paint.rgb24.ref.png \
+	scale-source-surface-paint.svg.argb32.xfail.png \
+	scale-source-surface-paint.svg.rgb24.xfail.png \
+	select-font-face.image16.ref.png \
+	select-font-face.ps2.ref.png \
+	select-font-face.ps3.ref.png \
+	select-font-face.quartz.ref.png \
+	select-font-face.ref.png \
+	self-copy.ps2.ref.png \
+	self-copy.ps3.ref.png \
+	self-copy.ref.png \
+	self-intersecting.ps.ref.png \
+	self-intersecting.quartz.xfail.png \
+	self-intersecting.ref.png \
+	self-intersecting.xlib.ref.png \
+	set-source.ref.png \
+	set-source.rgb24.ref.png \
+	show-glyphs-advance.image16.ref.png \
+	show-glyphs-advance.ps.ref.png \
+	show-glyphs-advance.quartz.ref.png \
+	show-glyphs-advance.ref.png \
+	show-glyphs-advance.svg.ref.png \
+	show-glyphs-many.ref.png \
+	show-text-current-point.image16.ref.png \
+	show-text-current-point.ps2.ref.png \
+	show-text-current-point.ps3.ref.png \
+	show-text-current-point.quartz.ref.png \
+	show-text-current-point.ref.png \
+	skew-extreme.ps2.ref.png \
+	skew-extreme.ps3.ref.png \
+	skew-extreme.ref.png \
+	smask-fill.image16.ref.png \
+	smask-fill.quartz.ref.png \
+	smask-fill.ref.png \
+	smask-fill.svg.ref.png \
+	smask-fill.xlib.ref.png \
+	smask-image-mask.ref.png \
+	smask-mask.image16.ref.png \
+	smask-mask.pdf.xfail.png \
+	smask-mask.quartz.ref.png \
+	smask-mask.ref.png \
+	smask-mask.svg.ref.png \
+	smask-paint.image16.ref.png \
+	smask-paint.pdf.xfail.png \
+	smask-paint.quartz.ref.png \
+	smask-paint.ref.png \
+	smask-paint.svg.ref.png \
+	smask-stroke.image16.ref.png \
+	smask-stroke.pdf.xfail.png \
+	smask-stroke.quartz.ref.png \
+	smask-stroke.ref.png \
+	smask-stroke.xlib.ref.png \
+	smask-text.image16.ref.png \
+	smask-text.pdf.ref.png \
+	smask-text.ps2.ref.png \
+	smask-text.ps3.ref.png \
+	smask-text.quartz.ref.png \
+	smask-text.ref.png \
+	smask-text.script.ref.png \
+	smask-text.svg.ref.png \
+	smask-text.xlib-fallback.ref.png \
+	smask-text.xlib.ref.png \
+	smask.image16.ref.png \
+	smask.pdf.xfail.png \
+	smask.ps.ref.png \
+	smask.quartz.ref.png \
+	smask.ref.png \
+	smask.script.ref.png \
+	smask.svg.ref.png \
+	smask.xlib-fallback.ref.png \
+	smask.xlib.ref.png \
+	solid-pattern-cache-stress.ref.png \
+	source-clip-scale.gl.ref.png \
+	source-clip-scale.pdf.ref.png \
+	source-clip-scale.ps2.argb32.ref.png \
+	source-clip-scale.ps2.rgb24.ref.png \
+	source-clip-scale.ps3.argb32.ref.png \
+	source-clip-scale.ps3.rgb24.ref.png \
+	source-clip-scale.quartz.ref.png \
+	source-clip-scale.ref.png \
+	source-clip-scale.svg.ref.png \
+	source-clip.ref.png \
+	source-surface-scale-paint.ref.png \
+	source-surface-scale-paint.rgb24.ref.png \
+	spline-decomposition.image16.ref.png \
+	spline-decomposition.pdf.ref.png \
+	spline-decomposition.ps.ref.png \
+	spline-decomposition.quartz.xfail.png \
+	spline-decomposition.ref.png \
+	spline-decomposition.svg.ref.png \
+	spline-decomposition.xlib.ref.png \
+	stroke-ctm-caps.image16.ref.png \
+	stroke-ctm-caps.ps2.ref.png \
+	stroke-ctm-caps.ps3.ref.png \
+	stroke-ctm-caps.quartz.ref.png \
+	stroke-ctm-caps.ref.png \
+	stroke-image.image16.ref.png \
+	stroke-image.pdf.ref.png \
+	stroke-image.ps.ref.png \
+	stroke-image.quartz.ref.png \
+	stroke-image.ref.png \
+	stroke-image.xlib.ref.png \
+	stroke-open-box.ref.png \
+	subsurface-image-repeat.image16.ref.png \
+	subsurface-image-repeat.ref.png \
+	subsurface-modify-child.ref.png \
+	subsurface-modify-parent.ref.png \
+	subsurface-outside-target.argb32.ref.png \
+	subsurface-outside-target.rgb24.ref.png \
+	subsurface-pad.quartz.xfail.png \
+	subsurface-pad.ref.png \
+	subsurface-reflect.ref.png \
+	subsurface-repeat.ref.png \
+	subsurface-similar-repeat.ref.png \
+	subsurface.image16.ref.png \
+	subsurface.ps.ref.png \
+	subsurface.ref.png \
+	subsurface.xlib.ref.png \
+	surface-pattern-big-scale-down.ps.ref.png \
+	surface-pattern-big-scale-down.quartz.ref.png \
+	surface-pattern-big-scale-down.ref.png \
+	surface-pattern-operator.argb32.ref.png \
+	surface-pattern-operator.image16.ref.png \
+	surface-pattern-operator.pdf.argb32.xfail.png \
+	surface-pattern-operator.pdf.rgb24.xfail.png \
+	surface-pattern-operator.quartz.argb32.ref.png \
+	surface-pattern-operator.quartz.rgb24.ref.png \
+	surface-pattern-operator.rgb24.ref.png \
+	surface-pattern-operator.xlib.argb32.ref.png \
+	surface-pattern-operator.xlib.rgb24.ref.png \
+	surface-pattern-scale-down-extend-none.quartz.ref.png \
+	surface-pattern-scale-down-extend-none.ref.png \
+	surface-pattern-scale-down-extend-pad.quartz.xfail.png \
+	surface-pattern-scale-down-extend-pad.ref.png \
+	surface-pattern-scale-down-extend-reflect.quartz.ref.png \
+	surface-pattern-scale-down-extend-reflect.ref.png \
+	surface-pattern-scale-down-extend-repeat.quartz.ref.png \
+	surface-pattern-scale-down-extend-repeat.ref.png \
+	surface-pattern-scale-down.image16.ref.png \
+	surface-pattern-scale-down.pdf.ref.png \
+	surface-pattern-scale-down.ps2.ref.png \
+	surface-pattern-scale-down.ps3.ref.png \
+	surface-pattern-scale-down.quartz.ref.png \
+	surface-pattern-scale-down.ref.png \
+	surface-pattern-scale-up.image16.ref.png \
+	surface-pattern-scale-up.pdf.ref.png \
+	surface-pattern-scale-up.ps2.ref.png \
+	surface-pattern-scale-up.ps3.ref.png \
+	surface-pattern-scale-up.quartz.xfail.png \
+	surface-pattern-scale-up.ref.png \
+	surface-pattern.image16.ref.png \
+	surface-pattern.pdf.xfail.png \
+	surface-pattern.ps.xfail.png \
+	surface-pattern.quartz.xfail.png \
+	surface-pattern.ref.png \
+	surface-pattern.svg.xfail.png \
+	svg-surface-source.argb32.ref.png \
+	svg-surface-source.image16.ref.png \
+	svg-surface-source.rgb24.ref.png \
+	svg-surface-source.svg12.argb32.xfail.png \
+	svg-surface-source.svg12.rgb24.xfail.png \
+	test-fallback16-surface-source.ps.ref.png \
+	test-fallback16-surface-source.svg12.argb32.xfail.png \
+	test-fallback16-surface-source.svg12.rgb24.xfail.png \
+	text-antialias-gray.image16.ref.png \
+	text-antialias-gray.quartz.ref.png \
+	text-antialias-gray.ref.png \
+	text-antialias-none.quartz.ref.png \
+	text-antialias-none.ref.png \
+	text-antialias-subpixel.image16.ref.png \
+	text-antialias-subpixel.quartz.ref.png \
+	text-antialias-subpixel.ref.png \
+	text-glyph-range.image16.ref.png \
+	text-glyph-range.ps.ref.png \
+	text-glyph-range.quartz.ref.png \
+	text-glyph-range.ref.png \
+	text-pattern.pdf.argb32.ref.png \
+	text-pattern.pdf.rgb24.ref.png \
+	text-pattern.ps3.argb32.ref.png \
+	text-pattern.ps3.rgb24.ref.png \
+	text-pattern.quartz.argb32.ref.png \
+	text-pattern.quartz.rgb24.ref.png \
+	text-pattern.ref.png \
+	text-pattern.rgb24.ref.png \
+	text-pattern.svg.argb32.ref.png \
+	text-pattern.svg.rgb24.ref.png \
+	text-rotate.image16.ref.png \
+	text-rotate.pdf.ref.png \
+	text-rotate.ps.ref.png \
+	text-rotate.quartz.ref.png \
+	text-rotate.ref.png \
+	text-rotate.svg.ref.png \
+	text-rotate.xlib-fallback.ref.png \
+	text-rotate.xlib.ref.png \
+	text-transform.image16.ref.png \
+	text-transform.pdf.ref.png \
+	text-transform.ps.ref.png \
+	text-transform.ref.png \
+	text-transform.svg.ref.png \
+	transforms.image16.ref.png \
+	transforms.ps2.ref.png \
+	transforms.ps3.ref.png \
+	transforms.ref.png \
+	translate-show-surface.ref.png \
+	trap-clip.image16.ref.png \
+	trap-clip.ps2.argb32.ref.png \
+	trap-clip.ps2.rgb24.ref.png \
+	trap-clip.ps3.argb32.ref.png \
+	trap-clip.ps3.rgb24.ref.png \
+	trap-clip.quartz.argb32.ref.png \
+	trap-clip.quartz.rgb24.ref.png \
+	trap-clip.ref.png \
+	trap-clip.rgb24.ref.png \
+	trap-clip.test-paginated.argb32.ref.png \
+	trap-clip.xlib.ref.png \
+	trap-clip.xlib.rgb24.ref.png \
+	twin-antialias-gray.image16.ref.png \
+	twin-antialias-gray.ref.png \
+	twin-antialias-gray.xlib.ref.png \
+	twin-antialias-mixed.image16.ref.png \
+	twin-antialias-mixed.ref.png \
+	twin-antialias-mixed.xlib.ref.png \
+	twin-antialias-none.ref.png \
+	twin-antialias-none.xlib.ref.png \
+	twin-antialias-subpixel.image16.ref.png \
+	twin-antialias-subpixel.ref.png \
+	twin-antialias-subpixel.xlib.ref.png \
+	twin.image16.ref.png \
+	twin.ps.ref.png \
+	twin.ref.png \
+	twin.svg.ref.png \
+	twin.xlib.ref.png \
+	unaligned-box.ref.png \
+	unantialiased-shapes.quartz.ref.png \
+	unantialiased-shapes.ref.png \
+	unbounded-operator.gl.argb32.xfail.png \
+	unbounded-operator.gl.rgb24.xfail.png \
+	unbounded-operator.image16.ref.png \
+	unbounded-operator.pdf.argb32.ref.png \
+	unbounded-operator.ps2.argb32.ref.png \
+	unbounded-operator.ps3.argb32.ref.png \
+	unbounded-operator.quartz.argb32.ref.png \
+	unbounded-operator.quartz.rgb24.ref.png \
+	unbounded-operator.ref.png \
+	unbounded-operator.rgb24.ref.png \
+	unbounded-operator.svg12.argb32.ref.png \
+	unbounded-operator.svg12.rgb24.xfail.png \
+	unbounded-operator.xlib.rgb24.ref.png \
+	user-font-mask.image16.ref.png \
+	user-font-mask.pdf.ref.png \
+	user-font-mask.ps2.ref.png \
+	user-font-mask.ps3.ref.png \
+	user-font-mask.ref.png \
+	user-font-mask.svg.ref.png \
+	user-font-proxy.image16.ref.png \
+	user-font-proxy.pdf.argb32.ref.png \
+	user-font-proxy.pdf.ref.png \
+	user-font-proxy.pdf.rgb24.ref.png \
+	user-font-proxy.ps.ref.png \
+	user-font-proxy.quartz.ref.png \
+	user-font-proxy.ref.png \
+	user-font-proxy.svg.ref.png \
+	user-font-proxy.xlib.ref.png \
+	user-font-rescale.image16.ref.png \
+	user-font-rescale.ps.ref.png \
+	user-font-rescale.quartz.ref.png \
+	user-font-rescale.ref.png \
+	user-font-rescale.svg.ref.png \
+	user-font.image16.ref.png \
+	user-font.pdf.ref.png \
+	user-font.ps.ref.png \
+	user-font.quartz.ref.png \
+	user-font.ref.png \
+	user-font.svg.ref.png \
+	user-font.xlib.ref.png \
+	white-in-noop.ref.png \
+	xcb-stress-cache.ref.png \
+	xcb-surface-source.argb32.ref.png \
+	xcb-surface-source.image16.ref.png \
+	xcb-surface-source.ps.argb32.ref.png \
+	xcb-surface-source.ps.rgb24.ref.png \
+	xcb-surface-source.rgb24.ref.png \
+	xcomposite-projection.image16.ref.png \
+	xcomposite-projection.quartz.ref.png \
+	xcomposite-projection.ref.png \
+	xlib-expose-event.image16.ref.png \
+	xlib-expose-event.ps.ref.png \
+	xlib-expose-event.ref.png \
+	xlib-surface-source.argb32.ref.png \
+	xlib-surface-source.image16.ref.png \
+	xlib-surface-source.ps.argb32.ref.png \
+	xlib-surface-source.ps.rgb24.ref.png \
+	xlib-surface-source.rgb24.ref.png \
+	xlib-surface-source.svg12.argb32.xfail.png \
+	xlib-surface-source.svg12.rgb24.xfail.png \
+	zero-alpha.ref.png \
+	zero-mask.ref.png \
+	zero-mask.rgb24.ref.png


More information about the cairo-commit mailing list