[cairo-commit] 4 commits - src/cairo-quartz-surface.c test/cairo-test.c test/clip-zero.c test/pthread-show-text.c test/reference test/show-glyphs-many.c test/text-cache-crash.c test/user-font-proxy.c

Andrea Canciani ranma42 at kemper.freedesktop.org
Mon Jul 27 03:46:56 PDT 2015


 dev/null                                                              |binary
 src/cairo-quartz-surface.c                                            |   17 +++++++++-
 test/cairo-test.c                                                     |    4 ++
 test/clip-zero.c                                                      |    2 -
 test/pthread-show-text.c                                              |    4 +-
 test/reference/a1-clip-fill-rule.quartz.ref.png                       |binary
 test/reference/a1-line-width.quartz.ref.png                           |binary
 test/reference/a1-rectilinear-grid.quartz.ref.png                     |binary
 test/reference/a1-sample.quartz.xfail.png                             |binary
 test/reference/a1-tiger.quartz.xfail.png                              |binary
 test/reference/arc-direction.quartz.ref.png                           |binary
 test/reference/arc-looping-dash.quartz.xfail.png                      |binary
 test/reference/big-little-triangle.quartz.rgb24.ref.png               |binary
 test/reference/bug-51910.quartz.ref.png                               |binary
 test/reference/bug-extents.quartz.ref.png                             |binary
 test/reference/bug-seams.quartz.xfail.png                             |binary
 test/reference/bug-spline.quartz.ref.png                              |binary
 test/reference/caps-05.quartz.ref.png                                 |binary
 test/reference/caps-1.quartz.ref.png                                  |binary
 test/reference/caps-joins-05.quartz.ref.png                           |binary
 test/reference/caps-joins-1.quartz.ref.png                            |binary
 test/reference/caps-joins-alpha.quartz.ref.png                        |binary
 test/reference/caps-tails-curve.quartz.ref.png                        |binary
 test/reference/clear.quartz.argb32.ref.png                            |binary
 test/reference/clear.quartz.rgb24.ref.png                             |binary
 test/reference/clip-complex-bug61592.quartz.ref.png                   |binary
 test/reference/clip-disjoint-hatching.quartz.ref.png                  |binary
 test/reference/clip-disjoint.quartz.ref.png                           |binary
 test/reference/clip-fill.quartz.ref.png                               |binary
 test/reference/clip-group-shapes-circles.quartz.ref.png               |binary
 test/reference/clip-intersect.quartz.ref.png                          |binary
 test/reference/clip-nesting.quartz.argb32.ref.png                     |binary
 test/reference/clip-nesting.quartz.rgb24.ref.png                      |binary
 test/reference/clip-operator.quartz.argb32.ref.png                    |binary
 test/reference/clip-operator.quartz.rgb24.ref.png                     |binary
 test/reference/clip-polygons.quartz.xfail.png                         |binary
 test/reference/clip-rotate-image-surface-paint.quartz.ref.png         |binary
 test/reference/clip-shape.quartz.ref.png                              |binary
 test/reference/clip-stroke-unbounded.quartz.argb32.ref.png            |binary
 test/reference/clip-text.quartz.ref.png                               |binary
 test/reference/close-path-current-point.quartz.ref.png                |binary
 test/reference/culled-glyphs.quartz.ref.png                           |binary
 test/reference/dash-caps-joins.quartz.xfail.png                       |binary
 test/reference/dash-curve.quartz.xfail.png                            |binary
 test/reference/dash-scale.quartz.xfail.png                            |binary
 test/reference/dash-state.quartz.xfail.png                            |binary
 test/reference/dash-zero-length.quartz.argb32.xfail.png               |binary
 test/reference/dash-zero-length.quartz.rgb24.xfail.png                |binary
 test/reference/degenerate-path.quartz.argb32.xfail.png                |binary
 test/reference/degenerate-path.quartz.rgb24.xfail.png                 |binary
 test/reference/degenerate-solid-dash.quartz.xfail.png                 |binary
 test/reference/drunkard-tails.quartz.ref.png                          |binary
 test/reference/extended-blend-alpha-mask.quartz.argb32.ref.png        |binary
 test/reference/extended-blend-alpha-mask.quartz.rgb24.ref.png         |binary
 test/reference/extended-blend-alpha.quartz.argb32.ref.png             |binary
 test/reference/extended-blend-alpha.quartz.rgb24.ref.png              |binary
 test/reference/extended-blend-mask.quartz.argb32.ref.png              |binary
 test/reference/extended-blend-mask.quartz.rgb24.ref.png               |binary
 test/reference/extended-blend-solid-alpha.quartz.argb32.ref.png       |binary
 test/reference/extended-blend-solid-alpha.quartz.rgb24.ref.png        |binary
 test/reference/extended-blend-solid.quartz.argb32.ref.png             |binary
 test/reference/extended-blend-solid.quartz.rgb24.ref.png              |binary
 test/reference/extended-blend.quartz.argb32.ref.png                   |binary
 test/reference/extended-blend.quartz.rgb24.ref.png                    |binary
 test/reference/fallback.quartz.argb32.ref.png                         |binary
 test/reference/fallback.quartz.rgb24.ref.png                          |binary
 test/reference/fill-alpha-pattern.quartz.ref.png                      |binary
 test/reference/fill-alpha.quartz.ref.png                              |binary
 test/reference/fill-and-stroke.quartz.ref.png                         |binary
 test/reference/fill-image.quartz.ref.png                              |binary
 test/reference/filter-nearest-transformed.quartz.xfail.png            |binary
 test/reference/finer-grained-fallbacks.quartz.argb32.ref.png          |binary
 test/reference/finer-grained-fallbacks.quartz.rgb24.ref.png           |binary
 test/reference/font-matrix-translation.quartz.ref.png                 |binary
 test/reference/ft-text-vertical-layout-type1.quartz.ref.png           |binary
 test/reference/ft-text-vertical-layout-type3.quartz.ref.png           |binary
 test/reference/gradient-constant-alpha.quartz.ref.png                 |binary
 test/reference/group-unaligned.quartz.ref.png                         |binary
 test/reference/halo-transform.quartz.ref.png                          |binary
 test/reference/halo.quartz.ref.png                                    |binary
 test/reference/hatchings.quartz.ref.png                               |binary
 test/reference/huge-radial.quartz.ref.png                             |binary
 test/reference/inverse-text.quartz.ref.png                            |binary
 test/reference/inverted-clip.quartz.rgb24.ref.png                     |binary
 test/reference/joins-loop.quartz.ref.png                              |binary
 test/reference/joins-retrace.quartz.ref.png                           |binary
 test/reference/leaky-dash.quartz.xfail.png                            |binary
 test/reference/line-width-large-overlap-dashed.quartz.xfail.png       |binary
 test/reference/line-width-large-overlap-rotated.quartz.ref.png        |binary
 test/reference/line-width-overlap-dashed.quartz.xfail.png             |binary
 test/reference/linear-gradient-subset.quartz.ref.png                  |binary
 test/reference/linear-gradient.quartz.ref.png                         |binary
 test/reference/mask-alpha.quartz.argb32.ref.png                       |binary
 test/reference/mask-alpha.quartz.rgb24.ref.png                        |binary
 test/reference/mask.quartz.argb32.ref.png                             |binary
 test/reference/new-sub-path.quartz.argb32.ref.png                     |binary
 test/reference/new-sub-path.quartz.rgb24.ref.png                      |binary
 test/reference/operator-clear.quartz.argb32.ref.png                   |binary
 test/reference/operator-clear.quartz.rgb24.ref.png                    |binary
 test/reference/operator-source.quartz.argb32.ref.png                  |binary
 test/reference/operator-source.quartz.rgb24.ref.png                   |binary
 test/reference/over-above-source.quartz.argb32.ref.png                |binary
 test/reference/over-above-source.quartz.rgb24.ref.png                 |binary
 test/reference/over-around-source.quartz.argb32.ref.png               |binary
 test/reference/over-around-source.quartz.rgb24.ref.png                |binary
 test/reference/over-below-source.quartz.rgb24.ref.png                 |binary
 test/reference/over-between-source.quartz.argb32.ref.png              |binary
 test/reference/over-between-source.quartz.rgb24.ref.png               |binary
 test/reference/overlapping-dash-caps.quartz.ref.png                   |binary
 test/reference/overlapping-glyphs.quartz.argb32.ref.png               |binary
 test/reference/overlapping-glyphs.quartz.rgb24.ref.png                |binary
 test/reference/paint-with-alpha-clip-mask.quartz.ref.png              |binary
 test/reference/partial-clip-text-bottom.quartz.ref.png                |binary
 test/reference/partial-clip-text-left.quartz.ref.png                  |binary
 test/reference/partial-clip-text-right.quartz.ref.png                 |binary
 test/reference/partial-clip-text-top.quartz.ref.png                   |binary
 test/reference/pixman-downscale-best-24.quartz.ref.png                |binary
 test/reference/pixman-downscale-best-95.quartz.ref.png                |binary
 test/reference/pixman-downscale-bilinear-95.quartz.ref.png            |binary
 test/reference/pixman-downscale-fast-95.quartz.ref.png                |binary
 test/reference/pixman-downscale-good-95.quartz.ref.png                |binary
 test/reference/pixman-downscale-nearest-95.quartz.ref.png             |binary
 test/reference/pixman-rotate.quartz.rgb24.ref.png                     |binary
 test/reference/pthread-same-source.quartz.ref.png                     |binary
 test/reference/pthread-show-text.quartz.ref.png                       |binary
 test/reference/push-group-color.quartz.ref.png                        |binary
 test/reference/push-group.quartz.argb32.ref.png                       |binary
 test/reference/push-group.quartz.rgb24.ref.png                        |binary
 test/reference/radial-gradient-mask-source.quartz.argb32.ref.png      |binary
 test/reference/radial-gradient-mask-source.quartz.rgb24.ref.png       |binary
 test/reference/radial-gradient-mask-source.rgb24.ref.png              |binary
 test/reference/radial-gradient-mask.quartz.ref.png                    |binary
 test/reference/radial-gradient-one-stop.quartz.ref.png                |binary
 test/reference/radial-gradient-source.quartz.argb32.ref.png           |binary
 test/reference/radial-gradient-source.quartz.rgb24.ref.png            |binary
 test/reference/radial-gradient.quartz.ref.png                         |binary
 test/reference/random-clip.quartz.ref.png                             |binary
 test/reference/record-mesh.ref.png                                    |binary
 test/reference/record-select-font-face.quartz.ref.png                 |binary
 test/reference/record1414x-fill-alpha.quartz.ref.png                  |binary
 test/reference/record1414x-paint-alpha-clip-mask.quartz.ref.png       |binary
 test/reference/record1414x-select-font-face.quartz.ref.png            |binary
 test/reference/record1414x-text-transform.quartz.ref.png              |binary
 test/reference/record2x-fill-alpha.quartz.ref.png                     |binary
 test/reference/record2x-select-font-face.quartz.ref.png               |binary
 test/reference/record90-paint-alpha-clip.quartz.ref.png               |binary
 test/reference/record90-select-font-face.quartz.ref.png               |binary
 test/reference/record90-self-intersecting.quartz.xfail.png            |binary
 test/reference/recordflip-fill-alpha.quartz.ref.png                   |binary
 test/reference/recordflip-paint-alpha-clip-mask.quartz.ref.png        |binary
 test/reference/recordflip-select-font-face.quartz.ref.png             |binary
 test/reference/recordflip-whole-fill-alpha.quartz.ref.png             |binary
 test/reference/recordflip-whole-paint-alpha-clip-mask.quartz.ref.png  |binary
 test/reference/recordflip-whole-select-font-face.quartz.ref.png       |binary
 test/reference/recording-surface-extend-none.quartz.argb32.ref.png    |binary
 test/reference/recording-surface-extend-none.quartz.rgb24.ref.png     |binary
 test/reference/recording-surface-extend-pad.argb32.xfail.png          |binary
 test/reference/recording-surface-extend-pad.rgb24.xfail.png           |binary
 test/reference/recording-surface-extend-reflect.quartz.argb32.ref.png |binary
 test/reference/recording-surface-extend-reflect.quartz.rgb24.ref.png  |binary
 test/reference/recording-surface-extend-repeat.quartz.argb32.ref.png  |binary
 test/reference/recording-surface-extend-repeat.quartz.rgb24.ref.png   |binary
 test/reference/recording-surface-over.quartz.argb32.ref.png           |binary
 test/reference/recording-surface-over.quartz.rgb24.ref.png            |binary
 test/reference/recording-surface-source.quartz.argb32.ref.png         |binary
 test/reference/recording-surface-source.quartz.rgb24.ref.png          |binary
 test/reference/rectilinear-dash-scale-unaligned.quartz.xfail.png      |binary
 test/reference/rectilinear-dash-scale.quartz.xfail.png                |binary
 test/reference/rectilinear-dash.quartz.xfail.png                      |binary
 test/reference/reflected-stroke.quartz.ref.png                        |binary
 test/reference/rotate-clip-image-surface-paint.quartz.ref.png         |binary
 test/reference/rotate-image-surface-paint.quartz.ref.png              |binary
 test/reference/rotated-clip.quartz.ref.png                            |binary
 test/reference/rounded-rectangle-stroke.quartz.ref.png                |binary
 test/reference/shape-sierpinski.quartz.ref.png                        |binary
 test/reference/show-glyphs-advance.quartz.ref.png                     |binary
 test/reference/smask-fill.quartz.ref.png                              |binary
 test/reference/smask-stroke.quartz.ref.png                            |binary
 test/reference/smask-text.quartz.ref.png                              |binary
 test/reference/smask.quartz.ref.png                                   |binary
 test/reference/spline-decomposition.quartz.xfail.png                  |binary
 test/reference/stroke-clipped.quartz.ref.png                          |binary
 test/reference/stroke-image.quartz.ref.png                            |binary
 test/reference/stroke-pattern.quartz.ref.png                          |binary
 test/reference/subsurface-outside-target.quartz.argb32.xfail.png      |binary
 test/reference/subsurface-outside-target.quartz.rgb24.xfail.png       |binary
 test/reference/subsurface-scale.quartz.ref.png                        |binary
 test/reference/surface-pattern-operator.quartz.argb32.ref.png         |binary
 test/reference/surface-pattern-operator.quartz.rgb24.ref.png          |binary
 test/reference/surface-pattern-scale-down-extend-pad.quartz.xfail.png |binary
 test/reference/surface-pattern-scale-down.quartz.ref.png              |binary
 test/reference/surface-pattern-scale-up.quartz.ref.png                |binary
 test/reference/text-antialias-gray.quartz.ref.png                     |binary
 test/reference/text-antialias-subpixel-bgr.quartz.xfail.png           |binary
 test/reference/text-antialias-subpixel-rgb.quartz.ref.png             |binary
 test/reference/text-antialias-subpixel-vbgr.quartz.xfail.png          |binary
 test/reference/text-antialias-subpixel-vrgb.quartz.xfail.png          |binary
 test/reference/text-antialias-subpixel.quartz.ref.png                 |binary
 test/reference/text-glyph-range.quartz.xfail.png                      |binary
 test/reference/text-pattern.quartz.argb32.ref.png                     |binary
 test/reference/text-pattern.quartz.rgb24.ref.png                      |binary
 test/reference/text-rotate.quartz.ref.png                             |binary
 test/reference/tiger.quartz.ref.png                                   |binary
 test/reference/tighten-bounds.quartz.argb32.ref.png                   |binary
 test/reference/tighten-bounds.quartz.rgb24.ref.png                    |binary
 test/reference/trap-clip.quartz.argb32.ref.png                        |binary
 test/reference/trap-clip.quartz.rgb24.ref.png                         |binary
 test/reference/twin-antialias-gray.quartz.ref.png                     |binary
 test/reference/twin-antialias-none.quartz.ref.png                     |binary
 test/reference/twin-antialias-subpixel.quartz.ref.png                 |binary
 test/reference/twin.quartz.ref.png                                    |binary
 test/reference/user-font-proxy.quartz.ref.png                         |binary
 test/reference/user-font.quartz.ref.png                               |binary
 test/reference/world-map-fill.quartz.ref.png                          |binary
 test/reference/world-map-stroke.quartz.ref.png                        |binary
 test/reference/world-map.quartz.ref.png                               |binary
 test/reference/xcomposite-projection.quartz.ref.png                   |binary
 test/show-glyphs-many.c                                               |    2 -
 test/text-cache-crash.c                                               |    4 +-
 test/user-font-proxy.c                                                |    2 -
 220 files changed, 27 insertions(+), 8 deletions(-)

New commits:
commit 66bc7b8cb0e753006fa838a8badcf5cb7528d6f7
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Thu Apr 9 00:17:24 2015 +0200

    quartz: be more strict about the behavior of blend operators
    
    Some blend operators have a (small, but potentially noticeable)
    different behaviour in Quartz and pixman. Use the Quartz ones only for
    the operators which match pixman except for rounding errors.
    
    Fixes:
     - extended-blend
     - extended-blend-alpha
     - extended-blend-mask
     - extended-blend-alpha-mask
     - extended-blend-solid
     - extended-blend-solid-alpha

diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c
index 4c8c2e4..5e9b376 100644
--- a/src/cairo-quartz-surface.c
+++ b/src/cairo-quartz-surface.c
@@ -508,9 +508,13 @@ _cairo_cgcontext_set_cairo_operator (CGContextRef context, cairo_operator_t op)
 
     /* Quartz doesn't support SATURATE at all. COLOR_DODGE and
      * COLOR_BURN in Quartz follow the ISO32000 definition, but cairo
-     * uses the definition from the Adobe Supplement.
+     * uses the definition from the Adobe Supplement.  Also fallback
+     * on SOFT_LIGHT and HSL_HUE, because their results are
+     * significantly different from those provided by pixman.
      */
     if (op == CAIRO_OPERATOR_SATURATE ||
+	op == CAIRO_OPERATOR_SOFT_LIGHT ||
+	op == CAIRO_OPERATOR_HSL_HUE ||
 	op == CAIRO_OPERATOR_COLOR_DODGE ||
 	op == CAIRO_OPERATOR_COLOR_BURN)
     {
commit 6210e347712127260dd72b0f03a8604c8d22fdca
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Wed Apr 8 17:10:32 2015 +0200

    quartz: Align filtering quality with image backend
    
    The Quartz framework provides several quality settings, but they were
    not used. Now the translation of cairo_filter_t to Quartz filtering
    modes tries to match the quality settings from image as much as
    possible.
    
    Specifically, CAIRO_FILTER_GOOD and CAIRO_FILTER_BILINEAR are now
    converted to kCGInterpolationLow, which seems to be a bilinear filter.
    
    Fixes:
     - pixman-downscale-bilinear-24
     - pixman-downscale-bilinear-95
     - pixman-downscale-good-24
     - pixman-downscale-good-95
     - pthread-same-source
     - recording-surface-extend-none
     - recording-surface-extend-reflect
     - recording-surface-extend-repeat
     - recording-surface-over
     - recording-surface-source
     - surface-pattern-big-scale-down
     - surface-pattern-scale-down
     - surface-pattern-scale-down-extend-none
     - surface-pattern-scale-down-extend-reflect
     - surface-pattern-scale-down-extend-repeat

diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c
index 1116ff9..4c8c2e4 100644
--- a/src/cairo-quartz-surface.c
+++ b/src/cairo-quartz-surface.c
@@ -605,14 +605,25 @@ _cairo_quartz_cairo_line_join_to_quartz (cairo_line_join_t cjoin)
 static inline CGInterpolationQuality
 _cairo_quartz_filter_to_quartz (cairo_filter_t filter)
 {
+    /* The CGInterpolationQuality enumeration values seem to have the
+     * following meaning:
+     *  - kCGInterpolationNone: nearest neighbor
+     *  - kCGInterpolationLow: bilinear
+     *  - kCGInterpolationHigh: bicubic? Lanczos?
+     */
+
     switch (filter) {
     case CAIRO_FILTER_NEAREST:
     case CAIRO_FILTER_FAST:
 	return kCGInterpolationNone;
 
     case CAIRO_FILTER_BEST:
+	return kCGInterpolationHigh;
+
     case CAIRO_FILTER_GOOD:
     case CAIRO_FILTER_BILINEAR:
+	return kCGInterpolationLow;
+
     case CAIRO_FILTER_GAUSSIAN:
 	return kCGInterpolationDefault;
 
commit 68e12cd37f3f48d7100a4f6e20f13de18f9f7939
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Thu Apr 16 11:58:41 2015 +0200

    test: Update quartz reference images

diff --git a/test/reference/a1-clip-fill-rule.quartz.ref.png b/test/reference/a1-clip-fill-rule.quartz.ref.png
new file mode 100644
index 0000000..c4658a8
Binary files /dev/null and b/test/reference/a1-clip-fill-rule.quartz.ref.png differ
diff --git a/test/reference/a1-line-width.quartz.ref.png b/test/reference/a1-line-width.quartz.ref.png
new file mode 100644
index 0000000..bf96a4c
Binary files /dev/null and b/test/reference/a1-line-width.quartz.ref.png differ
diff --git a/test/reference/a1-rectilinear-grid.quartz.ref.png b/test/reference/a1-rectilinear-grid.quartz.ref.png
new file mode 100644
index 0000000..8e9dd19
Binary files /dev/null and b/test/reference/a1-rectilinear-grid.quartz.ref.png differ
diff --git a/test/reference/a1-sample.quartz.xfail.png b/test/reference/a1-sample.quartz.xfail.png
new file mode 100644
index 0000000..8f1815b
Binary files /dev/null and b/test/reference/a1-sample.quartz.xfail.png differ
diff --git a/test/reference/a1-tiger.quartz.xfail.png b/test/reference/a1-tiger.quartz.xfail.png
new file mode 100644
index 0000000..da3aec6
Binary files /dev/null and b/test/reference/a1-tiger.quartz.xfail.png differ
diff --git a/test/reference/arc-direction.quartz.ref.png b/test/reference/arc-direction.quartz.ref.png
new file mode 100644
index 0000000..43e4afc
Binary files /dev/null and b/test/reference/arc-direction.quartz.ref.png differ
diff --git a/test/reference/arc-looping-dash.quartz.ref.png b/test/reference/arc-looping-dash.quartz.ref.png
deleted file mode 100644
index 70304ca..0000000
Binary files a/test/reference/arc-looping-dash.quartz.ref.png and /dev/null differ
diff --git a/test/reference/arc-looping-dash.quartz.xfail.png b/test/reference/arc-looping-dash.quartz.xfail.png
new file mode 100644
index 0000000..5aeffe2
Binary files /dev/null and b/test/reference/arc-looping-dash.quartz.xfail.png differ
diff --git a/test/reference/big-little-triangle.quartz.rgb24.ref.png b/test/reference/big-little-triangle.quartz.rgb24.ref.png
new file mode 100644
index 0000000..4914a4a
Binary files /dev/null and b/test/reference/big-little-triangle.quartz.rgb24.ref.png differ
diff --git a/test/reference/bug-51910.quartz.ref.png b/test/reference/bug-51910.quartz.ref.png
new file mode 100644
index 0000000..cc900e6
Binary files /dev/null and b/test/reference/bug-51910.quartz.ref.png differ
diff --git a/test/reference/bug-extents.quartz.ref.png b/test/reference/bug-extents.quartz.ref.png
index 2973448..193d3e7 100644
Binary files a/test/reference/bug-extents.quartz.ref.png and b/test/reference/bug-extents.quartz.ref.png differ
diff --git a/test/reference/bug-seams.quartz.xfail.png b/test/reference/bug-seams.quartz.xfail.png
new file mode 100644
index 0000000..25c98b3
Binary files /dev/null and b/test/reference/bug-seams.quartz.xfail.png differ
diff --git a/test/reference/bug-spline.quartz.ref.png b/test/reference/bug-spline.quartz.ref.png
new file mode 100644
index 0000000..34daba0
Binary files /dev/null and b/test/reference/bug-spline.quartz.ref.png differ
diff --git a/test/reference/caps-05.quartz.ref.png b/test/reference/caps-05.quartz.ref.png
new file mode 100644
index 0000000..c104602
Binary files /dev/null and b/test/reference/caps-05.quartz.ref.png differ
diff --git a/test/reference/caps-1.quartz.ref.png b/test/reference/caps-1.quartz.ref.png
new file mode 100644
index 0000000..668ac69
Binary files /dev/null and b/test/reference/caps-1.quartz.ref.png differ
diff --git a/test/reference/caps-joins-05.quartz.ref.png b/test/reference/caps-joins-05.quartz.ref.png
new file mode 100644
index 0000000..21a8338
Binary files /dev/null and b/test/reference/caps-joins-05.quartz.ref.png differ
diff --git a/test/reference/caps-joins-1.quartz.ref.png b/test/reference/caps-joins-1.quartz.ref.png
new file mode 100644
index 0000000..8c549d3
Binary files /dev/null and b/test/reference/caps-joins-1.quartz.ref.png differ
diff --git a/test/reference/caps-joins-alpha.quartz.ref.png b/test/reference/caps-joins-alpha.quartz.ref.png
index 190c1e9..f4cb950 100644
Binary files a/test/reference/caps-joins-alpha.quartz.ref.png and b/test/reference/caps-joins-alpha.quartz.ref.png differ
diff --git a/test/reference/caps-joins-curve.quartz.ref.png b/test/reference/caps-joins-curve.quartz.ref.png
deleted file mode 100644
index ec3d307..0000000
Binary files a/test/reference/caps-joins-curve.quartz.ref.png and /dev/null differ
diff --git a/test/reference/caps-tails-curve.quartz.ref.png b/test/reference/caps-tails-curve.quartz.ref.png
new file mode 100644
index 0000000..489300a
Binary files /dev/null and b/test/reference/caps-tails-curve.quartz.ref.png differ
diff --git a/test/reference/clear.quartz.argb32.ref.png b/test/reference/clear.quartz.argb32.ref.png
index 12e6043..0013b11 100644
Binary files a/test/reference/clear.quartz.argb32.ref.png and b/test/reference/clear.quartz.argb32.ref.png differ
diff --git a/test/reference/clear.quartz.rgb24.ref.png b/test/reference/clear.quartz.rgb24.ref.png
index 6ea4490..021781c 100644
Binary files a/test/reference/clear.quartz.rgb24.ref.png and b/test/reference/clear.quartz.rgb24.ref.png differ
diff --git a/test/reference/clip-complex-bug61592.quartz.ref.png b/test/reference/clip-complex-bug61592.quartz.ref.png
new file mode 100644
index 0000000..3ebc707
Binary files /dev/null and b/test/reference/clip-complex-bug61592.quartz.ref.png differ
diff --git a/test/reference/clip-disjoint-hatching.quartz.ref.png b/test/reference/clip-disjoint-hatching.quartz.ref.png
new file mode 100644
index 0000000..d809133
Binary files /dev/null and b/test/reference/clip-disjoint-hatching.quartz.ref.png differ
diff --git a/test/reference/clip-disjoint.quartz.ref.png b/test/reference/clip-disjoint.quartz.ref.png
index 1006815..6bd1503 100644
Binary files a/test/reference/clip-disjoint.quartz.ref.png and b/test/reference/clip-disjoint.quartz.ref.png differ
diff --git a/test/reference/clip-fill.quartz.ref.png b/test/reference/clip-fill.quartz.ref.png
index 4f235b4..9251310 100644
Binary files a/test/reference/clip-fill.quartz.ref.png and b/test/reference/clip-fill.quartz.ref.png differ
diff --git a/test/reference/clip-group-shapes-circles.quartz.ref.png b/test/reference/clip-group-shapes-circles.quartz.ref.png
index c2ac9ea..97f7016 100644
Binary files a/test/reference/clip-group-shapes-circles.quartz.ref.png and b/test/reference/clip-group-shapes-circles.quartz.ref.png differ
diff --git a/test/reference/clip-intersect.quartz.ref.png b/test/reference/clip-intersect.quartz.ref.png
new file mode 100644
index 0000000..1fefe27
Binary files /dev/null and b/test/reference/clip-intersect.quartz.ref.png differ
diff --git a/test/reference/clip-nesting.quartz.argb32.ref.png b/test/reference/clip-nesting.quartz.argb32.ref.png
index 7bc187c..815d37a 100644
Binary files a/test/reference/clip-nesting.quartz.argb32.ref.png and b/test/reference/clip-nesting.quartz.argb32.ref.png differ
diff --git a/test/reference/clip-nesting.quartz.rgb24.ref.png b/test/reference/clip-nesting.quartz.rgb24.ref.png
index 926f5f5..0953e06 100644
Binary files a/test/reference/clip-nesting.quartz.rgb24.ref.png and b/test/reference/clip-nesting.quartz.rgb24.ref.png differ
diff --git a/test/reference/clip-operator.quartz.argb32.ref.png b/test/reference/clip-operator.quartz.argb32.ref.png
index ecf6ee2..142b212 100644
Binary files a/test/reference/clip-operator.quartz.argb32.ref.png and b/test/reference/clip-operator.quartz.argb32.ref.png differ
diff --git a/test/reference/clip-operator.quartz.rgb24.ref.png b/test/reference/clip-operator.quartz.rgb24.ref.png
index 67c628f..7b8fb6a 100644
Binary files a/test/reference/clip-operator.quartz.rgb24.ref.png and b/test/reference/clip-operator.quartz.rgb24.ref.png differ
diff --git a/test/reference/clip-polygons.quartz.xfail.png b/test/reference/clip-polygons.quartz.xfail.png
new file mode 100644
index 0000000..11afe63
Binary files /dev/null and b/test/reference/clip-polygons.quartz.xfail.png differ
diff --git a/test/reference/clip-rotate-image-surface-paint.quartz.ref.png b/test/reference/clip-rotate-image-surface-paint.quartz.ref.png
new file mode 100644
index 0000000..dc81695
Binary files /dev/null and b/test/reference/clip-rotate-image-surface-paint.quartz.ref.png differ
diff --git a/test/reference/clip-shape.quartz.ref.png b/test/reference/clip-shape.quartz.ref.png
index 2923406..664597b 100644
Binary files a/test/reference/clip-shape.quartz.ref.png and b/test/reference/clip-shape.quartz.ref.png differ
diff --git a/test/reference/clip-stroke-unbounded.quartz.argb32.ref.png b/test/reference/clip-stroke-unbounded.quartz.argb32.ref.png
index 8bd5b36..51c156a 100644
Binary files a/test/reference/clip-stroke-unbounded.quartz.argb32.ref.png and b/test/reference/clip-stroke-unbounded.quartz.argb32.ref.png differ
diff --git a/test/reference/clip-text.quartz.ref.png b/test/reference/clip-text.quartz.ref.png
index d251bfa..96df393 100644
Binary files a/test/reference/clip-text.quartz.ref.png and b/test/reference/clip-text.quartz.ref.png differ
diff --git a/test/reference/close-path-current-point.quartz.ref.png b/test/reference/close-path-current-point.quartz.ref.png
new file mode 100644
index 0000000..cd21450
Binary files /dev/null and b/test/reference/close-path-current-point.quartz.ref.png differ
diff --git a/test/reference/culled-glyphs.quartz.ref.png b/test/reference/culled-glyphs.quartz.ref.png
index 1aa2342..4da2a6c 100644
Binary files a/test/reference/culled-glyphs.quartz.ref.png and b/test/reference/culled-glyphs.quartz.ref.png differ
diff --git a/test/reference/dash-caps-joins.quartz.xfail.png b/test/reference/dash-caps-joins.quartz.xfail.png
index 0dc5433..cd9fe93 100644
Binary files a/test/reference/dash-caps-joins.quartz.xfail.png and b/test/reference/dash-caps-joins.quartz.xfail.png differ
diff --git a/test/reference/dash-curve.quartz.xfail.png b/test/reference/dash-curve.quartz.xfail.png
index b68d7a7..52da627 100644
Binary files a/test/reference/dash-curve.quartz.xfail.png and b/test/reference/dash-curve.quartz.xfail.png differ
diff --git a/test/reference/dash-scale.quartz.ref.png b/test/reference/dash-scale.quartz.ref.png
deleted file mode 100644
index 62ccdf5..0000000
Binary files a/test/reference/dash-scale.quartz.ref.png and /dev/null differ
diff --git a/test/reference/dash-scale.quartz.xfail.png b/test/reference/dash-scale.quartz.xfail.png
new file mode 100644
index 0000000..5a62c1c
Binary files /dev/null and b/test/reference/dash-scale.quartz.xfail.png differ
diff --git a/test/reference/dash-state.quartz.xfail.png b/test/reference/dash-state.quartz.xfail.png
index 993498c..ef38975 100644
Binary files a/test/reference/dash-state.quartz.xfail.png and b/test/reference/dash-state.quartz.xfail.png differ
diff --git a/test/reference/dash-zero-length.quartz.argb32.xfail.png b/test/reference/dash-zero-length.quartz.argb32.xfail.png
new file mode 100644
index 0000000..57b9260
Binary files /dev/null and b/test/reference/dash-zero-length.quartz.argb32.xfail.png differ
diff --git a/test/reference/dash-zero-length.quartz.rgb24.xfail.png b/test/reference/dash-zero-length.quartz.rgb24.xfail.png
new file mode 100644
index 0000000..68802c5
Binary files /dev/null and b/test/reference/dash-zero-length.quartz.rgb24.xfail.png differ
diff --git a/test/reference/degenerate-path.quartz.argb32.xfail.png b/test/reference/degenerate-path.quartz.argb32.xfail.png
index d655e27..302da45 100644
Binary files a/test/reference/degenerate-path.quartz.argb32.xfail.png and b/test/reference/degenerate-path.quartz.argb32.xfail.png differ
diff --git a/test/reference/degenerate-path.quartz.rgb24.xfail.png b/test/reference/degenerate-path.quartz.rgb24.xfail.png
index 5256951..45e5df9 100644
Binary files a/test/reference/degenerate-path.quartz.rgb24.xfail.png and b/test/reference/degenerate-path.quartz.rgb24.xfail.png differ
diff --git a/test/reference/degenerate-solid-dash.quartz.xfail.png b/test/reference/degenerate-solid-dash.quartz.xfail.png
new file mode 100644
index 0000000..799562a
Binary files /dev/null and b/test/reference/degenerate-solid-dash.quartz.xfail.png differ
diff --git a/test/reference/drunkard-tails.quartz.ref.png b/test/reference/drunkard-tails.quartz.ref.png
new file mode 100644
index 0000000..8e72b0a
Binary files /dev/null and b/test/reference/drunkard-tails.quartz.ref.png differ
diff --git a/test/reference/extended-blend-alpha-mask.quartz.argb32.ref.png b/test/reference/extended-blend-alpha-mask.quartz.argb32.ref.png
new file mode 100644
index 0000000..d44145f
Binary files /dev/null and b/test/reference/extended-blend-alpha-mask.quartz.argb32.ref.png differ
diff --git a/test/reference/extended-blend-alpha-mask.quartz.rgb24.ref.png b/test/reference/extended-blend-alpha-mask.quartz.rgb24.ref.png
new file mode 100644
index 0000000..7949899
Binary files /dev/null and b/test/reference/extended-blend-alpha-mask.quartz.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-alpha.quartz.argb32.ref.png b/test/reference/extended-blend-alpha.quartz.argb32.ref.png
index e5701a6..83c0ce5 100644
Binary files a/test/reference/extended-blend-alpha.quartz.argb32.ref.png and b/test/reference/extended-blend-alpha.quartz.argb32.ref.png differ
diff --git a/test/reference/extended-blend-alpha.quartz.rgb24.ref.png b/test/reference/extended-blend-alpha.quartz.rgb24.ref.png
index 477d346..1b3dae7 100644
Binary files a/test/reference/extended-blend-alpha.quartz.rgb24.ref.png and b/test/reference/extended-blend-alpha.quartz.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-mask.quartz.argb32.ref.png b/test/reference/extended-blend-mask.quartz.argb32.ref.png
new file mode 100644
index 0000000..ab48faa
Binary files /dev/null and b/test/reference/extended-blend-mask.quartz.argb32.ref.png differ
diff --git a/test/reference/extended-blend-mask.quartz.rgb24.ref.png b/test/reference/extended-blend-mask.quartz.rgb24.ref.png
new file mode 100644
index 0000000..dcc0919
Binary files /dev/null and b/test/reference/extended-blend-mask.quartz.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-solid-alpha.quartz.argb32.ref.png b/test/reference/extended-blend-solid-alpha.quartz.argb32.ref.png
new file mode 100644
index 0000000..83c0ce5
Binary files /dev/null and b/test/reference/extended-blend-solid-alpha.quartz.argb32.ref.png differ
diff --git a/test/reference/extended-blend-solid-alpha.quartz.rgb24.ref.png b/test/reference/extended-blend-solid-alpha.quartz.rgb24.ref.png
new file mode 100644
index 0000000..1b3dae7
Binary files /dev/null and b/test/reference/extended-blend-solid-alpha.quartz.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-solid.quartz.argb32.ref.png b/test/reference/extended-blend-solid.quartz.argb32.ref.png
new file mode 100644
index 0000000..14a7820
Binary files /dev/null and b/test/reference/extended-blend-solid.quartz.argb32.ref.png differ
diff --git a/test/reference/extended-blend-solid.quartz.rgb24.ref.png b/test/reference/extended-blend-solid.quartz.rgb24.ref.png
new file mode 100644
index 0000000..28ef8e1
Binary files /dev/null and b/test/reference/extended-blend-solid.quartz.rgb24.ref.png differ
diff --git a/test/reference/extended-blend.quartz.argb32.ref.png b/test/reference/extended-blend.quartz.argb32.ref.png
index 173c6e2..14a7820 100644
Binary files a/test/reference/extended-blend.quartz.argb32.ref.png and b/test/reference/extended-blend.quartz.argb32.ref.png differ
diff --git a/test/reference/extended-blend.quartz.rgb24.ref.png b/test/reference/extended-blend.quartz.rgb24.ref.png
index 56a1214..28ef8e1 100644
Binary files a/test/reference/extended-blend.quartz.rgb24.ref.png and b/test/reference/extended-blend.quartz.rgb24.ref.png differ
diff --git a/test/reference/fallback.quartz.argb32.ref.png b/test/reference/fallback.quartz.argb32.ref.png
new file mode 100644
index 0000000..c5f20bb
Binary files /dev/null and b/test/reference/fallback.quartz.argb32.ref.png differ
diff --git a/test/reference/fallback.quartz.rgb24.ref.png b/test/reference/fallback.quartz.rgb24.ref.png
new file mode 100644
index 0000000..e9876a9
Binary files /dev/null and b/test/reference/fallback.quartz.rgb24.ref.png differ
diff --git a/test/reference/fill-alpha-pattern.quartz.ref.png b/test/reference/fill-alpha-pattern.quartz.ref.png
index b612e7a..4319899 100644
Binary files a/test/reference/fill-alpha-pattern.quartz.ref.png and b/test/reference/fill-alpha-pattern.quartz.ref.png differ
diff --git a/test/reference/fill-alpha.quartz.ref.png b/test/reference/fill-alpha.quartz.ref.png
index 81cee81..858a2b3 100644
Binary files a/test/reference/fill-alpha.quartz.ref.png and b/test/reference/fill-alpha.quartz.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha-add.quartz.ref.png b/test/reference/fill-and-stroke-alpha-add.quartz.ref.png
deleted file mode 100644
index 1d89752..0000000
Binary files a/test/reference/fill-and-stroke-alpha-add.quartz.ref.png and /dev/null differ
diff --git a/test/reference/fill-and-stroke.quartz.argb32.ref.png b/test/reference/fill-and-stroke.quartz.argb32.ref.png
deleted file mode 100644
index 9440719..0000000
Binary files a/test/reference/fill-and-stroke.quartz.argb32.ref.png and /dev/null differ
diff --git a/test/reference/fill-and-stroke.quartz.ref.png b/test/reference/fill-and-stroke.quartz.ref.png
new file mode 100644
index 0000000..9440719
Binary files /dev/null and b/test/reference/fill-and-stroke.quartz.ref.png differ
diff --git a/test/reference/fill-and-stroke.quartz.rgb24.ref.png b/test/reference/fill-and-stroke.quartz.rgb24.ref.png
deleted file mode 100644
index 5ba2197..0000000
Binary files a/test/reference/fill-and-stroke.quartz.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/fill-image.quartz.ref.png b/test/reference/fill-image.quartz.ref.png
index bb205a7..141676d 100644
Binary files a/test/reference/fill-image.quartz.ref.png and b/test/reference/fill-image.quartz.ref.png differ
diff --git a/test/reference/filter-nearest-transformed.quartz.xfail.png b/test/reference/filter-nearest-transformed.quartz.xfail.png
index 246cdf4..7a1b55a 100644
Binary files a/test/reference/filter-nearest-transformed.quartz.xfail.png and b/test/reference/filter-nearest-transformed.quartz.xfail.png differ
diff --git a/test/reference/finer-grained-fallbacks.quartz.argb32.ref.png b/test/reference/finer-grained-fallbacks.quartz.argb32.ref.png
index dc05761..bca4ee4 100644
Binary files a/test/reference/finer-grained-fallbacks.quartz.argb32.ref.png and b/test/reference/finer-grained-fallbacks.quartz.argb32.ref.png differ
diff --git a/test/reference/finer-grained-fallbacks.quartz.rgb24.ref.png b/test/reference/finer-grained-fallbacks.quartz.rgb24.ref.png
index 1fdedd0..0220e7f 100644
Binary files a/test/reference/finer-grained-fallbacks.quartz.rgb24.ref.png and b/test/reference/finer-grained-fallbacks.quartz.rgb24.ref.png differ
diff --git a/test/reference/font-matrix-translation.quartz.ref.png b/test/reference/font-matrix-translation.quartz.ref.png
index 187e2c1..424e877 100644
Binary files a/test/reference/font-matrix-translation.quartz.ref.png and b/test/reference/font-matrix-translation.quartz.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type1.quartz.ref.png b/test/reference/ft-text-vertical-layout-type1.quartz.ref.png
new file mode 100644
index 0000000..5083ac5
Binary files /dev/null and b/test/reference/ft-text-vertical-layout-type1.quartz.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type1.quartz.xfail.png b/test/reference/ft-text-vertical-layout-type1.quartz.xfail.png
deleted file mode 100644
index a603b35..0000000
Binary files a/test/reference/ft-text-vertical-layout-type1.quartz.xfail.png and /dev/null differ
diff --git a/test/reference/ft-text-vertical-layout-type3.quartz.ref.png b/test/reference/ft-text-vertical-layout-type3.quartz.ref.png
index 4a063f3..08ee572 100644
Binary files a/test/reference/ft-text-vertical-layout-type3.quartz.ref.png and b/test/reference/ft-text-vertical-layout-type3.quartz.ref.png differ
diff --git a/test/reference/gradient-constant-alpha.quartz.argb32.ref.png b/test/reference/gradient-constant-alpha.quartz.argb32.ref.png
deleted file mode 100644
index a426f5a..0000000
Binary files a/test/reference/gradient-constant-alpha.quartz.argb32.ref.png and /dev/null differ
diff --git a/test/reference/gradient-constant-alpha.quartz.ref.png b/test/reference/gradient-constant-alpha.quartz.ref.png
new file mode 100644
index 0000000..5855b67
Binary files /dev/null and b/test/reference/gradient-constant-alpha.quartz.ref.png differ
diff --git a/test/reference/group-unaligned.quartz.ref.png b/test/reference/group-unaligned.quartz.ref.png
index 1711025..36f37cc 100644
Binary files a/test/reference/group-unaligned.quartz.ref.png and b/test/reference/group-unaligned.quartz.ref.png differ
diff --git a/test/reference/halo-transform.quartz.ref.png b/test/reference/halo-transform.quartz.ref.png
index 91a99ba..802b04f 100644
Binary files a/test/reference/halo-transform.quartz.ref.png and b/test/reference/halo-transform.quartz.ref.png differ
diff --git a/test/reference/halo.quartz.ref.png b/test/reference/halo.quartz.ref.png
index c5cf999..cffa79a 100644
Binary files a/test/reference/halo.quartz.ref.png and b/test/reference/halo.quartz.ref.png differ
diff --git a/test/reference/hatchings.quartz.ref.png b/test/reference/hatchings.quartz.ref.png
new file mode 100644
index 0000000..02b6a8e
Binary files /dev/null and b/test/reference/hatchings.quartz.ref.png differ
diff --git a/test/reference/huge-linear.quartz.ref.png b/test/reference/huge-linear.quartz.ref.png
deleted file mode 100644
index 3d12f7b..0000000
Binary files a/test/reference/huge-linear.quartz.ref.png and /dev/null differ
diff --git a/test/reference/huge-radial.quartz.ref.png b/test/reference/huge-radial.quartz.ref.png
index d823f86..ec1db29 100644
Binary files a/test/reference/huge-radial.quartz.ref.png and b/test/reference/huge-radial.quartz.ref.png differ
diff --git a/test/reference/inverse-text.quartz.ref.png b/test/reference/inverse-text.quartz.ref.png
new file mode 100644
index 0000000..df0ea57
Binary files /dev/null and b/test/reference/inverse-text.quartz.ref.png differ
diff --git a/test/reference/inverted-clip.quartz.rgb24.ref.png b/test/reference/inverted-clip.quartz.rgb24.ref.png
new file mode 100644
index 0000000..844e467
Binary files /dev/null and b/test/reference/inverted-clip.quartz.rgb24.ref.png differ
diff --git a/test/reference/joins-loop.quartz.ref.png b/test/reference/joins-loop.quartz.ref.png
new file mode 100644
index 0000000..f16050c
Binary files /dev/null and b/test/reference/joins-loop.quartz.ref.png differ
diff --git a/test/reference/joins-retrace.quartz.ref.png b/test/reference/joins-retrace.quartz.ref.png
new file mode 100644
index 0000000..86005c1
Binary files /dev/null and b/test/reference/joins-retrace.quartz.ref.png differ
diff --git a/test/reference/joins.quartz.ref.png b/test/reference/joins.quartz.ref.png
deleted file mode 100644
index 59b8fdb..0000000
Binary files a/test/reference/joins.quartz.ref.png and /dev/null differ
diff --git a/test/reference/leaky-dash.quartz.ref.png b/test/reference/leaky-dash.quartz.ref.png
deleted file mode 100644
index 9692819..0000000
Binary files a/test/reference/leaky-dash.quartz.ref.png and /dev/null differ
diff --git a/test/reference/leaky-dash.quartz.xfail.png b/test/reference/leaky-dash.quartz.xfail.png
new file mode 100644
index 0000000..9692819
Binary files /dev/null and b/test/reference/leaky-dash.quartz.xfail.png differ
diff --git a/test/reference/line-width-large-overlap-dashed.quartz.xfail.png b/test/reference/line-width-large-overlap-dashed.quartz.xfail.png
new file mode 100644
index 0000000..78dbe59
Binary files /dev/null and b/test/reference/line-width-large-overlap-dashed.quartz.xfail.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.quartz.ref.png b/test/reference/line-width-large-overlap-rotated.quartz.ref.png
new file mode 100644
index 0000000..5093f2c
Binary files /dev/null and b/test/reference/line-width-large-overlap-rotated.quartz.ref.png differ
diff --git a/test/reference/line-width-overlap-dashed.quartz.xfail.png b/test/reference/line-width-overlap-dashed.quartz.xfail.png
new file mode 100644
index 0000000..ce8ff7b
Binary files /dev/null and b/test/reference/line-width-overlap-dashed.quartz.xfail.png differ
diff --git a/test/reference/linear-gradient-subset.quartz.ref.png b/test/reference/linear-gradient-subset.quartz.ref.png
index 85d80ad..70a6336 100644
Binary files a/test/reference/linear-gradient-subset.quartz.ref.png and b/test/reference/linear-gradient-subset.quartz.ref.png differ
diff --git a/test/reference/linear-gradient.quartz.ref.png b/test/reference/linear-gradient.quartz.ref.png
index 1c3e7c2..5debca9 100644
Binary files a/test/reference/linear-gradient.quartz.ref.png and b/test/reference/linear-gradient.quartz.ref.png differ
diff --git a/test/reference/long-dashed-lines.quartz.ref.png b/test/reference/long-dashed-lines.quartz.ref.png
deleted file mode 100644
index 3f68d21..0000000
Binary files a/test/reference/long-dashed-lines.quartz.ref.png and /dev/null differ
diff --git a/test/reference/mask-alpha.quartz.argb32.ref.png b/test/reference/mask-alpha.quartz.argb32.ref.png
index 1d530ee..a7bfbb2 100644
Binary files a/test/reference/mask-alpha.quartz.argb32.ref.png and b/test/reference/mask-alpha.quartz.argb32.ref.png differ
diff --git a/test/reference/mask-alpha.quartz.rgb24.ref.png b/test/reference/mask-alpha.quartz.rgb24.ref.png
new file mode 100644
index 0000000..d4cc59c
Binary files /dev/null and b/test/reference/mask-alpha.quartz.rgb24.ref.png differ
diff --git a/test/reference/mask.quartz.argb32.ref.png b/test/reference/mask.quartz.argb32.ref.png
index c7ab76e..cf9ddc9 100644
Binary files a/test/reference/mask.quartz.argb32.ref.png and b/test/reference/mask.quartz.argb32.ref.png differ
diff --git a/test/reference/mask.quartz.rgb24.ref.png b/test/reference/mask.quartz.rgb24.ref.png
deleted file mode 100644
index f475ba9..0000000
Binary files a/test/reference/mask.quartz.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/new-sub-path.quartz.argb32.ref.png b/test/reference/new-sub-path.quartz.argb32.ref.png
new file mode 100644
index 0000000..20d49ba
Binary files /dev/null and b/test/reference/new-sub-path.quartz.argb32.ref.png differ
diff --git a/test/reference/new-sub-path.quartz.ref.png b/test/reference/new-sub-path.quartz.ref.png
deleted file mode 100644
index 20d49ba..0000000
Binary files a/test/reference/new-sub-path.quartz.ref.png and /dev/null differ
diff --git a/test/reference/new-sub-path.quartz.rgb24.ref.png b/test/reference/new-sub-path.quartz.rgb24.ref.png
new file mode 100644
index 0000000..d5baca9
Binary files /dev/null and b/test/reference/new-sub-path.quartz.rgb24.ref.png differ
diff --git a/test/reference/operator-clear.quartz.argb32.ref.png b/test/reference/operator-clear.quartz.argb32.ref.png
index caf265e..a76ebfc 100644
Binary files a/test/reference/operator-clear.quartz.argb32.ref.png and b/test/reference/operator-clear.quartz.argb32.ref.png differ
diff --git a/test/reference/operator-clear.quartz.rgb24.ref.png b/test/reference/operator-clear.quartz.rgb24.ref.png
index a07a6e0..7b44e21 100644
Binary files a/test/reference/operator-clear.quartz.rgb24.ref.png and b/test/reference/operator-clear.quartz.rgb24.ref.png differ
diff --git a/test/reference/operator-source.quartz.argb32.ref.png b/test/reference/operator-source.quartz.argb32.ref.png
new file mode 100644
index 0000000..8d4f80d
Binary files /dev/null and b/test/reference/operator-source.quartz.argb32.ref.png differ
diff --git a/test/reference/operator-source.quartz.rgb24.ref.png b/test/reference/operator-source.quartz.rgb24.ref.png
new file mode 100644
index 0000000..30c05c8
Binary files /dev/null and b/test/reference/operator-source.quartz.rgb24.ref.png differ
diff --git a/test/reference/over-above-source.quartz.argb32.ref.png b/test/reference/over-above-source.quartz.argb32.ref.png
index eeb3622..6ad74d7 100644
Binary files a/test/reference/over-above-source.quartz.argb32.ref.png and b/test/reference/over-above-source.quartz.argb32.ref.png differ
diff --git a/test/reference/over-above-source.quartz.rgb24.ref.png b/test/reference/over-above-source.quartz.rgb24.ref.png
index 2ab3476..f70593c 100644
Binary files a/test/reference/over-above-source.quartz.rgb24.ref.png and b/test/reference/over-above-source.quartz.rgb24.ref.png differ
diff --git a/test/reference/over-around-source.quartz.argb32.ref.png b/test/reference/over-around-source.quartz.argb32.ref.png
index 26ab8e5..48eddae 100644
Binary files a/test/reference/over-around-source.quartz.argb32.ref.png and b/test/reference/over-around-source.quartz.argb32.ref.png differ
diff --git a/test/reference/over-around-source.quartz.rgb24.ref.png b/test/reference/over-around-source.quartz.rgb24.ref.png
new file mode 100644
index 0000000..fb9b5ba
Binary files /dev/null and b/test/reference/over-around-source.quartz.rgb24.ref.png differ
diff --git a/test/reference/over-below-source.quartz.rgb24.ref.png b/test/reference/over-below-source.quartz.rgb24.ref.png
new file mode 100644
index 0000000..f8b82a3
Binary files /dev/null and b/test/reference/over-below-source.quartz.rgb24.ref.png differ
diff --git a/test/reference/over-between-source.quartz.argb32.ref.png b/test/reference/over-between-source.quartz.argb32.ref.png
index adb17ae..8e7513b 100644
Binary files a/test/reference/over-between-source.quartz.argb32.ref.png and b/test/reference/over-between-source.quartz.argb32.ref.png differ
diff --git a/test/reference/over-between-source.quartz.rgb24.ref.png b/test/reference/over-between-source.quartz.rgb24.ref.png
new file mode 100644
index 0000000..d202545
Binary files /dev/null and b/test/reference/over-between-source.quartz.rgb24.ref.png differ
diff --git a/test/reference/overlapping-dash-caps.quartz.ref.png b/test/reference/overlapping-dash-caps.quartz.ref.png
new file mode 100644
index 0000000..0d38a37
Binary files /dev/null and b/test/reference/overlapping-dash-caps.quartz.ref.png differ
diff --git a/test/reference/overlapping-glyphs.quartz.argb32.ref.png b/test/reference/overlapping-glyphs.quartz.argb32.ref.png
index eaa0cb9..2bbbb39 100644
Binary files a/test/reference/overlapping-glyphs.quartz.argb32.ref.png and b/test/reference/overlapping-glyphs.quartz.argb32.ref.png differ
diff --git a/test/reference/overlapping-glyphs.quartz.rgb24.ref.png b/test/reference/overlapping-glyphs.quartz.rgb24.ref.png
index c2b5fc0..a3961f8 100644
Binary files a/test/reference/overlapping-glyphs.quartz.rgb24.ref.png and b/test/reference/overlapping-glyphs.quartz.rgb24.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip-mask.quartz.ref.png b/test/reference/paint-with-alpha-clip-mask.quartz.ref.png
new file mode 100644
index 0000000..34f46fa
Binary files /dev/null and b/test/reference/paint-with-alpha-clip-mask.quartz.ref.png differ
diff --git a/test/reference/partial-clip-text-bottom.quartz.ref.png b/test/reference/partial-clip-text-bottom.quartz.ref.png
new file mode 100644
index 0000000..7da297a
Binary files /dev/null and b/test/reference/partial-clip-text-bottom.quartz.ref.png differ
diff --git a/test/reference/partial-clip-text-left.quartz.ref.png b/test/reference/partial-clip-text-left.quartz.ref.png
new file mode 100644
index 0000000..20cc556
Binary files /dev/null and b/test/reference/partial-clip-text-left.quartz.ref.png differ
diff --git a/test/reference/partial-clip-text-right.quartz.ref.png b/test/reference/partial-clip-text-right.quartz.ref.png
new file mode 100644
index 0000000..c8b14c9
Binary files /dev/null and b/test/reference/partial-clip-text-right.quartz.ref.png differ
diff --git a/test/reference/partial-clip-text-top.quartz.ref.png b/test/reference/partial-clip-text-top.quartz.ref.png
index 33ac283..15c3994 100644
Binary files a/test/reference/partial-clip-text-top.quartz.ref.png and b/test/reference/partial-clip-text-top.quartz.ref.png differ
diff --git a/test/reference/pixman-downscale-best-24.quartz.ref.png b/test/reference/pixman-downscale-best-24.quartz.ref.png
new file mode 100644
index 0000000..bdb78f9
Binary files /dev/null and b/test/reference/pixman-downscale-best-24.quartz.ref.png differ
diff --git a/test/reference/pixman-downscale-best-95.quartz.ref.png b/test/reference/pixman-downscale-best-95.quartz.ref.png
new file mode 100644
index 0000000..30547fa
Binary files /dev/null and b/test/reference/pixman-downscale-best-95.quartz.ref.png differ
diff --git a/test/reference/pixman-downscale-bilinear-95.quartz.ref.png b/test/reference/pixman-downscale-bilinear-95.quartz.ref.png
new file mode 100644
index 0000000..43b4779
Binary files /dev/null and b/test/reference/pixman-downscale-bilinear-95.quartz.ref.png differ
diff --git a/test/reference/pixman-downscale-fast-95.quartz.ref.png b/test/reference/pixman-downscale-fast-95.quartz.ref.png
new file mode 100644
index 0000000..350d730
Binary files /dev/null and b/test/reference/pixman-downscale-fast-95.quartz.ref.png differ
diff --git a/test/reference/pixman-downscale-good-95.quartz.ref.png b/test/reference/pixman-downscale-good-95.quartz.ref.png
new file mode 100644
index 0000000..43b4779
Binary files /dev/null and b/test/reference/pixman-downscale-good-95.quartz.ref.png differ
diff --git a/test/reference/pixman-downscale-nearest-95.quartz.ref.png b/test/reference/pixman-downscale-nearest-95.quartz.ref.png
new file mode 100644
index 0000000..350d730
Binary files /dev/null and b/test/reference/pixman-downscale-nearest-95.quartz.ref.png differ
diff --git a/test/reference/pixman-rotate.quartz.rgb24.ref.png b/test/reference/pixman-rotate.quartz.rgb24.ref.png
new file mode 100644
index 0000000..9ef09c3
Binary files /dev/null and b/test/reference/pixman-rotate.quartz.rgb24.ref.png differ
diff --git a/test/reference/pthread-same-source.quartz.ref.png b/test/reference/pthread-same-source.quartz.ref.png
new file mode 100644
index 0000000..2cd620f
Binary files /dev/null and b/test/reference/pthread-same-source.quartz.ref.png differ
diff --git a/test/reference/pthread-same-source.quartz.xfail.png b/test/reference/pthread-same-source.quartz.xfail.png
deleted file mode 100644
index ffed619..0000000
Binary files a/test/reference/pthread-same-source.quartz.xfail.png and /dev/null differ
diff --git a/test/reference/pthread-show-text.quartz.ref.png b/test/reference/pthread-show-text.quartz.ref.png
index cc9bb25..77971f9 100644
Binary files a/test/reference/pthread-show-text.quartz.ref.png and b/test/reference/pthread-show-text.quartz.ref.png differ
diff --git a/test/reference/push-group-color.quartz.ref.png b/test/reference/push-group-color.quartz.ref.png
index bca7c56..9a46bb0 100644
Binary files a/test/reference/push-group-color.quartz.ref.png and b/test/reference/push-group-color.quartz.ref.png differ
diff --git a/test/reference/push-group.quartz.argb32.ref.png b/test/reference/push-group.quartz.argb32.ref.png
index b3867b9..b8de2e6 100644
Binary files a/test/reference/push-group.quartz.argb32.ref.png and b/test/reference/push-group.quartz.argb32.ref.png differ
diff --git a/test/reference/push-group.quartz.rgb24.ref.png b/test/reference/push-group.quartz.rgb24.ref.png
index 1fd6ef3..74a87b1 100644
Binary files a/test/reference/push-group.quartz.rgb24.ref.png and b/test/reference/push-group.quartz.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient-mask-source.quartz.argb32.ref.png b/test/reference/radial-gradient-mask-source.quartz.argb32.ref.png
index 5f734f6..2868f17 100644
Binary files a/test/reference/radial-gradient-mask-source.quartz.argb32.ref.png and b/test/reference/radial-gradient-mask-source.quartz.argb32.ref.png differ
diff --git a/test/reference/radial-gradient-mask-source.quartz.rgb24.ref.png b/test/reference/radial-gradient-mask-source.quartz.rgb24.ref.png
index 4ae71f7..319f177 100644
Binary files a/test/reference/radial-gradient-mask-source.quartz.rgb24.ref.png and b/test/reference/radial-gradient-mask-source.quartz.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient-mask-source.rgb24.ref.png b/test/reference/radial-gradient-mask-source.rgb24.ref.png
new file mode 100644
index 0000000..5533519
Binary files /dev/null and b/test/reference/radial-gradient-mask-source.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient-mask.quartz.ref.png b/test/reference/radial-gradient-mask.quartz.ref.png
index c1bd506..5c92322 100644
Binary files a/test/reference/radial-gradient-mask.quartz.ref.png and b/test/reference/radial-gradient-mask.quartz.ref.png differ
diff --git a/test/reference/radial-gradient-one-stop.quartz.ref.png b/test/reference/radial-gradient-one-stop.quartz.ref.png
index da991b1..cf37c2f 100644
Binary files a/test/reference/radial-gradient-one-stop.quartz.ref.png and b/test/reference/radial-gradient-one-stop.quartz.ref.png differ
diff --git a/test/reference/radial-gradient-source.quartz.argb32.ref.png b/test/reference/radial-gradient-source.quartz.argb32.ref.png
index 421c0b9..f23c72a 100644
Binary files a/test/reference/radial-gradient-source.quartz.argb32.ref.png and b/test/reference/radial-gradient-source.quartz.argb32.ref.png differ
diff --git a/test/reference/radial-gradient-source.quartz.rgb24.ref.png b/test/reference/radial-gradient-source.quartz.rgb24.ref.png
index 22f2b90..a531f28 100644
Binary files a/test/reference/radial-gradient-source.quartz.rgb24.ref.png and b/test/reference/radial-gradient-source.quartz.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient.quartz.ref.png b/test/reference/radial-gradient.quartz.ref.png
index f01c6eb..c80c761 100644
Binary files a/test/reference/radial-gradient.quartz.ref.png and b/test/reference/radial-gradient.quartz.ref.png differ
diff --git a/test/reference/random-clip.quartz.ref.png b/test/reference/random-clip.quartz.ref.png
new file mode 100644
index 0000000..aa617d6
Binary files /dev/null and b/test/reference/random-clip.quartz.ref.png differ
diff --git a/test/reference/record-mesh.ref.png b/test/reference/record-mesh.ref.png
index 4921ba3..6e781b1 100644
Binary files a/test/reference/record-mesh.ref.png and b/test/reference/record-mesh.ref.png differ
diff --git a/test/reference/record-select-font-face.quartz.ref.png b/test/reference/record-select-font-face.quartz.ref.png
new file mode 100644
index 0000000..e260639
Binary files /dev/null and b/test/reference/record-select-font-face.quartz.ref.png differ
diff --git a/test/reference/record1414x-fill-alpha.quartz.ref.png b/test/reference/record1414x-fill-alpha.quartz.ref.png
new file mode 100644
index 0000000..837eacc
Binary files /dev/null and b/test/reference/record1414x-fill-alpha.quartz.ref.png differ
diff --git a/test/reference/record1414x-paint-alpha-clip-mask.quartz.ref.png b/test/reference/record1414x-paint-alpha-clip-mask.quartz.ref.png
new file mode 100644
index 0000000..5bb4bbd
Binary files /dev/null and b/test/reference/record1414x-paint-alpha-clip-mask.quartz.ref.png differ
diff --git a/test/reference/record1414x-select-font-face.quartz.ref.png b/test/reference/record1414x-select-font-face.quartz.ref.png
new file mode 100644
index 0000000..a3b51ff
Binary files /dev/null and b/test/reference/record1414x-select-font-face.quartz.ref.png differ
diff --git a/test/reference/record1414x-text-transform.quartz.ref.png b/test/reference/record1414x-text-transform.quartz.ref.png
new file mode 100644
index 0000000..58e0f4f
Binary files /dev/null and b/test/reference/record1414x-text-transform.quartz.ref.png differ
diff --git a/test/reference/record2x-fill-alpha.quartz.ref.png b/test/reference/record2x-fill-alpha.quartz.ref.png
new file mode 100644
index 0000000..7ecd571
Binary files /dev/null and b/test/reference/record2x-fill-alpha.quartz.ref.png differ
diff --git a/test/reference/record2x-select-font-face.quartz.ref.png b/test/reference/record2x-select-font-face.quartz.ref.png
new file mode 100644
index 0000000..7312eba
Binary files /dev/null and b/test/reference/record2x-select-font-face.quartz.ref.png differ
diff --git a/test/reference/record90-paint-alpha-clip.quartz.ref.png b/test/reference/record90-paint-alpha-clip.quartz.ref.png
new file mode 100644
index 0000000..b7703d4
Binary files /dev/null and b/test/reference/record90-paint-alpha-clip.quartz.ref.png differ
diff --git a/test/reference/record90-select-font-face.quartz.ref.png b/test/reference/record90-select-font-face.quartz.ref.png
new file mode 100644
index 0000000..db14aac
Binary files /dev/null and b/test/reference/record90-select-font-face.quartz.ref.png differ
diff --git a/test/reference/record90-self-intersecting.quartz.xfail.png b/test/reference/record90-self-intersecting.quartz.xfail.png
new file mode 100644
index 0000000..f4f34ce
Binary files /dev/null and b/test/reference/record90-self-intersecting.quartz.xfail.png differ
diff --git a/test/reference/recordflip-fill-alpha.quartz.ref.png b/test/reference/recordflip-fill-alpha.quartz.ref.png
new file mode 100644
index 0000000..69035ef
Binary files /dev/null and b/test/reference/recordflip-fill-alpha.quartz.ref.png differ
diff --git a/test/reference/recordflip-paint-alpha-clip-mask.quartz.ref.png b/test/reference/recordflip-paint-alpha-clip-mask.quartz.ref.png
new file mode 100644
index 0000000..6f14ad3
Binary files /dev/null and b/test/reference/recordflip-paint-alpha-clip-mask.quartz.ref.png differ
diff --git a/test/reference/recordflip-select-font-face.quartz.ref.png b/test/reference/recordflip-select-font-face.quartz.ref.png
new file mode 100644
index 0000000..488d35b
Binary files /dev/null and b/test/reference/recordflip-select-font-face.quartz.ref.png differ
diff --git a/test/reference/recordflip-whole-fill-alpha.quartz.ref.png b/test/reference/recordflip-whole-fill-alpha.quartz.ref.png
new file mode 100644
index 0000000..69035ef
Binary files /dev/null and b/test/reference/recordflip-whole-fill-alpha.quartz.ref.png differ
diff --git a/test/reference/recordflip-whole-paint-alpha-clip-mask.quartz.ref.png b/test/reference/recordflip-whole-paint-alpha-clip-mask.quartz.ref.png
new file mode 100644
index 0000000..6f14ad3
Binary files /dev/null and b/test/reference/recordflip-whole-paint-alpha-clip-mask.quartz.ref.png differ
diff --git a/test/reference/recordflip-whole-select-font-face.quartz.ref.png b/test/reference/recordflip-whole-select-font-face.quartz.ref.png
new file mode 100644
index 0000000..488d35b
Binary files /dev/null and b/test/reference/recordflip-whole-select-font-face.quartz.ref.png differ
diff --git a/test/reference/recording-surface-extend-none.quartz.argb32.ref.png b/test/reference/recording-surface-extend-none.quartz.argb32.ref.png
new file mode 100644
index 0000000..07d737a
Binary files /dev/null and b/test/reference/recording-surface-extend-none.quartz.argb32.ref.png differ
diff --git a/test/reference/recording-surface-extend-none.quartz.rgb24.ref.png b/test/reference/recording-surface-extend-none.quartz.rgb24.ref.png
new file mode 100644
index 0000000..0df6935
Binary files /dev/null and b/test/reference/recording-surface-extend-none.quartz.rgb24.ref.png differ
diff --git a/test/reference/recording-surface-extend-pad.argb32.ref.png b/test/reference/recording-surface-extend-pad.argb32.ref.png
deleted file mode 100644
index 9efed65..0000000
Binary files a/test/reference/recording-surface-extend-pad.argb32.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-pad.argb32.xfail.png b/test/reference/recording-surface-extend-pad.argb32.xfail.png
new file mode 100644
index 0000000..9efed65
Binary files /dev/null and b/test/reference/recording-surface-extend-pad.argb32.xfail.png differ
diff --git a/test/reference/recording-surface-extend-pad.rgb24.ref.png b/test/reference/recording-surface-extend-pad.rgb24.ref.png
deleted file mode 100644
index 7336890..0000000
Binary files a/test/reference/recording-surface-extend-pad.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-pad.rgb24.xfail.png b/test/reference/recording-surface-extend-pad.rgb24.xfail.png
new file mode 100644
index 0000000..7336890
Binary files /dev/null and b/test/reference/recording-surface-extend-pad.rgb24.xfail.png differ
diff --git a/test/reference/recording-surface-extend-reflect.quartz.argb32.ref.png b/test/reference/recording-surface-extend-reflect.quartz.argb32.ref.png
new file mode 100644
index 0000000..5e3972a
Binary files /dev/null and b/test/reference/recording-surface-extend-reflect.quartz.argb32.ref.png differ
diff --git a/test/reference/recording-surface-extend-reflect.quartz.rgb24.ref.png b/test/reference/recording-surface-extend-reflect.quartz.rgb24.ref.png
new file mode 100644
index 0000000..bc2cdf4
Binary files /dev/null and b/test/reference/recording-surface-extend-reflect.quartz.rgb24.ref.png differ
diff --git a/test/reference/recording-surface-extend-repeat.quartz.argb32.ref.png b/test/reference/recording-surface-extend-repeat.quartz.argb32.ref.png
new file mode 100644
index 0000000..2f6f274
Binary files /dev/null and b/test/reference/recording-surface-extend-repeat.quartz.argb32.ref.png differ
diff --git a/test/reference/recording-surface-extend-repeat.quartz.rgb24.ref.png b/test/reference/recording-surface-extend-repeat.quartz.rgb24.ref.png
new file mode 100644
index 0000000..a8943a7
Binary files /dev/null and b/test/reference/recording-surface-extend-repeat.quartz.rgb24.ref.png differ
diff --git a/test/reference/recording-surface-over.quartz.argb32.ref.png b/test/reference/recording-surface-over.quartz.argb32.ref.png
index 09d9559..07d737a 100644
Binary files a/test/reference/recording-surface-over.quartz.argb32.ref.png and b/test/reference/recording-surface-over.quartz.argb32.ref.png differ
diff --git a/test/reference/recording-surface-over.quartz.rgb24.ref.png b/test/reference/recording-surface-over.quartz.rgb24.ref.png
index 96aff40..0df6935 100644
Binary files a/test/reference/recording-surface-over.quartz.rgb24.ref.png and b/test/reference/recording-surface-over.quartz.rgb24.ref.png differ
diff --git a/test/reference/recording-surface-source.quartz.argb32.ref.png b/test/reference/recording-surface-source.quartz.argb32.ref.png
new file mode 100644
index 0000000..bd5d749
Binary files /dev/null and b/test/reference/recording-surface-source.quartz.argb32.ref.png differ
diff --git a/test/reference/recording-surface-source.quartz.rgb24.ref.png b/test/reference/recording-surface-source.quartz.rgb24.ref.png
new file mode 100644
index 0000000..ddba6f3
Binary files /dev/null and b/test/reference/recording-surface-source.quartz.rgb24.ref.png differ
diff --git a/test/reference/rectilinear-dash-scale-unaligned.quartz.xfail.png b/test/reference/rectilinear-dash-scale-unaligned.quartz.xfail.png
new file mode 100644
index 0000000..ccc1f97
Binary files /dev/null and b/test/reference/rectilinear-dash-scale-unaligned.quartz.xfail.png differ
diff --git a/test/reference/rectilinear-dash-scale.quartz.xfail.png b/test/reference/rectilinear-dash-scale.quartz.xfail.png
new file mode 100644
index 0000000..4e3326b
Binary files /dev/null and b/test/reference/rectilinear-dash-scale.quartz.xfail.png differ
diff --git a/test/reference/rectilinear-dash.quartz.xfail.png b/test/reference/rectilinear-dash.quartz.xfail.png
index 5101845..f349155 100644
Binary files a/test/reference/rectilinear-dash.quartz.xfail.png and b/test/reference/rectilinear-dash.quartz.xfail.png differ
diff --git a/test/reference/reflected-stroke.quartz.ref.png b/test/reference/reflected-stroke.quartz.ref.png
new file mode 100644
index 0000000..71c3673
Binary files /dev/null and b/test/reference/reflected-stroke.quartz.ref.png differ
diff --git a/test/reference/rotate-clip-image-surface-paint.quartz.ref.png b/test/reference/rotate-clip-image-surface-paint.quartz.ref.png
new file mode 100644
index 0000000..45b321f
Binary files /dev/null and b/test/reference/rotate-clip-image-surface-paint.quartz.ref.png differ
diff --git a/test/reference/rotate-image-surface-paint.quartz.ref.png b/test/reference/rotate-image-surface-paint.quartz.ref.png
index a716b63..1220447 100644
Binary files a/test/reference/rotate-image-surface-paint.quartz.ref.png and b/test/reference/rotate-image-surface-paint.quartz.ref.png differ
diff --git a/test/reference/rotated-clip.quartz.ref.png b/test/reference/rotated-clip.quartz.ref.png
index 6282846..2c88c4b 100644
Binary files a/test/reference/rotated-clip.quartz.ref.png and b/test/reference/rotated-clip.quartz.ref.png differ
diff --git a/test/reference/rounded-rectangle-fill.quartz.ref.png b/test/reference/rounded-rectangle-fill.quartz.ref.png
deleted file mode 100644
index ee685ca..0000000
Binary files a/test/reference/rounded-rectangle-fill.quartz.ref.png and /dev/null differ
diff --git a/test/reference/rounded-rectangle-stroke.quartz.ref.png b/test/reference/rounded-rectangle-stroke.quartz.ref.png
new file mode 100644
index 0000000..9bae1d3
Binary files /dev/null and b/test/reference/rounded-rectangle-stroke.quartz.ref.png differ
diff --git a/test/reference/shape-sierpinski.quartz.ref.png b/test/reference/shape-sierpinski.quartz.ref.png
new file mode 100644
index 0000000..a82054f
Binary files /dev/null and b/test/reference/shape-sierpinski.quartz.ref.png differ
diff --git a/test/reference/show-glyphs-advance.quartz.ref.png b/test/reference/show-glyphs-advance.quartz.ref.png
index 4750308..69395bf 100644
Binary files a/test/reference/show-glyphs-advance.quartz.ref.png and b/test/reference/show-glyphs-advance.quartz.ref.png differ
diff --git a/test/reference/smask-fill.quartz.ref.png b/test/reference/smask-fill.quartz.ref.png
index ae05476..7d0f568 100644
Binary files a/test/reference/smask-fill.quartz.ref.png and b/test/reference/smask-fill.quartz.ref.png differ
diff --git a/test/reference/smask-stroke.quartz.ref.png b/test/reference/smask-stroke.quartz.ref.png
index f6f0d1b..3c472a6 100644
Binary files a/test/reference/smask-stroke.quartz.ref.png and b/test/reference/smask-stroke.quartz.ref.png differ
diff --git a/test/reference/smask-text.quartz.ref.png b/test/reference/smask-text.quartz.ref.png
index 096dc98..b64eb0c 100644
Binary files a/test/reference/smask-text.quartz.ref.png and b/test/reference/smask-text.quartz.ref.png differ
diff --git a/test/reference/smask.quartz.ref.png b/test/reference/smask.quartz.ref.png
index f9ab00f..fac4b4e 100644
Binary files a/test/reference/smask.quartz.ref.png and b/test/reference/smask.quartz.ref.png differ
diff --git a/test/reference/spline-decomposition.quartz.xfail.png b/test/reference/spline-decomposition.quartz.xfail.png
index 18d67fb..eeb3bf6 100644
Binary files a/test/reference/spline-decomposition.quartz.xfail.png and b/test/reference/spline-decomposition.quartz.xfail.png differ
diff --git a/test/reference/stroke-clipped.quartz.ref.png b/test/reference/stroke-clipped.quartz.ref.png
new file mode 100644
index 0000000..737488c
Binary files /dev/null and b/test/reference/stroke-clipped.quartz.ref.png differ
diff --git a/test/reference/stroke-ctm-caps.quartz.ref.png b/test/reference/stroke-ctm-caps.quartz.ref.png
deleted file mode 100644
index c9da2c9..0000000
Binary files a/test/reference/stroke-ctm-caps.quartz.ref.png and /dev/null differ
diff --git a/test/reference/stroke-image.quartz.ref.png b/test/reference/stroke-image.quartz.ref.png
index f9a60f2..c6f0a3b 100644
Binary files a/test/reference/stroke-image.quartz.ref.png and b/test/reference/stroke-image.quartz.ref.png differ
diff --git a/test/reference/stroke-pattern.quartz.ref.png b/test/reference/stroke-pattern.quartz.ref.png
new file mode 100644
index 0000000..34619f4
Binary files /dev/null and b/test/reference/stroke-pattern.quartz.ref.png differ
diff --git a/test/reference/subsurface-outside-target.quartz.argb32.xfail.png b/test/reference/subsurface-outside-target.quartz.argb32.xfail.png
new file mode 100644
index 0000000..d052d04
Binary files /dev/null and b/test/reference/subsurface-outside-target.quartz.argb32.xfail.png differ
diff --git a/test/reference/subsurface-outside-target.quartz.rgb24.xfail.png b/test/reference/subsurface-outside-target.quartz.rgb24.xfail.png
new file mode 100644
index 0000000..adf486e
Binary files /dev/null and b/test/reference/subsurface-outside-target.quartz.rgb24.xfail.png differ
diff --git a/test/reference/subsurface-scale.quartz.ref.png b/test/reference/subsurface-scale.quartz.ref.png
new file mode 100644
index 0000000..38a0470
Binary files /dev/null and b/test/reference/subsurface-scale.quartz.ref.png differ
diff --git a/test/reference/surface-pattern-big-scale-down.quartz.ref.png b/test/reference/surface-pattern-big-scale-down.quartz.ref.png
deleted file mode 100644
index 32deb2d..0000000
Binary files a/test/reference/surface-pattern-big-scale-down.quartz.ref.png and /dev/null differ
diff --git a/test/reference/surface-pattern-operator.quartz.argb32.ref.png b/test/reference/surface-pattern-operator.quartz.argb32.ref.png
index 5e934b2..e2a4116 100644
Binary files a/test/reference/surface-pattern-operator.quartz.argb32.ref.png and b/test/reference/surface-pattern-operator.quartz.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-operator.quartz.rgb24.ref.png b/test/reference/surface-pattern-operator.quartz.rgb24.ref.png
index 30408c1..02eec1c 100644
Binary files a/test/reference/surface-pattern-operator.quartz.rgb24.ref.png and b/test/reference/surface-pattern-operator.quartz.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-none.quartz.ref.png b/test/reference/surface-pattern-scale-down-extend-none.quartz.ref.png
deleted file mode 100644
index e126cbb..0000000
Binary files a/test/reference/surface-pattern-scale-down-extend-none.quartz.ref.png and /dev/null differ
diff --git a/test/reference/surface-pattern-scale-down-extend-pad.quartz.xfail.png b/test/reference/surface-pattern-scale-down-extend-pad.quartz.xfail.png
index 6b8f754..c5cff0f 100644
Binary files a/test/reference/surface-pattern-scale-down-extend-pad.quartz.xfail.png and b/test/reference/surface-pattern-scale-down-extend-pad.quartz.xfail.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-reflect.quartz.ref.png b/test/reference/surface-pattern-scale-down-extend-reflect.quartz.ref.png
deleted file mode 100644
index ef5e62e..0000000
Binary files a/test/reference/surface-pattern-scale-down-extend-reflect.quartz.ref.png and /dev/null differ
diff --git a/test/reference/surface-pattern-scale-down-extend-repeat.quartz.ref.png b/test/reference/surface-pattern-scale-down-extend-repeat.quartz.ref.png
deleted file mode 100644
index 6b8f754..0000000
Binary files a/test/reference/surface-pattern-scale-down-extend-repeat.quartz.ref.png and /dev/null differ
diff --git a/test/reference/surface-pattern-scale-down.quartz.ref.png b/test/reference/surface-pattern-scale-down.quartz.ref.png
index 5b3ace4..8306a03 100644
Binary files a/test/reference/surface-pattern-scale-down.quartz.ref.png and b/test/reference/surface-pattern-scale-down.quartz.ref.png differ
diff --git a/test/reference/surface-pattern-scale-up.quartz.ref.png b/test/reference/surface-pattern-scale-up.quartz.ref.png
new file mode 100644
index 0000000..ed52ee8
Binary files /dev/null and b/test/reference/surface-pattern-scale-up.quartz.ref.png differ
diff --git a/test/reference/surface-pattern-scale-up.quartz.xfail.png b/test/reference/surface-pattern-scale-up.quartz.xfail.png
deleted file mode 100644
index ed52ee8..0000000
Binary files a/test/reference/surface-pattern-scale-up.quartz.xfail.png and /dev/null differ
diff --git a/test/reference/text-antialias-gray.quartz.ref.png b/test/reference/text-antialias-gray.quartz.ref.png
index 63926a8..36ffebb 100644
Binary files a/test/reference/text-antialias-gray.quartz.ref.png and b/test/reference/text-antialias-gray.quartz.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-bgr.quartz.xfail.png b/test/reference/text-antialias-subpixel-bgr.quartz.xfail.png
new file mode 100644
index 0000000..83cf7d4
Binary files /dev/null and b/test/reference/text-antialias-subpixel-bgr.quartz.xfail.png differ
diff --git a/test/reference/text-antialias-subpixel-rgb.quartz.ref.png b/test/reference/text-antialias-subpixel-rgb.quartz.ref.png
new file mode 100644
index 0000000..83cf7d4
Binary files /dev/null and b/test/reference/text-antialias-subpixel-rgb.quartz.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vbgr.quartz.xfail.png b/test/reference/text-antialias-subpixel-vbgr.quartz.xfail.png
new file mode 100644
index 0000000..83cf7d4
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vbgr.quartz.xfail.png differ
diff --git a/test/reference/text-antialias-subpixel-vrgb.quartz.xfail.png b/test/reference/text-antialias-subpixel-vrgb.quartz.xfail.png
new file mode 100644
index 0000000..83cf7d4
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vrgb.quartz.xfail.png differ
diff --git a/test/reference/text-antialias-subpixel.quartz.ref.png b/test/reference/text-antialias-subpixel.quartz.ref.png
index f5b1aa8..83cf7d4 100644
Binary files a/test/reference/text-antialias-subpixel.quartz.ref.png and b/test/reference/text-antialias-subpixel.quartz.ref.png differ
diff --git a/test/reference/text-glyph-range.quartz.ref.png b/test/reference/text-glyph-range.quartz.ref.png
deleted file mode 100644
index e4a14b2..0000000
Binary files a/test/reference/text-glyph-range.quartz.ref.png and /dev/null differ
diff --git a/test/reference/text-glyph-range.quartz.xfail.png b/test/reference/text-glyph-range.quartz.xfail.png
new file mode 100644
index 0000000..9dcc756
Binary files /dev/null and b/test/reference/text-glyph-range.quartz.xfail.png differ
diff --git a/test/reference/text-pattern.quartz.argb32.ref.png b/test/reference/text-pattern.quartz.argb32.ref.png
index 1a15964..b3f869b 100644
Binary files a/test/reference/text-pattern.quartz.argb32.ref.png and b/test/reference/text-pattern.quartz.argb32.ref.png differ
diff --git a/test/reference/text-pattern.quartz.rgb24.ref.png b/test/reference/text-pattern.quartz.rgb24.ref.png
index f19dd76..bb50f4d 100644
Binary files a/test/reference/text-pattern.quartz.rgb24.ref.png and b/test/reference/text-pattern.quartz.rgb24.ref.png differ
diff --git a/test/reference/text-rotate.quartz.ref.png b/test/reference/text-rotate.quartz.ref.png
index 113e727..68e45af 100644
Binary files a/test/reference/text-rotate.quartz.ref.png and b/test/reference/text-rotate.quartz.ref.png differ
diff --git a/test/reference/tiger.quartz.ref.png b/test/reference/tiger.quartz.ref.png
new file mode 100644
index 0000000..490e40f
Binary files /dev/null and b/test/reference/tiger.quartz.ref.png differ
diff --git a/test/reference/tighten-bounds.quartz.argb32.ref.png b/test/reference/tighten-bounds.quartz.argb32.ref.png
new file mode 100644
index 0000000..dc4aacd
Binary files /dev/null and b/test/reference/tighten-bounds.quartz.argb32.ref.png differ
diff --git a/test/reference/tighten-bounds.quartz.rgb24.ref.png b/test/reference/tighten-bounds.quartz.rgb24.ref.png
new file mode 100644
index 0000000..8d11e0b
Binary files /dev/null and b/test/reference/tighten-bounds.quartz.rgb24.ref.png differ
diff --git a/test/reference/trap-clip.quartz.argb32.ref.png b/test/reference/trap-clip.quartz.argb32.ref.png
index e045ea4..2255805 100644
Binary files a/test/reference/trap-clip.quartz.argb32.ref.png and b/test/reference/trap-clip.quartz.argb32.ref.png differ
diff --git a/test/reference/trap-clip.quartz.rgb24.ref.png b/test/reference/trap-clip.quartz.rgb24.ref.png
index 1044d86..38e6d31 100644
Binary files a/test/reference/trap-clip.quartz.rgb24.ref.png and b/test/reference/trap-clip.quartz.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-gray.quartz.ref.png b/test/reference/twin-antialias-gray.quartz.ref.png
new file mode 100644
index 0000000..8ce3980
Binary files /dev/null and b/test/reference/twin-antialias-gray.quartz.ref.png differ
diff --git a/test/reference/twin-antialias-none.quartz.ref.png b/test/reference/twin-antialias-none.quartz.ref.png
new file mode 100644
index 0000000..8e5facf
Binary files /dev/null and b/test/reference/twin-antialias-none.quartz.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.quartz.ref.png b/test/reference/twin-antialias-subpixel.quartz.ref.png
new file mode 100644
index 0000000..8ce3980
Binary files /dev/null and b/test/reference/twin-antialias-subpixel.quartz.ref.png differ
diff --git a/test/reference/twin.quartz.ref.png b/test/reference/twin.quartz.ref.png
new file mode 100644
index 0000000..8ce3980
Binary files /dev/null and b/test/reference/twin.quartz.ref.png differ
diff --git a/test/reference/user-font-proxy.quartz.ref.png b/test/reference/user-font-proxy.quartz.ref.png
index 3bead3d..f7b1163 100644
Binary files a/test/reference/user-font-proxy.quartz.ref.png and b/test/reference/user-font-proxy.quartz.ref.png differ
diff --git a/test/reference/user-font.quartz.ref.png b/test/reference/user-font.quartz.ref.png
index 8c0ec94..dfb2e0a 100644
Binary files a/test/reference/user-font.quartz.ref.png and b/test/reference/user-font.quartz.ref.png differ
diff --git a/test/reference/world-map-fill.quartz.ref.png b/test/reference/world-map-fill.quartz.ref.png
new file mode 100644
index 0000000..af0770a
Binary files /dev/null and b/test/reference/world-map-fill.quartz.ref.png differ
diff --git a/test/reference/world-map-stroke.quartz.ref.png b/test/reference/world-map-stroke.quartz.ref.png
new file mode 100644
index 0000000..9be5de8
Binary files /dev/null and b/test/reference/world-map-stroke.quartz.ref.png differ
diff --git a/test/reference/world-map.quartz.ref.png b/test/reference/world-map.quartz.ref.png
new file mode 100644
index 0000000..efc92f0
Binary files /dev/null and b/test/reference/world-map.quartz.ref.png differ
diff --git a/test/reference/xcomposite-projection.quartz.ref.png b/test/reference/xcomposite-projection.quartz.ref.png
index 0221607..b5526f0 100644
Binary files a/test/reference/xcomposite-projection.quartz.ref.png and b/test/reference/xcomposite-projection.quartz.ref.png differ
commit e1353f3b859d28dc3f5a9d4fb4496085240a8c68
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Thu Apr 16 11:59:02 2015 +0200

    test: Always use DejaVu Sans as default font
    
    This makes the results of the test suite more stable across different
    environments, because it does not rely anymore on
    CAIRO_FONT_FAMILY_DEFAULT (which on Windows is "Arial", on Mac
    "Helvetica").
    
    This change should not affect Linux environments, assuming that the
    default font is already set to "DejaVu Sans".

diff --git a/test/cairo-test.c b/test/cairo-test.c
index a351b01..6f8cb79 100644
--- a/test/cairo-test.c
+++ b/test/cairo-test.c
@@ -915,6 +915,10 @@ REPEAT:
     cairo_paint (cr);
     cairo_restore (cr);
 
+    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans",
+			    CAIRO_FONT_SLANT_NORMAL,
+			    CAIRO_FONT_WEIGHT_NORMAL);
+    
     /* Set all components of font_options to avoid backend differences
      * and reduce number of needed reference images. */
     font_options = cairo_font_options_create ();
diff --git a/test/clip-zero.c b/test/clip-zero.c
index 5afd1b5..302b2b1 100644
--- a/test/clip-zero.c
+++ b/test/clip-zero.c
@@ -46,7 +46,7 @@ draw (cairo_t *cr, int width, int height)
     cairo_stroke_preserve (cr);
     cairo_paint (cr);
 
-    cairo_select_font_face (cr, "sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
+    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
     cairo_show_text (cr, "ABC");
 
     cairo_mask (cr, cairo_get_source (cr));
diff --git a/test/pthread-show-text.c b/test/pthread-show-text.c
index 0e070b7..0f076cb 100644
--- a/test/pthread-show-text.c
+++ b/test/pthread-show-text.c
@@ -63,7 +63,7 @@ draw_thread (void *arg)
     cairo_paint (cr);
     cairo_set_source_rgb (cr, 0, 0, 0);
 
-    cairo_select_font_face (cr, "serif",
+    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Serif",
 			    CAIRO_FONT_SLANT_NORMAL,
 			    CAIRO_FONT_WEIGHT_NORMAL);
     cairo_set_font_size (cr, NUM_ITERATIONS);
@@ -74,7 +74,7 @@ draw_thread (void *arg)
     for (i = 0; i < NUM_ITERATIONS; i++) {
 	char buf[2];
 
-        cairo_select_font_face (cr, "serif",
+	cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Serif",
 				CAIRO_FONT_SLANT_NORMAL,
 				CAIRO_FONT_WEIGHT_NORMAL);
 	cairo_set_font_size (cr, i);
diff --git a/test/show-glyphs-many.c b/test/show-glyphs-many.c
index f689fe0..e16282c 100644
--- a/test/show-glyphs-many.c
+++ b/test/show-glyphs-many.c
@@ -126,7 +126,7 @@ draw (cairo_t *cr, int width, int height)
     cairo_set_source_rgb (cr, 1, 1, 1);
     cairo_paint (cr);
 
-    cairo_select_font_face (cr, "Sans",
+    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);
diff --git a/test/text-cache-crash.c b/test/text-cache-crash.c
index 4786af4..27fe8cb 100644
--- a/test/text-cache-crash.c
+++ b/test/text-cache-crash.c
@@ -66,11 +66,11 @@ static cairo_test_status_t
 draw (cairo_t *cr, int width, int height)
 {
     /* Once there was a bug that choked when selecting the same font twice. */
-    cairo_select_font_face (cr, "sans",
+    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans",
 			    CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
     cairo_set_font_size (cr, 40.0);
 
-    cairo_select_font_face (cr, "sans",
+    cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans",
 			    CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
     cairo_set_font_size (cr, 40.0);
     cairo_move_to (cr, 10, 50);
diff --git a/test/user-font-proxy.c b/test/user-font-proxy.c
index 6a39d8e..e4063f0 100644
--- a/test/user-font-proxy.c
+++ b/test/user-font-proxy.c
@@ -127,7 +127,7 @@ _user_font_face_create (cairo_font_face_t **out)
     /* This also happens to be default font face on cairo_t, so does
      * not make much sense here.  For demonstration only.
      */
-    fallback_font_face = cairo_toy_font_face_create ("",
+    fallback_font_face = cairo_toy_font_face_create (CAIRO_TEST_FONT_FAMILY " Sans",
 						     CAIRO_FONT_SLANT_NORMAL,
 						     CAIRO_FONT_WEIGHT_NORMAL);
 


More information about the cairo-commit mailing list