[cairo-commit] 10 commits - boilerplate/cairo-boilerplate-xlib.c src/cairo-mask-compositor.c src/cairo-traps-compositor.c src/cairo-xlib-display.c src/cairo-xlib.h src/cairo-xlib-render-compositor.c test/get-xrender-format.c test/reference test/xlib-surface.c
Chris Wilson
ickle at kemper.freedesktop.org
Wed Feb 22 05:20:33 PST 2012
boilerplate/cairo-boilerplate-xlib.c | 129 ++++---
dev/null |binary
src/cairo-mask-compositor.c | 52 ++-
src/cairo-traps-compositor.c | 165 +++++++---
src/cairo-xlib-display.c | 57 +++
src/cairo-xlib-render-compositor.c | 1
src/cairo-xlib.h | 5
test/get-xrender-format.c | 10
test/reference/a1-bug.mask.argb32.ref.png |binary
test/reference/a1-bug.mask.rgb24.ref.png |binary
test/reference/a1-clip-fill-equal.mask.argb32.ref.png |binary
test/reference/a1-clip-fill-equal.mask.rgb24.ref.png |binary
test/reference/a1-clip-fill-rule.mask.argb32.ref.png |binary
test/reference/a1-clip-fill-rule.mask.rgb24.ref.png |binary
test/reference/a1-clip-fill.mask.argb32.ref.png |binary
test/reference/a1-clip-fill.mask.rgb24.ref.png |binary
test/reference/a1-clip-paint.mask.argb32.ref.png |binary
test/reference/a1-clip-paint.mask.rgb24.ref.png |binary
test/reference/a1-clip-stroke.mask.argb32.ref.png |binary
test/reference/a1-clip-stroke.mask.rgb24.ref.png |binary
test/reference/a1-fill.base.argb32.ref.png |binary
test/reference/a1-fill.base.rgb24.ref.png |binary
test/reference/a1-fill.mask.argb32.ref.png |binary
test/reference/a1-fill.mask.rgb24.ref.png |binary
test/reference/a1-fill.traps.argb32.ref.png |binary
test/reference/a1-fill.traps.rgb24.ref.png |binary
test/reference/a1-image-sample.mask.argb32.ref.png |binary
test/reference/a1-image-sample.mask.rgb24.ref.png |binary
test/reference/a1-line-width.mask.argb32.ref.png |binary
test/reference/a1-line-width.mask.rgb24.ref.png |binary
test/reference/a1-mask-sample.mask.argb32.ref.png |binary
test/reference/a1-mask-sample.mask.rgb24.ref.png |binary
test/reference/a1-mask.mask.argb32.ref.png |binary
test/reference/a1-mask.mask.rgb24.ref.png |binary
test/reference/a1-rasterisation-rectangles.mask.argb32.ref.png |binary
test/reference/a1-rasterisation-rectangles.mask.rgb24.ref.png |binary
test/reference/a1-rasterisation-triangles.mask.argb32.ref.png |binary
test/reference/a1-rasterisation-triangles.mask.rgb24.ref.png |binary
test/reference/a1-rectilinear-grid.mask.argb32.ref.png |binary
test/reference/a1-rectilinear-grid.mask.rgb24.ref.png |binary
test/reference/a1-sample.mask.argb32.ref.png |binary
test/reference/a1-sample.mask.rgb24.ref.png |binary
test/reference/a1-tiger.mask.argb32.ref.png |binary
test/reference/a1-tiger.mask.rgb24.ref.png |binary
test/reference/a1-traps-sample.mask.argb32.ref.png |binary
test/reference/a1-traps-sample.mask.rgb24.ref.png |binary
test/reference/a8-clear.mask.argb32.ref.png |binary
test/reference/a8-clear.mask.rgb24.ref.png |binary
test/reference/a8-mask.mask.argb32.ref.png |binary
test/reference/a8-mask.mask.rgb24.ref.png |binary
test/reference/aliasing.mask.argb32.ref.png |binary
test/reference/aliasing.mask.rgb24.ref.png |binary
test/reference/alpha-similar.mask.argb32.ref.png |binary
test/reference/alpha-similar.mask.rgb24.ref.png |binary
test/reference/api-special-cases.mask.argb32.ref.png |binary
test/reference/api-special-cases.mask.rgb24.ref.png |binary
test/reference/arc-direction.base.argb32.ref.png |binary
test/reference/arc-direction.base.rgb24.ref.png |binary
test/reference/arc-direction.mask.argb32.ref.png |binary
test/reference/arc-direction.mask.rgb24.ref.png |binary
test/reference/arc-direction.traps.argb32.ref.png |binary
test/reference/arc-direction.traps.rgb24.ref.png |binary
test/reference/arc-infinite-loop.mask.argb32.ref.png |binary
test/reference/arc-infinite-loop.mask.rgb24.ref.png |binary
test/reference/arc-looping-dash.mask.argb32.ref.png |binary
test/reference/arc-looping-dash.mask.rgb24.ref.png |binary
test/reference/big-empty-triangle.mask.argb32.ref.png |binary
test/reference/big-empty-triangle.mask.rgb24.ref.png |binary
test/reference/big-line.mask.argb32.ref.png |binary
test/reference/big-line.mask.rgb24.ref.png |binary
test/reference/big-little-box.mask.argb32.ref.png |binary
test/reference/big-little-box.mask.rgb24.ref.png |binary
test/reference/big-little-triangle.mask.argb32.ref.png |binary
test/reference/big-little-triangle.mask.rgb24.ref.png |binary
test/reference/big-trap.mask.argb32.ref.png |binary
test/reference/big-trap.mask.rgb24.ref.png |binary
test/reference/bilevel-image.mask.argb32.ref.png |binary
test/reference/bilevel-image.mask.rgb24.ref.png |binary
test/reference/bitmap-font.mask.argb32.ref.png |binary
test/reference/bitmap-font.mask.rgb24.ref.png |binary
test/reference/bug-40410.mask.argb32.ref.png |binary
test/reference/bug-40410.mask.rgb24.ref.png |binary
test/reference/bug-bo-rectangular.mask.argb32.ref.png |binary
test/reference/bug-bo-rectangular.mask.rgb24.ref.png |binary
test/reference/bug-bo-ricotz.base.argb32.ref.png |binary
test/reference/bug-bo-ricotz.base.rgb24.ref.png |binary
test/reference/bug-bo-ricotz.mask.argb32.ref.png |binary
test/reference/bug-bo-ricotz.mask.rgb24.ref.png |binary
test/reference/bug-bo-ricotz.traps.argb32.ref.png |binary
test/reference/bug-bo-ricotz.traps.rgb24.ref.png |binary
test/reference/bug-extents.mask.argb32.ref.png |binary
test/reference/bug-extents.mask.rgb24.ref.png |binary
test/reference/bug-seams.mask.argb32.ref.png |binary
test/reference/bug-seams.mask.rgb24.ref.png |binary
test/reference/caps-joins-alpha.mask.argb32.ref.png |binary
test/reference/caps-joins-alpha.mask.rgb24.ref.png |binary
test/reference/caps-joins-curve.mask.argb32.ref.png |binary
test/reference/caps-joins-curve.mask.rgb24.ref.png |binary
test/reference/caps-joins.mask.argb32.ref.png |binary
test/reference/caps-joins.mask.rgb24.ref.png |binary
test/reference/caps-sub-paths.mask.argb32.ref.png |binary
test/reference/caps-sub-paths.mask.rgb24.ref.png |binary
test/reference/caps-tails-curve.mask.argb32.ref.png |binary
test/reference/caps-tails-curve.mask.rgb24.ref.png |binary
test/reference/caps.mask.argb32.ref.png |binary
test/reference/caps.mask.rgb24.ref.png |binary
test/reference/checkerboard.mask.argb32.ref.png |binary
test/reference/checkerboard.mask.rgb24.ref.png |binary
test/reference/clear-source.base.argb32.ref.png |binary
test/reference/clear-source.base.rgb24.ref.png |binary
test/reference/clear-source.mask.argb32.ref.png |binary
test/reference/clear-source.mask.rgb24.ref.png |binary
test/reference/clear-source.traps.argb32.ref.png |binary
test/reference/clear-source.traps.rgb24.ref.png |binary
test/reference/clear.mask.argb32.ref.png |binary
test/reference/clear.mask.rgb24.ref.png |binary
test/reference/clip-all.mask.argb32.ref.png |binary
test/reference/clip-all.mask.rgb24.ref.png |binary
test/reference/clip-complex-shape-eo-aa.mask.argb32.ref.png |binary
test/reference/clip-complex-shape-eo-aa.mask.rgb24.ref.png |binary
test/reference/clip-complex-shape-eo-mono.mask.argb32.ref.png |binary
test/reference/clip-complex-shape-eo-mono.mask.rgb24.ref.png |binary
test/reference/clip-contexts.mask.argb32.ref.png |binary
test/reference/clip-contexts.mask.rgb24.ref.png |binary
test/reference/clip-device-offset.mask.argb32.ref.png |binary
test/reference/clip-device-offset.mask.rgb24.ref.png |binary
test/reference/clip-disjoint-hatching.mask.argb32.ref.png |binary
test/reference/clip-disjoint-hatching.mask.rgb24.ref.png |binary
test/reference/clip-disjoint.mask.argb32.ref.png |binary
test/reference/clip-disjoint.mask.rgb24.ref.png |binary
test/reference/clip-empty-group.mask.argb32.ref.png |binary
test/reference/clip-empty-group.mask.rgb24.ref.png |binary
test/reference/clip-empty-save.mask.argb32.ref.png |binary
test/reference/clip-empty-save.mask.rgb24.ref.png |binary
test/reference/clip-empty.mask.argb32.ref.png |binary
test/reference/clip-empty.mask.rgb24.ref.png |binary
test/reference/clip-fill-eo-unbounded.mask.argb32.ref.png |binary
test/reference/clip-fill-eo-unbounded.mask.rgb24.ref.png |binary
test/reference/clip-fill-no-op.mask.argb32.ref.png |binary
test/reference/clip-fill-no-op.mask.rgb24.ref.png |binary
test/reference/clip-fill-nz-unbounded.mask.argb32.ref.png |binary
test/reference/clip-fill-nz-unbounded.mask.rgb24.ref.png |binary
test/reference/clip-fill-rule-pixel-aligned.mask.argb32.ref.png |binary
test/reference/clip-fill-rule-pixel-aligned.mask.rgb24.ref.png |binary
test/reference/clip-fill-rule.mask.argb32.ref.png |binary
test/reference/clip-fill-rule.mask.rgb24.ref.png |binary
test/reference/clip-fill.mask.argb32.ref.png |binary
test/reference/clip-fill.mask.rgb24.ref.png |binary
test/reference/clip-group-shapes-aligned-rectangles.mask.argb32.ref.png |binary
test/reference/clip-group-shapes-aligned-rectangles.mask.rgb24.ref.png |binary
test/reference/clip-group-shapes-circles.mask.argb32.ref.png |binary
test/reference/clip-group-shapes-circles.mask.rgb24.ref.png |binary
test/reference/clip-group-shapes-unaligned-rectangles.mask.argb32.ref.png |binary
test/reference/clip-group-shapes-unaligned-rectangles.mask.rgb24.ref.png |binary
test/reference/clip-image.mask.argb32.ref.png |binary
test/reference/clip-image.mask.rgb24.ref.png |binary
test/reference/clip-intersect.mask.argb32.ref.png |binary
test/reference/clip-intersect.mask.rgb24.ref.png |binary
test/reference/clip-mixed-antialias.mask.argb32.ref.png |binary
test/reference/clip-mixed-antialias.mask.rgb24.ref.png |binary
test/reference/clip-nesting.mask.argb32.ref.png |binary
test/reference/clip-nesting.mask.rgb24.ref.png |binary
test/reference/clip-operator.base.argb32.ref.png |binary
test/reference/clip-operator.base.rgb24.ref.png |binary
test/reference/clip-operator.mask.argb32.ref.png |binary
test/reference/clip-operator.mask.rgb24.ref.png |binary
test/reference/clip-polygons.base.argb32.ref.png |binary
test/reference/clip-polygons.base.rgb24.ref.png |binary
test/reference/clip-polygons.mask.argb32.ref.png |binary
test/reference/clip-polygons.mask.rgb24.ref.png |binary
test/reference/clip-polygons.traps.argb32.ref.png |binary
test/reference/clip-polygons.traps.rgb24.ref.png |binary
test/reference/clip-push-group.mask.argb32.ref.png |binary
test/reference/clip-push-group.mask.rgb24.ref.png |binary
test/reference/clip-rectilinear.base.argb32.ref.png |binary
test/reference/clip-rectilinear.base.rgb24.ref.png |binary
test/reference/clip-rectilinear.mask.argb32.ref.png |binary
test/reference/clip-rectilinear.mask.rgb24.ref.png |binary
test/reference/clip-rectilinear.traps.argb32.ref.png |binary
test/reference/clip-rectilinear.traps.rgb24.ref.png |binary
test/reference/clip-rotate-image-surface-paint.mask.argb32.ref.png |binary
test/reference/clip-rotate-image-surface-paint.mask.rgb24.ref.png |binary
test/reference/clip-shape.mask.argb32.ref.png |binary
test/reference/clip-shape.mask.rgb24.ref.png |binary
test/reference/clip-stroke-no-op.mask.argb32.ref.png |binary
test/reference/clip-stroke-no-op.mask.rgb24.ref.png |binary
test/reference/clip-stroke-unbounded.mask.argb32.ref.png |binary
test/reference/clip-stroke-unbounded.mask.rgb24.ref.png |binary
test/reference/clip-stroke.mask.argb32.ref.png |binary
test/reference/clip-stroke.mask.rgb24.ref.png |binary
test/reference/clip-text.base.argb32.ref.png |binary
test/reference/clip-text.base.rgb24.ref.png |binary
test/reference/clip-text.mask.argb32.ref.png |binary
test/reference/clip-text.mask.rgb24.ref.png |binary
test/reference/clip-twice-rectangle.mask.argb32.ref.png |binary
test/reference/clip-twice-rectangle.mask.rgb24.ref.png |binary
test/reference/clip-twice.mask.argb32.ref.png |binary
test/reference/clip-twice.mask.rgb24.ref.png |binary
test/reference/clip-unbounded.mask.argb32.ref.png |binary
test/reference/clip-unbounded.mask.rgb24.ref.png |binary
test/reference/clipped-group.mask.argb32.ref.png |binary
test/reference/clipped-group.mask.rgb24.ref.png |binary
test/reference/clipped-surface.mask.argb32.ref.png |binary
test/reference/clipped-surface.mask.rgb24.ref.png |binary
test/reference/close-path-current-point.mask.argb32.ref.png |binary
test/reference/close-path-current-point.mask.rgb24.ref.png |binary
test/reference/close-path.mask.argb32.ref.png |binary
test/reference/close-path.mask.rgb24.ref.png |binary
test/reference/composite-integer-translate-over-repeat.mask.argb32.ref.png |binary
test/reference/composite-integer-translate-over-repeat.mask.rgb24.ref.png |binary
test/reference/composite-integer-translate-over.mask.argb32.ref.png |binary
test/reference/composite-integer-translate-over.mask.rgb24.ref.png |binary
test/reference/composite-integer-translate-source.mask.argb32.ref.png |binary
test/reference/composite-integer-translate-source.mask.rgb24.ref.png |binary
test/reference/copy-disjoint.base.argb32.ref.png |binary
test/reference/copy-disjoint.base.rgb24.ref.png |binary
test/reference/copy-disjoint.mask.argb32.ref.png |binary
test/reference/copy-disjoint.mask.rgb24.ref.png |binary
test/reference/copy-disjoint.traps.argb32.ref.png |binary
test/reference/copy-disjoint.traps.rgb24.ref.png |binary
test/reference/copy-path.mask.argb32.ref.png |binary
test/reference/copy-path.mask.rgb24.ref.png |binary
test/reference/create-from-png-stream.mask.argb32.ref.png |binary
test/reference/create-from-png-stream.mask.rgb24.ref.png |binary
test/reference/create-from-png.mask.argb32.ref.png |binary
test/reference/create-from-png.mask.rgb24.ref.png |binary
test/reference/create-from-png.traps.argb32.ref.png |binary
test/reference/create-from-png.traps.rgb24.ref.png |binary
test/reference/culled-glyphs.base.argb32.ref.png |binary
test/reference/culled-glyphs.base.rgb24.ref.png |binary
test/reference/culled-glyphs.mask.argb32.ref.png |binary
test/reference/culled-glyphs.mask.rgb24.ref.png |binary
test/reference/culled-glyphs.traps.argb32.ref.png |binary
test/reference/culled-glyphs.traps.rgb24.ref.png |binary
test/reference/curve-to-as-line-to.mask.argb32.ref.png |binary
test/reference/curve-to-as-line-to.mask.rgb24.ref.png |binary
test/reference/dash-caps-joins.mask.argb32.ref.png |binary
test/reference/dash-caps-joins.mask.rgb24.ref.png |binary
test/reference/dash-curve.mask.argb32.ref.png |binary
test/reference/dash-curve.mask.rgb24.ref.png |binary
test/reference/dash-infinite-loop.mask.argb32.ref.png |binary
test/reference/dash-infinite-loop.mask.rgb24.ref.png |binary
test/reference/dash-no-dash.mask.argb32.ref.png |binary
test/reference/dash-no-dash.mask.rgb24.ref.png |binary
test/reference/dash-offset-negative.mask.argb32.ref.png |binary
test/reference/dash-offset-negative.mask.rgb24.ref.png |binary
test/reference/dash-offset.mask.argb32.ref.png |binary
test/reference/dash-offset.mask.rgb24.ref.png |binary
test/reference/dash-scale.mask.argb32.ref.png |binary
test/reference/dash-scale.mask.rgb24.ref.png |binary
test/reference/dash-state.mask.argb32.ref.png |binary
test/reference/dash-state.mask.rgb24.ref.png |binary
test/reference/dash-zero-length.mask.argb32.ref.png |binary
test/reference/dash-zero-length.mask.rgb24.ref.png |binary
test/reference/degenerate-arc.mask.argb32.ref.png |binary
test/reference/degenerate-arc.mask.rgb24.ref.png |binary
test/reference/degenerate-arcs.mask.argb32.ref.png |binary
test/reference/degenerate-arcs.mask.rgb24.ref.png |binary
test/reference/degenerate-curve-to.mask.argb32.ref.png |binary
test/reference/degenerate-curve-to.mask.rgb24.ref.png |binary
test/reference/degenerate-dash.mask.argb32.ref.png |binary
test/reference/degenerate-dash.mask.rgb24.ref.png |binary
test/reference/degenerate-linear-gradient.mask.argb32.ref.png |binary
test/reference/degenerate-linear-gradient.mask.rgb24.ref.png |binary
test/reference/degenerate-path.mask.argb32.ref.png |binary
test/reference/degenerate-path.mask.rgb24.ref.png |binary
test/reference/degenerate-pen.mask.argb32.ref.png |binary
test/reference/degenerate-pen.mask.rgb24.ref.png |binary
test/reference/degenerate-radial-gradient.mask.argb32.ref.png |binary
test/reference/degenerate-radial-gradient.mask.rgb24.ref.png |binary
test/reference/degenerate-rel-curve-to.mask.argb32.ref.png |binary
test/reference/degenerate-rel-curve-to.mask.rgb24.ref.png |binary
test/reference/device-offset-fractional.mask.argb32.ref.png |binary
test/reference/device-offset-fractional.mask.rgb24.ref.png |binary
test/reference/device-offset-positive.mask.argb32.ref.png |binary
test/reference/device-offset-positive.mask.rgb24.ref.png |binary
test/reference/device-offset-scale.mask.argb32.ref.png |binary
test/reference/device-offset-scale.mask.rgb24.ref.png |binary
test/reference/device-offset.mask.argb32.ref.png |binary
test/reference/device-offset.mask.rgb24.ref.png |binary
test/reference/drunkard-tails.mask.argb32.ref.png |binary
test/reference/drunkard-tails.mask.rgb24.ref.png |binary
test/reference/extend-pad-border.mask.argb32.ref.png |binary
test/reference/extend-pad-border.mask.rgb24.ref.png |binary
test/reference/extend-pad-similar.mask.argb32.ref.png |binary
test/reference/extend-pad-similar.mask.rgb24.ref.png |binary
test/reference/extend-pad.mask.argb32.ref.png |binary
test/reference/extend-pad.mask.rgb24.ref.png |binary
test/reference/extend-reflect-similar.mask.argb32.ref.png |binary
test/reference/extend-reflect-similar.mask.rgb24.ref.png |binary
test/reference/extend-reflect.mask.argb32.ref.png |binary
test/reference/extend-reflect.mask.rgb24.ref.png |binary
test/reference/extend-repeat-similar.mask.argb32.ref.png |binary
test/reference/extend-repeat-similar.mask.rgb24.ref.png |binary
test/reference/extend-repeat.mask.argb32.ref.png |binary
test/reference/extend-repeat.mask.rgb24.ref.png |binary
test/reference/extended-blend-alpha-mask.mask.argb32.ref.png |binary
test/reference/extended-blend-alpha-mask.mask.rgb24.ref.png |binary
test/reference/extended-blend-alpha.mask.argb32.ref.png |binary
test/reference/extended-blend-alpha.mask.rgb24.ref.png |binary
test/reference/extended-blend-mask.mask.argb32.ref.png |binary
test/reference/extended-blend-mask.mask.rgb24.ref.png |binary
test/reference/extended-blend-solid-alpha.mask.argb32.ref.png |binary
test/reference/extended-blend-solid-alpha.mask.rgb24.ref.png |binary
test/reference/extended-blend-solid.mask.argb32.ref.png |binary
test/reference/extended-blend-solid.mask.rgb24.ref.png |binary
test/reference/extended-blend.mask.argb32.ref.png |binary
test/reference/extended-blend.mask.rgb24.ref.png |binary
test/reference/fallback.base.argb32.ref.png |binary
test/reference/fallback.base.rgb24.ref.png |binary
test/reference/fallback.mask.argb32.ref.png |binary
test/reference/fallback.mask.rgb24.ref.png |binary
test/reference/fallback.traps.argb32.ref.png |binary
test/reference/fallback.traps.rgb24.ref.png |binary
test/reference/fill-alpha-pattern.mask.argb32.ref.png |binary
test/reference/fill-alpha-pattern.mask.rgb24.ref.png |binary
test/reference/fill-alpha.mask.argb32.ref.png |binary
test/reference/fill-alpha.mask.rgb24.ref.png |binary
test/reference/fill-and-stroke-alpha-add.mask.argb32.ref.png |binary
test/reference/fill-and-stroke-alpha-add.mask.rgb24.ref.png |binary
test/reference/fill-and-stroke-alpha.mask.argb32.ref.png |binary
test/reference/fill-and-stroke-alpha.mask.rgb24.ref.png |binary
test/reference/fill-and-stroke.mask.argb32.ref.png |binary
test/reference/fill-and-stroke.mask.rgb24.ref.png |binary
test/reference/fill-degenerate-sort-order.mask.argb32.ref.png |binary
test/reference/fill-degenerate-sort-order.mask.rgb24.ref.png |binary
test/reference/fill-disjoint.base.argb32.ref.png |binary
test/reference/fill-disjoint.base.rgb24.ref.png |binary
test/reference/fill-disjoint.mask.argb32.ref.png |binary
test/reference/fill-disjoint.mask.rgb24.ref.png |binary
test/reference/fill-disjoint.traps.argb32.ref.png |binary
test/reference/fill-disjoint.traps.rgb24.ref.png |binary
test/reference/fill-empty.mask.argb32.ref.png |binary
test/reference/fill-empty.mask.rgb24.ref.png |binary
test/reference/fill-image.base.argb32.ref.png |binary
test/reference/fill-image.base.rgb24.ref.png |binary
test/reference/fill-image.mask.argb32.ref.png |binary
test/reference/fill-image.mask.rgb24.ref.png |binary
test/reference/fill-image.traps.argb32.ref.png |binary
test/reference/fill-image.traps.rgb24.ref.png |binary
test/reference/fill-missed-stop.mask.argb32.ref.png |binary
test/reference/fill-missed-stop.mask.rgb24.ref.png |binary
test/reference/fill-rule.mask.argb32.ref.png |binary
test/reference/fill-rule.mask.rgb24.ref.png |binary
test/reference/filter-bilinear-extents.mask.argb32.ref.png |binary
test/reference/filter-bilinear-extents.mask.rgb24.ref.png |binary
test/reference/filter-nearest-offset.mask.argb32.ref.png |binary
test/reference/filter-nearest-offset.mask.rgb24.ref.png |binary
test/reference/filter-nearest-transformed.mask.argb32.ref.png |binary
test/reference/filter-nearest-transformed.mask.rgb24.ref.png |binary
test/reference/finer-grained-fallbacks.mask.argb32.ref.png |binary
test/reference/finer-grained-fallbacks.mask.rgb24.ref.png |binary
test/reference/font-matrix-translation.base.argb32.ref.png |binary
test/reference/font-matrix-translation.base.rgb24.ref.png |binary
test/reference/font-matrix-translation.mask.argb32.ref.png |binary
test/reference/font-matrix-translation.mask.rgb24.ref.png |binary
test/reference/font-matrix-translation.traps.argb32.ref.png |binary
test/reference/font-matrix-translation.traps.rgb24.ref.png |binary
test/reference/ft-show-glyphs-positioning.base.argb32.ref.png |binary
test/reference/ft-show-glyphs-positioning.base.rgb24.ref.png |binary
test/reference/ft-show-glyphs-positioning.mask.argb32.ref.png |binary
test/reference/ft-show-glyphs-positioning.mask.rgb24.ref.png |binary
test/reference/ft-show-glyphs-positioning.traps.argb32.ref.png |binary
test/reference/ft-show-glyphs-positioning.traps.rgb24.ref.png |binary
test/reference/ft-show-glyphs-table.base.argb32.ref.png |binary
test/reference/ft-show-glyphs-table.base.rgb24.ref.png |binary
test/reference/ft-show-glyphs-table.mask.argb32.ref.png |binary
test/reference/ft-show-glyphs-table.mask.rgb24.ref.png |binary
test/reference/ft-show-glyphs-table.traps.argb32.ref.png |binary
test/reference/ft-show-glyphs-table.traps.rgb24.ref.png |binary
test/reference/ft-text-antialias-none.mask.argb32.ref.png |binary
test/reference/ft-text-antialias-none.mask.rgb24.ref.png |binary
test/reference/ft-text-vertical-layout-type1.mask.argb32.ref.png |binary
test/reference/ft-text-vertical-layout-type1.mask.rgb24.ref.png |binary
test/reference/ft-text-vertical-layout-type3.mask.argb32.ref.png |binary
test/reference/ft-text-vertical-layout-type3.mask.rgb24.ref.png |binary
test/reference/get-group-target.mask.argb32.ref.png |binary
test/reference/get-group-target.mask.rgb24.ref.png |binary
test/reference/gl-surface-source.base.argb32.ref.png |binary
test/reference/gl-surface-source.base.rgb24.ref.png |binary
test/reference/gl-surface-source.mask.argb32.ref.png |binary
test/reference/gl-surface-source.mask.rgb24.ref.png |binary
test/reference/gl-surface-source.traps.argb32.ref.png |binary
test/reference/gl-surface-source.traps.rgb24.ref.png |binary
test/reference/glyph-cache-pressure.base.argb32.ref.png |binary
test/reference/glyph-cache-pressure.base.rgb24.ref.png |binary
test/reference/glyph-cache-pressure.mask.argb32.ref.png |binary
test/reference/glyph-cache-pressure.mask.rgb24.ref.png |binary
test/reference/glyph-cache-pressure.traps.argb32.ref.png |binary
test/reference/glyph-cache-pressure.traps.rgb24.ref.png |binary
test/reference/gradient-alpha.mask.argb32.ref.png |binary
test/reference/gradient-alpha.mask.rgb24.ref.png |binary
test/reference/gradient-constant-alpha.mask.argb32.ref.png |binary
test/reference/gradient-constant-alpha.mask.rgb24.ref.png |binary
test/reference/gradient-zero-stops-mask.mask.argb32.ref.png |binary
test/reference/gradient-zero-stops-mask.mask.rgb24.ref.png |binary
test/reference/gradient-zero-stops.mask.argb32.ref.png |binary
test/reference/gradient-zero-stops.mask.rgb24.ref.png |binary
test/reference/group-clip.mask.argb32.ref.png |binary
test/reference/group-clip.mask.rgb24.ref.png |binary
test/reference/group-paint.mask.argb32.ref.png |binary
test/reference/group-paint.mask.rgb24.ref.png |binary
test/reference/group-unaligned.mask.argb32.ref.png |binary
test/reference/group-unaligned.mask.rgb24.ref.png |binary
test/reference/halo-transform.base.argb32.ref.png |binary
test/reference/halo-transform.base.rgb24.ref.png |binary
test/reference/halo-transform.mask.argb32.ref.png |binary
test/reference/halo-transform.mask.rgb24.ref.png |binary
test/reference/halo-transform.traps.argb32.ref.png |binary
test/reference/halo-transform.traps.rgb24.ref.png |binary
test/reference/halo.base.argb32.ref.png |binary
test/reference/halo.base.rgb24.ref.png |binary
test/reference/halo.mask.argb32.ref.png |binary
test/reference/halo.mask.rgb24.ref.png |binary
test/reference/halo.traps.argb32.ref.png |binary
test/reference/halo.traps.rgb24.ref.png |binary
test/reference/hatchings.mask.argb32.ref.png |binary
test/reference/hatchings.mask.rgb24.ref.png |binary
test/reference/horizontal-clip.mask.argb32.ref.png |binary
test/reference/horizontal-clip.mask.rgb24.ref.png |binary
test/reference/huge-linear.mask.argb32.ref.png |binary
test/reference/huge-linear.mask.rgb24.ref.png |binary
test/reference/huge-radial.mask.argb32.ref.png |binary
test/reference/huge-radial.mask.rgb24.ref.png |binary
test/reference/image-bug-710072-aligned.mask.argb32.ref.png |binary
test/reference/image-bug-710072-aligned.mask.rgb24.ref.png |binary
test/reference/image-bug-710072-unaligned.mask.argb32.ref.png |binary
test/reference/image-bug-710072-unaligned.mask.rgb24.ref.png |binary
test/reference/image-surface-source.mask.argb32.ref.png |binary
test/reference/image-surface-source.mask.rgb24.ref.png |binary
test/reference/implicit-close.mask.argb32.ref.png |binary
test/reference/implicit-close.mask.rgb24.ref.png |binary
test/reference/infinite-join.mask.argb32.ref.png |binary
test/reference/infinite-join.mask.rgb24.ref.png |binary
test/reference/inverse-text.base.argb32.ref.png |binary
test/reference/inverse-text.base.rgb24.ref.png |binary
test/reference/inverse-text.mask.argb32.ref.png |binary
test/reference/inverse-text.mask.rgb24.ref.png |binary
test/reference/inverse-text.traps.argb32.ref.png |binary
test/reference/inverse-text.traps.rgb24.ref.png |binary
test/reference/joins-loop.mask.argb32.ref.png |binary
test/reference/joins-loop.mask.rgb24.ref.png |binary
test/reference/joins-retrace.mask.argb32.ref.png |binary
test/reference/joins-retrace.mask.rgb24.ref.png |binary
test/reference/joins-star.mask.argb32.ref.png |binary
test/reference/joins-star.mask.rgb24.ref.png |binary
test/reference/joins.mask.argb32.ref.png |binary
test/reference/joins.mask.rgb24.ref.png |binary
test/reference/large-clip.mask.argb32.ref.png |binary
test/reference/large-clip.mask.rgb24.ref.png |binary
test/reference/large-font.mask.argb32.ref.png |binary
test/reference/large-font.mask.rgb24.ref.png |binary
test/reference/large-source-roi.mask.argb32.ref.png |binary
test/reference/large-source-roi.mask.rgb24.ref.png |binary
test/reference/large-source.mask.argb32.ref.png |binary
test/reference/large-source.mask.rgb24.ref.png |binary
test/reference/large-twin-antialias-mixed.base.argb32.ref.png |binary
test/reference/large-twin-antialias-mixed.base.rgb24.ref.png |binary
test/reference/large-twin-antialias-mixed.mask.argb32.ref.png |binary
test/reference/large-twin-antialias-mixed.mask.rgb24.ref.png |binary
test/reference/large-twin-antialias-mixed.traps.argb32.ref.png |binary
test/reference/large-twin-antialias-mixed.traps.rgb24.ref.png |binary
test/reference/leaky-dash.mask.argb32.ref.png |binary
test/reference/leaky-dash.mask.rgb24.ref.png |binary
test/reference/leaky-dashed-rectangle.mask.argb32.ref.png |binary
test/reference/leaky-dashed-rectangle.mask.rgb24.ref.png |binary
test/reference/leaky-dashed-stroke.mask.argb32.ref.png |binary
test/reference/leaky-dashed-stroke.mask.rgb24.ref.png |binary
test/reference/leaky-polygon.mask.argb32.ref.png |binary
test/reference/leaky-polygon.mask.rgb24.ref.png |binary
test/reference/line-width-large-overlap-dashed.base.argb32.ref.png |binary
test/reference/line-width-large-overlap-dashed.base.rgb24.ref.png |binary
test/reference/line-width-large-overlap-dashed.mask.argb32.ref.png |binary
test/reference/line-width-large-overlap-dashed.mask.rgb24.ref.png |binary
test/reference/line-width-large-overlap-dashed.traps.argb32.ref.png |binary
test/reference/line-width-large-overlap-dashed.traps.rgb24.ref.png |binary
test/reference/line-width-large-overlap-flipped.base.argb32.ref.png |binary
test/reference/line-width-large-overlap-flipped.base.rgb24.ref.png |binary
test/reference/line-width-large-overlap-flipped.mask.argb32.ref.png |binary
test/reference/line-width-large-overlap-flipped.mask.rgb24.ref.png |binary
test/reference/line-width-large-overlap-flipped.traps.argb32.ref.png |binary
test/reference/line-width-large-overlap-flipped.traps.rgb24.ref.png |binary
test/reference/line-width-large-overlap-flopped.base.argb32.ref.png |binary
test/reference/line-width-large-overlap-flopped.base.rgb24.ref.png |binary
test/reference/line-width-large-overlap-flopped.mask.argb32.ref.png |binary
test/reference/line-width-large-overlap-flopped.mask.rgb24.ref.png |binary
test/reference/line-width-large-overlap-flopped.traps.argb32.ref.png |binary
test/reference/line-width-large-overlap-flopped.traps.rgb24.ref.png |binary
test/reference/line-width-large-overlap-offset.base.argb32.ref.png |binary
test/reference/line-width-large-overlap-offset.base.rgb24.ref.png |binary
test/reference/line-width-large-overlap-offset.mask.argb32.ref.png |binary
test/reference/line-width-large-overlap-offset.mask.rgb24.ref.png |binary
test/reference/line-width-large-overlap-offset.traps.argb32.ref.png |binary
test/reference/line-width-large-overlap-offset.traps.rgb24.ref.png |binary
test/reference/line-width-large-overlap-rotated.base.argb32.ref.png |binary
test/reference/line-width-large-overlap-rotated.base.rgb24.ref.png |binary
test/reference/line-width-large-overlap-rotated.mask.argb32.ref.png |binary
test/reference/line-width-large-overlap-rotated.mask.rgb24.ref.png |binary
test/reference/line-width-large-overlap-rotated.traps.argb32.ref.png |binary
test/reference/line-width-large-overlap-rotated.traps.rgb24.ref.png |binary
test/reference/line-width-large-overlap.base.argb32.ref.png |binary
test/reference/line-width-large-overlap.base.rgb24.ref.png |binary
test/reference/line-width-large-overlap.mask.argb32.ref.png |binary
test/reference/line-width-large-overlap.mask.rgb24.ref.png |binary
test/reference/line-width-large-overlap.traps.argb32.ref.png |binary
test/reference/line-width-large-overlap.traps.rgb24.ref.png |binary
test/reference/line-width-overlap-dashed.mask.argb32.ref.png |binary
test/reference/line-width-overlap-dashed.mask.rgb24.ref.png |binary
test/reference/line-width-overlap-flipped.mask.argb32.ref.png |binary
test/reference/line-width-overlap-flipped.mask.rgb24.ref.png |binary
test/reference/line-width-overlap-flopped.mask.argb32.ref.png |binary
test/reference/line-width-overlap-flopped.mask.rgb24.ref.png |binary
test/reference/line-width-overlap-offset.mask.argb32.ref.png |binary
test/reference/line-width-overlap-offset.mask.rgb24.ref.png |binary
test/reference/line-width-overlap-offset.traps.argb32.ref.png |binary
test/reference/line-width-overlap-offset.traps.rgb24.ref.png |binary
test/reference/line-width-overlap-rotated.mask.argb32.ref.png |binary
test/reference/line-width-overlap-rotated.mask.rgb24.ref.png |binary
test/reference/line-width-overlap.mask.argb32.ref.png |binary
test/reference/line-width-overlap.mask.rgb24.ref.png |binary
test/reference/line-width-scale.mask.argb32.ref.png |binary
test/reference/line-width-scale.mask.rgb24.ref.png |binary
test/reference/line-width-tolerance.mask.argb32.ref.png |binary
test/reference/line-width-tolerance.mask.rgb24.ref.png |binary
test/reference/line-width.mask.argb32.ref.png |binary
test/reference/line-width.mask.rgb24.ref.png |binary
test/reference/linear-gradient-extend.mask.argb32.ref.png |binary
test/reference/linear-gradient-extend.mask.rgb24.ref.png |binary
test/reference/linear-gradient-large.mask.argb32.ref.png |binary
test/reference/linear-gradient-large.mask.rgb24.ref.png |binary
test/reference/linear-gradient-one-stop.mask.argb32.ref.png |binary
test/reference/linear-gradient-one-stop.mask.rgb24.ref.png |binary
test/reference/linear-gradient-reflect.mask.argb32.ref.png |binary
test/reference/linear-gradient-reflect.mask.rgb24.ref.png |binary
test/reference/linear-gradient-subset.mask.argb32.ref.png |binary
test/reference/linear-gradient-subset.mask.rgb24.ref.png |binary
test/reference/linear-gradient.mask.argb32.ref.png |binary
test/reference/linear-gradient.mask.rgb24.ref.png |binary
test/reference/linear-step-function.mask.argb32.ref.png |binary
test/reference/linear-step-function.mask.rgb24.ref.png |binary
test/reference/linear-uniform.mask.argb32.ref.png |binary
test/reference/linear-uniform.mask.rgb24.ref.png |binary
test/reference/long-dashed-lines.mask.argb32.ref.png |binary
test/reference/long-dashed-lines.mask.rgb24.ref.png |binary
test/reference/long-lines.mask.argb32.ref.png |binary
test/reference/long-lines.mask.rgb24.ref.png |binary
test/reference/map-all-to-image.mask.argb32.ref.png |binary
test/reference/map-all-to-image.mask.rgb24.ref.png |binary
test/reference/map-bit-to-image.mask.argb32.ref.png |binary
test/reference/map-bit-to-image.mask.rgb24.ref.png |binary
test/reference/map-to-image-fill.mask.argb32.ref.png |binary
test/reference/map-to-image-fill.mask.rgb24.ref.png |binary
test/reference/mask-alpha.mask.argb32.ref.png |binary
test/reference/mask-alpha.mask.rgb24.ref.png |binary
test/reference/mask-ctm.mask.argb32.ref.png |binary
test/reference/mask-ctm.mask.rgb24.ref.png |binary
test/reference/mask-surface-ctm.mask.argb32.ref.png |binary
test/reference/mask-surface-ctm.mask.rgb24.ref.png |binary
test/reference/mask-transformed-image.mask.argb32.ref.png |binary
test/reference/mask-transformed-image.mask.rgb24.ref.png |binary
test/reference/mask-transformed-similar.mask.argb32.ref.png |binary
test/reference/mask-transformed-similar.mask.rgb24.ref.png |binary
test/reference/mask.mask.argb32.ref.png |binary
test/reference/mask.mask.rgb24.ref.png |binary
test/reference/mesh-pattern-accuracy.mask.argb32.ref.png |binary
test/reference/mesh-pattern-accuracy.mask.rgb24.ref.png |binary
test/reference/mesh-pattern-conical.mask.argb32.ref.png |binary
test/reference/mesh-pattern-conical.mask.rgb24.ref.png |binary
test/reference/mesh-pattern-control-points.mask.argb32.ref.png |binary
test/reference/mesh-pattern-control-points.mask.rgb24.ref.png |binary
test/reference/mesh-pattern-fold.mask.argb32.ref.png |binary
test/reference/mesh-pattern-fold.mask.rgb24.ref.png |binary
test/reference/mesh-pattern-overlap.mask.argb32.ref.png |binary
test/reference/mesh-pattern-overlap.mask.rgb24.ref.png |binary
test/reference/mesh-pattern-transformed.mask.argb32.ref.png |binary
test/reference/mesh-pattern-transformed.mask.rgb24.ref.png |binary
test/reference/mesh-pattern.mask.argb32.ref.png |binary
test/reference/mesh-pattern.mask.rgb24.ref.png |binary
test/reference/mime-data.mask.argb32.ref.png |binary
test/reference/mime-data.mask.rgb24.ref.png |binary
test/reference/miter-precision.mask.argb32.ref.png |binary
test/reference/miter-precision.mask.rgb24.ref.png |binary
test/reference/move-to-show-surface.mask.argb32.ref.png |binary
test/reference/move-to-show-surface.mask.rgb24.ref.png |binary
test/reference/negative-stride-image.base.argb32.ref.png |binary
test/reference/negative-stride-image.base.rgb24.ref.png |binary
test/reference/negative-stride-image.mask.argb32.ref.png |binary
test/reference/negative-stride-image.mask.rgb24.ref.png |binary
test/reference/negative-stride-image.traps.argb32.ref.png |binary
test/reference/negative-stride-image.traps.rgb24.ref.png |binary
test/reference/new-sub-path.mask.argb32.ref.png |binary
test/reference/new-sub-path.mask.rgb24.ref.png |binary
test/reference/nil-surface.mask.argb32.ref.png |binary
test/reference/nil-surface.mask.rgb24.ref.png |binary
test/reference/operator-alpha-alpha.mask.argb32.ref.png |binary
test/reference/operator-alpha-alpha.mask.rgb24.ref.png |binary
test/reference/operator-alpha.mask.argb32.ref.png |binary
test/reference/operator-alpha.mask.rgb24.ref.png |binary
test/reference/operator-clear.base.argb32.ref.png |binary
test/reference/operator-clear.base.rgb24.ref.png |binary
test/reference/operator-clear.mask.argb32.ref.png |binary
test/reference/operator-clear.mask.rgb24.ref.png |binary
test/reference/operator-source.base.argb32.ref.png |binary
test/reference/operator-source.base.rgb24.ref.png |binary
test/reference/operator-source.mask.argb32.ref.png |binary
test/reference/operator-source.mask.rgb24.ref.png |binary
test/reference/operator.mask.argb32.ref.png |binary
test/reference/operator.mask.rgb24.ref.png |binary
test/reference/over-above-source.mask.argb32.ref.png |binary
test/reference/over-above-source.mask.rgb24.ref.png |binary
test/reference/over-around-source.mask.argb32.ref.png |binary
test/reference/over-around-source.mask.rgb24.ref.png |binary
test/reference/over-below-source.mask.argb32.ref.png |binary
test/reference/over-below-source.mask.rgb24.ref.png |binary
test/reference/over-between-source.mask.argb32.ref.png |binary
test/reference/over-between-source.mask.rgb24.ref.png |binary
test/reference/overlapping-boxes.mask.argb32.ref.png |binary
test/reference/overlapping-boxes.mask.rgb24.ref.png |binary
test/reference/overlapping-dash-caps.mask.argb32.ref.png |binary
test/reference/overlapping-dash-caps.mask.rgb24.ref.png |binary
test/reference/overlapping-glyphs.base.argb32.ref.png |binary
test/reference/overlapping-glyphs.base.rgb24.ref.png |binary
test/reference/overlapping-glyphs.mask.argb32.ref.png |binary
test/reference/overlapping-glyphs.mask.rgb24.ref.png |binary
test/reference/overlapping-glyphs.traps.argb32.ref.png |binary
test/reference/overlapping-glyphs.traps.rgb24.ref.png |binary
test/reference/paint-clip-fill-aa.mask.argb32.ref.png |binary
test/reference/paint-clip-fill-aa.mask.rgb24.ref.png |binary
test/reference/paint-clip-fill-mono.mask.argb32.ref.png |binary
test/reference/paint-clip-fill-mono.mask.rgb24.ref.png |binary
test/reference/paint-repeat.mask.argb32.ref.png |binary
test/reference/paint-repeat.mask.rgb24.ref.png |binary
test/reference/paint-source-alpha.mask.argb32.ref.png |binary
test/reference/paint-source-alpha.mask.rgb24.ref.png |binary
test/reference/paint-with-alpha-clip-mask.mask.argb32.ref.png |binary
test/reference/paint-with-alpha-clip-mask.mask.rgb24.ref.png |binary
test/reference/paint-with-alpha-clip.mask.argb32.ref.png |binary
test/reference/paint-with-alpha-clip.mask.rgb24.ref.png |binary
test/reference/paint-with-alpha-solid-clip.mask.argb32.ref.png |binary
test/reference/paint-with-alpha-solid-clip.mask.rgb24.ref.png |binary
test/reference/paint-with-alpha.mask.argb32.ref.png |binary
test/reference/paint-with-alpha.mask.rgb24.ref.png |binary
test/reference/paint.mask.argb32.ref.png |binary
test/reference/paint.mask.rgb24.ref.png |binary
test/reference/partial-clip-text-bottom.base.argb32.ref.png |binary
test/reference/partial-clip-text-bottom.base.rgb24.ref.png |binary
test/reference/partial-clip-text-bottom.mask.argb32.ref.png |binary
test/reference/partial-clip-text-bottom.mask.rgb24.ref.png |binary
test/reference/partial-clip-text-bottom.traps.argb32.ref.png |binary
test/reference/partial-clip-text-bottom.traps.rgb24.ref.png |binary
test/reference/partial-clip-text-left.base.argb32.ref.png |binary
test/reference/partial-clip-text-left.base.rgb24.ref.png |binary
test/reference/partial-clip-text-left.mask.argb32.ref.png |binary
test/reference/partial-clip-text-left.mask.rgb24.ref.png |binary
test/reference/partial-clip-text-left.traps.argb32.ref.png |binary
test/reference/partial-clip-text-left.traps.rgb24.ref.png |binary
test/reference/partial-clip-text-right.base.argb32.ref.png |binary
test/reference/partial-clip-text-right.base.rgb24.ref.png |binary
test/reference/partial-clip-text-right.mask.argb32.ref.png |binary
test/reference/partial-clip-text-right.mask.rgb24.ref.png |binary
test/reference/partial-clip-text-right.traps.argb32.ref.png |binary
test/reference/partial-clip-text-right.traps.rgb24.ref.png |binary
test/reference/partial-clip-text-top.base.argb32.ref.png |binary
test/reference/partial-clip-text-top.base.rgb24.ref.png |binary
test/reference/partial-clip-text-top.mask.argb32.ref.png |binary
test/reference/partial-clip-text-top.mask.rgb24.ref.png |binary
test/reference/partial-clip-text-top.traps.argb32.ref.png |binary
test/reference/partial-clip-text-top.traps.rgb24.ref.png |binary
test/reference/partial-coverage-half-reference.mask.argb32.ref.png |binary
test/reference/partial-coverage-half-reference.mask.rgb24.ref.png |binary
test/reference/partial-coverage-reference.mask.argb32.ref.png |binary
test/reference/partial-coverage-reference.mask.rgb24.ref.png |binary
test/reference/partial-coverage-three-quarter-reference.mask.argb32.ref.png |binary
test/reference/partial-coverage-three-quarter-reference.mask.rgb24.ref.png |binary
test/reference/pass-through.base.argb32.ref.png |binary
test/reference/pass-through.base.rgb24.ref.png |binary
test/reference/pass-through.mask.argb32.ref.png |binary
test/reference/pass-through.mask.rgb24.ref.png |binary
test/reference/pass-through.traps.argb32.ref.png |binary
test/reference/pass-through.traps.rgb24.ref.png |binary
test/reference/path-append.mask.argb32.ref.png |binary
test/reference/path-append.mask.rgb24.ref.png |binary
test/reference/path-stroke-twice.mask.argb32.ref.png |binary
test/reference/path-stroke-twice.mask.rgb24.ref.png |binary
test/reference/pattern-getters.mask.argb32.ref.png |binary
test/reference/pattern-getters.mask.rgb24.ref.png |binary
test/reference/pdf-surface-source.mask.argb32.ref.png |binary
test/reference/pdf-surface-source.mask.rgb24.ref.png |binary
test/reference/pixman-rotate.mask.argb32.ref.png |binary
test/reference/pixman-rotate.mask.rgb24.ref.png |binary
test/reference/ps-surface-source.mask.argb32.ref.png |binary
test/reference/ps-surface-source.mask.rgb24.ref.png |binary
test/reference/pthread-same-source.mask.argb32.ref.png |binary
test/reference/pthread-same-source.mask.rgb24.ref.png |binary
test/reference/pthread-show-text.base.argb32.ref.png |binary
test/reference/pthread-show-text.base.rgb24.ref.png |binary
test/reference/pthread-show-text.mask.argb32.ref.png |binary
test/reference/pthread-show-text.mask.rgb24.ref.png |binary
test/reference/pthread-show-text.traps.argb32.ref.png |binary
test/reference/pthread-show-text.traps.rgb24.ref.png |binary
test/reference/pthread-similar.mask.argb32.ref.png |binary
test/reference/pthread-similar.mask.rgb24.ref.png |binary
test/reference/push-group-color.mask.argb32.ref.png |binary
test/reference/push-group-color.mask.rgb24.ref.png |binary
test/reference/push-group-path-offset.mask.argb32.ref.png |binary
test/reference/push-group-path-offset.mask.rgb24.ref.png |binary
test/reference/push-group.mask.argb32.ref.png |binary
test/reference/push-group.mask.rgb24.ref.png |binary
test/reference/radial-gradient-extend.mask.argb32.ref.png |binary
test/reference/radial-gradient-extend.mask.rgb24.ref.png |binary
test/reference/radial-gradient-mask-source.mask.argb32.ref.png |binary
test/reference/radial-gradient-mask-source.mask.rgb24.ref.png |binary
test/reference/radial-gradient-mask.mask.argb32.ref.png |binary
test/reference/radial-gradient-mask.mask.rgb24.ref.png |binary
test/reference/radial-gradient-one-stop.mask.argb32.ref.png |binary
test/reference/radial-gradient-one-stop.mask.rgb24.ref.png |binary
test/reference/radial-gradient-source.mask.argb32.ref.png |binary
test/reference/radial-gradient-source.mask.rgb24.ref.png |binary
test/reference/radial-gradient.mask.argb32.ref.png |binary
test/reference/radial-gradient.mask.rgb24.ref.png |binary
test/reference/radial-outer-focus.base.argb32.ref.png |binary
test/reference/radial-outer-focus.base.rgb24.ref.png |binary
test/reference/radial-outer-focus.mask.argb32.ref.png |binary
test/reference/radial-outer-focus.mask.rgb24.ref.png |binary
test/reference/radial-outer-focus.traps.argb32.ref.png |binary
test/reference/radial-outer-focus.traps.rgb24.ref.png |binary
test/reference/random-clip.base.argb32.ref.png |binary
test/reference/random-clip.base.rgb24.ref.png |binary
test/reference/random-clip.mask.argb32.ref.png |binary
test/reference/random-clip.mask.rgb24.ref.png |binary
test/reference/random-clip.traps.argb32.ref.png |binary
test/reference/random-clip.traps.rgb24.ref.png |binary
test/reference/random-intersections-curves-eo.mask.argb32.ref.png |binary
test/reference/random-intersections-curves-eo.mask.rgb24.ref.png |binary
test/reference/random-intersections-curves-nz.mask.argb32.ref.png |binary
test/reference/random-intersections-curves-nz.mask.rgb24.ref.png |binary
test/reference/random-intersections-eo.mask.argb32.ref.png |binary
test/reference/random-intersections-eo.mask.rgb24.ref.png |binary
test/reference/random-intersections-nonzero.mask.argb32.ref.png |binary
test/reference/random-intersections-nonzero.mask.rgb24.ref.png |binary
test/reference/raster-source.mask.argb32.ref.png |binary
test/reference/raster-source.mask.rgb24.ref.png |binary
test/reference/rectangle-rounding-error.mask.argb32.ref.png |binary
test/reference/rectangle-rounding-error.mask.rgb24.ref.png |binary
test/reference/rectilinear-dash.mask.argb32.ref.png |binary
test/reference/rectilinear-dash.mask.rgb24.ref.png |binary
test/reference/rectilinear-fill.mask.argb32.ref.png |binary
test/reference/rectilinear-fill.mask.rgb24.ref.png |binary
test/reference/rectilinear-grid.mask.argb32.ref.png |binary
test/reference/rectilinear-grid.mask.rgb24.ref.png |binary
test/reference/rectilinear-miter-limit.mask.argb32.ref.png |binary
test/reference/rectilinear-miter-limit.mask.rgb24.ref.png |binary
test/reference/rectilinear-stroke.mask.argb32.ref.png |binary
test/reference/rectilinear-stroke.mask.rgb24.ref.png |binary
test/reference/reflected-stroke.mask.argb32.ref.png |binary
test/reference/reflected-stroke.mask.rgb24.ref.png |binary
test/reference/rel-path.mask.argb32.ref.png |binary
test/reference/rel-path.mask.rgb24.ref.png |binary
test/reference/rgb24-ignore-alpha.mask.argb32.ref.png |binary
test/reference/rgb24-ignore-alpha.mask.rgb24.ref.png |binary
test/reference/rotate-clip-image-surface-paint.mask.argb32.ref.png |binary
test/reference/rotate-clip-image-surface-paint.mask.rgb24.ref.png |binary
test/reference/rotate-image-surface-paint.mask.argb32.ref.png |binary
test/reference/rotate-image-surface-paint.mask.rgb24.ref.png |binary
test/reference/rotated-clip.mask.argb32.ref.png |binary
test/reference/rotated-clip.mask.rgb24.ref.png |binary
test/reference/rounded-rectangle-fill.mask.argb32.ref.png |binary
test/reference/rounded-rectangle-fill.mask.rgb24.ref.png |binary
test/reference/rounded-rectangle-stroke.mask.argb32.ref.png |binary
test/reference/rounded-rectangle-stroke.mask.rgb24.ref.png |binary
test/reference/scale-down-source-surface-paint.mask.argb32.ref.png |binary
test/reference/scale-down-source-surface-paint.mask.rgb24.ref.png |binary
test/reference/scale-offset-image.mask.argb32.ref.png |binary
test/reference/scale-offset-image.mask.rgb24.ref.png |binary
test/reference/scale-offset-similar.mask.argb32.ref.png |binary
test/reference/scale-offset-similar.mask.rgb24.ref.png |binary
test/reference/scale-source-surface-paint.mask.argb32.ref.png |binary
test/reference/scale-source-surface-paint.mask.rgb24.ref.png |binary
test/reference/select-font-face.base.argb32.ref.png |binary
test/reference/select-font-face.base.rgb24.ref.png |binary
test/reference/select-font-face.mask.argb32.ref.png |binary
test/reference/select-font-face.mask.rgb24.ref.png |binary
test/reference/select-font-face.traps.argb32.ref.png |binary
test/reference/select-font-face.traps.rgb24.ref.png |binary
test/reference/self-copy-overlap.mask.argb32.ref.png |binary
test/reference/self-copy-overlap.mask.rgb24.ref.png |binary
test/reference/self-copy.mask.argb32.ref.png |binary
test/reference/self-copy.mask.rgb24.ref.png |binary
test/reference/self-intersecting.mask.argb32.ref.png |binary
test/reference/self-intersecting.mask.rgb24.ref.png |binary
test/reference/set-source.mask.argb32.ref.png |binary
test/reference/set-source.mask.rgb24.ref.png |binary
test/reference/shape-general-convex.mask.argb32.ref.png |binary
test/reference/shape-general-convex.mask.rgb24.ref.png |binary
test/reference/shape-sierpinski.mask.argb32.ref.png |binary
test/reference/shape-sierpinski.mask.rgb24.ref.png |binary
test/reference/show-glyphs-advance.base.argb32.ref.png |binary
test/reference/show-glyphs-advance.base.rgb24.ref.png |binary
test/reference/show-glyphs-advance.mask.argb32.ref.png |binary
test/reference/show-glyphs-advance.mask.rgb24.ref.png |binary
test/reference/show-glyphs-advance.traps.argb32.ref.png |binary
test/reference/show-glyphs-advance.traps.rgb24.ref.png |binary
test/reference/show-glyphs-many.mask.argb32.ref.png |binary
test/reference/show-glyphs-many.mask.rgb24.ref.png |binary
test/reference/show-text-current-point.base.argb32.ref.png |binary
test/reference/show-text-current-point.base.rgb24.ref.png |binary
test/reference/show-text-current-point.mask.argb32.ref.png |binary
test/reference/show-text-current-point.mask.rgb24.ref.png |binary
test/reference/show-text-current-point.traps.argb32.ref.png |binary
test/reference/show-text-current-point.traps.rgb24.ref.png |binary
test/reference/skew-extreme.mask.argb32.ref.png |binary
test/reference/skew-extreme.mask.rgb24.ref.png |binary
test/reference/smask-fill.mask.argb32.ref.png |binary
test/reference/smask-fill.mask.rgb24.ref.png |binary
test/reference/smask-image-mask.mask.argb32.ref.png |binary
test/reference/smask-image-mask.mask.rgb24.ref.png |binary
test/reference/smask-mask.mask.argb32.ref.png |binary
test/reference/smask-mask.mask.rgb24.ref.png |binary
test/reference/smask-paint.mask.argb32.ref.png |binary
test/reference/smask-paint.mask.rgb24.ref.png |binary
test/reference/smask-stroke.mask.argb32.ref.png |binary
test/reference/smask-stroke.mask.rgb24.ref.png |binary
test/reference/smask-text.base.argb32.ref.png |binary
test/reference/smask-text.base.rgb24.ref.png |binary
test/reference/smask-text.mask.argb32.ref.png |binary
test/reference/smask-text.mask.rgb24.ref.png |binary
test/reference/smask-text.traps.argb32.ref.png |binary
test/reference/smask-text.traps.rgb24.ref.png |binary
test/reference/smask.base.argb32.ref.png |binary
test/reference/smask.base.rgb24.ref.png |binary
test/reference/smask.mask.argb32.ref.png |binary
test/reference/smask.mask.rgb24.ref.png |binary
test/reference/smask.traps.argb32.ref.png |binary
test/reference/smask.traps.rgb24.ref.png |binary
test/reference/solid-pattern-cache-stress.mask.argb32.ref.png |binary
test/reference/solid-pattern-cache-stress.mask.rgb24.ref.png |binary
test/reference/source-clip-scale.mask.argb32.ref.png |binary
test/reference/source-clip-scale.mask.rgb24.ref.png |binary
test/reference/source-clip.mask.argb32.ref.png |binary
test/reference/source-clip.mask.rgb24.ref.png |binary
test/reference/source-surface-scale-paint.mask.argb32.ref.png |binary
test/reference/source-surface-scale-paint.mask.rgb24.ref.png |binary
test/reference/spline-decomposition.mask.argb32.ref.png |binary
test/reference/spline-decomposition.mask.rgb24.ref.png |binary
test/reference/stride-12-image.base.argb32.ref.png |binary
test/reference/stride-12-image.base.rgb24.ref.png |binary
test/reference/stride-12-image.mask.argb32.ref.png |binary
test/reference/stride-12-image.mask.rgb24.ref.png |binary
test/reference/stride-12-image.traps.argb32.ref.png |binary
test/reference/stride-12-image.traps.rgb24.ref.png |binary
test/reference/stroke-ctm-caps.mask.argb32.ref.png |binary
test/reference/stroke-ctm-caps.mask.rgb24.ref.png |binary
test/reference/stroke-image.base.argb32.ref.png |binary
test/reference/stroke-image.base.rgb24.ref.png |binary
test/reference/stroke-image.mask.argb32.ref.png |binary
test/reference/stroke-image.mask.rgb24.ref.png |binary
test/reference/stroke-image.traps.argb32.ref.png |binary
test/reference/stroke-image.traps.rgb24.ref.png |binary
test/reference/stroke-open-box.mask.argb32.ref.png |binary
test/reference/stroke-open-box.mask.rgb24.ref.png |binary
test/reference/stroke-pattern.base.argb32.ref.png |binary
test/reference/stroke-pattern.base.rgb24.ref.png |binary
test/reference/stroke-pattern.mask.argb32.ref.png |binary
test/reference/stroke-pattern.mask.rgb24.ref.png |binary
test/reference/stroke-pattern.traps.argb32.ref.png |binary
test/reference/stroke-pattern.traps.rgb24.ref.png |binary
test/reference/subsurface-image-repeat.mask.argb32.ref.png |binary
test/reference/subsurface-image-repeat.mask.rgb24.ref.png |binary
test/reference/subsurface-modify-child.mask.argb32.ref.png |binary
test/reference/subsurface-modify-child.mask.rgb24.ref.png |binary
test/reference/subsurface-modify-parent.mask.argb32.ref.png |binary
test/reference/subsurface-modify-parent.mask.rgb24.ref.png |binary
test/reference/subsurface-outside-target.base.argb32.ref.png |binary
test/reference/subsurface-outside-target.base.rgb24.ref.png |binary
test/reference/subsurface-outside-target.mask.argb32.ref.png |binary
test/reference/subsurface-outside-target.mask.rgb24.ref.png |binary
test/reference/subsurface-outside-target.traps.argb32.ref.png |binary
test/reference/subsurface-outside-target.traps.rgb24.ref.png |binary
test/reference/subsurface-pad.mask.argb32.ref.png |binary
test/reference/subsurface-pad.mask.rgb24.ref.png |binary
test/reference/subsurface-reflect.mask.argb32.ref.png |binary
test/reference/subsurface-reflect.mask.rgb24.ref.png |binary
test/reference/subsurface-repeat.mask.argb32.ref.png |binary
test/reference/subsurface-repeat.mask.rgb24.ref.png |binary
test/reference/subsurface-scale.base.argb32.ref.png |binary
test/reference/subsurface-scale.base.rgb24.ref.png |binary
test/reference/subsurface-scale.mask.argb32.ref.png |binary
test/reference/subsurface-scale.mask.rgb24.ref.png |binary
test/reference/subsurface-scale.traps.argb32.ref.png |binary
test/reference/subsurface-scale.traps.rgb24.ref.png |binary
test/reference/subsurface-similar-repeat.mask.argb32.ref.png |binary
test/reference/subsurface-similar-repeat.mask.rgb24.ref.png |binary
test/reference/subsurface.base.argb32.ref.png |binary
test/reference/subsurface.base.rgb24.ref.png |binary
test/reference/subsurface.mask.argb32.ref.png |binary
test/reference/subsurface.mask.rgb24.ref.png |binary
test/reference/subsurface.traps.argb32.ref.png |binary
test/reference/subsurface.traps.rgb24.ref.png |binary
test/reference/surface-pattern-big-scale-down.mask.argb32.ref.png |binary
test/reference/surface-pattern-big-scale-down.mask.rgb24.ref.png |binary
test/reference/surface-pattern-operator.mask.argb32.ref.png |binary
test/reference/surface-pattern-operator.mask.rgb24.ref.png |binary
test/reference/surface-pattern-scale-down-extend-none.mask.argb32.ref.png |binary
test/reference/surface-pattern-scale-down-extend-none.mask.rgb24.ref.png |binary
test/reference/surface-pattern-scale-down-extend-pad.mask.argb32.ref.png |binary
test/reference/surface-pattern-scale-down-extend-pad.mask.rgb24.ref.png |binary
test/reference/surface-pattern-scale-down-extend-reflect.mask.argb32.ref.png |binary
test/reference/surface-pattern-scale-down-extend-reflect.mask.rgb24.ref.png |binary
test/reference/surface-pattern-scale-down-extend-repeat.mask.argb32.ref.png |binary
test/reference/surface-pattern-scale-down-extend-repeat.mask.rgb24.ref.png |binary
test/reference/surface-pattern-scale-down.mask.argb32.ref.png |binary
test/reference/surface-pattern-scale-down.mask.rgb24.ref.png |binary
test/reference/surface-pattern-scale-up.mask.argb32.ref.png |binary
test/reference/surface-pattern-scale-up.mask.rgb24.ref.png |binary
test/reference/surface-pattern.mask.argb32.ref.png |binary
test/reference/surface-pattern.mask.rgb24.ref.png |binary
test/reference/svg-surface-source.mask.argb32.ref.png |binary
test/reference/svg-surface-source.mask.rgb24.ref.png |binary
test/reference/text-antialias-gray.base.argb32.ref.png |binary
test/reference/text-antialias-gray.base.rgb24.ref.png |binary
test/reference/text-antialias-gray.mask.argb32.ref.png |binary
test/reference/text-antialias-gray.mask.rgb24.ref.png |binary
test/reference/text-antialias-gray.traps.argb32.ref.png |binary
test/reference/text-antialias-gray.traps.rgb24.ref.png |binary
test/reference/text-antialias-none.mask.argb32.ref.png |binary
test/reference/text-antialias-none.mask.rgb24.ref.png |binary
test/reference/text-antialias-none.traps.argb32.ref.png |binary
test/reference/text-antialias-none.traps.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-bgr.base.argb32.ref.png |binary
test/reference/text-antialias-subpixel-bgr.base.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-bgr.mask.argb32.ref.png |binary
test/reference/text-antialias-subpixel-bgr.mask.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-bgr.traps.argb32.ref.png |binary
test/reference/text-antialias-subpixel-bgr.traps.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-rgb.base.argb32.ref.png |binary
test/reference/text-antialias-subpixel-rgb.base.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-rgb.mask.argb32.ref.png |binary
test/reference/text-antialias-subpixel-rgb.mask.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-rgb.traps.argb32.ref.png |binary
test/reference/text-antialias-subpixel-rgb.traps.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-vbgr.base.argb32.ref.png |binary
test/reference/text-antialias-subpixel-vbgr.base.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-vbgr.mask.argb32.ref.png |binary
test/reference/text-antialias-subpixel-vbgr.mask.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-vbgr.traps.argb32.ref.png |binary
test/reference/text-antialias-subpixel-vbgr.traps.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-vrgb.base.argb32.ref.png |binary
test/reference/text-antialias-subpixel-vrgb.base.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-vrgb.mask.argb32.ref.png |binary
test/reference/text-antialias-subpixel-vrgb.mask.rgb24.ref.png |binary
test/reference/text-antialias-subpixel-vrgb.traps.argb32.ref.png |binary
test/reference/text-antialias-subpixel-vrgb.traps.rgb24.ref.png |binary
test/reference/text-antialias-subpixel.base.argb32.ref.png |binary
test/reference/text-antialias-subpixel.base.rgb24.ref.png |binary
test/reference/text-antialias-subpixel.mask.argb32.ref.png |binary
test/reference/text-antialias-subpixel.mask.rgb24.ref.png |binary
test/reference/text-antialias-subpixel.traps.argb32.ref.png |binary
test/reference/text-antialias-subpixel.traps.rgb24.ref.png |binary
test/reference/text-glyph-range.base.argb32.ref.png |binary
test/reference/text-glyph-range.base.rgb24.ref.png |binary
test/reference/text-glyph-range.mask.argb32.ref.png |binary
test/reference/text-glyph-range.mask.rgb24.ref.png |binary
test/reference/text-glyph-range.traps.argb32.ref.png |binary
test/reference/text-glyph-range.traps.rgb24.ref.png |binary
test/reference/text-pattern.base.argb32.ref.png |binary
test/reference/text-pattern.base.rgb24.ref.png |binary
test/reference/text-pattern.mask.argb32.ref.png |binary
test/reference/text-pattern.mask.rgb24.ref.png |binary
test/reference/text-rotate.base.argb32.ref.png |binary
test/reference/text-rotate.base.rgb24.ref.png |binary
test/reference/text-rotate.mask.argb32.ref.png |binary
test/reference/text-rotate.mask.rgb24.ref.png |binary
test/reference/text-rotate.traps.argb32.ref.png |binary
test/reference/text-rotate.traps.rgb24.ref.png |binary
test/reference/text-transform.mask.argb32.ref.png |binary
test/reference/text-transform.mask.rgb24.ref.png |binary
test/reference/tiger.mask.argb32.ref.png |binary
test/reference/tiger.mask.rgb24.ref.png |binary
test/reference/transforms.mask.argb32.ref.png |binary
test/reference/transforms.mask.rgb24.ref.png |binary
test/reference/translate-show-surface.mask.argb32.ref.png |binary
test/reference/translate-show-surface.mask.rgb24.ref.png |binary
test/reference/trap-clip.mask.argb32.ref.png |binary
test/reference/trap-clip.mask.rgb24.ref.png |binary
test/reference/twin-antialias-gray.base.argb32.ref.png |binary
test/reference/twin-antialias-gray.base.rgb24.ref.png |binary
test/reference/twin-antialias-gray.mask.argb32.ref.png |binary
test/reference/twin-antialias-gray.mask.rgb24.ref.png |binary
test/reference/twin-antialias-gray.traps.argb32.ref.png |binary
test/reference/twin-antialias-gray.traps.rgb24.ref.png |binary
test/reference/twin-antialias-mixed.base.argb32.ref.png |binary
test/reference/twin-antialias-mixed.base.rgb24.ref.png |binary
test/reference/twin-antialias-mixed.mask.argb32.ref.png |binary
test/reference/twin-antialias-mixed.mask.rgb24.ref.png |binary
test/reference/twin-antialias-mixed.traps.argb32.ref.png |binary
test/reference/twin-antialias-mixed.traps.rgb24.ref.png |binary
test/reference/twin-antialias-none.base.argb32.ref.png |binary
test/reference/twin-antialias-none.base.rgb24.ref.png |binary
test/reference/twin-antialias-none.mask.argb32.ref.png |binary
test/reference/twin-antialias-none.mask.rgb24.ref.png |binary
test/reference/twin-antialias-none.traps.argb32.ref.png |binary
test/reference/twin-antialias-none.traps.rgb24.ref.png |binary
test/reference/twin-antialias-subpixel.base.argb32.ref.png |binary
test/reference/twin-antialias-subpixel.base.rgb24.ref.png |binary
test/reference/twin-antialias-subpixel.mask.argb32.ref.png |binary
test/reference/twin-antialias-subpixel.mask.rgb24.ref.png |binary
test/reference/twin-antialias-subpixel.traps.argb32.ref.png |binary
test/reference/twin-antialias-subpixel.traps.rgb24.ref.png |binary
test/reference/twin.base.argb32.ref.png |binary
test/reference/twin.base.rgb24.ref.png |binary
test/reference/twin.mask.argb32.ref.png |binary
test/reference/twin.mask.rgb24.ref.png |binary
test/reference/twin.traps.argb32.ref.png |binary
test/reference/twin.traps.rgb24.ref.png |binary
test/reference/unaligned-box.mask.argb32.ref.png |binary
test/reference/unaligned-box.mask.rgb24.ref.png |binary
test/reference/unantialiased-shapes.mask.argb32.ref.png |binary
test/reference/unantialiased-shapes.mask.rgb24.ref.png |binary
test/reference/unbounded-operator.base.argb32.ref.png |binary
test/reference/unbounded-operator.base.rgb24.ref.png |binary
test/reference/unbounded-operator.mask.argb32.ref.png |binary
test/reference/unbounded-operator.mask.rgb24.ref.png |binary
test/reference/unclosed-strokes.mask.argb32.ref.png |binary
test/reference/unclosed-strokes.mask.rgb24.ref.png |binary
test/reference/user-font-mask.mask.argb32.ref.png |binary
test/reference/user-font-mask.mask.rgb24.ref.png |binary
test/reference/user-font-proxy.base.argb32.ref.png |binary
test/reference/user-font-proxy.base.rgb24.ref.png |binary
test/reference/user-font-proxy.mask.argb32.ref.png |binary
test/reference/user-font-proxy.mask.rgb24.ref.png |binary
test/reference/user-font-proxy.traps.argb32.ref.png |binary
test/reference/user-font-proxy.traps.rgb24.ref.png |binary
test/reference/user-font-rescale.base.argb32.ref.png |binary
test/reference/user-font-rescale.base.rgb24.ref.png |binary
test/reference/user-font-rescale.mask.argb32.ref.png |binary
test/reference/user-font-rescale.mask.rgb24.ref.png |binary
test/reference/user-font-rescale.traps.argb32.ref.png |binary
test/reference/user-font-rescale.traps.rgb24.ref.png |binary
test/reference/user-font.base.argb32.ref.png |binary
test/reference/user-font.base.rgb24.ref.png |binary
test/reference/user-font.mask.argb32.ref.png |binary
test/reference/user-font.mask.rgb24.ref.png |binary
test/reference/user-font.traps.argb32.ref.png |binary
test/reference/user-font.traps.rgb24.ref.png |binary
test/reference/white-in-noop.mask.argb32.ref.png |binary
test/reference/white-in-noop.mask.rgb24.ref.png |binary
test/reference/world-map-fill.mask.argb32.ref.png |binary
test/reference/world-map-fill.mask.rgb24.ref.png |binary
test/reference/world-map-stroke.mask.argb32.ref.png |binary
test/reference/world-map-stroke.mask.rgb24.ref.png |binary
test/reference/world-map.mask.argb32.ref.png |binary
test/reference/world-map.mask.rgb24.ref.png |binary
test/reference/xcb-huge-image-shm.mask.argb32.ref.png |binary
test/reference/xcb-huge-image-shm.mask.rgb24.ref.png |binary
test/reference/xcb-snapshot-assert.mask.argb32.ref.png |binary
test/reference/xcb-snapshot-assert.mask.rgb24.ref.png |binary
test/reference/xcb-stress-cache.mask.argb32.ref.png |binary
test/reference/xcb-stress-cache.mask.rgb24.ref.png |binary
test/reference/xcb-surface-source.mask.argb32.ref.png |binary
test/reference/xcb-surface-source.mask.rgb24.ref.png |binary
test/reference/xcomposite-projection.mask.argb32.ref.png |binary
test/reference/xcomposite-projection.mask.rgb24.ref.png |binary
test/reference/xlib-expose-event.mask.argb32.ref.png |binary
test/reference/xlib-expose-event.mask.rgb24.ref.png |binary
test/reference/xlib-surface-source.mask.argb32.ref.png |binary
test/reference/xlib-surface-source.mask.rgb24.ref.png |binary
test/reference/zero-alpha.mask.argb32.ref.png |binary
test/reference/zero-alpha.mask.rgb24.ref.png |binary
test/reference/zero-mask.mask.argb32.ref.png |binary
test/reference/zero-mask.mask.rgb24.ref.png |binary
test/xlib-surface.c | 23 -
1071 files changed, 305 insertions(+), 137 deletions(-)
New commits:
commit 89fddc38ebc3cd6f02dd09cd071ef7ba0a94631d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 12:57:12 2012 +0000
traps-compositor: Reduce a complex clip generation to an ADD operator
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
index 1fb8515..cc2235e 100644
--- a/src/cairo-traps-compositor.c
+++ b/src/cairo-traps-compositor.c
@@ -202,37 +202,113 @@ combine_clip_as_traps (const cairo_traps_compositor_t *compositor,
return status;
}
-static cairo_surface_t *
-traps_get_clip_surface (const cairo_traps_compositor_t *compositor,
- cairo_surface_t *target,
- const cairo_clip_t *clip,
- const cairo_rectangle_int_t *extents)
+static cairo_status_t
+__clip_to_surface (const cairo_traps_compositor_t *compositor,
+ const cairo_composite_rectangles_t *composite,
+ const cairo_rectangle_int_t *extents,
+ cairo_surface_t **surface)
{
- cairo_surface_t *surface;
+ cairo_surface_t *mask;
+ cairo_polygon_t polygon;
+ cairo_fill_rule_t fill_rule;
+ cairo_antialias_t antialias;
+ cairo_traps_t traps;
+ cairo_boxes_t clear;
+ cairo_surface_t *src;
+ int src_x, src_y;
cairo_int_status_t status;
TRACE ((stderr, "%s\n", __FUNCTION__));
- surface = _cairo_surface_create_similar_solid (target,
- CAIRO_CONTENT_ALPHA,
- extents->width,
- extents->height,
- CAIRO_COLOR_WHITE);
- if (unlikely (surface->status))
- return surface;
+ status = _cairo_clip_get_polygon (composite->clip, &polygon,
+ &fill_rule, &antialias);
+ if (status)
+ return status;
- status = compositor->acquire (surface);
- if (unlikely (status)) {
- cairo_surface_destroy (surface);
- return _cairo_surface_create_in_error (status);
+ _cairo_traps_init (&traps);
+ status = _cairo_bentley_ottmann_tessellate_polygon (&traps,
+ &polygon,
+ fill_rule);
+ _cairo_polygon_fini (&polygon);
+ if (unlikely (status))
+ return status;
+
+ mask = _cairo_surface_create_similar_scratch (composite->surface,
+ CAIRO_CONTENT_ALPHA,
+ extents->width,
+ extents->height);
+ if (unlikely (mask->status)) {
+ _cairo_traps_fini (&traps);
+ return status;
}
- status = combine_clip_as_traps (compositor, surface, clip, extents);
+ src = compositor->pattern_to_surface (mask, NULL, FALSE,
+ extents, NULL,
+ &src_x, &src_y);
+ if (unlikely (status = src->status))
+ goto error;
+
+ status = compositor->acquire (mask);
+ if (unlikely (status))
+ goto error;
+
+ _cairo_boxes_init_from_rectangle (&clear,
+ 0, 0,
+ extents->width,
+ extents->height);
+ status = compositor->fill_boxes (mask,
+ CAIRO_OPERATOR_CLEAR,
+ CAIRO_COLOR_TRANSPARENT,
+ &clear);
+ if (unlikely (status))
+ goto error;
+
+ status = compositor->composite_traps (mask, CAIRO_OPERATOR_ADD, src,
+ src_x, src_y,
+ extents->x, extents->y,
+ extents,
+ antialias, &traps);
+ if (unlikely (status))
+ goto error;
+
+ *surface = mask;
+out:
+ cairo_surface_destroy (src);
+ _cairo_traps_fini (&traps);
+ return status;
+
+error:
+ cairo_surface_destroy (mask);
+ goto out;
+}
+
+static cairo_surface_t *
+traps_get_clip_surface (const cairo_traps_compositor_t *compositor,
+ const cairo_composite_rectangles_t *composite,
+ const cairo_rectangle_int_t *extents)
+{
+ cairo_surface_t *surface = NULL;
+ cairo_int_status_t status;
+
+ TRACE ((stderr, "%s\n", __FUNCTION__));
+
+ status = __clip_to_surface (compositor, composite, extents, &surface);
if (status == CAIRO_INT_STATUS_UNSUPPORTED) {
- status = _cairo_clip_combine_with_surface (clip, surface,
+ surface = _cairo_surface_create_similar_solid (composite->surface,
+ CAIRO_CONTENT_ALPHA,
+ extents->width,
+ extents->height,
+ CAIRO_COLOR_WHITE);
+ if (unlikely (surface->status))
+ return surface;
+
+ status = _cairo_clip_combine_with_surface (composite->clip, surface,
extents->x, extents->y);
}
- compositor->release (surface);
+ if (unlikely (status)) {
+ cairo_surface_destroy (surface);
+ surface = _cairo_surface_create_in_error (status);
+ }
return surface;
}
@@ -449,8 +525,7 @@ clip_and_composite_combine (const cairo_traps_compositor_t *compositor,
if (unlikely (status))
goto cleanup;
- clip = traps_get_clip_surface (compositor, dst, extents->clip,
- &extents->bounded);
+ clip = traps_get_clip_surface (compositor, extents, &extents->bounded);
if (unlikely ((status = clip->status)))
goto cleanup;
@@ -555,13 +630,12 @@ fixup_unbounded_with_mask (const cairo_traps_compositor_t *compositor,
const cairo_composite_rectangles_t *extents)
{
cairo_surface_t *dst = extents->surface;
- cairo_clip_t *clip = extents->clip;
cairo_surface_t *mask;
TRACE ((stderr, "%s\n", __FUNCTION__));
/* XXX can we avoid querying the clip surface again? */
- mask = traps_get_clip_surface (compositor, dst, clip, &extents->unbounded);
+ mask = traps_get_clip_surface (compositor, extents, &extents->unbounded);
if (unlikely (mask->status))
return mask->status;
@@ -1094,8 +1168,8 @@ composite_aligned_boxes (const cairo_traps_compositor_t *compositor,
int mask_x = 0, mask_y = 0;
if (need_clip_mask) {
- mask = traps_get_clip_surface (compositor, dst, extents->clip,
- &extents->bounded);
+ mask = traps_get_clip_surface (compositor,
+ extents, &extents->bounded);
if (unlikely (mask->status))
return mask->status;
commit 9e640c7ae2cc968cbf4607efdf7f7ab26e5c0bb8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 11:42:15 2012 +0000
mask-compositor: Acquire the target surface when creating the composite mask
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/cairo-mask-compositor.c b/src/cairo-mask-compositor.c
index 807ba99..34e5fbb 100644
--- a/src/cairo-mask-compositor.c
+++ b/src/cairo-mask-compositor.c
@@ -162,21 +162,39 @@ create_composite_mask (const cairo_mask_compositor_t *compositor,
struct blt_in info;
int i;
- surface = _cairo_surface_create_similar_solid (dst,
- CAIRO_CONTENT_ALPHA,
- extents->bounded.width,
- extents->bounded.height,
- CAIRO_COLOR_TRANSPARENT);
+ surface = _cairo_surface_create_similar_scratch (dst, CAIRO_CONTENT_ALPHA,
+ extents->bounded.width,
+ extents->bounded.height);
if (unlikely (surface->status))
return surface;
+ status = compositor->acquire (surface);
+ if (unlikely (status)) {
+ cairo_surface_destroy (surface);
+ return _cairo_surface_create_in_error (status);
+ }
+
+ {
+ cairo_rectangle_int_t rect;
+
+ rect.x = rect.y = 0;
+ rect.width = extents->bounded.width;
+ rect.height = extents->bounded.height;
+
+ status = compositor->fill_rectangles (surface, CAIRO_OPERATOR_CLEAR,
+ CAIRO_COLOR_TRANSPARENT,
+ &rect, 1);
+ if (unlikely (status))
+ goto error;
+ }
+
if (mask_func) {
status = mask_func (compositor, surface, draw_closure,
CAIRO_OPERATOR_SOURCE, NULL, NULL,
extents->bounded.x, extents->bounded.y,
&extents->bounded, extents->clip);
if (likely (status != CAIRO_INT_STATUS_UNSUPPORTED))
- return surface;
+ goto out;
}
/* Is it worth setting the clip region here? */
@@ -184,10 +202,8 @@ create_composite_mask (const cairo_mask_compositor_t *compositor,
CAIRO_OPERATOR_ADD, NULL, NULL,
extents->bounded.x, extents->bounded.y,
&extents->bounded, NULL);
- if (unlikely (status)) {
- cairo_surface_destroy (surface);
- return _cairo_surface_create_in_error (status);
- }
+ if (unlikely (status))
+ goto error;
info.compositor = compositor;
info.dst = surface;
@@ -209,12 +225,20 @@ create_composite_mask (const cairo_mask_compositor_t *compositor,
status = _cairo_clip_combine_with_surface (extents->clip, surface,
extents->bounded.x,
extents->bounded.y);
- if (unlikely (status)) {
- cairo_surface_destroy (surface);
- return _cairo_surface_create_in_error (status);
- }
+ if (unlikely (status))
+ goto error;
}
+out:
+ compositor->release (surface);
+ return surface;
+
+error:
+ compositor->release (surface);
+ if (status != CAIRO_INT_STATUS_NOTHING_TO_DO) {
+ cairo_surface_destroy (surface);
+ surface = _cairo_surface_create_in_error (status);
+ }
return surface;
}
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
index a9f8c75..1fb8515 100644
--- a/src/cairo-traps-compositor.c
+++ b/src/cairo-traps-compositor.c
@@ -253,11 +253,9 @@ create_composite_mask (const cairo_traps_compositor_t *compositor,
TRACE ((stderr, "%s\n", __FUNCTION__));
- surface = _cairo_surface_create_similar_solid (dst,
- CAIRO_CONTENT_ALPHA,
- extents->bounded.width,
- extents->bounded.height,
- CAIRO_COLOR_TRANSPARENT);
+ surface = _cairo_surface_create_similar_scratch (dst, CAIRO_CONTENT_ALPHA,
+ extents->bounded.width,
+ extents->bounded.height);
if (unlikely (surface->status))
return surface;
@@ -267,8 +265,10 @@ create_composite_mask (const cairo_traps_compositor_t *compositor,
&extents->bounded,
&extents->bounded,
&src_x, &src_y);
- if (unlikely (src->status))
+ if (unlikely (src->status)) {
+ cairo_surface_destroy (surface);
return src;
+ }
status = compositor->acquire (surface);
if (unlikely (status)) {
@@ -277,15 +277,30 @@ create_composite_mask (const cairo_traps_compositor_t *compositor,
return _cairo_surface_create_in_error (status);
}
+ {
+ cairo_boxes_t clear;
+
+ _cairo_boxes_init_from_rectangle (&clear,
+ 0, 0,
+ extents->bounded.width,
+ extents->bounded.height);
+ status = compositor->fill_boxes (surface,
+ CAIRO_OPERATOR_CLEAR,
+ CAIRO_COLOR_TRANSPARENT,
+ &clear);
+ if (unlikely (status))
+ goto error;
+ }
+
if (mask_func) {
status = mask_func (compositor, surface, draw_closure,
CAIRO_OPERATOR_SOURCE, src, src_x, src_y,
extents->bounded.x, extents->bounded.y,
&extents->bounded, extents->clip);
- if (likely (status != CAIRO_INT_STATUS_UNSUPPORTED)) {
- cairo_surface_destroy (src);
+ if (likely (status == CAIRO_INT_STATUS_SUCCESS))
goto out;
- }
+ if (unlikely (status != CAIRO_INT_STATUS_UNSUPPORTED))
+ goto error;
}
/* Is it worth setting the clip region here? */
@@ -293,7 +308,6 @@ create_composite_mask (const cairo_traps_compositor_t *compositor,
CAIRO_OPERATOR_ADD, src, src_x, src_y,
extents->bounded.x, extents->bounded.y,
&extents->bounded, NULL);
- cairo_surface_destroy (src);
if (unlikely (status))
goto error;
@@ -329,15 +343,16 @@ create_composite_mask (const cairo_traps_compositor_t *compositor,
out:
compositor->release (surface);
- surface->is_clear = FALSE;
+ cairo_surface_destroy (src);
return surface;
error:
+ compositor->release (surface);
if (status != CAIRO_INT_STATUS_NOTHING_TO_DO) {
cairo_surface_destroy (surface);
surface = _cairo_surface_create_in_error (status);
}
- compositor->release (surface);
+ cairo_surface_destroy (src);
return surface;
}
commit 605f23d15562d28138ade7f0717cbcf3d01147bf
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 11:27:05 2012 +0000
xlib: Hook up copy_boxes for the mask compositor
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/cairo-xlib-render-compositor.c b/src/cairo-xlib-render-compositor.c
index 0faa557..1067939 100644
--- a/src/cairo-xlib-render-compositor.c
+++ b/src/cairo-xlib-render-compositor.c
@@ -1459,6 +1459,7 @@ _cairo_xlib_mask_compositor_get (void)
compositor.draw_image_boxes = draw_image_boxes;
compositor.fill_rectangles = fill_rectangles;
compositor.fill_boxes = fill_boxes;
+ compositor.copy_boxes = copy_boxes;
//compositor.check_composite = check_composite;
compositor.composite = composite;
//compositor.check_composite_boxes = check_composite_boxes;
commit 6ab1deb5c6377828877253a7ec0ca43d97ca4a99
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 11:03:54 2012 +0000
boilerplate/xlib: Exercise the mask based compositor for xrender version 0.0
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/boilerplate/cairo-boilerplate-xlib.c b/boilerplate/cairo-boilerplate-xlib.c
index 3a6beef..aed075f 100644
--- a/boilerplate/cairo-boilerplate-xlib.c
+++ b/boilerplate/cairo-boilerplate-xlib.c
@@ -274,7 +274,7 @@ _cairo_boilerplate_xlib_create_similar (cairo_surface_t *other,
static cairo_surface_t *
_cairo_boilerplate_xlib_create_surface (const char *name,
- cairo_content_t content,
+ cairo_content_t content,
double width,
double height,
double max_width,
@@ -315,6 +315,63 @@ _cairo_boilerplate_xlib_create_surface (const char *name,
}
static cairo_surface_t *
+_cairo_boilerplate_xlib_render_0_0_create_surface (const char *name,
+ cairo_content_t content,
+ double width,
+ double height,
+ double max_width,
+ double max_height,
+ cairo_boilerplate_mode_t mode,
+ void **closure)
+{
+ xlib_target_closure_t *xtc;
+ Display *dpy;
+ int screen;
+ Pixmap pixmap;
+ cairo_surface_t *surface, *dummy;
+
+ *closure = xtc = xcalloc (1, sizeof (xlib_target_closure_t));
+
+ width = ceil (width);
+ if (width < 1)
+ width = 1;
+
+ height = ceil (height);
+ if (height < 1)
+ height = 1;
+
+ xtc->dpy = dpy = XOpenDisplay (NULL);
+ if (xtc->dpy == NULL) {
+ free (xtc);
+ CAIRO_BOILERPLATE_DEBUG (("Failed to open display: %s\n", XDisplayName(0)));
+ return NULL;
+ }
+
+
+ screen = DefaultScreen (dpy);
+ pixmap = XCreatePixmap (dpy, DefaultRootWindow (dpy), 1, 1,
+ DefaultDepth (dpy, screen));
+ dummy = cairo_xlib_surface_create (dpy, pixmap,
+ DefaultVisual (dpy, screen),
+ 1, 1);
+ cairo_xlib_device_debug_cap_xrender_version (cairo_surface_get_device (dummy),
+ 0, 0);
+
+ if (mode == CAIRO_BOILERPLATE_MODE_TEST)
+ surface = _cairo_boilerplate_xlib_test_create_surface (dpy, content, width, height, xtc);
+ else /* mode == CAIRO_BOILERPLATE_MODE_PERF */
+ surface = _cairo_boilerplate_xlib_perf_create_surface (dpy, content, width, height, xtc);
+
+ cairo_surface_destroy (dummy);
+ XFreePixmap (dpy, pixmap);
+
+ if (surface == NULL || cairo_surface_status (surface))
+ _cairo_boilerplate_xlib_cleanup (xtc);
+
+ return surface;
+}
+
+static cairo_surface_t *
_cairo_boilerplate_xlib_window_create_surface (const char *name,
cairo_content_t content,
double width,
@@ -538,6 +595,20 @@ static const cairo_boilerplate_target_t targets[] = {
NULL,
FALSE, FALSE, FALSE
},
+ {
+ "xlib-render-0_0", "mask", NULL, NULL,
+ CAIRO_SURFACE_TYPE_XLIB, CAIRO_CONTENT_COLOR, 1,
+ "cairo_xlib_surface_create",
+ _cairo_boilerplate_xlib_render_0_0_create_surface,
+ cairo_surface_create_similar,
+ NULL, NULL,
+ _cairo_boilerplate_get_image_surface,
+ cairo_surface_write_to_png,
+ _cairo_boilerplate_xlib_cleanup,
+ _cairo_boilerplate_xlib_synchronize,
+ NULL,
+ FALSE, FALSE, FALSE
+ },
#endif
#if CAIRO_HAS_XLIB_SURFACE
/* This is a fallback surface which uses xlib fallbacks instead of
commit 08de30d8b5700040d3ff953bae8d801a4a05aff0
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 10:51:30 2012 +0000
test: Add a set of reference images for the mask-based compositor
Serves as another reference for some xlib targets.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/test/reference/a1-bug.mask.argb32.ref.png b/test/reference/a1-bug.mask.argb32.ref.png
new file mode 100644
index 0000000..f9ae8a8
Binary files /dev/null and b/test/reference/a1-bug.mask.argb32.ref.png differ
diff --git a/test/reference/a1-bug.mask.rgb24.ref.png b/test/reference/a1-bug.mask.rgb24.ref.png
new file mode 100644
index 0000000..f9ae8a8
Binary files /dev/null and b/test/reference/a1-bug.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-clip-fill-equal.mask.argb32.ref.png b/test/reference/a1-clip-fill-equal.mask.argb32.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-clip-fill-equal.mask.argb32.ref.png differ
diff --git a/test/reference/a1-clip-fill-equal.mask.rgb24.ref.png b/test/reference/a1-clip-fill-equal.mask.rgb24.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-clip-fill-equal.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-clip-fill-rule.mask.argb32.ref.png b/test/reference/a1-clip-fill-rule.mask.argb32.ref.png
new file mode 100644
index 0000000..c3ba9dd
Binary files /dev/null and b/test/reference/a1-clip-fill-rule.mask.argb32.ref.png differ
diff --git a/test/reference/a1-clip-fill-rule.mask.rgb24.ref.png b/test/reference/a1-clip-fill-rule.mask.rgb24.ref.png
new file mode 100644
index 0000000..6fe9346
Binary files /dev/null and b/test/reference/a1-clip-fill-rule.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-clip-fill.mask.argb32.ref.png b/test/reference/a1-clip-fill.mask.argb32.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-clip-fill.mask.argb32.ref.png differ
diff --git a/test/reference/a1-clip-fill.mask.rgb24.ref.png b/test/reference/a1-clip-fill.mask.rgb24.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-clip-fill.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-clip-paint.mask.argb32.ref.png b/test/reference/a1-clip-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-clip-paint.mask.argb32.ref.png differ
diff --git a/test/reference/a1-clip-paint.mask.rgb24.ref.png b/test/reference/a1-clip-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-clip-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-clip-stroke.mask.argb32.ref.png b/test/reference/a1-clip-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-clip-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/a1-clip-stroke.mask.rgb24.ref.png b/test/reference/a1-clip-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-clip-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-fill.base.argb32.ref.png b/test/reference/a1-fill.base.argb32.ref.png
new file mode 100644
index 0000000..e40202b
Binary files /dev/null and b/test/reference/a1-fill.base.argb32.ref.png differ
diff --git a/test/reference/a1-fill.base.rgb24.ref.png b/test/reference/a1-fill.base.rgb24.ref.png
new file mode 100644
index 0000000..e40202b
Binary files /dev/null and b/test/reference/a1-fill.base.rgb24.ref.png differ
diff --git a/test/reference/a1-fill.mask.argb32.ref.png b/test/reference/a1-fill.mask.argb32.ref.png
new file mode 100644
index 0000000..e40202b
Binary files /dev/null and b/test/reference/a1-fill.mask.argb32.ref.png differ
diff --git a/test/reference/a1-fill.mask.rgb24.ref.png b/test/reference/a1-fill.mask.rgb24.ref.png
new file mode 100644
index 0000000..e40202b
Binary files /dev/null and b/test/reference/a1-fill.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-fill.traps.argb32.ref.png b/test/reference/a1-fill.traps.argb32.ref.png
new file mode 100644
index 0000000..e40202b
Binary files /dev/null and b/test/reference/a1-fill.traps.argb32.ref.png differ
diff --git a/test/reference/a1-fill.traps.rgb24.ref.png b/test/reference/a1-fill.traps.rgb24.ref.png
new file mode 100644
index 0000000..e40202b
Binary files /dev/null and b/test/reference/a1-fill.traps.rgb24.ref.png differ
diff --git a/test/reference/a1-image-sample.mask.argb32.ref.png b/test/reference/a1-image-sample.mask.argb32.ref.png
new file mode 100644
index 0000000..b8fd457
Binary files /dev/null and b/test/reference/a1-image-sample.mask.argb32.ref.png differ
diff --git a/test/reference/a1-image-sample.mask.rgb24.ref.png b/test/reference/a1-image-sample.mask.rgb24.ref.png
new file mode 100644
index 0000000..b8fd457
Binary files /dev/null and b/test/reference/a1-image-sample.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-line-width.mask.argb32.ref.png b/test/reference/a1-line-width.mask.argb32.ref.png
new file mode 100644
index 0000000..35d9cad
Binary files /dev/null and b/test/reference/a1-line-width.mask.argb32.ref.png differ
diff --git a/test/reference/a1-line-width.mask.rgb24.ref.png b/test/reference/a1-line-width.mask.rgb24.ref.png
new file mode 100644
index 0000000..35d9cad
Binary files /dev/null and b/test/reference/a1-line-width.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-mask-sample.mask.argb32.ref.png b/test/reference/a1-mask-sample.mask.argb32.ref.png
new file mode 100644
index 0000000..b8fd457
Binary files /dev/null and b/test/reference/a1-mask-sample.mask.argb32.ref.png differ
diff --git a/test/reference/a1-mask-sample.mask.rgb24.ref.png b/test/reference/a1-mask-sample.mask.rgb24.ref.png
new file mode 100644
index 0000000..b8fd457
Binary files /dev/null and b/test/reference/a1-mask-sample.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-mask.mask.argb32.ref.png b/test/reference/a1-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..864fc10
Binary files /dev/null and b/test/reference/a1-mask.mask.argb32.ref.png differ
diff --git a/test/reference/a1-mask.mask.rgb24.ref.png b/test/reference/a1-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..864fc10
Binary files /dev/null and b/test/reference/a1-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-rasterisation-rectangles.mask.argb32.ref.png b/test/reference/a1-rasterisation-rectangles.mask.argb32.ref.png
new file mode 100644
index 0000000..784cf87
Binary files /dev/null and b/test/reference/a1-rasterisation-rectangles.mask.argb32.ref.png differ
diff --git a/test/reference/a1-rasterisation-rectangles.mask.rgb24.ref.png b/test/reference/a1-rasterisation-rectangles.mask.rgb24.ref.png
new file mode 100644
index 0000000..784cf87
Binary files /dev/null and b/test/reference/a1-rasterisation-rectangles.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-rasterisation-triangles.mask.argb32.ref.png b/test/reference/a1-rasterisation-triangles.mask.argb32.ref.png
new file mode 100644
index 0000000..784cf87
Binary files /dev/null and b/test/reference/a1-rasterisation-triangles.mask.argb32.ref.png differ
diff --git a/test/reference/a1-rasterisation-triangles.mask.rgb24.ref.png b/test/reference/a1-rasterisation-triangles.mask.rgb24.ref.png
new file mode 100644
index 0000000..784cf87
Binary files /dev/null and b/test/reference/a1-rasterisation-triangles.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-rectilinear-grid.mask.argb32.ref.png b/test/reference/a1-rectilinear-grid.mask.argb32.ref.png
new file mode 100644
index 0000000..2dfb85e
Binary files /dev/null and b/test/reference/a1-rectilinear-grid.mask.argb32.ref.png differ
diff --git a/test/reference/a1-rectilinear-grid.mask.rgb24.ref.png b/test/reference/a1-rectilinear-grid.mask.rgb24.ref.png
new file mode 100644
index 0000000..2dfb85e
Binary files /dev/null and b/test/reference/a1-rectilinear-grid.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-sample.mask.argb32.ref.png b/test/reference/a1-sample.mask.argb32.ref.png
new file mode 100644
index 0000000..4c6131c
Binary files /dev/null and b/test/reference/a1-sample.mask.argb32.ref.png differ
diff --git a/test/reference/a1-sample.mask.rgb24.ref.png b/test/reference/a1-sample.mask.rgb24.ref.png
new file mode 100644
index 0000000..4c6131c
Binary files /dev/null and b/test/reference/a1-sample.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-tiger.mask.argb32.ref.png b/test/reference/a1-tiger.mask.argb32.ref.png
new file mode 100644
index 0000000..9a62af7
Binary files /dev/null and b/test/reference/a1-tiger.mask.argb32.ref.png differ
diff --git a/test/reference/a1-tiger.mask.rgb24.ref.png b/test/reference/a1-tiger.mask.rgb24.ref.png
new file mode 100644
index 0000000..9a62af7
Binary files /dev/null and b/test/reference/a1-tiger.mask.rgb24.ref.png differ
diff --git a/test/reference/a1-traps-sample.mask.argb32.ref.png b/test/reference/a1-traps-sample.mask.argb32.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-traps-sample.mask.argb32.ref.png differ
diff --git a/test/reference/a1-traps-sample.mask.rgb24.ref.png b/test/reference/a1-traps-sample.mask.rgb24.ref.png
new file mode 100644
index 0000000..384ba4a
Binary files /dev/null and b/test/reference/a1-traps-sample.mask.rgb24.ref.png differ
diff --git a/test/reference/a8-clear.mask.argb32.ref.png b/test/reference/a8-clear.mask.argb32.ref.png
new file mode 100644
index 0000000..98a624e
Binary files /dev/null and b/test/reference/a8-clear.mask.argb32.ref.png differ
diff --git a/test/reference/a8-clear.mask.rgb24.ref.png b/test/reference/a8-clear.mask.rgb24.ref.png
new file mode 100644
index 0000000..98a624e
Binary files /dev/null and b/test/reference/a8-clear.mask.rgb24.ref.png differ
diff --git a/test/reference/a8-mask.mask.argb32.ref.png b/test/reference/a8-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..e0503d9
Binary files /dev/null and b/test/reference/a8-mask.mask.argb32.ref.png differ
diff --git a/test/reference/a8-mask.mask.rgb24.ref.png b/test/reference/a8-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..e0503d9
Binary files /dev/null and b/test/reference/a8-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/aliasing.mask.argb32.ref.png b/test/reference/aliasing.mask.argb32.ref.png
new file mode 100644
index 0000000..c11eb67
Binary files /dev/null and b/test/reference/aliasing.mask.argb32.ref.png differ
diff --git a/test/reference/aliasing.mask.rgb24.ref.png b/test/reference/aliasing.mask.rgb24.ref.png
new file mode 100644
index 0000000..c11eb67
Binary files /dev/null and b/test/reference/aliasing.mask.rgb24.ref.png differ
diff --git a/test/reference/alpha-similar.mask.argb32.ref.png b/test/reference/alpha-similar.mask.argb32.ref.png
new file mode 100644
index 0000000..9e1bfaa
Binary files /dev/null and b/test/reference/alpha-similar.mask.argb32.ref.png differ
diff --git a/test/reference/alpha-similar.mask.rgb24.ref.png b/test/reference/alpha-similar.mask.rgb24.ref.png
new file mode 100644
index 0000000..a1f5280
Binary files /dev/null and b/test/reference/alpha-similar.mask.rgb24.ref.png differ
diff --git a/test/reference/api-special-cases.mask.argb32.ref.png b/test/reference/api-special-cases.mask.argb32.ref.png
new file mode 100644
index 0000000..56b88a9
Binary files /dev/null and b/test/reference/api-special-cases.mask.argb32.ref.png differ
diff --git a/test/reference/api-special-cases.mask.rgb24.ref.png b/test/reference/api-special-cases.mask.rgb24.ref.png
new file mode 100644
index 0000000..56b88a9
Binary files /dev/null and b/test/reference/api-special-cases.mask.rgb24.ref.png differ
diff --git a/test/reference/arc-direction.base.argb32.ref.png b/test/reference/arc-direction.base.argb32.ref.png
new file mode 100644
index 0000000..2790a2b
Binary files /dev/null and b/test/reference/arc-direction.base.argb32.ref.png differ
diff --git a/test/reference/arc-direction.base.rgb24.ref.png b/test/reference/arc-direction.base.rgb24.ref.png
new file mode 100644
index 0000000..2790a2b
Binary files /dev/null and b/test/reference/arc-direction.base.rgb24.ref.png differ
diff --git a/test/reference/arc-direction.mask.argb32.ref.png b/test/reference/arc-direction.mask.argb32.ref.png
new file mode 100644
index 0000000..280c09b
Binary files /dev/null and b/test/reference/arc-direction.mask.argb32.ref.png differ
diff --git a/test/reference/arc-direction.mask.rgb24.ref.png b/test/reference/arc-direction.mask.rgb24.ref.png
new file mode 100644
index 0000000..280c09b
Binary files /dev/null and b/test/reference/arc-direction.mask.rgb24.ref.png differ
diff --git a/test/reference/arc-direction.traps.argb32.ref.png b/test/reference/arc-direction.traps.argb32.ref.png
new file mode 100644
index 0000000..280c09b
Binary files /dev/null and b/test/reference/arc-direction.traps.argb32.ref.png differ
diff --git a/test/reference/arc-direction.traps.rgb24.ref.png b/test/reference/arc-direction.traps.rgb24.ref.png
new file mode 100644
index 0000000..280c09b
Binary files /dev/null and b/test/reference/arc-direction.traps.rgb24.ref.png differ
diff --git a/test/reference/arc-infinite-loop.mask.argb32.ref.png b/test/reference/arc-infinite-loop.mask.argb32.ref.png
new file mode 100644
index 0000000..82d645f
Binary files /dev/null and b/test/reference/arc-infinite-loop.mask.argb32.ref.png differ
diff --git a/test/reference/arc-infinite-loop.mask.rgb24.ref.png b/test/reference/arc-infinite-loop.mask.rgb24.ref.png
new file mode 100644
index 0000000..82d645f
Binary files /dev/null and b/test/reference/arc-infinite-loop.mask.rgb24.ref.png differ
diff --git a/test/reference/arc-looping-dash.mask.argb32.ref.png b/test/reference/arc-looping-dash.mask.argb32.ref.png
new file mode 100644
index 0000000..516e66c
Binary files /dev/null and b/test/reference/arc-looping-dash.mask.argb32.ref.png differ
diff --git a/test/reference/arc-looping-dash.mask.rgb24.ref.png b/test/reference/arc-looping-dash.mask.rgb24.ref.png
new file mode 100644
index 0000000..516e66c
Binary files /dev/null and b/test/reference/arc-looping-dash.mask.rgb24.ref.png differ
diff --git a/test/reference/big-empty-triangle.mask.argb32.ref.png b/test/reference/big-empty-triangle.mask.argb32.ref.png
new file mode 100644
index 0000000..a88d3b6
Binary files /dev/null and b/test/reference/big-empty-triangle.mask.argb32.ref.png differ
diff --git a/test/reference/big-empty-triangle.mask.rgb24.ref.png b/test/reference/big-empty-triangle.mask.rgb24.ref.png
new file mode 100644
index 0000000..6c2ca32
Binary files /dev/null and b/test/reference/big-empty-triangle.mask.rgb24.ref.png differ
diff --git a/test/reference/big-line.mask.argb32.ref.png b/test/reference/big-line.mask.argb32.ref.png
new file mode 100644
index 0000000..1bcde8f
Binary files /dev/null and b/test/reference/big-line.mask.argb32.ref.png differ
diff --git a/test/reference/big-line.mask.rgb24.ref.png b/test/reference/big-line.mask.rgb24.ref.png
new file mode 100644
index 0000000..1bcde8f
Binary files /dev/null and b/test/reference/big-line.mask.rgb24.ref.png differ
diff --git a/test/reference/big-little-box.mask.argb32.ref.png b/test/reference/big-little-box.mask.argb32.ref.png
new file mode 100644
index 0000000..928c5e6
Binary files /dev/null and b/test/reference/big-little-box.mask.argb32.ref.png differ
diff --git a/test/reference/big-little-box.mask.rgb24.ref.png b/test/reference/big-little-box.mask.rgb24.ref.png
new file mode 100644
index 0000000..c069d6f
Binary files /dev/null and b/test/reference/big-little-box.mask.rgb24.ref.png differ
diff --git a/test/reference/big-little-triangle.mask.argb32.ref.png b/test/reference/big-little-triangle.mask.argb32.ref.png
new file mode 100644
index 0000000..1c2522f
Binary files /dev/null and b/test/reference/big-little-triangle.mask.argb32.ref.png differ
diff --git a/test/reference/big-little-triangle.mask.rgb24.ref.png b/test/reference/big-little-triangle.mask.rgb24.ref.png
new file mode 100644
index 0000000..24fc472
Binary files /dev/null and b/test/reference/big-little-triangle.mask.rgb24.ref.png differ
diff --git a/test/reference/big-trap.mask.argb32.ref.png b/test/reference/big-trap.mask.argb32.ref.png
new file mode 100644
index 0000000..c0975c9
Binary files /dev/null and b/test/reference/big-trap.mask.argb32.ref.png differ
diff --git a/test/reference/big-trap.mask.rgb24.ref.png b/test/reference/big-trap.mask.rgb24.ref.png
new file mode 100644
index 0000000..c0975c9
Binary files /dev/null and b/test/reference/big-trap.mask.rgb24.ref.png differ
diff --git a/test/reference/bilevel-image.mask.argb32.ref.png b/test/reference/bilevel-image.mask.argb32.ref.png
new file mode 100644
index 0000000..3fb25c2
Binary files /dev/null and b/test/reference/bilevel-image.mask.argb32.ref.png differ
diff --git a/test/reference/bilevel-image.mask.rgb24.ref.png b/test/reference/bilevel-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..3fb25c2
Binary files /dev/null and b/test/reference/bilevel-image.mask.rgb24.ref.png differ
diff --git a/test/reference/bitmap-font.mask.argb32.ref.png b/test/reference/bitmap-font.mask.argb32.ref.png
new file mode 100644
index 0000000..bc2bc52
Binary files /dev/null and b/test/reference/bitmap-font.mask.argb32.ref.png differ
diff --git a/test/reference/bitmap-font.mask.rgb24.ref.png b/test/reference/bitmap-font.mask.rgb24.ref.png
new file mode 100644
index 0000000..285d742
Binary files /dev/null and b/test/reference/bitmap-font.mask.rgb24.ref.png differ
diff --git a/test/reference/bug-40410.mask.argb32.ref.png b/test/reference/bug-40410.mask.argb32.ref.png
new file mode 100644
index 0000000..ae4420a
Binary files /dev/null and b/test/reference/bug-40410.mask.argb32.ref.png differ
diff --git a/test/reference/bug-40410.mask.rgb24.ref.png b/test/reference/bug-40410.mask.rgb24.ref.png
new file mode 100644
index 0000000..ae4420a
Binary files /dev/null and b/test/reference/bug-40410.mask.rgb24.ref.png differ
diff --git a/test/reference/bug-bo-rectangular.mask.argb32.ref.png b/test/reference/bug-bo-rectangular.mask.argb32.ref.png
new file mode 100644
index 0000000..ffa4ede
Binary files /dev/null and b/test/reference/bug-bo-rectangular.mask.argb32.ref.png differ
diff --git a/test/reference/bug-bo-rectangular.mask.rgb24.ref.png b/test/reference/bug-bo-rectangular.mask.rgb24.ref.png
new file mode 100644
index 0000000..ffa4ede
Binary files /dev/null and b/test/reference/bug-bo-rectangular.mask.rgb24.ref.png differ
diff --git a/test/reference/bug-bo-ricotz.base.argb32.ref.png b/test/reference/bug-bo-ricotz.base.argb32.ref.png
new file mode 100644
index 0000000..ff7a552
Binary files /dev/null and b/test/reference/bug-bo-ricotz.base.argb32.ref.png differ
diff --git a/test/reference/bug-bo-ricotz.base.rgb24.ref.png b/test/reference/bug-bo-ricotz.base.rgb24.ref.png
new file mode 100644
index 0000000..ff7a552
Binary files /dev/null and b/test/reference/bug-bo-ricotz.base.rgb24.ref.png differ
diff --git a/test/reference/bug-bo-ricotz.mask.argb32.ref.png b/test/reference/bug-bo-ricotz.mask.argb32.ref.png
new file mode 100644
index 0000000..0e52b24
Binary files /dev/null and b/test/reference/bug-bo-ricotz.mask.argb32.ref.png differ
diff --git a/test/reference/bug-bo-ricotz.mask.rgb24.ref.png b/test/reference/bug-bo-ricotz.mask.rgb24.ref.png
new file mode 100644
index 0000000..0e52b24
Binary files /dev/null and b/test/reference/bug-bo-ricotz.mask.rgb24.ref.png differ
diff --git a/test/reference/bug-bo-ricotz.traps.argb32.ref.png b/test/reference/bug-bo-ricotz.traps.argb32.ref.png
new file mode 100644
index 0000000..0e52b24
Binary files /dev/null and b/test/reference/bug-bo-ricotz.traps.argb32.ref.png differ
diff --git a/test/reference/bug-bo-ricotz.traps.rgb24.ref.png b/test/reference/bug-bo-ricotz.traps.rgb24.ref.png
new file mode 100644
index 0000000..0e52b24
Binary files /dev/null and b/test/reference/bug-bo-ricotz.traps.rgb24.ref.png differ
diff --git a/test/reference/bug-extents.mask.argb32.ref.png b/test/reference/bug-extents.mask.argb32.ref.png
new file mode 100644
index 0000000..2c6875e
Binary files /dev/null and b/test/reference/bug-extents.mask.argb32.ref.png differ
diff --git a/test/reference/bug-extents.mask.rgb24.ref.png b/test/reference/bug-extents.mask.rgb24.ref.png
new file mode 100644
index 0000000..2c6875e
Binary files /dev/null and b/test/reference/bug-extents.mask.rgb24.ref.png differ
diff --git a/test/reference/bug-seams.mask.argb32.ref.png b/test/reference/bug-seams.mask.argb32.ref.png
new file mode 100644
index 0000000..99098db
Binary files /dev/null and b/test/reference/bug-seams.mask.argb32.ref.png differ
diff --git a/test/reference/bug-seams.mask.rgb24.ref.png b/test/reference/bug-seams.mask.rgb24.ref.png
new file mode 100644
index 0000000..99098db
Binary files /dev/null and b/test/reference/bug-seams.mask.rgb24.ref.png differ
diff --git a/test/reference/caps-joins-alpha.mask.argb32.ref.png b/test/reference/caps-joins-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..964a70f
Binary files /dev/null and b/test/reference/caps-joins-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/caps-joins-alpha.mask.rgb24.ref.png b/test/reference/caps-joins-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..964a70f
Binary files /dev/null and b/test/reference/caps-joins-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/caps-joins-curve.mask.argb32.ref.png b/test/reference/caps-joins-curve.mask.argb32.ref.png
new file mode 100644
index 0000000..3595900
Binary files /dev/null and b/test/reference/caps-joins-curve.mask.argb32.ref.png differ
diff --git a/test/reference/caps-joins-curve.mask.rgb24.ref.png b/test/reference/caps-joins-curve.mask.rgb24.ref.png
new file mode 100644
index 0000000..3595900
Binary files /dev/null and b/test/reference/caps-joins-curve.mask.rgb24.ref.png differ
diff --git a/test/reference/caps-joins.mask.argb32.ref.png b/test/reference/caps-joins.mask.argb32.ref.png
new file mode 100644
index 0000000..4983c02
Binary files /dev/null and b/test/reference/caps-joins.mask.argb32.ref.png differ
diff --git a/test/reference/caps-joins.mask.rgb24.ref.png b/test/reference/caps-joins.mask.rgb24.ref.png
new file mode 100644
index 0000000..4983c02
Binary files /dev/null and b/test/reference/caps-joins.mask.rgb24.ref.png differ
diff --git a/test/reference/caps-sub-paths.mask.argb32.ref.png b/test/reference/caps-sub-paths.mask.argb32.ref.png
new file mode 100644
index 0000000..7443389
Binary files /dev/null and b/test/reference/caps-sub-paths.mask.argb32.ref.png differ
diff --git a/test/reference/caps-sub-paths.mask.rgb24.ref.png b/test/reference/caps-sub-paths.mask.rgb24.ref.png
new file mode 100644
index 0000000..7443389
Binary files /dev/null and b/test/reference/caps-sub-paths.mask.rgb24.ref.png differ
diff --git a/test/reference/caps-tails-curve.mask.argb32.ref.png b/test/reference/caps-tails-curve.mask.argb32.ref.png
new file mode 100644
index 0000000..b0f477d
Binary files /dev/null and b/test/reference/caps-tails-curve.mask.argb32.ref.png differ
diff --git a/test/reference/caps-tails-curve.mask.rgb24.ref.png b/test/reference/caps-tails-curve.mask.rgb24.ref.png
new file mode 100644
index 0000000..b0f477d
Binary files /dev/null and b/test/reference/caps-tails-curve.mask.rgb24.ref.png differ
diff --git a/test/reference/caps.mask.argb32.ref.png b/test/reference/caps.mask.argb32.ref.png
new file mode 100644
index 0000000..bf784fd
Binary files /dev/null and b/test/reference/caps.mask.argb32.ref.png differ
diff --git a/test/reference/caps.mask.rgb24.ref.png b/test/reference/caps.mask.rgb24.ref.png
new file mode 100644
index 0000000..bf784fd
Binary files /dev/null and b/test/reference/caps.mask.rgb24.ref.png differ
diff --git a/test/reference/checkerboard.mask.argb32.ref.png b/test/reference/checkerboard.mask.argb32.ref.png
new file mode 100644
index 0000000..1444bc4
Binary files /dev/null and b/test/reference/checkerboard.mask.argb32.ref.png differ
diff --git a/test/reference/checkerboard.mask.rgb24.ref.png b/test/reference/checkerboard.mask.rgb24.ref.png
new file mode 100644
index 0000000..1444bc4
Binary files /dev/null and b/test/reference/checkerboard.mask.rgb24.ref.png differ
diff --git a/test/reference/clear-source.mask.argb32.ref.png b/test/reference/clear-source.mask.argb32.ref.png
new file mode 100644
index 0000000..352bf45
Binary files /dev/null and b/test/reference/clear-source.mask.argb32.ref.png differ
diff --git a/test/reference/clear-source.mask.rgb24.ref.png b/test/reference/clear-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..352bf45
Binary files /dev/null and b/test/reference/clear-source.mask.rgb24.ref.png differ
diff --git a/test/reference/clear.mask.argb32.ref.png b/test/reference/clear.mask.argb32.ref.png
new file mode 100644
index 0000000..102ac3d
Binary files /dev/null and b/test/reference/clear.mask.argb32.ref.png differ
diff --git a/test/reference/clear.mask.rgb24.ref.png b/test/reference/clear.mask.rgb24.ref.png
new file mode 100644
index 0000000..3267aff
Binary files /dev/null and b/test/reference/clear.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-all.mask.argb32.ref.png b/test/reference/clip-all.mask.argb32.ref.png
new file mode 100644
index 0000000..1ed070c
Binary files /dev/null and b/test/reference/clip-all.mask.argb32.ref.png differ
diff --git a/test/reference/clip-all.mask.rgb24.ref.png b/test/reference/clip-all.mask.rgb24.ref.png
new file mode 100644
index 0000000..1ed070c
Binary files /dev/null and b/test/reference/clip-all.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-complex-shape-eo-aa.mask.argb32.ref.png b/test/reference/clip-complex-shape-eo-aa.mask.argb32.ref.png
new file mode 100644
index 0000000..bafbb8a
Binary files /dev/null and b/test/reference/clip-complex-shape-eo-aa.mask.argb32.ref.png differ
diff --git a/test/reference/clip-complex-shape-eo-aa.mask.rgb24.ref.png b/test/reference/clip-complex-shape-eo-aa.mask.rgb24.ref.png
new file mode 100644
index 0000000..bafbb8a
Binary files /dev/null and b/test/reference/clip-complex-shape-eo-aa.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-complex-shape-eo-mono.mask.argb32.ref.png b/test/reference/clip-complex-shape-eo-mono.mask.argb32.ref.png
new file mode 100644
index 0000000..bafbb8a
Binary files /dev/null and b/test/reference/clip-complex-shape-eo-mono.mask.argb32.ref.png differ
diff --git a/test/reference/clip-complex-shape-eo-mono.mask.rgb24.ref.png b/test/reference/clip-complex-shape-eo-mono.mask.rgb24.ref.png
new file mode 100644
index 0000000..bafbb8a
Binary files /dev/null and b/test/reference/clip-complex-shape-eo-mono.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-contexts.mask.argb32.ref.png b/test/reference/clip-contexts.mask.argb32.ref.png
new file mode 100644
index 0000000..0d575a6
Binary files /dev/null and b/test/reference/clip-contexts.mask.argb32.ref.png differ
diff --git a/test/reference/clip-contexts.mask.rgb24.ref.png b/test/reference/clip-contexts.mask.rgb24.ref.png
new file mode 100644
index 0000000..0d575a6
Binary files /dev/null and b/test/reference/clip-contexts.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-device-offset.mask.argb32.ref.png b/test/reference/clip-device-offset.mask.argb32.ref.png
new file mode 100644
index 0000000..06be985
Binary files /dev/null and b/test/reference/clip-device-offset.mask.argb32.ref.png differ
diff --git a/test/reference/clip-device-offset.mask.rgb24.ref.png b/test/reference/clip-device-offset.mask.rgb24.ref.png
new file mode 100644
index 0000000..2419384
Binary files /dev/null and b/test/reference/clip-device-offset.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-disjoint-hatching.mask.argb32.ref.png b/test/reference/clip-disjoint-hatching.mask.argb32.ref.png
new file mode 100644
index 0000000..a29f04a
Binary files /dev/null and b/test/reference/clip-disjoint-hatching.mask.argb32.ref.png differ
diff --git a/test/reference/clip-disjoint-hatching.mask.rgb24.ref.png b/test/reference/clip-disjoint-hatching.mask.rgb24.ref.png
new file mode 100644
index 0000000..a29f04a
Binary files /dev/null and b/test/reference/clip-disjoint-hatching.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-disjoint.mask.argb32.ref.png b/test/reference/clip-disjoint.mask.argb32.ref.png
new file mode 100644
index 0000000..4e18b7c
Binary files /dev/null and b/test/reference/clip-disjoint.mask.argb32.ref.png differ
diff --git a/test/reference/clip-disjoint.mask.rgb24.ref.png b/test/reference/clip-disjoint.mask.rgb24.ref.png
new file mode 100644
index 0000000..4e18b7c
Binary files /dev/null and b/test/reference/clip-disjoint.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-empty-group.mask.argb32.ref.png b/test/reference/clip-empty-group.mask.argb32.ref.png
new file mode 100644
index 0000000..a59ca47
Binary files /dev/null and b/test/reference/clip-empty-group.mask.argb32.ref.png differ
diff --git a/test/reference/clip-empty-group.mask.rgb24.ref.png b/test/reference/clip-empty-group.mask.rgb24.ref.png
new file mode 100644
index 0000000..a59ca47
Binary files /dev/null and b/test/reference/clip-empty-group.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-empty-save.mask.argb32.ref.png b/test/reference/clip-empty-save.mask.argb32.ref.png
new file mode 100644
index 0000000..1ed070c
Binary files /dev/null and b/test/reference/clip-empty-save.mask.argb32.ref.png differ
diff --git a/test/reference/clip-empty-save.mask.rgb24.ref.png b/test/reference/clip-empty-save.mask.rgb24.ref.png
new file mode 100644
index 0000000..1ed070c
Binary files /dev/null and b/test/reference/clip-empty-save.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-empty.mask.argb32.ref.png b/test/reference/clip-empty.mask.argb32.ref.png
new file mode 100644
index 0000000..1ed070c
Binary files /dev/null and b/test/reference/clip-empty.mask.argb32.ref.png differ
diff --git a/test/reference/clip-empty.mask.rgb24.ref.png b/test/reference/clip-empty.mask.rgb24.ref.png
new file mode 100644
index 0000000..1ed070c
Binary files /dev/null and b/test/reference/clip-empty.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-eo-unbounded.mask.argb32.ref.png b/test/reference/clip-fill-eo-unbounded.mask.argb32.ref.png
new file mode 100644
index 0000000..2340bdf
Binary files /dev/null and b/test/reference/clip-fill-eo-unbounded.mask.argb32.ref.png differ
diff --git a/test/reference/clip-fill-eo-unbounded.mask.rgb24.ref.png b/test/reference/clip-fill-eo-unbounded.mask.rgb24.ref.png
new file mode 100644
index 0000000..299bd72
Binary files /dev/null and b/test/reference/clip-fill-eo-unbounded.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-no-op.mask.argb32.ref.png b/test/reference/clip-fill-no-op.mask.argb32.ref.png
new file mode 100644
index 0000000..2256461
Binary files /dev/null and b/test/reference/clip-fill-no-op.mask.argb32.ref.png differ
diff --git a/test/reference/clip-fill-no-op.mask.rgb24.ref.png b/test/reference/clip-fill-no-op.mask.rgb24.ref.png
new file mode 100644
index 0000000..2256461
Binary files /dev/null and b/test/reference/clip-fill-no-op.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-nz-unbounded.mask.argb32.ref.png b/test/reference/clip-fill-nz-unbounded.mask.argb32.ref.png
new file mode 100644
index 0000000..05b2628
Binary files /dev/null and b/test/reference/clip-fill-nz-unbounded.mask.argb32.ref.png differ
diff --git a/test/reference/clip-fill-nz-unbounded.mask.rgb24.ref.png b/test/reference/clip-fill-nz-unbounded.mask.rgb24.ref.png
new file mode 100644
index 0000000..9ce760b
Binary files /dev/null and b/test/reference/clip-fill-nz-unbounded.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-rule-pixel-aligned.mask.argb32.ref.png b/test/reference/clip-fill-rule-pixel-aligned.mask.argb32.ref.png
new file mode 100644
index 0000000..9b82c4b
Binary files /dev/null and b/test/reference/clip-fill-rule-pixel-aligned.mask.argb32.ref.png differ
diff --git a/test/reference/clip-fill-rule-pixel-aligned.mask.rgb24.ref.png b/test/reference/clip-fill-rule-pixel-aligned.mask.rgb24.ref.png
new file mode 100644
index 0000000..0b4f068
Binary files /dev/null and b/test/reference/clip-fill-rule-pixel-aligned.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-rule.mask.argb32.ref.png b/test/reference/clip-fill-rule.mask.argb32.ref.png
new file mode 100644
index 0000000..cb23ea6
Binary files /dev/null and b/test/reference/clip-fill-rule.mask.argb32.ref.png differ
diff --git a/test/reference/clip-fill-rule.mask.rgb24.ref.png b/test/reference/clip-fill-rule.mask.rgb24.ref.png
new file mode 100644
index 0000000..5265dde
Binary files /dev/null and b/test/reference/clip-fill-rule.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-fill.mask.argb32.ref.png b/test/reference/clip-fill.mask.argb32.ref.png
new file mode 100644
index 0000000..c3f2700
Binary files /dev/null and b/test/reference/clip-fill.mask.argb32.ref.png differ
diff --git a/test/reference/clip-fill.mask.rgb24.ref.png b/test/reference/clip-fill.mask.rgb24.ref.png
new file mode 100644
index 0000000..c3f2700
Binary files /dev/null and b/test/reference/clip-fill.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-group-shapes-aligned-rectangles.mask.argb32.ref.png b/test/reference/clip-group-shapes-aligned-rectangles.mask.argb32.ref.png
new file mode 100644
index 0000000..cba7507
Binary files /dev/null and b/test/reference/clip-group-shapes-aligned-rectangles.mask.argb32.ref.png differ
diff --git a/test/reference/clip-group-shapes-aligned-rectangles.mask.rgb24.ref.png b/test/reference/clip-group-shapes-aligned-rectangles.mask.rgb24.ref.png
new file mode 100644
index 0000000..cba7507
Binary files /dev/null and b/test/reference/clip-group-shapes-aligned-rectangles.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-group-shapes-circles.mask.argb32.ref.png b/test/reference/clip-group-shapes-circles.mask.argb32.ref.png
new file mode 100644
index 0000000..7dd6a83
Binary files /dev/null and b/test/reference/clip-group-shapes-circles.mask.argb32.ref.png differ
diff --git a/test/reference/clip-group-shapes-circles.mask.rgb24.ref.png b/test/reference/clip-group-shapes-circles.mask.rgb24.ref.png
new file mode 100644
index 0000000..7dd6a83
Binary files /dev/null and b/test/reference/clip-group-shapes-circles.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-group-shapes-unaligned-rectangles.mask.argb32.ref.png b/test/reference/clip-group-shapes-unaligned-rectangles.mask.argb32.ref.png
new file mode 100644
index 0000000..877e78b
Binary files /dev/null and b/test/reference/clip-group-shapes-unaligned-rectangles.mask.argb32.ref.png differ
diff --git a/test/reference/clip-group-shapes-unaligned-rectangles.mask.rgb24.ref.png b/test/reference/clip-group-shapes-unaligned-rectangles.mask.rgb24.ref.png
new file mode 100644
index 0000000..877e78b
Binary files /dev/null and b/test/reference/clip-group-shapes-unaligned-rectangles.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-image.mask.argb32.ref.png b/test/reference/clip-image.mask.argb32.ref.png
new file mode 100644
index 0000000..86c28af
Binary files /dev/null and b/test/reference/clip-image.mask.argb32.ref.png differ
diff --git a/test/reference/clip-image.mask.rgb24.ref.png b/test/reference/clip-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..86c28af
Binary files /dev/null and b/test/reference/clip-image.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-intersect.mask.argb32.ref.png b/test/reference/clip-intersect.mask.argb32.ref.png
new file mode 100644
index 0000000..6627b3a
Binary files /dev/null and b/test/reference/clip-intersect.mask.argb32.ref.png differ
diff --git a/test/reference/clip-intersect.mask.rgb24.ref.png b/test/reference/clip-intersect.mask.rgb24.ref.png
new file mode 100644
index 0000000..6627b3a
Binary files /dev/null and b/test/reference/clip-intersect.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-mixed-antialias.mask.argb32.ref.png b/test/reference/clip-mixed-antialias.mask.argb32.ref.png
new file mode 100644
index 0000000..243c4dd
Binary files /dev/null and b/test/reference/clip-mixed-antialias.mask.argb32.ref.png differ
diff --git a/test/reference/clip-mixed-antialias.mask.rgb24.ref.png b/test/reference/clip-mixed-antialias.mask.rgb24.ref.png
new file mode 100644
index 0000000..243c4dd
Binary files /dev/null and b/test/reference/clip-mixed-antialias.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-nesting.mask.argb32.ref.png b/test/reference/clip-nesting.mask.argb32.ref.png
new file mode 100644
index 0000000..ce0cc0d
Binary files /dev/null and b/test/reference/clip-nesting.mask.argb32.ref.png differ
diff --git a/test/reference/clip-nesting.mask.rgb24.ref.png b/test/reference/clip-nesting.mask.rgb24.ref.png
new file mode 100644
index 0000000..5247843
Binary files /dev/null and b/test/reference/clip-nesting.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-operator.mask.argb32.ref.png b/test/reference/clip-operator.mask.argb32.ref.png
new file mode 100644
index 0000000..8db1a07
Binary files /dev/null and b/test/reference/clip-operator.mask.argb32.ref.png differ
diff --git a/test/reference/clip-operator.mask.rgb24.ref.png b/test/reference/clip-operator.mask.rgb24.ref.png
new file mode 100644
index 0000000..ddd1ec3
Binary files /dev/null and b/test/reference/clip-operator.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-polygons.base.argb32.ref.png b/test/reference/clip-polygons.base.argb32.ref.png
new file mode 100644
index 0000000..e1f294c
Binary files /dev/null and b/test/reference/clip-polygons.base.argb32.ref.png differ
diff --git a/test/reference/clip-polygons.base.rgb24.ref.png b/test/reference/clip-polygons.base.rgb24.ref.png
new file mode 100644
index 0000000..e1f294c
Binary files /dev/null and b/test/reference/clip-polygons.base.rgb24.ref.png differ
diff --git a/test/reference/clip-polygons.mask.argb32.ref.png b/test/reference/clip-polygons.mask.argb32.ref.png
new file mode 100644
index 0000000..e139ef3
Binary files /dev/null and b/test/reference/clip-polygons.mask.argb32.ref.png differ
diff --git a/test/reference/clip-polygons.mask.rgb24.ref.png b/test/reference/clip-polygons.mask.rgb24.ref.png
new file mode 100644
index 0000000..e139ef3
Binary files /dev/null and b/test/reference/clip-polygons.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-polygons.traps.argb32.ref.png b/test/reference/clip-polygons.traps.argb32.ref.png
new file mode 100644
index 0000000..e139ef3
Binary files /dev/null and b/test/reference/clip-polygons.traps.argb32.ref.png differ
diff --git a/test/reference/clip-polygons.traps.rgb24.ref.png b/test/reference/clip-polygons.traps.rgb24.ref.png
new file mode 100644
index 0000000..e139ef3
Binary files /dev/null and b/test/reference/clip-polygons.traps.rgb24.ref.png differ
diff --git a/test/reference/clip-push-group.mask.argb32.ref.png b/test/reference/clip-push-group.mask.argb32.ref.png
new file mode 100644
index 0000000..86724a2
Binary files /dev/null and b/test/reference/clip-push-group.mask.argb32.ref.png differ
diff --git a/test/reference/clip-push-group.mask.rgb24.ref.png b/test/reference/clip-push-group.mask.rgb24.ref.png
new file mode 100644
index 0000000..86724a2
Binary files /dev/null and b/test/reference/clip-push-group.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-rectilinear.base.argb32.ref.png b/test/reference/clip-rectilinear.base.argb32.ref.png
new file mode 100644
index 0000000..2a27bec
Binary files /dev/null and b/test/reference/clip-rectilinear.base.argb32.ref.png differ
diff --git a/test/reference/clip-rectilinear.base.rgb24.ref.png b/test/reference/clip-rectilinear.base.rgb24.ref.png
new file mode 100644
index 0000000..2a27bec
Binary files /dev/null and b/test/reference/clip-rectilinear.base.rgb24.ref.png differ
diff --git a/test/reference/clip-rectilinear.mask.argb32.ref.png b/test/reference/clip-rectilinear.mask.argb32.ref.png
new file mode 100644
index 0000000..2a27bec
Binary files /dev/null and b/test/reference/clip-rectilinear.mask.argb32.ref.png differ
diff --git a/test/reference/clip-rectilinear.mask.rgb24.ref.png b/test/reference/clip-rectilinear.mask.rgb24.ref.png
new file mode 100644
index 0000000..2a27bec
Binary files /dev/null and b/test/reference/clip-rectilinear.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-rectilinear.traps.argb32.ref.png b/test/reference/clip-rectilinear.traps.argb32.ref.png
new file mode 100644
index 0000000..2a27bec
Binary files /dev/null and b/test/reference/clip-rectilinear.traps.argb32.ref.png differ
diff --git a/test/reference/clip-rectilinear.traps.rgb24.ref.png b/test/reference/clip-rectilinear.traps.rgb24.ref.png
new file mode 100644
index 0000000..2a27bec
Binary files /dev/null and b/test/reference/clip-rectilinear.traps.rgb24.ref.png differ
diff --git a/test/reference/clip-rotate-image-surface-paint.mask.argb32.ref.png b/test/reference/clip-rotate-image-surface-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..1093804
Binary files /dev/null and b/test/reference/clip-rotate-image-surface-paint.mask.argb32.ref.png differ
diff --git a/test/reference/clip-rotate-image-surface-paint.mask.rgb24.ref.png b/test/reference/clip-rotate-image-surface-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..1093804
Binary files /dev/null and b/test/reference/clip-rotate-image-surface-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-shape.mask.argb32.ref.png b/test/reference/clip-shape.mask.argb32.ref.png
new file mode 100644
index 0000000..03edf68
Binary files /dev/null and b/test/reference/clip-shape.mask.argb32.ref.png differ
diff --git a/test/reference/clip-shape.mask.rgb24.ref.png b/test/reference/clip-shape.mask.rgb24.ref.png
new file mode 100644
index 0000000..03edf68
Binary files /dev/null and b/test/reference/clip-shape.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-stroke-no-op.mask.argb32.ref.png b/test/reference/clip-stroke-no-op.mask.argb32.ref.png
new file mode 100644
index 0000000..2256461
Binary files /dev/null and b/test/reference/clip-stroke-no-op.mask.argb32.ref.png differ
diff --git a/test/reference/clip-stroke-no-op.mask.rgb24.ref.png b/test/reference/clip-stroke-no-op.mask.rgb24.ref.png
new file mode 100644
index 0000000..2256461
Binary files /dev/null and b/test/reference/clip-stroke-no-op.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-stroke-unbounded.mask.argb32.ref.png b/test/reference/clip-stroke-unbounded.mask.argb32.ref.png
new file mode 100644
index 0000000..274feb6
Binary files /dev/null and b/test/reference/clip-stroke-unbounded.mask.argb32.ref.png differ
diff --git a/test/reference/clip-stroke-unbounded.mask.rgb24.ref.png b/test/reference/clip-stroke-unbounded.mask.rgb24.ref.png
new file mode 100644
index 0000000..a9a8f7b
Binary files /dev/null and b/test/reference/clip-stroke-unbounded.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-stroke.mask.argb32.ref.png b/test/reference/clip-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..afa7fc0
Binary files /dev/null and b/test/reference/clip-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/clip-stroke.mask.rgb24.ref.png b/test/reference/clip-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..afa7fc0
Binary files /dev/null and b/test/reference/clip-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-text.mask.argb32.ref.png b/test/reference/clip-text.mask.argb32.ref.png
new file mode 100644
index 0000000..98484cd
Binary files /dev/null and b/test/reference/clip-text.mask.argb32.ref.png differ
diff --git a/test/reference/clip-text.mask.rgb24.ref.png b/test/reference/clip-text.mask.rgb24.ref.png
new file mode 100644
index 0000000..98484cd
Binary files /dev/null and b/test/reference/clip-text.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-twice-rectangle.mask.argb32.ref.png b/test/reference/clip-twice-rectangle.mask.argb32.ref.png
new file mode 100644
index 0000000..d0e65ea
Binary files /dev/null and b/test/reference/clip-twice-rectangle.mask.argb32.ref.png differ
diff --git a/test/reference/clip-twice-rectangle.mask.rgb24.ref.png b/test/reference/clip-twice-rectangle.mask.rgb24.ref.png
new file mode 100644
index 0000000..d0e65ea
Binary files /dev/null and b/test/reference/clip-twice-rectangle.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-twice.mask.argb32.ref.png b/test/reference/clip-twice.mask.argb32.ref.png
new file mode 100644
index 0000000..828dd23
Binary files /dev/null and b/test/reference/clip-twice.mask.argb32.ref.png differ
diff --git a/test/reference/clip-twice.mask.rgb24.ref.png b/test/reference/clip-twice.mask.rgb24.ref.png
new file mode 100644
index 0000000..8b6baed
Binary files /dev/null and b/test/reference/clip-twice.mask.rgb24.ref.png differ
diff --git a/test/reference/clip-unbounded.mask.argb32.ref.png b/test/reference/clip-unbounded.mask.argb32.ref.png
new file mode 100644
index 0000000..0b65905
Binary files /dev/null and b/test/reference/clip-unbounded.mask.argb32.ref.png differ
diff --git a/test/reference/clip-unbounded.mask.rgb24.ref.png b/test/reference/clip-unbounded.mask.rgb24.ref.png
new file mode 100644
index 0000000..2baf9f4
Binary files /dev/null and b/test/reference/clip-unbounded.mask.rgb24.ref.png differ
diff --git a/test/reference/clipped-group.mask.argb32.ref.png b/test/reference/clipped-group.mask.argb32.ref.png
new file mode 100644
index 0000000..53b149f
Binary files /dev/null and b/test/reference/clipped-group.mask.argb32.ref.png differ
diff --git a/test/reference/clipped-group.mask.rgb24.ref.png b/test/reference/clipped-group.mask.rgb24.ref.png
new file mode 100644
index 0000000..53b149f
Binary files /dev/null and b/test/reference/clipped-group.mask.rgb24.ref.png differ
diff --git a/test/reference/clipped-surface.mask.argb32.ref.png b/test/reference/clipped-surface.mask.argb32.ref.png
new file mode 100644
index 0000000..8e8b008
Binary files /dev/null and b/test/reference/clipped-surface.mask.argb32.ref.png differ
diff --git a/test/reference/clipped-surface.mask.rgb24.ref.png b/test/reference/clipped-surface.mask.rgb24.ref.png
new file mode 100644
index 0000000..8e8b008
Binary files /dev/null and b/test/reference/clipped-surface.mask.rgb24.ref.png differ
diff --git a/test/reference/close-path-current-point.mask.argb32.ref.png b/test/reference/close-path-current-point.mask.argb32.ref.png
new file mode 100644
index 0000000..ab3124b
Binary files /dev/null and b/test/reference/close-path-current-point.mask.argb32.ref.png differ
diff --git a/test/reference/close-path-current-point.mask.rgb24.ref.png b/test/reference/close-path-current-point.mask.rgb24.ref.png
new file mode 100644
index 0000000..ab3124b
Binary files /dev/null and b/test/reference/close-path-current-point.mask.rgb24.ref.png differ
diff --git a/test/reference/close-path.mask.argb32.ref.png b/test/reference/close-path.mask.argb32.ref.png
new file mode 100644
index 0000000..5506ff8
Binary files /dev/null and b/test/reference/close-path.mask.argb32.ref.png differ
diff --git a/test/reference/close-path.mask.rgb24.ref.png b/test/reference/close-path.mask.rgb24.ref.png
new file mode 100644
index 0000000..5506ff8
Binary files /dev/null and b/test/reference/close-path.mask.rgb24.ref.png differ
diff --git a/test/reference/composite-integer-translate-over-repeat.mask.argb32.ref.png b/test/reference/composite-integer-translate-over-repeat.mask.argb32.ref.png
new file mode 100644
index 0000000..c425749
Binary files /dev/null and b/test/reference/composite-integer-translate-over-repeat.mask.argb32.ref.png differ
diff --git a/test/reference/composite-integer-translate-over-repeat.mask.rgb24.ref.png b/test/reference/composite-integer-translate-over-repeat.mask.rgb24.ref.png
new file mode 100644
index 0000000..c425749
Binary files /dev/null and b/test/reference/composite-integer-translate-over-repeat.mask.rgb24.ref.png differ
diff --git a/test/reference/composite-integer-translate-over.mask.argb32.ref.png b/test/reference/composite-integer-translate-over.mask.argb32.ref.png
new file mode 100644
index 0000000..7ac3ddf
Binary files /dev/null and b/test/reference/composite-integer-translate-over.mask.argb32.ref.png differ
diff --git a/test/reference/composite-integer-translate-over.mask.rgb24.ref.png b/test/reference/composite-integer-translate-over.mask.rgb24.ref.png
new file mode 100644
index 0000000..7ac3ddf
Binary files /dev/null and b/test/reference/composite-integer-translate-over.mask.rgb24.ref.png differ
diff --git a/test/reference/composite-integer-translate-source.mask.argb32.ref.png b/test/reference/composite-integer-translate-source.mask.argb32.ref.png
new file mode 100644
index 0000000..7ac3ddf
Binary files /dev/null and b/test/reference/composite-integer-translate-source.mask.argb32.ref.png differ
diff --git a/test/reference/composite-integer-translate-source.mask.rgb24.ref.png b/test/reference/composite-integer-translate-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..7ac3ddf
Binary files /dev/null and b/test/reference/composite-integer-translate-source.mask.rgb24.ref.png differ
diff --git a/test/reference/copy-disjoint.base.argb32.ref.png b/test/reference/copy-disjoint.base.argb32.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/copy-disjoint.base.argb32.ref.png differ
diff --git a/test/reference/copy-disjoint.base.rgb24.ref.png b/test/reference/copy-disjoint.base.rgb24.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/copy-disjoint.base.rgb24.ref.png differ
diff --git a/test/reference/copy-disjoint.mask.argb32.ref.png b/test/reference/copy-disjoint.mask.argb32.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/copy-disjoint.mask.argb32.ref.png differ
diff --git a/test/reference/copy-disjoint.mask.rgb24.ref.png b/test/reference/copy-disjoint.mask.rgb24.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/copy-disjoint.mask.rgb24.ref.png differ
diff --git a/test/reference/copy-disjoint.traps.argb32.ref.png b/test/reference/copy-disjoint.traps.argb32.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/copy-disjoint.traps.argb32.ref.png differ
diff --git a/test/reference/copy-disjoint.traps.rgb24.ref.png b/test/reference/copy-disjoint.traps.rgb24.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/copy-disjoint.traps.rgb24.ref.png differ
diff --git a/test/reference/copy-path.mask.argb32.ref.png b/test/reference/copy-path.mask.argb32.ref.png
new file mode 100644
index 0000000..b50e9e4
Binary files /dev/null and b/test/reference/copy-path.mask.argb32.ref.png differ
diff --git a/test/reference/copy-path.mask.rgb24.ref.png b/test/reference/copy-path.mask.rgb24.ref.png
new file mode 100644
index 0000000..b50e9e4
Binary files /dev/null and b/test/reference/copy-path.mask.rgb24.ref.png differ
diff --git a/test/reference/create-from-png-stream.mask.argb32.ref.png b/test/reference/create-from-png-stream.mask.argb32.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/create-from-png-stream.mask.argb32.ref.png differ
diff --git a/test/reference/create-from-png-stream.mask.rgb24.ref.png b/test/reference/create-from-png-stream.mask.rgb24.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/create-from-png-stream.mask.rgb24.ref.png differ
diff --git a/test/reference/create-from-png.mask.argb32.ref.png b/test/reference/create-from-png.mask.argb32.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/create-from-png.mask.argb32.ref.png differ
diff --git a/test/reference/create-from-png.mask.rgb24.ref.png b/test/reference/create-from-png.mask.rgb24.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/create-from-png.mask.rgb24.ref.png differ
diff --git a/test/reference/create-from-png.traps.argb32.ref.png b/test/reference/create-from-png.traps.argb32.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/create-from-png.traps.argb32.ref.png differ
diff --git a/test/reference/create-from-png.traps.rgb24.ref.png b/test/reference/create-from-png.traps.rgb24.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/create-from-png.traps.rgb24.ref.png differ
diff --git a/test/reference/culled-glyphs.mask.argb32.ref.png b/test/reference/culled-glyphs.mask.argb32.ref.png
new file mode 100644
index 0000000..6701295
Binary files /dev/null and b/test/reference/culled-glyphs.mask.argb32.ref.png differ
diff --git a/test/reference/culled-glyphs.mask.rgb24.ref.png b/test/reference/culled-glyphs.mask.rgb24.ref.png
new file mode 100644
index 0000000..6701295
Binary files /dev/null and b/test/reference/culled-glyphs.mask.rgb24.ref.png differ
diff --git a/test/reference/curve-to-as-line-to.mask.argb32.ref.png b/test/reference/curve-to-as-line-to.mask.argb32.ref.png
new file mode 100644
index 0000000..d241183
Binary files /dev/null and b/test/reference/curve-to-as-line-to.mask.argb32.ref.png differ
diff --git a/test/reference/curve-to-as-line-to.mask.rgb24.ref.png b/test/reference/curve-to-as-line-to.mask.rgb24.ref.png
new file mode 100644
index 0000000..d241183
Binary files /dev/null and b/test/reference/curve-to-as-line-to.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-caps-joins.mask.argb32.ref.png b/test/reference/dash-caps-joins.mask.argb32.ref.png
new file mode 100644
index 0000000..b09b86f
Binary files /dev/null and b/test/reference/dash-caps-joins.mask.argb32.ref.png differ
diff --git a/test/reference/dash-caps-joins.mask.rgb24.ref.png b/test/reference/dash-caps-joins.mask.rgb24.ref.png
new file mode 100644
index 0000000..b09b86f
Binary files /dev/null and b/test/reference/dash-caps-joins.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-curve.mask.argb32.ref.png b/test/reference/dash-curve.mask.argb32.ref.png
new file mode 100644
index 0000000..8bebde2
Binary files /dev/null and b/test/reference/dash-curve.mask.argb32.ref.png differ
diff --git a/test/reference/dash-curve.mask.rgb24.ref.png b/test/reference/dash-curve.mask.rgb24.ref.png
new file mode 100644
index 0000000..8bebde2
Binary files /dev/null and b/test/reference/dash-curve.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-infinite-loop.mask.argb32.ref.png b/test/reference/dash-infinite-loop.mask.argb32.ref.png
new file mode 100644
index 0000000..2ae1717
Binary files /dev/null and b/test/reference/dash-infinite-loop.mask.argb32.ref.png differ
diff --git a/test/reference/dash-infinite-loop.mask.rgb24.ref.png b/test/reference/dash-infinite-loop.mask.rgb24.ref.png
new file mode 100644
index 0000000..2ae1717
Binary files /dev/null and b/test/reference/dash-infinite-loop.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-no-dash.mask.argb32.ref.png b/test/reference/dash-no-dash.mask.argb32.ref.png
new file mode 100644
index 0000000..c150a4f
Binary files /dev/null and b/test/reference/dash-no-dash.mask.argb32.ref.png differ
diff --git a/test/reference/dash-no-dash.mask.rgb24.ref.png b/test/reference/dash-no-dash.mask.rgb24.ref.png
new file mode 100644
index 0000000..c150a4f
Binary files /dev/null and b/test/reference/dash-no-dash.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-offset-negative.mask.argb32.ref.png b/test/reference/dash-offset-negative.mask.argb32.ref.png
new file mode 100644
index 0000000..df22d08
Binary files /dev/null and b/test/reference/dash-offset-negative.mask.argb32.ref.png differ
diff --git a/test/reference/dash-offset-negative.mask.rgb24.ref.png b/test/reference/dash-offset-negative.mask.rgb24.ref.png
new file mode 100644
index 0000000..df22d08
Binary files /dev/null and b/test/reference/dash-offset-negative.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-offset.mask.argb32.ref.png b/test/reference/dash-offset.mask.argb32.ref.png
new file mode 100644
index 0000000..52600c4
Binary files /dev/null and b/test/reference/dash-offset.mask.argb32.ref.png differ
diff --git a/test/reference/dash-offset.mask.rgb24.ref.png b/test/reference/dash-offset.mask.rgb24.ref.png
new file mode 100644
index 0000000..52600c4
Binary files /dev/null and b/test/reference/dash-offset.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-scale.mask.argb32.ref.png b/test/reference/dash-scale.mask.argb32.ref.png
new file mode 100644
index 0000000..deef9dc
Binary files /dev/null and b/test/reference/dash-scale.mask.argb32.ref.png differ
diff --git a/test/reference/dash-scale.mask.rgb24.ref.png b/test/reference/dash-scale.mask.rgb24.ref.png
new file mode 100644
index 0000000..deef9dc
Binary files /dev/null and b/test/reference/dash-scale.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-state.mask.argb32.ref.png b/test/reference/dash-state.mask.argb32.ref.png
new file mode 100644
index 0000000..31551cf
Binary files /dev/null and b/test/reference/dash-state.mask.argb32.ref.png differ
diff --git a/test/reference/dash-state.mask.rgb24.ref.png b/test/reference/dash-state.mask.rgb24.ref.png
new file mode 100644
index 0000000..31551cf
Binary files /dev/null and b/test/reference/dash-state.mask.rgb24.ref.png differ
diff --git a/test/reference/dash-zero-length.mask.argb32.ref.png b/test/reference/dash-zero-length.mask.argb32.ref.png
new file mode 100644
index 0000000..fdc5f5e
Binary files /dev/null and b/test/reference/dash-zero-length.mask.argb32.ref.png differ
diff --git a/test/reference/dash-zero-length.mask.rgb24.ref.png b/test/reference/dash-zero-length.mask.rgb24.ref.png
new file mode 100644
index 0000000..b14bd8d
Binary files /dev/null and b/test/reference/dash-zero-length.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-arc.mask.argb32.ref.png b/test/reference/degenerate-arc.mask.argb32.ref.png
new file mode 100644
index 0000000..4da4fd6
Binary files /dev/null and b/test/reference/degenerate-arc.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-arc.mask.rgb24.ref.png b/test/reference/degenerate-arc.mask.rgb24.ref.png
new file mode 100644
index 0000000..4da4fd6
Binary files /dev/null and b/test/reference/degenerate-arc.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-arcs.mask.argb32.ref.png b/test/reference/degenerate-arcs.mask.argb32.ref.png
new file mode 100644
index 0000000..fc1869d
Binary files /dev/null and b/test/reference/degenerate-arcs.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-arcs.mask.rgb24.ref.png b/test/reference/degenerate-arcs.mask.rgb24.ref.png
new file mode 100644
index 0000000..fc1869d
Binary files /dev/null and b/test/reference/degenerate-arcs.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-curve-to.mask.argb32.ref.png b/test/reference/degenerate-curve-to.mask.argb32.ref.png
new file mode 100644
index 0000000..18ab11e
Binary files /dev/null and b/test/reference/degenerate-curve-to.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-curve-to.mask.rgb24.ref.png b/test/reference/degenerate-curve-to.mask.rgb24.ref.png
new file mode 100644
index 0000000..18ab11e
Binary files /dev/null and b/test/reference/degenerate-curve-to.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-dash.mask.argb32.ref.png b/test/reference/degenerate-dash.mask.argb32.ref.png
new file mode 100644
index 0000000..2ddfc8b
Binary files /dev/null and b/test/reference/degenerate-dash.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-dash.mask.rgb24.ref.png b/test/reference/degenerate-dash.mask.rgb24.ref.png
new file mode 100644
index 0000000..2ddfc8b
Binary files /dev/null and b/test/reference/degenerate-dash.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-linear-gradient.mask.argb32.ref.png b/test/reference/degenerate-linear-gradient.mask.argb32.ref.png
new file mode 100644
index 0000000..ceed48a
Binary files /dev/null and b/test/reference/degenerate-linear-gradient.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-linear-gradient.mask.rgb24.ref.png b/test/reference/degenerate-linear-gradient.mask.rgb24.ref.png
new file mode 100644
index 0000000..ceed48a
Binary files /dev/null and b/test/reference/degenerate-linear-gradient.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-path.mask.argb32.ref.png b/test/reference/degenerate-path.mask.argb32.ref.png
new file mode 100644
index 0000000..0459397
Binary files /dev/null and b/test/reference/degenerate-path.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-path.mask.rgb24.ref.png b/test/reference/degenerate-path.mask.rgb24.ref.png
new file mode 100644
index 0000000..07fda63
Binary files /dev/null and b/test/reference/degenerate-path.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-pen.mask.argb32.ref.png b/test/reference/degenerate-pen.mask.argb32.ref.png
new file mode 100644
index 0000000..ea65d22
Binary files /dev/null and b/test/reference/degenerate-pen.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-pen.mask.rgb24.ref.png b/test/reference/degenerate-pen.mask.rgb24.ref.png
new file mode 100644
index 0000000..ea65d22
Binary files /dev/null and b/test/reference/degenerate-pen.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-radial-gradient.mask.argb32.ref.png b/test/reference/degenerate-radial-gradient.mask.argb32.ref.png
new file mode 100644
index 0000000..9a5213b
Binary files /dev/null and b/test/reference/degenerate-radial-gradient.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-radial-gradient.mask.rgb24.ref.png b/test/reference/degenerate-radial-gradient.mask.rgb24.ref.png
new file mode 100644
index 0000000..9a5213b
Binary files /dev/null and b/test/reference/degenerate-radial-gradient.mask.rgb24.ref.png differ
diff --git a/test/reference/degenerate-rel-curve-to.mask.argb32.ref.png b/test/reference/degenerate-rel-curve-to.mask.argb32.ref.png
new file mode 100644
index 0000000..c4293ad
Binary files /dev/null and b/test/reference/degenerate-rel-curve-to.mask.argb32.ref.png differ
diff --git a/test/reference/degenerate-rel-curve-to.mask.rgb24.ref.png b/test/reference/degenerate-rel-curve-to.mask.rgb24.ref.png
new file mode 100644
index 0000000..c4293ad
Binary files /dev/null and b/test/reference/degenerate-rel-curve-to.mask.rgb24.ref.png differ
diff --git a/test/reference/device-offset-fractional.mask.argb32.ref.png b/test/reference/device-offset-fractional.mask.argb32.ref.png
new file mode 100644
index 0000000..b1eef5f
Binary files /dev/null and b/test/reference/device-offset-fractional.mask.argb32.ref.png differ
diff --git a/test/reference/device-offset-fractional.mask.rgb24.ref.png b/test/reference/device-offset-fractional.mask.rgb24.ref.png
new file mode 100644
index 0000000..b1eef5f
Binary files /dev/null and b/test/reference/device-offset-fractional.mask.rgb24.ref.png differ
diff --git a/test/reference/device-offset-positive.mask.argb32.ref.png b/test/reference/device-offset-positive.mask.argb32.ref.png
new file mode 100644
index 0000000..1115bca
Binary files /dev/null and b/test/reference/device-offset-positive.mask.argb32.ref.png differ
diff --git a/test/reference/device-offset-positive.mask.rgb24.ref.png b/test/reference/device-offset-positive.mask.rgb24.ref.png
new file mode 100644
index 0000000..dcdd332
Binary files /dev/null and b/test/reference/device-offset-positive.mask.rgb24.ref.png differ
diff --git a/test/reference/device-offset-scale.mask.argb32.ref.png b/test/reference/device-offset-scale.mask.argb32.ref.png
new file mode 100644
index 0000000..fdffbf3
Binary files /dev/null and b/test/reference/device-offset-scale.mask.argb32.ref.png differ
diff --git a/test/reference/device-offset-scale.mask.rgb24.ref.png b/test/reference/device-offset-scale.mask.rgb24.ref.png
new file mode 100644
index 0000000..fdffbf3
Binary files /dev/null and b/test/reference/device-offset-scale.mask.rgb24.ref.png differ
diff --git a/test/reference/device-offset.mask.argb32.ref.png b/test/reference/device-offset.mask.argb32.ref.png
new file mode 100644
index 0000000..43ced46
Binary files /dev/null and b/test/reference/device-offset.mask.argb32.ref.png differ
diff --git a/test/reference/device-offset.mask.rgb24.ref.png b/test/reference/device-offset.mask.rgb24.ref.png
new file mode 100644
index 0000000..f19acba
Binary files /dev/null and b/test/reference/device-offset.mask.rgb24.ref.png differ
diff --git a/test/reference/drunkard-tails.mask.argb32.ref.png b/test/reference/drunkard-tails.mask.argb32.ref.png
new file mode 100644
index 0000000..053e470
Binary files /dev/null and b/test/reference/drunkard-tails.mask.argb32.ref.png differ
diff --git a/test/reference/drunkard-tails.mask.rgb24.ref.png b/test/reference/drunkard-tails.mask.rgb24.ref.png
new file mode 100644
index 0000000..053e470
Binary files /dev/null and b/test/reference/drunkard-tails.mask.rgb24.ref.png differ
diff --git a/test/reference/extend-pad-border.mask.argb32.ref.png b/test/reference/extend-pad-border.mask.argb32.ref.png
new file mode 100644
index 0000000..f4fc524
Binary files /dev/null and b/test/reference/extend-pad-border.mask.argb32.ref.png differ
diff --git a/test/reference/extend-pad-border.mask.rgb24.ref.png b/test/reference/extend-pad-border.mask.rgb24.ref.png
new file mode 100644
index 0000000..f4fc524
Binary files /dev/null and b/test/reference/extend-pad-border.mask.rgb24.ref.png differ
diff --git a/test/reference/extend-pad-similar.mask.argb32.ref.png b/test/reference/extend-pad-similar.mask.argb32.ref.png
new file mode 100644
index 0000000..9345221
Binary files /dev/null and b/test/reference/extend-pad-similar.mask.argb32.ref.png differ
diff --git a/test/reference/extend-pad-similar.mask.rgb24.ref.png b/test/reference/extend-pad-similar.mask.rgb24.ref.png
new file mode 100644
index 0000000..9345221
Binary files /dev/null and b/test/reference/extend-pad-similar.mask.rgb24.ref.png differ
diff --git a/test/reference/extend-pad.mask.argb32.ref.png b/test/reference/extend-pad.mask.argb32.ref.png
new file mode 100644
index 0000000..9345221
Binary files /dev/null and b/test/reference/extend-pad.mask.argb32.ref.png differ
diff --git a/test/reference/extend-pad.mask.rgb24.ref.png b/test/reference/extend-pad.mask.rgb24.ref.png
new file mode 100644
index 0000000..9345221
Binary files /dev/null and b/test/reference/extend-pad.mask.rgb24.ref.png differ
diff --git a/test/reference/extend-reflect-similar.mask.argb32.ref.png b/test/reference/extend-reflect-similar.mask.argb32.ref.png
new file mode 100644
index 0000000..5fc3448
Binary files /dev/null and b/test/reference/extend-reflect-similar.mask.argb32.ref.png differ
diff --git a/test/reference/extend-reflect-similar.mask.rgb24.ref.png b/test/reference/extend-reflect-similar.mask.rgb24.ref.png
new file mode 100644
index 0000000..5fc3448
Binary files /dev/null and b/test/reference/extend-reflect-similar.mask.rgb24.ref.png differ
diff --git a/test/reference/extend-reflect.mask.argb32.ref.png b/test/reference/extend-reflect.mask.argb32.ref.png
new file mode 100644
index 0000000..5fc3448
Binary files /dev/null and b/test/reference/extend-reflect.mask.argb32.ref.png differ
diff --git a/test/reference/extend-reflect.mask.rgb24.ref.png b/test/reference/extend-reflect.mask.rgb24.ref.png
new file mode 100644
index 0000000..5fc3448
Binary files /dev/null and b/test/reference/extend-reflect.mask.rgb24.ref.png differ
diff --git a/test/reference/extend-repeat-similar.mask.argb32.ref.png b/test/reference/extend-repeat-similar.mask.argb32.ref.png
new file mode 100644
index 0000000..81f0503
Binary files /dev/null and b/test/reference/extend-repeat-similar.mask.argb32.ref.png differ
diff --git a/test/reference/extend-repeat-similar.mask.rgb24.ref.png b/test/reference/extend-repeat-similar.mask.rgb24.ref.png
new file mode 100644
index 0000000..81f0503
Binary files /dev/null and b/test/reference/extend-repeat-similar.mask.rgb24.ref.png differ
diff --git a/test/reference/extend-repeat.mask.argb32.ref.png b/test/reference/extend-repeat.mask.argb32.ref.png
new file mode 100644
index 0000000..81f0503
Binary files /dev/null and b/test/reference/extend-repeat.mask.argb32.ref.png differ
diff --git a/test/reference/extend-repeat.mask.rgb24.ref.png b/test/reference/extend-repeat.mask.rgb24.ref.png
new file mode 100644
index 0000000..81f0503
Binary files /dev/null and b/test/reference/extend-repeat.mask.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-alpha-mask.mask.argb32.ref.png b/test/reference/extended-blend-alpha-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..a1dd2a9
Binary files /dev/null and b/test/reference/extended-blend-alpha-mask.mask.argb32.ref.png differ
diff --git a/test/reference/extended-blend-alpha-mask.mask.rgb24.ref.png b/test/reference/extended-blend-alpha-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..b5f12f1
Binary files /dev/null and b/test/reference/extended-blend-alpha-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-alpha.mask.argb32.ref.png b/test/reference/extended-blend-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..4d56a21
Binary files /dev/null and b/test/reference/extended-blend-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/extended-blend-alpha.mask.rgb24.ref.png b/test/reference/extended-blend-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..86d0e2d
Binary files /dev/null and b/test/reference/extended-blend-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-mask.mask.argb32.ref.png b/test/reference/extended-blend-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..5fa78e4
Binary files /dev/null and b/test/reference/extended-blend-mask.mask.argb32.ref.png differ
diff --git a/test/reference/extended-blend-mask.mask.rgb24.ref.png b/test/reference/extended-blend-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..1c85474
Binary files /dev/null and b/test/reference/extended-blend-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-solid-alpha.mask.argb32.ref.png b/test/reference/extended-blend-solid-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..4d56a21
Binary files /dev/null and b/test/reference/extended-blend-solid-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/extended-blend-solid-alpha.mask.rgb24.ref.png b/test/reference/extended-blend-solid-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..86d0e2d
Binary files /dev/null and b/test/reference/extended-blend-solid-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/extended-blend-solid.mask.argb32.ref.png b/test/reference/extended-blend-solid.mask.argb32.ref.png
new file mode 100644
index 0000000..902ef88
Binary files /dev/null and b/test/reference/extended-blend-solid.mask.argb32.ref.png differ
diff --git a/test/reference/extended-blend-solid.mask.rgb24.ref.png b/test/reference/extended-blend-solid.mask.rgb24.ref.png
new file mode 100644
index 0000000..4580e0d
Binary files /dev/null and b/test/reference/extended-blend-solid.mask.rgb24.ref.png differ
diff --git a/test/reference/extended-blend.mask.argb32.ref.png b/test/reference/extended-blend.mask.argb32.ref.png
new file mode 100644
index 0000000..902ef88
Binary files /dev/null and b/test/reference/extended-blend.mask.argb32.ref.png differ
diff --git a/test/reference/extended-blend.mask.rgb24.ref.png b/test/reference/extended-blend.mask.rgb24.ref.png
new file mode 100644
index 0000000..4580e0d
Binary files /dev/null and b/test/reference/extended-blend.mask.rgb24.ref.png differ
diff --git a/test/reference/fallback.base.argb32.ref.png b/test/reference/fallback.base.argb32.ref.png
new file mode 100644
index 0000000..c0c5f46
Binary files /dev/null and b/test/reference/fallback.base.argb32.ref.png differ
diff --git a/test/reference/fallback.base.rgb24.ref.png b/test/reference/fallback.base.rgb24.ref.png
new file mode 100644
index 0000000..18b6a7c
Binary files /dev/null and b/test/reference/fallback.base.rgb24.ref.png differ
diff --git a/test/reference/fallback.mask.argb32.ref.png b/test/reference/fallback.mask.argb32.ref.png
new file mode 100644
index 0000000..b7ce573
Binary files /dev/null and b/test/reference/fallback.mask.argb32.ref.png differ
diff --git a/test/reference/fallback.mask.rgb24.ref.png b/test/reference/fallback.mask.rgb24.ref.png
new file mode 100644
index 0000000..16d3c14
Binary files /dev/null and b/test/reference/fallback.mask.rgb24.ref.png differ
diff --git a/test/reference/fallback.traps.argb32.ref.png b/test/reference/fallback.traps.argb32.ref.png
new file mode 100644
index 0000000..b7ce573
Binary files /dev/null and b/test/reference/fallback.traps.argb32.ref.png differ
diff --git a/test/reference/fallback.traps.rgb24.ref.png b/test/reference/fallback.traps.rgb24.ref.png
new file mode 100644
index 0000000..16d3c14
Binary files /dev/null and b/test/reference/fallback.traps.rgb24.ref.png differ
diff --git a/test/reference/fill-alpha-pattern.mask.argb32.ref.png b/test/reference/fill-alpha-pattern.mask.argb32.ref.png
new file mode 100644
index 0000000..4344f23
Binary files /dev/null and b/test/reference/fill-alpha-pattern.mask.argb32.ref.png differ
diff --git a/test/reference/fill-alpha-pattern.mask.rgb24.ref.png b/test/reference/fill-alpha-pattern.mask.rgb24.ref.png
new file mode 100644
index 0000000..4344f23
Binary files /dev/null and b/test/reference/fill-alpha-pattern.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-alpha.mask.argb32.ref.png b/test/reference/fill-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..9de7b50
Binary files /dev/null and b/test/reference/fill-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/fill-alpha.mask.rgb24.ref.png b/test/reference/fill-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..9de7b50
Binary files /dev/null and b/test/reference/fill-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha-add.mask.argb32.ref.png b/test/reference/fill-and-stroke-alpha-add.mask.argb32.ref.png
new file mode 100644
index 0000000..c804c7a
Binary files /dev/null and b/test/reference/fill-and-stroke-alpha-add.mask.argb32.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha-add.mask.rgb24.ref.png b/test/reference/fill-and-stroke-alpha-add.mask.rgb24.ref.png
new file mode 100644
index 0000000..c804c7a
Binary files /dev/null and b/test/reference/fill-and-stroke-alpha-add.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha.mask.argb32.ref.png b/test/reference/fill-and-stroke-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..e22ebf9
Binary files /dev/null and b/test/reference/fill-and-stroke-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha.mask.rgb24.ref.png b/test/reference/fill-and-stroke-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..e22ebf9
Binary files /dev/null and b/test/reference/fill-and-stroke-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-and-stroke.mask.argb32.ref.png b/test/reference/fill-and-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..b51f4b0
Binary files /dev/null and b/test/reference/fill-and-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/fill-and-stroke.mask.rgb24.ref.png b/test/reference/fill-and-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..4017293
Binary files /dev/null and b/test/reference/fill-and-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-degenerate-sort-order.mask.argb32.ref.png b/test/reference/fill-degenerate-sort-order.mask.argb32.ref.png
new file mode 100644
index 0000000..38bb1a0
Binary files /dev/null and b/test/reference/fill-degenerate-sort-order.mask.argb32.ref.png differ
diff --git a/test/reference/fill-degenerate-sort-order.mask.rgb24.ref.png b/test/reference/fill-degenerate-sort-order.mask.rgb24.ref.png
new file mode 100644
index 0000000..c392c21
Binary files /dev/null and b/test/reference/fill-degenerate-sort-order.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-disjoint.base.argb32.ref.png b/test/reference/fill-disjoint.base.argb32.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/fill-disjoint.base.argb32.ref.png differ
diff --git a/test/reference/fill-disjoint.base.rgb24.ref.png b/test/reference/fill-disjoint.base.rgb24.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/fill-disjoint.base.rgb24.ref.png differ
diff --git a/test/reference/fill-disjoint.mask.argb32.ref.png b/test/reference/fill-disjoint.mask.argb32.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/fill-disjoint.mask.argb32.ref.png differ
diff --git a/test/reference/fill-disjoint.mask.rgb24.ref.png b/test/reference/fill-disjoint.mask.rgb24.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/fill-disjoint.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-disjoint.traps.argb32.ref.png b/test/reference/fill-disjoint.traps.argb32.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/fill-disjoint.traps.argb32.ref.png differ
diff --git a/test/reference/fill-disjoint.traps.rgb24.ref.png b/test/reference/fill-disjoint.traps.rgb24.ref.png
new file mode 100644
index 0000000..da9a3b1
Binary files /dev/null and b/test/reference/fill-disjoint.traps.rgb24.ref.png differ
diff --git a/test/reference/fill-empty.mask.argb32.ref.png b/test/reference/fill-empty.mask.argb32.ref.png
new file mode 100644
index 0000000..8c26f7e
Binary files /dev/null and b/test/reference/fill-empty.mask.argb32.ref.png differ
diff --git a/test/reference/fill-empty.mask.rgb24.ref.png b/test/reference/fill-empty.mask.rgb24.ref.png
new file mode 100644
index 0000000..dc7a8a0
Binary files /dev/null and b/test/reference/fill-empty.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-image.mask.argb32.ref.png b/test/reference/fill-image.mask.argb32.ref.png
new file mode 100644
index 0000000..068fbb7
Binary files /dev/null and b/test/reference/fill-image.mask.argb32.ref.png differ
diff --git a/test/reference/fill-image.mask.rgb24.ref.png b/test/reference/fill-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..068fbb7
Binary files /dev/null and b/test/reference/fill-image.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-missed-stop.mask.argb32.ref.png b/test/reference/fill-missed-stop.mask.argb32.ref.png
new file mode 100644
index 0000000..477eec9
Binary files /dev/null and b/test/reference/fill-missed-stop.mask.argb32.ref.png differ
diff --git a/test/reference/fill-missed-stop.mask.rgb24.ref.png b/test/reference/fill-missed-stop.mask.rgb24.ref.png
new file mode 100644
index 0000000..2e663f0
Binary files /dev/null and b/test/reference/fill-missed-stop.mask.rgb24.ref.png differ
diff --git a/test/reference/fill-rule.mask.argb32.ref.png b/test/reference/fill-rule.mask.argb32.ref.png
new file mode 100644
index 0000000..23e0a3a
Binary files /dev/null and b/test/reference/fill-rule.mask.argb32.ref.png differ
diff --git a/test/reference/fill-rule.mask.rgb24.ref.png b/test/reference/fill-rule.mask.rgb24.ref.png
new file mode 100644
index 0000000..55486e6
Binary files /dev/null and b/test/reference/fill-rule.mask.rgb24.ref.png differ
diff --git a/test/reference/filter-bilinear-extents.mask.argb32.ref.png b/test/reference/filter-bilinear-extents.mask.argb32.ref.png
new file mode 100644
index 0000000..797e798
Binary files /dev/null and b/test/reference/filter-bilinear-extents.mask.argb32.ref.png differ
diff --git a/test/reference/filter-bilinear-extents.mask.rgb24.ref.png b/test/reference/filter-bilinear-extents.mask.rgb24.ref.png
new file mode 100644
index 0000000..797e798
Binary files /dev/null and b/test/reference/filter-bilinear-extents.mask.rgb24.ref.png differ
diff --git a/test/reference/filter-nearest-offset.mask.argb32.ref.png b/test/reference/filter-nearest-offset.mask.argb32.ref.png
new file mode 100644
index 0000000..8cca9a1
Binary files /dev/null and b/test/reference/filter-nearest-offset.mask.argb32.ref.png differ
diff --git a/test/reference/filter-nearest-offset.mask.rgb24.ref.png b/test/reference/filter-nearest-offset.mask.rgb24.ref.png
new file mode 100644
index 0000000..8cca9a1
Binary files /dev/null and b/test/reference/filter-nearest-offset.mask.rgb24.ref.png differ
diff --git a/test/reference/filter-nearest-transformed.mask.argb32.ref.png b/test/reference/filter-nearest-transformed.mask.argb32.ref.png
new file mode 100644
index 0000000..24adf8b
Binary files /dev/null and b/test/reference/filter-nearest-transformed.mask.argb32.ref.png differ
diff --git a/test/reference/filter-nearest-transformed.mask.rgb24.ref.png b/test/reference/filter-nearest-transformed.mask.rgb24.ref.png
new file mode 100644
index 0000000..24adf8b
Binary files /dev/null and b/test/reference/filter-nearest-transformed.mask.rgb24.ref.png differ
diff --git a/test/reference/finer-grained-fallbacks.mask.argb32.ref.png b/test/reference/finer-grained-fallbacks.mask.argb32.ref.png
new file mode 100644
index 0000000..8cd99d0
Binary files /dev/null and b/test/reference/finer-grained-fallbacks.mask.argb32.ref.png differ
diff --git a/test/reference/finer-grained-fallbacks.mask.rgb24.ref.png b/test/reference/finer-grained-fallbacks.mask.rgb24.ref.png
new file mode 100644
index 0000000..5d6cd94
Binary files /dev/null and b/test/reference/finer-grained-fallbacks.mask.rgb24.ref.png differ
diff --git a/test/reference/font-matrix-translation.mask.argb32.ref.png b/test/reference/font-matrix-translation.mask.argb32.ref.png
new file mode 100644
index 0000000..a4a1082
Binary files /dev/null and b/test/reference/font-matrix-translation.mask.argb32.ref.png differ
diff --git a/test/reference/font-matrix-translation.mask.rgb24.ref.png b/test/reference/font-matrix-translation.mask.rgb24.ref.png
new file mode 100644
index 0000000..a4a1082
Binary files /dev/null and b/test/reference/font-matrix-translation.mask.rgb24.ref.png differ
diff --git a/test/reference/font-matrix-translation.traps.argb32.ref.png b/test/reference/font-matrix-translation.traps.argb32.ref.png
new file mode 100644
index 0000000..a4a1082
Binary files /dev/null and b/test/reference/font-matrix-translation.traps.argb32.ref.png differ
diff --git a/test/reference/font-matrix-translation.traps.rgb24.ref.png b/test/reference/font-matrix-translation.traps.rgb24.ref.png
new file mode 100644
index 0000000..a4a1082
Binary files /dev/null and b/test/reference/font-matrix-translation.traps.rgb24.ref.png differ
diff --git a/test/reference/ft-show-glyphs-positioning.mask.argb32.ref.png b/test/reference/ft-show-glyphs-positioning.mask.argb32.ref.png
new file mode 100644
index 0000000..af6dcaf
Binary files /dev/null and b/test/reference/ft-show-glyphs-positioning.mask.argb32.ref.png differ
diff --git a/test/reference/ft-show-glyphs-positioning.mask.rgb24.ref.png b/test/reference/ft-show-glyphs-positioning.mask.rgb24.ref.png
new file mode 100644
index 0000000..af6dcaf
Binary files /dev/null and b/test/reference/ft-show-glyphs-positioning.mask.rgb24.ref.png differ
diff --git a/test/reference/ft-show-glyphs-positioning.traps.argb32.ref.png b/test/reference/ft-show-glyphs-positioning.traps.argb32.ref.png
new file mode 100644
index 0000000..af6dcaf
Binary files /dev/null and b/test/reference/ft-show-glyphs-positioning.traps.argb32.ref.png differ
diff --git a/test/reference/ft-show-glyphs-positioning.traps.rgb24.ref.png b/test/reference/ft-show-glyphs-positioning.traps.rgb24.ref.png
new file mode 100644
index 0000000..af6dcaf
Binary files /dev/null and b/test/reference/ft-show-glyphs-positioning.traps.rgb24.ref.png differ
diff --git a/test/reference/ft-show-glyphs-table.mask.argb32.ref.png b/test/reference/ft-show-glyphs-table.mask.argb32.ref.png
new file mode 100644
index 0000000..ed69124
Binary files /dev/null and b/test/reference/ft-show-glyphs-table.mask.argb32.ref.png differ
diff --git a/test/reference/ft-show-glyphs-table.mask.rgb24.ref.png b/test/reference/ft-show-glyphs-table.mask.rgb24.ref.png
new file mode 100644
index 0000000..ed69124
Binary files /dev/null and b/test/reference/ft-show-glyphs-table.mask.rgb24.ref.png differ
diff --git a/test/reference/ft-show-glyphs-table.traps.argb32.ref.png b/test/reference/ft-show-glyphs-table.traps.argb32.ref.png
new file mode 100644
index 0000000..ed69124
Binary files /dev/null and b/test/reference/ft-show-glyphs-table.traps.argb32.ref.png differ
diff --git a/test/reference/ft-show-glyphs-table.traps.rgb24.ref.png b/test/reference/ft-show-glyphs-table.traps.rgb24.ref.png
new file mode 100644
index 0000000..ed69124
Binary files /dev/null and b/test/reference/ft-show-glyphs-table.traps.rgb24.ref.png differ
diff --git a/test/reference/ft-text-antialias-none.mask.argb32.ref.png b/test/reference/ft-text-antialias-none.mask.argb32.ref.png
new file mode 100644
index 0000000..c638c9e
Binary files /dev/null and b/test/reference/ft-text-antialias-none.mask.argb32.ref.png differ
diff --git a/test/reference/ft-text-antialias-none.mask.rgb24.ref.png b/test/reference/ft-text-antialias-none.mask.rgb24.ref.png
new file mode 100644
index 0000000..c638c9e
Binary files /dev/null and b/test/reference/ft-text-antialias-none.mask.rgb24.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type1.mask.argb32.ref.png b/test/reference/ft-text-vertical-layout-type1.mask.argb32.ref.png
new file mode 100644
index 0000000..4941965
Binary files /dev/null and b/test/reference/ft-text-vertical-layout-type1.mask.argb32.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type1.mask.rgb24.ref.png b/test/reference/ft-text-vertical-layout-type1.mask.rgb24.ref.png
new file mode 100644
index 0000000..4941965
Binary files /dev/null and b/test/reference/ft-text-vertical-layout-type1.mask.rgb24.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type3.mask.argb32.ref.png b/test/reference/ft-text-vertical-layout-type3.mask.argb32.ref.png
new file mode 100644
index 0000000..7f7b428
Binary files /dev/null and b/test/reference/ft-text-vertical-layout-type3.mask.argb32.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type3.mask.rgb24.ref.png b/test/reference/ft-text-vertical-layout-type3.mask.rgb24.ref.png
new file mode 100644
index 0000000..7f7b428
Binary files /dev/null and b/test/reference/ft-text-vertical-layout-type3.mask.rgb24.ref.png differ
diff --git a/test/reference/get-group-target.mask.argb32.ref.png b/test/reference/get-group-target.mask.argb32.ref.png
new file mode 100644
index 0000000..d162775
Binary files /dev/null and b/test/reference/get-group-target.mask.argb32.ref.png differ
diff --git a/test/reference/get-group-target.mask.rgb24.ref.png b/test/reference/get-group-target.mask.rgb24.ref.png
new file mode 100644
index 0000000..d162775
Binary files /dev/null and b/test/reference/get-group-target.mask.rgb24.ref.png differ
diff --git a/test/reference/gl-surface-source.base.argb32.ref.png b/test/reference/gl-surface-source.base.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/gl-surface-source.base.argb32.ref.png differ
diff --git a/test/reference/gl-surface-source.base.rgb24.ref.png b/test/reference/gl-surface-source.base.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/gl-surface-source.base.rgb24.ref.png differ
diff --git a/test/reference/gl-surface-source.mask.argb32.ref.png b/test/reference/gl-surface-source.mask.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/gl-surface-source.mask.argb32.ref.png differ
diff --git a/test/reference/gl-surface-source.mask.rgb24.ref.png b/test/reference/gl-surface-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/gl-surface-source.mask.rgb24.ref.png differ
diff --git a/test/reference/gl-surface-source.traps.argb32.ref.png b/test/reference/gl-surface-source.traps.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/gl-surface-source.traps.argb32.ref.png differ
diff --git a/test/reference/gl-surface-source.traps.rgb24.ref.png b/test/reference/gl-surface-source.traps.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/gl-surface-source.traps.rgb24.ref.png differ
diff --git a/test/reference/glyph-cache-pressure.mask.argb32.ref.png b/test/reference/glyph-cache-pressure.mask.argb32.ref.png
new file mode 100644
index 0000000..a6e1b06
Binary files /dev/null and b/test/reference/glyph-cache-pressure.mask.argb32.ref.png differ
diff --git a/test/reference/glyph-cache-pressure.mask.rgb24.ref.png b/test/reference/glyph-cache-pressure.mask.rgb24.ref.png
new file mode 100644
index 0000000..a6e1b06
Binary files /dev/null and b/test/reference/glyph-cache-pressure.mask.rgb24.ref.png differ
diff --git a/test/reference/glyph-cache-pressure.traps.argb32.ref.png b/test/reference/glyph-cache-pressure.traps.argb32.ref.png
new file mode 100644
index 0000000..a6e1b06
Binary files /dev/null and b/test/reference/glyph-cache-pressure.traps.argb32.ref.png differ
diff --git a/test/reference/glyph-cache-pressure.traps.rgb24.ref.png b/test/reference/glyph-cache-pressure.traps.rgb24.ref.png
new file mode 100644
index 0000000..a6e1b06
Binary files /dev/null and b/test/reference/glyph-cache-pressure.traps.rgb24.ref.png differ
diff --git a/test/reference/gradient-alpha.mask.argb32.ref.png b/test/reference/gradient-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..f64b26a
Binary files /dev/null and b/test/reference/gradient-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/gradient-alpha.mask.rgb24.ref.png b/test/reference/gradient-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..3c7258d
Binary files /dev/null and b/test/reference/gradient-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/gradient-constant-alpha.mask.argb32.ref.png b/test/reference/gradient-constant-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..7f49e2c
Binary files /dev/null and b/test/reference/gradient-constant-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/gradient-constant-alpha.mask.rgb24.ref.png b/test/reference/gradient-constant-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..69cd596
Binary files /dev/null and b/test/reference/gradient-constant-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/gradient-zero-stops-mask.mask.argb32.ref.png b/test/reference/gradient-zero-stops-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..0a50f4c
Binary files /dev/null and b/test/reference/gradient-zero-stops-mask.mask.argb32.ref.png differ
diff --git a/test/reference/gradient-zero-stops-mask.mask.rgb24.ref.png b/test/reference/gradient-zero-stops-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..21465ce
Binary files /dev/null and b/test/reference/gradient-zero-stops-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/gradient-zero-stops.mask.argb32.ref.png b/test/reference/gradient-zero-stops.mask.argb32.ref.png
new file mode 100644
index 0000000..0a50f4c
Binary files /dev/null and b/test/reference/gradient-zero-stops.mask.argb32.ref.png differ
diff --git a/test/reference/gradient-zero-stops.mask.rgb24.ref.png b/test/reference/gradient-zero-stops.mask.rgb24.ref.png
new file mode 100644
index 0000000..21465ce
Binary files /dev/null and b/test/reference/gradient-zero-stops.mask.rgb24.ref.png differ
diff --git a/test/reference/group-clip.mask.argb32.ref.png b/test/reference/group-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..7b8a753
Binary files /dev/null and b/test/reference/group-clip.mask.argb32.ref.png differ
diff --git a/test/reference/group-clip.mask.rgb24.ref.png b/test/reference/group-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..7b8a753
Binary files /dev/null and b/test/reference/group-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/group-paint.mask.argb32.ref.png b/test/reference/group-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..1ed070c
Binary files /dev/null and b/test/reference/group-paint.mask.argb32.ref.png differ
diff --git a/test/reference/group-paint.mask.rgb24.ref.png b/test/reference/group-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..1ed070c
Binary files /dev/null and b/test/reference/group-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/group-unaligned.mask.argb32.ref.png b/test/reference/group-unaligned.mask.argb32.ref.png
new file mode 100644
index 0000000..beb0ae2
Binary files /dev/null and b/test/reference/group-unaligned.mask.argb32.ref.png differ
diff --git a/test/reference/group-unaligned.mask.rgb24.ref.png b/test/reference/group-unaligned.mask.rgb24.ref.png
new file mode 100644
index 0000000..beb0ae2
Binary files /dev/null and b/test/reference/group-unaligned.mask.rgb24.ref.png differ
diff --git a/test/reference/halo-transform.mask.argb32.ref.png b/test/reference/halo-transform.mask.argb32.ref.png
new file mode 100644
index 0000000..96c6f42
Binary files /dev/null and b/test/reference/halo-transform.mask.argb32.ref.png differ
diff --git a/test/reference/halo-transform.mask.rgb24.ref.png b/test/reference/halo-transform.mask.rgb24.ref.png
new file mode 100644
index 0000000..96c6f42
Binary files /dev/null and b/test/reference/halo-transform.mask.rgb24.ref.png differ
diff --git a/test/reference/halo-transform.traps.argb32.ref.png b/test/reference/halo-transform.traps.argb32.ref.png
new file mode 100644
index 0000000..96c6f42
Binary files /dev/null and b/test/reference/halo-transform.traps.argb32.ref.png differ
diff --git a/test/reference/halo-transform.traps.rgb24.ref.png b/test/reference/halo-transform.traps.rgb24.ref.png
new file mode 100644
index 0000000..96c6f42
Binary files /dev/null and b/test/reference/halo-transform.traps.rgb24.ref.png differ
diff --git a/test/reference/halo.mask.argb32.ref.png b/test/reference/halo.mask.argb32.ref.png
new file mode 100644
index 0000000..191ee47
Binary files /dev/null and b/test/reference/halo.mask.argb32.ref.png differ
diff --git a/test/reference/halo.mask.rgb24.ref.png b/test/reference/halo.mask.rgb24.ref.png
new file mode 100644
index 0000000..191ee47
Binary files /dev/null and b/test/reference/halo.mask.rgb24.ref.png differ
diff --git a/test/reference/halo.traps.argb32.ref.png b/test/reference/halo.traps.argb32.ref.png
new file mode 100644
index 0000000..191ee47
Binary files /dev/null and b/test/reference/halo.traps.argb32.ref.png differ
diff --git a/test/reference/halo.traps.rgb24.ref.png b/test/reference/halo.traps.rgb24.ref.png
new file mode 100644
index 0000000..191ee47
Binary files /dev/null and b/test/reference/halo.traps.rgb24.ref.png differ
diff --git a/test/reference/hatchings.mask.argb32.ref.png b/test/reference/hatchings.mask.argb32.ref.png
new file mode 100644
index 0000000..77fe853
Binary files /dev/null and b/test/reference/hatchings.mask.argb32.ref.png differ
diff --git a/test/reference/hatchings.mask.rgb24.ref.png b/test/reference/hatchings.mask.rgb24.ref.png
new file mode 100644
index 0000000..77fe853
Binary files /dev/null and b/test/reference/hatchings.mask.rgb24.ref.png differ
diff --git a/test/reference/horizontal-clip.mask.argb32.ref.png b/test/reference/horizontal-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..43dd07f
Binary files /dev/null and b/test/reference/horizontal-clip.mask.argb32.ref.png differ
diff --git a/test/reference/horizontal-clip.mask.rgb24.ref.png b/test/reference/horizontal-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..43dd07f
Binary files /dev/null and b/test/reference/horizontal-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/huge-linear.mask.argb32.ref.png b/test/reference/huge-linear.mask.argb32.ref.png
new file mode 100644
index 0000000..f89217b
Binary files /dev/null and b/test/reference/huge-linear.mask.argb32.ref.png differ
diff --git a/test/reference/huge-linear.mask.rgb24.ref.png b/test/reference/huge-linear.mask.rgb24.ref.png
new file mode 100644
index 0000000..f89217b
Binary files /dev/null and b/test/reference/huge-linear.mask.rgb24.ref.png differ
diff --git a/test/reference/huge-radial.mask.argb32.ref.png b/test/reference/huge-radial.mask.argb32.ref.png
new file mode 100644
index 0000000..541bb30
Binary files /dev/null and b/test/reference/huge-radial.mask.argb32.ref.png differ
diff --git a/test/reference/huge-radial.mask.rgb24.ref.png b/test/reference/huge-radial.mask.rgb24.ref.png
new file mode 100644
index 0000000..541bb30
Binary files /dev/null and b/test/reference/huge-radial.mask.rgb24.ref.png differ
diff --git a/test/reference/image-bug-710072-aligned.mask.argb32.ref.png b/test/reference/image-bug-710072-aligned.mask.argb32.ref.png
new file mode 100644
index 0000000..42abd20
Binary files /dev/null and b/test/reference/image-bug-710072-aligned.mask.argb32.ref.png differ
diff --git a/test/reference/image-bug-710072-aligned.mask.rgb24.ref.png b/test/reference/image-bug-710072-aligned.mask.rgb24.ref.png
new file mode 100644
index 0000000..42abd20
Binary files /dev/null and b/test/reference/image-bug-710072-aligned.mask.rgb24.ref.png differ
diff --git a/test/reference/image-bug-710072-unaligned.mask.argb32.ref.png b/test/reference/image-bug-710072-unaligned.mask.argb32.ref.png
new file mode 100644
index 0000000..13efa30
Binary files /dev/null and b/test/reference/image-bug-710072-unaligned.mask.argb32.ref.png differ
diff --git a/test/reference/image-bug-710072-unaligned.mask.rgb24.ref.png b/test/reference/image-bug-710072-unaligned.mask.rgb24.ref.png
new file mode 100644
index 0000000..13efa30
Binary files /dev/null and b/test/reference/image-bug-710072-unaligned.mask.rgb24.ref.png differ
diff --git a/test/reference/image-surface-source.mask.argb32.ref.png b/test/reference/image-surface-source.mask.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/image-surface-source.mask.argb32.ref.png differ
diff --git a/test/reference/image-surface-source.mask.rgb24.ref.png b/test/reference/image-surface-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/image-surface-source.mask.rgb24.ref.png differ
diff --git a/test/reference/implicit-close.mask.argb32.ref.png b/test/reference/implicit-close.mask.argb32.ref.png
new file mode 100644
index 0000000..f15f8a3
Binary files /dev/null and b/test/reference/implicit-close.mask.argb32.ref.png differ
diff --git a/test/reference/implicit-close.mask.rgb24.ref.png b/test/reference/implicit-close.mask.rgb24.ref.png
new file mode 100644
index 0000000..f15f8a3
Binary files /dev/null and b/test/reference/implicit-close.mask.rgb24.ref.png differ
diff --git a/test/reference/infinite-join.mask.argb32.ref.png b/test/reference/infinite-join.mask.argb32.ref.png
new file mode 100644
index 0000000..54a9112
Binary files /dev/null and b/test/reference/infinite-join.mask.argb32.ref.png differ
diff --git a/test/reference/infinite-join.mask.rgb24.ref.png b/test/reference/infinite-join.mask.rgb24.ref.png
new file mode 100644
index 0000000..54a9112
Binary files /dev/null and b/test/reference/infinite-join.mask.rgb24.ref.png differ
diff --git a/test/reference/inverse-text.base.argb32.ref.png b/test/reference/inverse-text.base.argb32.ref.png
new file mode 100644
index 0000000..b7bbb97
Binary files /dev/null and b/test/reference/inverse-text.base.argb32.ref.png differ
diff --git a/test/reference/inverse-text.base.rgb24.ref.png b/test/reference/inverse-text.base.rgb24.ref.png
new file mode 100644
index 0000000..b7bbb97
Binary files /dev/null and b/test/reference/inverse-text.base.rgb24.ref.png differ
diff --git a/test/reference/inverse-text.mask.argb32.ref.png b/test/reference/inverse-text.mask.argb32.ref.png
new file mode 100644
index 0000000..b7bbb97
Binary files /dev/null and b/test/reference/inverse-text.mask.argb32.ref.png differ
diff --git a/test/reference/inverse-text.mask.rgb24.ref.png b/test/reference/inverse-text.mask.rgb24.ref.png
new file mode 100644
index 0000000..b7bbb97
Binary files /dev/null and b/test/reference/inverse-text.mask.rgb24.ref.png differ
diff --git a/test/reference/inverse-text.traps.argb32.ref.png b/test/reference/inverse-text.traps.argb32.ref.png
new file mode 100644
index 0000000..b7bbb97
Binary files /dev/null and b/test/reference/inverse-text.traps.argb32.ref.png differ
diff --git a/test/reference/inverse-text.traps.rgb24.ref.png b/test/reference/inverse-text.traps.rgb24.ref.png
new file mode 100644
index 0000000..b7bbb97
Binary files /dev/null and b/test/reference/inverse-text.traps.rgb24.ref.png differ
diff --git a/test/reference/joins-loop.mask.argb32.ref.png b/test/reference/joins-loop.mask.argb32.ref.png
new file mode 100644
index 0000000..8e3f25a
Binary files /dev/null and b/test/reference/joins-loop.mask.argb32.ref.png differ
diff --git a/test/reference/joins-loop.mask.rgb24.ref.png b/test/reference/joins-loop.mask.rgb24.ref.png
new file mode 100644
index 0000000..8e3f25a
Binary files /dev/null and b/test/reference/joins-loop.mask.rgb24.ref.png differ
diff --git a/test/reference/joins-retrace.mask.argb32.ref.png b/test/reference/joins-retrace.mask.argb32.ref.png
new file mode 100644
index 0000000..22b0ecf
Binary files /dev/null and b/test/reference/joins-retrace.mask.argb32.ref.png differ
diff --git a/test/reference/joins-retrace.mask.rgb24.ref.png b/test/reference/joins-retrace.mask.rgb24.ref.png
new file mode 100644
index 0000000..22b0ecf
Binary files /dev/null and b/test/reference/joins-retrace.mask.rgb24.ref.png differ
diff --git a/test/reference/joins-star.mask.argb32.ref.png b/test/reference/joins-star.mask.argb32.ref.png
new file mode 100644
index 0000000..76a541c
Binary files /dev/null and b/test/reference/joins-star.mask.argb32.ref.png differ
diff --git a/test/reference/joins-star.mask.rgb24.ref.png b/test/reference/joins-star.mask.rgb24.ref.png
new file mode 100644
index 0000000..76a541c
Binary files /dev/null and b/test/reference/joins-star.mask.rgb24.ref.png differ
diff --git a/test/reference/joins.mask.argb32.ref.png b/test/reference/joins.mask.argb32.ref.png
new file mode 100644
index 0000000..a1d069d
Binary files /dev/null and b/test/reference/joins.mask.argb32.ref.png differ
diff --git a/test/reference/joins.mask.rgb24.ref.png b/test/reference/joins.mask.rgb24.ref.png
new file mode 100644
index 0000000..a1d069d
Binary files /dev/null and b/test/reference/joins.mask.rgb24.ref.png differ
diff --git a/test/reference/large-clip.mask.argb32.ref.png b/test/reference/large-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/large-clip.mask.argb32.ref.png differ
diff --git a/test/reference/large-clip.mask.rgb24.ref.png b/test/reference/large-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/large-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/large-font.mask.argb32.ref.png b/test/reference/large-font.mask.argb32.ref.png
new file mode 100644
index 0000000..503061a
Binary files /dev/null and b/test/reference/large-font.mask.argb32.ref.png differ
diff --git a/test/reference/large-font.mask.rgb24.ref.png b/test/reference/large-font.mask.rgb24.ref.png
new file mode 100644
index 0000000..503061a
Binary files /dev/null and b/test/reference/large-font.mask.rgb24.ref.png differ
diff --git a/test/reference/large-source-roi.mask.argb32.ref.png b/test/reference/large-source-roi.mask.argb32.ref.png
new file mode 100644
index 0000000..216a065
Binary files /dev/null and b/test/reference/large-source-roi.mask.argb32.ref.png differ
diff --git a/test/reference/large-source-roi.mask.rgb24.ref.png b/test/reference/large-source-roi.mask.rgb24.ref.png
new file mode 100644
index 0000000..216a065
Binary files /dev/null and b/test/reference/large-source-roi.mask.rgb24.ref.png differ
diff --git a/test/reference/large-source.mask.argb32.ref.png b/test/reference/large-source.mask.argb32.ref.png
new file mode 100644
index 0000000..a54455f
Binary files /dev/null and b/test/reference/large-source.mask.argb32.ref.png differ
diff --git a/test/reference/large-source.mask.rgb24.ref.png b/test/reference/large-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..a54455f
Binary files /dev/null and b/test/reference/large-source.mask.rgb24.ref.png differ
diff --git a/test/reference/large-twin-antialias-mixed.mask.argb32.ref.png b/test/reference/large-twin-antialias-mixed.mask.argb32.ref.png
new file mode 100644
index 0000000..ace463b
Binary files /dev/null and b/test/reference/large-twin-antialias-mixed.mask.argb32.ref.png differ
diff --git a/test/reference/large-twin-antialias-mixed.mask.rgb24.ref.png b/test/reference/large-twin-antialias-mixed.mask.rgb24.ref.png
new file mode 100644
index 0000000..ace463b
Binary files /dev/null and b/test/reference/large-twin-antialias-mixed.mask.rgb24.ref.png differ
diff --git a/test/reference/leaky-dash.mask.argb32.ref.png b/test/reference/leaky-dash.mask.argb32.ref.png
new file mode 100644
index 0000000..0973ece
Binary files /dev/null and b/test/reference/leaky-dash.mask.argb32.ref.png differ
diff --git a/test/reference/leaky-dash.mask.rgb24.ref.png b/test/reference/leaky-dash.mask.rgb24.ref.png
new file mode 100644
index 0000000..0973ece
Binary files /dev/null and b/test/reference/leaky-dash.mask.rgb24.ref.png differ
diff --git a/test/reference/leaky-dashed-rectangle.mask.argb32.ref.png b/test/reference/leaky-dashed-rectangle.mask.argb32.ref.png
new file mode 100644
index 0000000..05f4584
Binary files /dev/null and b/test/reference/leaky-dashed-rectangle.mask.argb32.ref.png differ
diff --git a/test/reference/leaky-dashed-rectangle.mask.rgb24.ref.png b/test/reference/leaky-dashed-rectangle.mask.rgb24.ref.png
new file mode 100644
index 0000000..05f4584
Binary files /dev/null and b/test/reference/leaky-dashed-rectangle.mask.rgb24.ref.png differ
diff --git a/test/reference/leaky-dashed-stroke.mask.argb32.ref.png b/test/reference/leaky-dashed-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..ae64dae
Binary files /dev/null and b/test/reference/leaky-dashed-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/leaky-dashed-stroke.mask.rgb24.ref.png b/test/reference/leaky-dashed-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..ae64dae
Binary files /dev/null and b/test/reference/leaky-dashed-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/leaky-polygon.mask.argb32.ref.png b/test/reference/leaky-polygon.mask.argb32.ref.png
new file mode 100644
index 0000000..d2a06a3
Binary files /dev/null and b/test/reference/leaky-polygon.mask.argb32.ref.png differ
diff --git a/test/reference/leaky-polygon.mask.rgb24.ref.png b/test/reference/leaky-polygon.mask.rgb24.ref.png
new file mode 100644
index 0000000..d2a06a3
Binary files /dev/null and b/test/reference/leaky-polygon.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-dashed.base.argb32.ref.png b/test/reference/line-width-large-overlap-dashed.base.argb32.ref.png
new file mode 100644
index 0000000..e6cdcc2
Binary files /dev/null and b/test/reference/line-width-large-overlap-dashed.base.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-dashed.base.rgb24.ref.png b/test/reference/line-width-large-overlap-dashed.base.rgb24.ref.png
new file mode 100644
index 0000000..e6cdcc2
Binary files /dev/null and b/test/reference/line-width-large-overlap-dashed.base.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-dashed.mask.argb32.ref.png b/test/reference/line-width-large-overlap-dashed.mask.argb32.ref.png
new file mode 100644
index 0000000..8cd4d31
Binary files /dev/null and b/test/reference/line-width-large-overlap-dashed.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-dashed.mask.rgb24.ref.png b/test/reference/line-width-large-overlap-dashed.mask.rgb24.ref.png
new file mode 100644
index 0000000..8cd4d31
Binary files /dev/null and b/test/reference/line-width-large-overlap-dashed.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-dashed.traps.argb32.ref.png b/test/reference/line-width-large-overlap-dashed.traps.argb32.ref.png
new file mode 100644
index 0000000..8cd4d31
Binary files /dev/null and b/test/reference/line-width-large-overlap-dashed.traps.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-dashed.traps.rgb24.ref.png b/test/reference/line-width-large-overlap-dashed.traps.rgb24.ref.png
new file mode 100644
index 0000000..8cd4d31
Binary files /dev/null and b/test/reference/line-width-large-overlap-dashed.traps.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flipped.base.argb32.ref.png b/test/reference/line-width-large-overlap-flipped.base.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flipped.base.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flipped.base.rgb24.ref.png b/test/reference/line-width-large-overlap-flipped.base.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flipped.base.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flipped.mask.argb32.ref.png b/test/reference/line-width-large-overlap-flipped.mask.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flipped.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flipped.mask.rgb24.ref.png b/test/reference/line-width-large-overlap-flipped.mask.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flipped.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flipped.traps.argb32.ref.png b/test/reference/line-width-large-overlap-flipped.traps.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flipped.traps.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flipped.traps.rgb24.ref.png b/test/reference/line-width-large-overlap-flipped.traps.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flipped.traps.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flopped.base.argb32.ref.png b/test/reference/line-width-large-overlap-flopped.base.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flopped.base.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flopped.base.rgb24.ref.png b/test/reference/line-width-large-overlap-flopped.base.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flopped.base.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flopped.mask.argb32.ref.png b/test/reference/line-width-large-overlap-flopped.mask.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flopped.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flopped.mask.rgb24.ref.png b/test/reference/line-width-large-overlap-flopped.mask.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flopped.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flopped.traps.argb32.ref.png b/test/reference/line-width-large-overlap-flopped.traps.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flopped.traps.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-flopped.traps.rgb24.ref.png b/test/reference/line-width-large-overlap-flopped.traps.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-flopped.traps.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-offset.base.argb32.ref.png b/test/reference/line-width-large-overlap-offset.base.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-offset.base.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-offset.base.rgb24.ref.png b/test/reference/line-width-large-overlap-offset.base.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-offset.base.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-offset.mask.argb32.ref.png b/test/reference/line-width-large-overlap-offset.mask.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-offset.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-offset.mask.rgb24.ref.png b/test/reference/line-width-large-overlap-offset.mask.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-offset.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-offset.traps.argb32.ref.png b/test/reference/line-width-large-overlap-offset.traps.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-offset.traps.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-offset.traps.rgb24.ref.png b/test/reference/line-width-large-overlap-offset.traps.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap-offset.traps.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.base.argb32.ref.png b/test/reference/line-width-large-overlap-rotated.base.argb32.ref.png
new file mode 100644
index 0000000..87fe752
Binary files /dev/null and b/test/reference/line-width-large-overlap-rotated.base.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.base.rgb24.ref.png b/test/reference/line-width-large-overlap-rotated.base.rgb24.ref.png
new file mode 100644
index 0000000..87fe752
Binary files /dev/null and b/test/reference/line-width-large-overlap-rotated.base.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.mask.argb32.ref.png b/test/reference/line-width-large-overlap-rotated.mask.argb32.ref.png
new file mode 100644
index 0000000..35dca5c
Binary files /dev/null and b/test/reference/line-width-large-overlap-rotated.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.mask.rgb24.ref.png b/test/reference/line-width-large-overlap-rotated.mask.rgb24.ref.png
new file mode 100644
index 0000000..35dca5c
Binary files /dev/null and b/test/reference/line-width-large-overlap-rotated.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.traps.argb32.ref.png b/test/reference/line-width-large-overlap-rotated.traps.argb32.ref.png
new file mode 100644
index 0000000..35dca5c
Binary files /dev/null and b/test/reference/line-width-large-overlap-rotated.traps.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.traps.rgb24.ref.png b/test/reference/line-width-large-overlap-rotated.traps.rgb24.ref.png
new file mode 100644
index 0000000..35dca5c
Binary files /dev/null and b/test/reference/line-width-large-overlap-rotated.traps.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap.base.argb32.ref.png b/test/reference/line-width-large-overlap.base.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap.base.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap.base.rgb24.ref.png b/test/reference/line-width-large-overlap.base.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap.base.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap.mask.argb32.ref.png b/test/reference/line-width-large-overlap.mask.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap.mask.rgb24.ref.png b/test/reference/line-width-large-overlap.mask.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap.traps.argb32.ref.png b/test/reference/line-width-large-overlap.traps.argb32.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap.traps.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap.traps.rgb24.ref.png b/test/reference/line-width-large-overlap.traps.rgb24.ref.png
new file mode 100644
index 0000000..3c3464b
Binary files /dev/null and b/test/reference/line-width-large-overlap.traps.rgb24.ref.png differ
diff --git a/test/reference/line-width-overlap-dashed.mask.argb32.ref.png b/test/reference/line-width-overlap-dashed.mask.argb32.ref.png
new file mode 100644
index 0000000..0de187d
Binary files /dev/null and b/test/reference/line-width-overlap-dashed.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-overlap-dashed.mask.rgb24.ref.png b/test/reference/line-width-overlap-dashed.mask.rgb24.ref.png
new file mode 100644
index 0000000..0de187d
Binary files /dev/null and b/test/reference/line-width-overlap-dashed.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-overlap-flipped.mask.argb32.ref.png b/test/reference/line-width-overlap-flipped.mask.argb32.ref.png
new file mode 100644
index 0000000..13d70c8
Binary files /dev/null and b/test/reference/line-width-overlap-flipped.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-overlap-flipped.mask.rgb24.ref.png b/test/reference/line-width-overlap-flipped.mask.rgb24.ref.png
new file mode 100644
index 0000000..13d70c8
Binary files /dev/null and b/test/reference/line-width-overlap-flipped.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-overlap-flopped.mask.argb32.ref.png b/test/reference/line-width-overlap-flopped.mask.argb32.ref.png
new file mode 100644
index 0000000..13d70c8
Binary files /dev/null and b/test/reference/line-width-overlap-flopped.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-overlap-flopped.mask.rgb24.ref.png b/test/reference/line-width-overlap-flopped.mask.rgb24.ref.png
new file mode 100644
index 0000000..13d70c8
Binary files /dev/null and b/test/reference/line-width-overlap-flopped.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-overlap-offset.mask.argb32.ref.png b/test/reference/line-width-overlap-offset.mask.argb32.ref.png
new file mode 100644
index 0000000..eafa50b
Binary files /dev/null and b/test/reference/line-width-overlap-offset.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-overlap-offset.mask.rgb24.ref.png b/test/reference/line-width-overlap-offset.mask.rgb24.ref.png
new file mode 100644
index 0000000..eafa50b
Binary files /dev/null and b/test/reference/line-width-overlap-offset.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-overlap-offset.traps.argb32.ref.png b/test/reference/line-width-overlap-offset.traps.argb32.ref.png
new file mode 100644
index 0000000..13a138b
Binary files /dev/null and b/test/reference/line-width-overlap-offset.traps.argb32.ref.png differ
diff --git a/test/reference/line-width-overlap-offset.traps.rgb24.ref.png b/test/reference/line-width-overlap-offset.traps.rgb24.ref.png
new file mode 100644
index 0000000..13a138b
Binary files /dev/null and b/test/reference/line-width-overlap-offset.traps.rgb24.ref.png differ
diff --git a/test/reference/line-width-overlap-rotated.mask.argb32.ref.png b/test/reference/line-width-overlap-rotated.mask.argb32.ref.png
new file mode 100644
index 0000000..619a593
Binary files /dev/null and b/test/reference/line-width-overlap-rotated.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-overlap-rotated.mask.rgb24.ref.png b/test/reference/line-width-overlap-rotated.mask.rgb24.ref.png
new file mode 100644
index 0000000..619a593
Binary files /dev/null and b/test/reference/line-width-overlap-rotated.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-overlap.mask.argb32.ref.png b/test/reference/line-width-overlap.mask.argb32.ref.png
new file mode 100644
index 0000000..13d70c8
Binary files /dev/null and b/test/reference/line-width-overlap.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-overlap.mask.rgb24.ref.png b/test/reference/line-width-overlap.mask.rgb24.ref.png
new file mode 100644
index 0000000..13d70c8
Binary files /dev/null and b/test/reference/line-width-overlap.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-scale.mask.argb32.ref.png b/test/reference/line-width-scale.mask.argb32.ref.png
new file mode 100644
index 0000000..5767bc7
Binary files /dev/null and b/test/reference/line-width-scale.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-scale.mask.rgb24.ref.png b/test/reference/line-width-scale.mask.rgb24.ref.png
new file mode 100644
index 0000000..5767bc7
Binary files /dev/null and b/test/reference/line-width-scale.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width-tolerance.mask.argb32.ref.png b/test/reference/line-width-tolerance.mask.argb32.ref.png
new file mode 100644
index 0000000..9c4d439
Binary files /dev/null and b/test/reference/line-width-tolerance.mask.argb32.ref.png differ
diff --git a/test/reference/line-width-tolerance.mask.rgb24.ref.png b/test/reference/line-width-tolerance.mask.rgb24.ref.png
new file mode 100644
index 0000000..9c4d439
Binary files /dev/null and b/test/reference/line-width-tolerance.mask.rgb24.ref.png differ
diff --git a/test/reference/line-width.mask.argb32.ref.png b/test/reference/line-width.mask.argb32.ref.png
new file mode 100644
index 0000000..2a78828
Binary files /dev/null and b/test/reference/line-width.mask.argb32.ref.png differ
diff --git a/test/reference/line-width.mask.rgb24.ref.png b/test/reference/line-width.mask.rgb24.ref.png
new file mode 100644
index 0000000..2a78828
Binary files /dev/null and b/test/reference/line-width.mask.rgb24.ref.png differ
diff --git a/test/reference/linear-gradient-extend.mask.argb32.ref.png b/test/reference/linear-gradient-extend.mask.argb32.ref.png
new file mode 100644
index 0000000..79ce747
Binary files /dev/null and b/test/reference/linear-gradient-extend.mask.argb32.ref.png differ
diff --git a/test/reference/linear-gradient-extend.mask.rgb24.ref.png b/test/reference/linear-gradient-extend.mask.rgb24.ref.png
new file mode 100644
index 0000000..79ce747
Binary files /dev/null and b/test/reference/linear-gradient-extend.mask.rgb24.ref.png differ
diff --git a/test/reference/linear-gradient-large.mask.argb32.ref.png b/test/reference/linear-gradient-large.mask.argb32.ref.png
new file mode 100644
index 0000000..f1f37ab
Binary files /dev/null and b/test/reference/linear-gradient-large.mask.argb32.ref.png differ
diff --git a/test/reference/linear-gradient-large.mask.rgb24.ref.png b/test/reference/linear-gradient-large.mask.rgb24.ref.png
new file mode 100644
index 0000000..f1f37ab
Binary files /dev/null and b/test/reference/linear-gradient-large.mask.rgb24.ref.png differ
diff --git a/test/reference/linear-gradient-one-stop.mask.argb32.ref.png b/test/reference/linear-gradient-one-stop.mask.argb32.ref.png
new file mode 100644
index 0000000..da02fda
Binary files /dev/null and b/test/reference/linear-gradient-one-stop.mask.argb32.ref.png differ
diff --git a/test/reference/linear-gradient-one-stop.mask.rgb24.ref.png b/test/reference/linear-gradient-one-stop.mask.rgb24.ref.png
new file mode 100644
index 0000000..efc12ee
Binary files /dev/null and b/test/reference/linear-gradient-one-stop.mask.rgb24.ref.png differ
diff --git a/test/reference/linear-gradient-reflect.mask.argb32.ref.png b/test/reference/linear-gradient-reflect.mask.argb32.ref.png
new file mode 100644
index 0000000..b68dccb
Binary files /dev/null and b/test/reference/linear-gradient-reflect.mask.argb32.ref.png differ
diff --git a/test/reference/linear-gradient-reflect.mask.rgb24.ref.png b/test/reference/linear-gradient-reflect.mask.rgb24.ref.png
new file mode 100644
index 0000000..b68dccb
Binary files /dev/null and b/test/reference/linear-gradient-reflect.mask.rgb24.ref.png differ
diff --git a/test/reference/linear-gradient-subset.mask.argb32.ref.png b/test/reference/linear-gradient-subset.mask.argb32.ref.png
new file mode 100644
index 0000000..3d30d0a
Binary files /dev/null and b/test/reference/linear-gradient-subset.mask.argb32.ref.png differ
diff --git a/test/reference/linear-gradient-subset.mask.rgb24.ref.png b/test/reference/linear-gradient-subset.mask.rgb24.ref.png
new file mode 100644
index 0000000..3d30d0a
Binary files /dev/null and b/test/reference/linear-gradient-subset.mask.rgb24.ref.png differ
diff --git a/test/reference/linear-gradient.mask.argb32.ref.png b/test/reference/linear-gradient.mask.argb32.ref.png
new file mode 100644
index 0000000..3f78c52
Binary files /dev/null and b/test/reference/linear-gradient.mask.argb32.ref.png differ
diff --git a/test/reference/linear-gradient.mask.rgb24.ref.png b/test/reference/linear-gradient.mask.rgb24.ref.png
new file mode 100644
index 0000000..3f78c52
Binary files /dev/null and b/test/reference/linear-gradient.mask.rgb24.ref.png differ
diff --git a/test/reference/linear-step-function.mask.argb32.ref.png b/test/reference/linear-step-function.mask.argb32.ref.png
new file mode 100644
index 0000000..0ed126e
Binary files /dev/null and b/test/reference/linear-step-function.mask.argb32.ref.png differ
diff --git a/test/reference/linear-step-function.mask.rgb24.ref.png b/test/reference/linear-step-function.mask.rgb24.ref.png
new file mode 100644
index 0000000..0ed126e
Binary files /dev/null and b/test/reference/linear-step-function.mask.rgb24.ref.png differ
diff --git a/test/reference/linear-uniform.mask.argb32.ref.png b/test/reference/linear-uniform.mask.argb32.ref.png
new file mode 100644
index 0000000..94ca336
Binary files /dev/null and b/test/reference/linear-uniform.mask.argb32.ref.png differ
diff --git a/test/reference/linear-uniform.mask.rgb24.ref.png b/test/reference/linear-uniform.mask.rgb24.ref.png
new file mode 100644
index 0000000..94ca336
Binary files /dev/null and b/test/reference/linear-uniform.mask.rgb24.ref.png differ
diff --git a/test/reference/long-dashed-lines.mask.argb32.ref.png b/test/reference/long-dashed-lines.mask.argb32.ref.png
new file mode 100644
index 0000000..9c7208c
Binary files /dev/null and b/test/reference/long-dashed-lines.mask.argb32.ref.png differ
diff --git a/test/reference/long-dashed-lines.mask.rgb24.ref.png b/test/reference/long-dashed-lines.mask.rgb24.ref.png
new file mode 100644
index 0000000..9c7208c
Binary files /dev/null and b/test/reference/long-dashed-lines.mask.rgb24.ref.png differ
diff --git a/test/reference/long-lines.mask.argb32.ref.png b/test/reference/long-lines.mask.argb32.ref.png
new file mode 100644
index 0000000..fe91163
Binary files /dev/null and b/test/reference/long-lines.mask.argb32.ref.png differ
diff --git a/test/reference/long-lines.mask.rgb24.ref.png b/test/reference/long-lines.mask.rgb24.ref.png
new file mode 100644
index 0000000..fe91163
Binary files /dev/null and b/test/reference/long-lines.mask.rgb24.ref.png differ
diff --git a/test/reference/map-all-to-image.mask.argb32.ref.png b/test/reference/map-all-to-image.mask.argb32.ref.png
new file mode 100644
index 0000000..c56d969
Binary files /dev/null and b/test/reference/map-all-to-image.mask.argb32.ref.png differ
diff --git a/test/reference/map-all-to-image.mask.rgb24.ref.png b/test/reference/map-all-to-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..c56d969
Binary files /dev/null and b/test/reference/map-all-to-image.mask.rgb24.ref.png differ
diff --git a/test/reference/map-bit-to-image.mask.argb32.ref.png b/test/reference/map-bit-to-image.mask.argb32.ref.png
new file mode 100644
index 0000000..b42dcb6
Binary files /dev/null and b/test/reference/map-bit-to-image.mask.argb32.ref.png differ
diff --git a/test/reference/map-bit-to-image.mask.rgb24.ref.png b/test/reference/map-bit-to-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..b42dcb6
Binary files /dev/null and b/test/reference/map-bit-to-image.mask.rgb24.ref.png differ
diff --git a/test/reference/map-to-image-fill.mask.argb32.ref.png b/test/reference/map-to-image-fill.mask.argb32.ref.png
new file mode 100644
index 0000000..c2893e0
Binary files /dev/null and b/test/reference/map-to-image-fill.mask.argb32.ref.png differ
diff --git a/test/reference/map-to-image-fill.mask.rgb24.ref.png b/test/reference/map-to-image-fill.mask.rgb24.ref.png
new file mode 100644
index 0000000..c2893e0
Binary files /dev/null and b/test/reference/map-to-image-fill.mask.rgb24.ref.png differ
diff --git a/test/reference/mask-alpha.mask.argb32.ref.png b/test/reference/mask-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..20f0663
Binary files /dev/null and b/test/reference/mask-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/mask-alpha.mask.rgb24.ref.png b/test/reference/mask-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..df7a0c1
Binary files /dev/null and b/test/reference/mask-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/mask-ctm.mask.argb32.ref.png b/test/reference/mask-ctm.mask.argb32.ref.png
new file mode 100644
index 0000000..07d903d
Binary files /dev/null and b/test/reference/mask-ctm.mask.argb32.ref.png differ
diff --git a/test/reference/mask-ctm.mask.rgb24.ref.png b/test/reference/mask-ctm.mask.rgb24.ref.png
new file mode 100644
index 0000000..de3fa09
Binary files /dev/null and b/test/reference/mask-ctm.mask.rgb24.ref.png differ
diff --git a/test/reference/mask-surface-ctm.mask.argb32.ref.png b/test/reference/mask-surface-ctm.mask.argb32.ref.png
new file mode 100644
index 0000000..07d903d
Binary files /dev/null and b/test/reference/mask-surface-ctm.mask.argb32.ref.png differ
diff --git a/test/reference/mask-surface-ctm.mask.rgb24.ref.png b/test/reference/mask-surface-ctm.mask.rgb24.ref.png
new file mode 100644
index 0000000..de3fa09
Binary files /dev/null and b/test/reference/mask-surface-ctm.mask.rgb24.ref.png differ
diff --git a/test/reference/mask-transformed-image.mask.argb32.ref.png b/test/reference/mask-transformed-image.mask.argb32.ref.png
new file mode 100644
index 0000000..af84b39
Binary files /dev/null and b/test/reference/mask-transformed-image.mask.argb32.ref.png differ
diff --git a/test/reference/mask-transformed-image.mask.rgb24.ref.png b/test/reference/mask-transformed-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..af84b39
Binary files /dev/null and b/test/reference/mask-transformed-image.mask.rgb24.ref.png differ
diff --git a/test/reference/mask-transformed-similar.mask.argb32.ref.png b/test/reference/mask-transformed-similar.mask.argb32.ref.png
new file mode 100644
index 0000000..af84b39
Binary files /dev/null and b/test/reference/mask-transformed-similar.mask.argb32.ref.png differ
diff --git a/test/reference/mask-transformed-similar.mask.rgb24.ref.png b/test/reference/mask-transformed-similar.mask.rgb24.ref.png
new file mode 100644
index 0000000..af84b39
Binary files /dev/null and b/test/reference/mask-transformed-similar.mask.rgb24.ref.png differ
diff --git a/test/reference/mask.mask.argb32.ref.png b/test/reference/mask.mask.argb32.ref.png
new file mode 100644
index 0000000..2d740d4
Binary files /dev/null and b/test/reference/mask.mask.argb32.ref.png differ
diff --git a/test/reference/mask.mask.rgb24.ref.png b/test/reference/mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..12114a7
Binary files /dev/null and b/test/reference/mask.mask.rgb24.ref.png differ
diff --git a/test/reference/mesh-pattern-accuracy.mask.argb32.ref.png b/test/reference/mesh-pattern-accuracy.mask.argb32.ref.png
new file mode 100644
index 0000000..dfc19ff
Binary files /dev/null and b/test/reference/mesh-pattern-accuracy.mask.argb32.ref.png differ
diff --git a/test/reference/mesh-pattern-accuracy.mask.rgb24.ref.png b/test/reference/mesh-pattern-accuracy.mask.rgb24.ref.png
new file mode 100644
index 0000000..dfc19ff
Binary files /dev/null and b/test/reference/mesh-pattern-accuracy.mask.rgb24.ref.png differ
diff --git a/test/reference/mesh-pattern-conical.mask.argb32.ref.png b/test/reference/mesh-pattern-conical.mask.argb32.ref.png
new file mode 100644
index 0000000..f5dc21d
Binary files /dev/null and b/test/reference/mesh-pattern-conical.mask.argb32.ref.png differ
diff --git a/test/reference/mesh-pattern-conical.mask.rgb24.ref.png b/test/reference/mesh-pattern-conical.mask.rgb24.ref.png
new file mode 100644
index 0000000..f5dc21d
Binary files /dev/null and b/test/reference/mesh-pattern-conical.mask.rgb24.ref.png differ
diff --git a/test/reference/mesh-pattern-control-points.mask.argb32.ref.png b/test/reference/mesh-pattern-control-points.mask.argb32.ref.png
new file mode 100644
index 0000000..841fc3e
Binary files /dev/null and b/test/reference/mesh-pattern-control-points.mask.argb32.ref.png differ
diff --git a/test/reference/mesh-pattern-control-points.mask.rgb24.ref.png b/test/reference/mesh-pattern-control-points.mask.rgb24.ref.png
new file mode 100644
index 0000000..841fc3e
Binary files /dev/null and b/test/reference/mesh-pattern-control-points.mask.rgb24.ref.png differ
diff --git a/test/reference/mesh-pattern-fold.mask.argb32.ref.png b/test/reference/mesh-pattern-fold.mask.argb32.ref.png
new file mode 100644
index 0000000..6275b82
Binary files /dev/null and b/test/reference/mesh-pattern-fold.mask.argb32.ref.png differ
diff --git a/test/reference/mesh-pattern-fold.mask.rgb24.ref.png b/test/reference/mesh-pattern-fold.mask.rgb24.ref.png
new file mode 100644
index 0000000..6275b82
Binary files /dev/null and b/test/reference/mesh-pattern-fold.mask.rgb24.ref.png differ
diff --git a/test/reference/mesh-pattern-overlap.mask.argb32.ref.png b/test/reference/mesh-pattern-overlap.mask.argb32.ref.png
new file mode 100644
index 0000000..1394c9e
Binary files /dev/null and b/test/reference/mesh-pattern-overlap.mask.argb32.ref.png differ
diff --git a/test/reference/mesh-pattern-overlap.mask.rgb24.ref.png b/test/reference/mesh-pattern-overlap.mask.rgb24.ref.png
new file mode 100644
index 0000000..1394c9e
Binary files /dev/null and b/test/reference/mesh-pattern-overlap.mask.rgb24.ref.png differ
diff --git a/test/reference/mesh-pattern-transformed.mask.argb32.ref.png b/test/reference/mesh-pattern-transformed.mask.argb32.ref.png
new file mode 100644
index 0000000..9aa482f
Binary files /dev/null and b/test/reference/mesh-pattern-transformed.mask.argb32.ref.png differ
diff --git a/test/reference/mesh-pattern-transformed.mask.rgb24.ref.png b/test/reference/mesh-pattern-transformed.mask.rgb24.ref.png
new file mode 100644
index 0000000..9aa482f
Binary files /dev/null and b/test/reference/mesh-pattern-transformed.mask.rgb24.ref.png differ
diff --git a/test/reference/mesh-pattern.mask.argb32.ref.png b/test/reference/mesh-pattern.mask.argb32.ref.png
new file mode 100644
index 0000000..1f76639
Binary files /dev/null and b/test/reference/mesh-pattern.mask.argb32.ref.png differ
diff --git a/test/reference/mesh-pattern.mask.rgb24.ref.png b/test/reference/mesh-pattern.mask.rgb24.ref.png
new file mode 100644
index 0000000..1f76639
Binary files /dev/null and b/test/reference/mesh-pattern.mask.rgb24.ref.png differ
diff --git a/test/reference/mime-data.mask.argb32.ref.png b/test/reference/mime-data.mask.argb32.ref.png
new file mode 100644
index 0000000..3a912c5
Binary files /dev/null and b/test/reference/mime-data.mask.argb32.ref.png differ
diff --git a/test/reference/mime-data.mask.rgb24.ref.png b/test/reference/mime-data.mask.rgb24.ref.png
new file mode 100644
index 0000000..3a912c5
Binary files /dev/null and b/test/reference/mime-data.mask.rgb24.ref.png differ
diff --git a/test/reference/miter-precision.mask.argb32.ref.png b/test/reference/miter-precision.mask.argb32.ref.png
new file mode 100644
index 0000000..aa8e229
Binary files /dev/null and b/test/reference/miter-precision.mask.argb32.ref.png differ
diff --git a/test/reference/miter-precision.mask.rgb24.ref.png b/test/reference/miter-precision.mask.rgb24.ref.png
new file mode 100644
index 0000000..aa8e229
Binary files /dev/null and b/test/reference/miter-precision.mask.rgb24.ref.png differ
diff --git a/test/reference/move-to-show-surface.mask.argb32.ref.png b/test/reference/move-to-show-surface.mask.argb32.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/move-to-show-surface.mask.argb32.ref.png differ
diff --git a/test/reference/move-to-show-surface.mask.rgb24.ref.png b/test/reference/move-to-show-surface.mask.rgb24.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/move-to-show-surface.mask.rgb24.ref.png differ
diff --git a/test/reference/negative-stride-image.base.argb32.ref.png b/test/reference/negative-stride-image.base.argb32.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/negative-stride-image.base.argb32.ref.png differ
diff --git a/test/reference/negative-stride-image.base.rgb24.ref.png b/test/reference/negative-stride-image.base.rgb24.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/negative-stride-image.base.rgb24.ref.png differ
diff --git a/test/reference/negative-stride-image.mask.argb32.ref.png b/test/reference/negative-stride-image.mask.argb32.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/negative-stride-image.mask.argb32.ref.png differ
diff --git a/test/reference/negative-stride-image.mask.rgb24.ref.png b/test/reference/negative-stride-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/negative-stride-image.mask.rgb24.ref.png differ
diff --git a/test/reference/negative-stride-image.traps.argb32.ref.png b/test/reference/negative-stride-image.traps.argb32.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/negative-stride-image.traps.argb32.ref.png differ
diff --git a/test/reference/negative-stride-image.traps.rgb24.ref.png b/test/reference/negative-stride-image.traps.rgb24.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/negative-stride-image.traps.rgb24.ref.png differ
diff --git a/test/reference/new-sub-path.mask.argb32.ref.png b/test/reference/new-sub-path.mask.argb32.ref.png
new file mode 100644
index 0000000..87a6c91
Binary files /dev/null and b/test/reference/new-sub-path.mask.argb32.ref.png differ
diff --git a/test/reference/new-sub-path.mask.rgb24.ref.png b/test/reference/new-sub-path.mask.rgb24.ref.png
new file mode 100644
index 0000000..eb297be
Binary files /dev/null and b/test/reference/new-sub-path.mask.rgb24.ref.png differ
diff --git a/test/reference/nil-surface.mask.argb32.ref.png b/test/reference/nil-surface.mask.argb32.ref.png
new file mode 100644
index 0000000..50e35a2
Binary files /dev/null and b/test/reference/nil-surface.mask.argb32.ref.png differ
diff --git a/test/reference/nil-surface.mask.rgb24.ref.png b/test/reference/nil-surface.mask.rgb24.ref.png
new file mode 100644
index 0000000..7d5589c
Binary files /dev/null and b/test/reference/nil-surface.mask.rgb24.ref.png differ
diff --git a/test/reference/operator-alpha-alpha.mask.argb32.ref.png b/test/reference/operator-alpha-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..695d0d0
Binary files /dev/null and b/test/reference/operator-alpha-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/operator-alpha-alpha.mask.rgb24.ref.png b/test/reference/operator-alpha-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..695d0d0
Binary files /dev/null and b/test/reference/operator-alpha-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/operator-alpha.mask.argb32.ref.png b/test/reference/operator-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..b4f3b71
Binary files /dev/null and b/test/reference/operator-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/operator-alpha.mask.rgb24.ref.png b/test/reference/operator-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..bc7be3a
Binary files /dev/null and b/test/reference/operator-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/operator-clear.mask.argb32.ref.png b/test/reference/operator-clear.mask.argb32.ref.png
new file mode 100644
index 0000000..41f63bd
Binary files /dev/null and b/test/reference/operator-clear.mask.argb32.ref.png differ
diff --git a/test/reference/operator-clear.mask.rgb24.ref.png b/test/reference/operator-clear.mask.rgb24.ref.png
new file mode 100644
index 0000000..3d58ab3
Binary files /dev/null and b/test/reference/operator-clear.mask.rgb24.ref.png differ
diff --git a/test/reference/operator-source.mask.argb32.ref.png b/test/reference/operator-source.mask.argb32.ref.png
new file mode 100644
index 0000000..74ad1da
Binary files /dev/null and b/test/reference/operator-source.mask.argb32.ref.png differ
diff --git a/test/reference/operator-source.mask.rgb24.ref.png b/test/reference/operator-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..c003356
Binary files /dev/null and b/test/reference/operator-source.mask.rgb24.ref.png differ
diff --git a/test/reference/operator.mask.argb32.ref.png b/test/reference/operator.mask.argb32.ref.png
new file mode 100644
index 0000000..34fce98
Binary files /dev/null and b/test/reference/operator.mask.argb32.ref.png differ
diff --git a/test/reference/operator.mask.rgb24.ref.png b/test/reference/operator.mask.rgb24.ref.png
new file mode 100644
index 0000000..aa6103d
Binary files /dev/null and b/test/reference/operator.mask.rgb24.ref.png differ
diff --git a/test/reference/over-above-source.mask.argb32.ref.png b/test/reference/over-above-source.mask.argb32.ref.png
new file mode 100644
index 0000000..8c2ce1d
Binary files /dev/null and b/test/reference/over-above-source.mask.argb32.ref.png differ
diff --git a/test/reference/over-above-source.mask.rgb24.ref.png b/test/reference/over-above-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..240de27
Binary files /dev/null and b/test/reference/over-above-source.mask.rgb24.ref.png differ
diff --git a/test/reference/over-around-source.mask.argb32.ref.png b/test/reference/over-around-source.mask.argb32.ref.png
new file mode 100644
index 0000000..38df9b7
Binary files /dev/null and b/test/reference/over-around-source.mask.argb32.ref.png differ
diff --git a/test/reference/over-around-source.mask.rgb24.ref.png b/test/reference/over-around-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..65fd8e8
Binary files /dev/null and b/test/reference/over-around-source.mask.rgb24.ref.png differ
diff --git a/test/reference/over-below-source.mask.argb32.ref.png b/test/reference/over-below-source.mask.argb32.ref.png
new file mode 100644
index 0000000..0b55974
Binary files /dev/null and b/test/reference/over-below-source.mask.argb32.ref.png differ
diff --git a/test/reference/over-below-source.mask.rgb24.ref.png b/test/reference/over-below-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..9ddde0e
Binary files /dev/null and b/test/reference/over-below-source.mask.rgb24.ref.png differ
diff --git a/test/reference/over-between-source.mask.argb32.ref.png b/test/reference/over-between-source.mask.argb32.ref.png
new file mode 100644
index 0000000..dd03f98
Binary files /dev/null and b/test/reference/over-between-source.mask.argb32.ref.png differ
diff --git a/test/reference/over-between-source.mask.rgb24.ref.png b/test/reference/over-between-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..8569720
Binary files /dev/null and b/test/reference/over-between-source.mask.rgb24.ref.png differ
diff --git a/test/reference/overlapping-boxes.mask.argb32.ref.png b/test/reference/overlapping-boxes.mask.argb32.ref.png
new file mode 100644
index 0000000..1c68438
Binary files /dev/null and b/test/reference/overlapping-boxes.mask.argb32.ref.png differ
diff --git a/test/reference/overlapping-boxes.mask.rgb24.ref.png b/test/reference/overlapping-boxes.mask.rgb24.ref.png
new file mode 100644
index 0000000..0edeafa
Binary files /dev/null and b/test/reference/overlapping-boxes.mask.rgb24.ref.png differ
diff --git a/test/reference/overlapping-dash-caps.mask.argb32.ref.png b/test/reference/overlapping-dash-caps.mask.argb32.ref.png
new file mode 100644
index 0000000..367d683
Binary files /dev/null and b/test/reference/overlapping-dash-caps.mask.argb32.ref.png differ
diff --git a/test/reference/overlapping-dash-caps.mask.rgb24.ref.png b/test/reference/overlapping-dash-caps.mask.rgb24.ref.png
new file mode 100644
index 0000000..367d683
Binary files /dev/null and b/test/reference/overlapping-dash-caps.mask.rgb24.ref.png differ
diff --git a/test/reference/overlapping-glyphs.mask.argb32.ref.png b/test/reference/overlapping-glyphs.mask.argb32.ref.png
new file mode 100644
index 0000000..4ec4ee5
Binary files /dev/null and b/test/reference/overlapping-glyphs.mask.argb32.ref.png differ
diff --git a/test/reference/overlapping-glyphs.mask.rgb24.ref.png b/test/reference/overlapping-glyphs.mask.rgb24.ref.png
new file mode 100644
index 0000000..5217c15
Binary files /dev/null and b/test/reference/overlapping-glyphs.mask.rgb24.ref.png differ
diff --git a/test/reference/paint-clip-fill-aa.mask.argb32.ref.png b/test/reference/paint-clip-fill-aa.mask.argb32.ref.png
new file mode 100644
index 0000000..768322a
Binary files /dev/null and b/test/reference/paint-clip-fill-aa.mask.argb32.ref.png differ
diff --git a/test/reference/paint-clip-fill-aa.mask.rgb24.ref.png b/test/reference/paint-clip-fill-aa.mask.rgb24.ref.png
new file mode 100644
index 0000000..768322a
Binary files /dev/null and b/test/reference/paint-clip-fill-aa.mask.rgb24.ref.png differ
diff --git a/test/reference/paint-clip-fill-mono.mask.argb32.ref.png b/test/reference/paint-clip-fill-mono.mask.argb32.ref.png
new file mode 100644
index 0000000..768322a
Binary files /dev/null and b/test/reference/paint-clip-fill-mono.mask.argb32.ref.png differ
diff --git a/test/reference/paint-clip-fill-mono.mask.rgb24.ref.png b/test/reference/paint-clip-fill-mono.mask.rgb24.ref.png
new file mode 100644
index 0000000..768322a
Binary files /dev/null and b/test/reference/paint-clip-fill-mono.mask.rgb24.ref.png differ
diff --git a/test/reference/paint-repeat.mask.argb32.ref.png b/test/reference/paint-repeat.mask.argb32.ref.png
new file mode 100644
index 0000000..8cdd9b4
Binary files /dev/null and b/test/reference/paint-repeat.mask.argb32.ref.png differ
diff --git a/test/reference/paint-repeat.mask.rgb24.ref.png b/test/reference/paint-repeat.mask.rgb24.ref.png
new file mode 100644
index 0000000..8cdd9b4
Binary files /dev/null and b/test/reference/paint-repeat.mask.rgb24.ref.png differ
diff --git a/test/reference/paint-source-alpha.mask.argb32.ref.png b/test/reference/paint-source-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..65d9c17
Binary files /dev/null and b/test/reference/paint-source-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/paint-source-alpha.mask.rgb24.ref.png b/test/reference/paint-source-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..65d9c17
Binary files /dev/null and b/test/reference/paint-source-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip-mask.mask.argb32.ref.png b/test/reference/paint-with-alpha-clip-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..95746ff
Binary files /dev/null and b/test/reference/paint-with-alpha-clip-mask.mask.argb32.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip-mask.mask.rgb24.ref.png b/test/reference/paint-with-alpha-clip-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..95746ff
Binary files /dev/null and b/test/reference/paint-with-alpha-clip-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip.mask.argb32.ref.png b/test/reference/paint-with-alpha-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..c1da67e
Binary files /dev/null and b/test/reference/paint-with-alpha-clip.mask.argb32.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip.mask.rgb24.ref.png b/test/reference/paint-with-alpha-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..c1da67e
Binary files /dev/null and b/test/reference/paint-with-alpha-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/paint-with-alpha-solid-clip.mask.argb32.ref.png b/test/reference/paint-with-alpha-solid-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..2cd2df2
Binary files /dev/null and b/test/reference/paint-with-alpha-solid-clip.mask.argb32.ref.png differ
diff --git a/test/reference/paint-with-alpha-solid-clip.mask.rgb24.ref.png b/test/reference/paint-with-alpha-solid-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..2cd2df2
Binary files /dev/null and b/test/reference/paint-with-alpha-solid-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/paint-with-alpha.mask.argb32.ref.png b/test/reference/paint-with-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..65d9c17
Binary files /dev/null and b/test/reference/paint-with-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/paint-with-alpha.mask.rgb24.ref.png b/test/reference/paint-with-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..65d9c17
Binary files /dev/null and b/test/reference/paint-with-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/paint.mask.argb32.ref.png b/test/reference/paint.mask.argb32.ref.png
new file mode 100644
index 0000000..22cc7a1
Binary files /dev/null and b/test/reference/paint.mask.argb32.ref.png differ
diff --git a/test/reference/paint.mask.rgb24.ref.png b/test/reference/paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..22cc7a1
Binary files /dev/null and b/test/reference/paint.mask.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-bottom.mask.argb32.ref.png b/test/reference/partial-clip-text-bottom.mask.argb32.ref.png
new file mode 100644
index 0000000..6a299d4
Binary files /dev/null and b/test/reference/partial-clip-text-bottom.mask.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-bottom.mask.rgb24.ref.png b/test/reference/partial-clip-text-bottom.mask.rgb24.ref.png
new file mode 100644
index 0000000..6a299d4
Binary files /dev/null and b/test/reference/partial-clip-text-bottom.mask.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-left.mask.argb32.ref.png b/test/reference/partial-clip-text-left.mask.argb32.ref.png
new file mode 100644
index 0000000..54a1a85
Binary files /dev/null and b/test/reference/partial-clip-text-left.mask.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-left.mask.rgb24.ref.png b/test/reference/partial-clip-text-left.mask.rgb24.ref.png
new file mode 100644
index 0000000..54a1a85
Binary files /dev/null and b/test/reference/partial-clip-text-left.mask.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-right.mask.argb32.ref.png b/test/reference/partial-clip-text-right.mask.argb32.ref.png
new file mode 100644
index 0000000..2fbdca0
Binary files /dev/null and b/test/reference/partial-clip-text-right.mask.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-right.mask.rgb24.ref.png b/test/reference/partial-clip-text-right.mask.rgb24.ref.png
new file mode 100644
index 0000000..2fbdca0
Binary files /dev/null and b/test/reference/partial-clip-text-right.mask.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-right.traps.argb32.ref.png b/test/reference/partial-clip-text-right.traps.argb32.ref.png
new file mode 100644
index 0000000..2fbdca0
Binary files /dev/null and b/test/reference/partial-clip-text-right.traps.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-right.traps.rgb24.ref.png b/test/reference/partial-clip-text-right.traps.rgb24.ref.png
new file mode 100644
index 0000000..2fbdca0
Binary files /dev/null and b/test/reference/partial-clip-text-right.traps.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-top.mask.argb32.ref.png b/test/reference/partial-clip-text-top.mask.argb32.ref.png
new file mode 100644
index 0000000..d18475b
Binary files /dev/null and b/test/reference/partial-clip-text-top.mask.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-top.mask.rgb24.ref.png b/test/reference/partial-clip-text-top.mask.rgb24.ref.png
new file mode 100644
index 0000000..d18475b
Binary files /dev/null and b/test/reference/partial-clip-text-top.mask.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-top.traps.argb32.ref.png b/test/reference/partial-clip-text-top.traps.argb32.ref.png
new file mode 100644
index 0000000..d18475b
Binary files /dev/null and b/test/reference/partial-clip-text-top.traps.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-top.traps.rgb24.ref.png b/test/reference/partial-clip-text-top.traps.rgb24.ref.png
new file mode 100644
index 0000000..d18475b
Binary files /dev/null and b/test/reference/partial-clip-text-top.traps.rgb24.ref.png differ
diff --git a/test/reference/partial-coverage-half-reference.mask.argb32.ref.png b/test/reference/partial-coverage-half-reference.mask.argb32.ref.png
new file mode 100644
index 0000000..17f4ff0
Binary files /dev/null and b/test/reference/partial-coverage-half-reference.mask.argb32.ref.png differ
diff --git a/test/reference/partial-coverage-half-reference.mask.rgb24.ref.png b/test/reference/partial-coverage-half-reference.mask.rgb24.ref.png
new file mode 100644
index 0000000..17f4ff0
Binary files /dev/null and b/test/reference/partial-coverage-half-reference.mask.rgb24.ref.png differ
diff --git a/test/reference/partial-coverage-reference.mask.argb32.ref.png b/test/reference/partial-coverage-reference.mask.argb32.ref.png
new file mode 100644
index 0000000..9e4a6fe
Binary files /dev/null and b/test/reference/partial-coverage-reference.mask.argb32.ref.png differ
diff --git a/test/reference/partial-coverage-reference.mask.rgb24.ref.png b/test/reference/partial-coverage-reference.mask.rgb24.ref.png
new file mode 100644
index 0000000..9e4a6fe
Binary files /dev/null and b/test/reference/partial-coverage-reference.mask.rgb24.ref.png differ
diff --git a/test/reference/partial-coverage-three-quarter-reference.mask.argb32.ref.png b/test/reference/partial-coverage-three-quarter-reference.mask.argb32.ref.png
new file mode 100644
index 0000000..ea16dc4
Binary files /dev/null and b/test/reference/partial-coverage-three-quarter-reference.mask.argb32.ref.png differ
diff --git a/test/reference/partial-coverage-three-quarter-reference.mask.rgb24.ref.png b/test/reference/partial-coverage-three-quarter-reference.mask.rgb24.ref.png
new file mode 100644
index 0000000..ea16dc4
Binary files /dev/null and b/test/reference/partial-coverage-three-quarter-reference.mask.rgb24.ref.png differ
diff --git a/test/reference/pass-through.base.argb32.ref.png b/test/reference/pass-through.base.argb32.ref.png
new file mode 100644
index 0000000..058a192
Binary files /dev/null and b/test/reference/pass-through.base.argb32.ref.png differ
diff --git a/test/reference/pass-through.base.rgb24.ref.png b/test/reference/pass-through.base.rgb24.ref.png
new file mode 100644
index 0000000..1be631a
Binary files /dev/null and b/test/reference/pass-through.base.rgb24.ref.png differ
diff --git a/test/reference/pass-through.mask.argb32.ref.png b/test/reference/pass-through.mask.argb32.ref.png
new file mode 100644
index 0000000..058a192
Binary files /dev/null and b/test/reference/pass-through.mask.argb32.ref.png differ
diff --git a/test/reference/pass-through.mask.rgb24.ref.png b/test/reference/pass-through.mask.rgb24.ref.png
new file mode 100644
index 0000000..1be631a
Binary files /dev/null and b/test/reference/pass-through.mask.rgb24.ref.png differ
diff --git a/test/reference/pass-through.traps.argb32.ref.png b/test/reference/pass-through.traps.argb32.ref.png
new file mode 100644
index 0000000..058a192
Binary files /dev/null and b/test/reference/pass-through.traps.argb32.ref.png differ
diff --git a/test/reference/pass-through.traps.rgb24.ref.png b/test/reference/pass-through.traps.rgb24.ref.png
new file mode 100644
index 0000000..1be631a
Binary files /dev/null and b/test/reference/pass-through.traps.rgb24.ref.png differ
diff --git a/test/reference/path-append.mask.argb32.ref.png b/test/reference/path-append.mask.argb32.ref.png
new file mode 100644
index 0000000..f097af0
Binary files /dev/null and b/test/reference/path-append.mask.argb32.ref.png differ
diff --git a/test/reference/path-append.mask.rgb24.ref.png b/test/reference/path-append.mask.rgb24.ref.png
new file mode 100644
index 0000000..f097af0
Binary files /dev/null and b/test/reference/path-append.mask.rgb24.ref.png differ
diff --git a/test/reference/path-stroke-twice.mask.argb32.ref.png b/test/reference/path-stroke-twice.mask.argb32.ref.png
new file mode 100644
index 0000000..743c6ce
Binary files /dev/null and b/test/reference/path-stroke-twice.mask.argb32.ref.png differ
diff --git a/test/reference/path-stroke-twice.mask.rgb24.ref.png b/test/reference/path-stroke-twice.mask.rgb24.ref.png
new file mode 100644
index 0000000..743c6ce
Binary files /dev/null and b/test/reference/path-stroke-twice.mask.rgb24.ref.png differ
diff --git a/test/reference/pattern-getters.mask.argb32.ref.png b/test/reference/pattern-getters.mask.argb32.ref.png
new file mode 100644
index 0000000..3cc39a8
Binary files /dev/null and b/test/reference/pattern-getters.mask.argb32.ref.png differ
diff --git a/test/reference/pattern-getters.mask.rgb24.ref.png b/test/reference/pattern-getters.mask.rgb24.ref.png
new file mode 100644
index 0000000..3cc39a8
Binary files /dev/null and b/test/reference/pattern-getters.mask.rgb24.ref.png differ
diff --git a/test/reference/pdf-surface-source.mask.argb32.ref.png b/test/reference/pdf-surface-source.mask.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/pdf-surface-source.mask.argb32.ref.png differ
diff --git a/test/reference/pdf-surface-source.mask.rgb24.ref.png b/test/reference/pdf-surface-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/pdf-surface-source.mask.rgb24.ref.png differ
diff --git a/test/reference/pixman-rotate.mask.argb32.ref.png b/test/reference/pixman-rotate.mask.argb32.ref.png
new file mode 100644
index 0000000..7e47a4d
Binary files /dev/null and b/test/reference/pixman-rotate.mask.argb32.ref.png differ
diff --git a/test/reference/pixman-rotate.mask.rgb24.ref.png b/test/reference/pixman-rotate.mask.rgb24.ref.png
new file mode 100644
index 0000000..397acbe
Binary files /dev/null and b/test/reference/pixman-rotate.mask.rgb24.ref.png differ
diff --git a/test/reference/ps-surface-source.mask.argb32.ref.png b/test/reference/ps-surface-source.mask.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/ps-surface-source.mask.argb32.ref.png differ
diff --git a/test/reference/ps-surface-source.mask.rgb24.ref.png b/test/reference/ps-surface-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/ps-surface-source.mask.rgb24.ref.png differ
diff --git a/test/reference/pthread-same-source.mask.argb32.ref.png b/test/reference/pthread-same-source.mask.argb32.ref.png
new file mode 100644
index 0000000..cfb519d
Binary files /dev/null and b/test/reference/pthread-same-source.mask.argb32.ref.png differ
diff --git a/test/reference/pthread-same-source.mask.rgb24.ref.png b/test/reference/pthread-same-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..cfb519d
Binary files /dev/null and b/test/reference/pthread-same-source.mask.rgb24.ref.png differ
diff --git a/test/reference/pthread-show-text.mask.argb32.ref.png b/test/reference/pthread-show-text.mask.argb32.ref.png
new file mode 100644
index 0000000..90d0af3
Binary files /dev/null and b/test/reference/pthread-show-text.mask.argb32.ref.png differ
diff --git a/test/reference/pthread-show-text.mask.rgb24.ref.png b/test/reference/pthread-show-text.mask.rgb24.ref.png
new file mode 100644
index 0000000..90d0af3
Binary files /dev/null and b/test/reference/pthread-show-text.mask.rgb24.ref.png differ
diff --git a/test/reference/pthread-show-text.traps.argb32.ref.png b/test/reference/pthread-show-text.traps.argb32.ref.png
new file mode 100644
index 0000000..90d0af3
Binary files /dev/null and b/test/reference/pthread-show-text.traps.argb32.ref.png differ
diff --git a/test/reference/pthread-show-text.traps.rgb24.ref.png b/test/reference/pthread-show-text.traps.rgb24.ref.png
new file mode 100644
index 0000000..90d0af3
Binary files /dev/null and b/test/reference/pthread-show-text.traps.rgb24.ref.png differ
diff --git a/test/reference/pthread-similar.mask.argb32.ref.png b/test/reference/pthread-similar.mask.argb32.ref.png
new file mode 100644
index 0000000..a22210d
Binary files /dev/null and b/test/reference/pthread-similar.mask.argb32.ref.png differ
diff --git a/test/reference/pthread-similar.mask.rgb24.ref.png b/test/reference/pthread-similar.mask.rgb24.ref.png
new file mode 100644
index 0000000..a22210d
Binary files /dev/null and b/test/reference/pthread-similar.mask.rgb24.ref.png differ
diff --git a/test/reference/push-group-color.mask.argb32.ref.png b/test/reference/push-group-color.mask.argb32.ref.png
new file mode 100644
index 0000000..5615196
Binary files /dev/null and b/test/reference/push-group-color.mask.argb32.ref.png differ
diff --git a/test/reference/push-group-color.mask.rgb24.ref.png b/test/reference/push-group-color.mask.rgb24.ref.png
new file mode 100644
index 0000000..5615196
Binary files /dev/null and b/test/reference/push-group-color.mask.rgb24.ref.png differ
diff --git a/test/reference/push-group-path-offset.mask.argb32.ref.png b/test/reference/push-group-path-offset.mask.argb32.ref.png
new file mode 100644
index 0000000..b836a91
Binary files /dev/null and b/test/reference/push-group-path-offset.mask.argb32.ref.png differ
diff --git a/test/reference/push-group-path-offset.mask.rgb24.ref.png b/test/reference/push-group-path-offset.mask.rgb24.ref.png
new file mode 100644
index 0000000..b836a91
Binary files /dev/null and b/test/reference/push-group-path-offset.mask.rgb24.ref.png differ
diff --git a/test/reference/push-group.mask.argb32.ref.png b/test/reference/push-group.mask.argb32.ref.png
new file mode 100644
index 0000000..60f5eec
Binary files /dev/null and b/test/reference/push-group.mask.argb32.ref.png differ
diff --git a/test/reference/push-group.mask.rgb24.ref.png b/test/reference/push-group.mask.rgb24.ref.png
new file mode 100644
index 0000000..19f0a2b
Binary files /dev/null and b/test/reference/push-group.mask.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient-extend.mask.argb32.ref.png b/test/reference/radial-gradient-extend.mask.argb32.ref.png
new file mode 100644
index 0000000..3d7de5e
Binary files /dev/null and b/test/reference/radial-gradient-extend.mask.argb32.ref.png differ
diff --git a/test/reference/radial-gradient-extend.mask.rgb24.ref.png b/test/reference/radial-gradient-extend.mask.rgb24.ref.png
new file mode 100644
index 0000000..3d7de5e
Binary files /dev/null and b/test/reference/radial-gradient-extend.mask.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient-mask-source.mask.argb32.ref.png b/test/reference/radial-gradient-mask-source.mask.argb32.ref.png
new file mode 100644
index 0000000..2bf65b3
Binary files /dev/null and b/test/reference/radial-gradient-mask-source.mask.argb32.ref.png differ
diff --git a/test/reference/radial-gradient-mask-source.mask.rgb24.ref.png b/test/reference/radial-gradient-mask-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..5533519
Binary files /dev/null and b/test/reference/radial-gradient-mask-source.mask.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient-mask.mask.argb32.ref.png b/test/reference/radial-gradient-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..4db39aa
Binary files /dev/null and b/test/reference/radial-gradient-mask.mask.argb32.ref.png differ
diff --git a/test/reference/radial-gradient-mask.mask.rgb24.ref.png b/test/reference/radial-gradient-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..4db39aa
Binary files /dev/null and b/test/reference/radial-gradient-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient-one-stop.mask.argb32.ref.png b/test/reference/radial-gradient-one-stop.mask.argb32.ref.png
new file mode 100644
index 0000000..fb35be6
Binary files /dev/null and b/test/reference/radial-gradient-one-stop.mask.argb32.ref.png differ
diff --git a/test/reference/radial-gradient-one-stop.mask.rgb24.ref.png b/test/reference/radial-gradient-one-stop.mask.rgb24.ref.png
new file mode 100644
index 0000000..fb35be6
Binary files /dev/null and b/test/reference/radial-gradient-one-stop.mask.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient-source.mask.argb32.ref.png b/test/reference/radial-gradient-source.mask.argb32.ref.png
new file mode 100644
index 0000000..4ab4796
Binary files /dev/null and b/test/reference/radial-gradient-source.mask.argb32.ref.png differ
diff --git a/test/reference/radial-gradient-source.mask.rgb24.ref.png b/test/reference/radial-gradient-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..afaa241
Binary files /dev/null and b/test/reference/radial-gradient-source.mask.rgb24.ref.png differ
diff --git a/test/reference/radial-gradient.mask.argb32.ref.png b/test/reference/radial-gradient.mask.argb32.ref.png
new file mode 100644
index 0000000..a2cbbc8
Binary files /dev/null and b/test/reference/radial-gradient.mask.argb32.ref.png differ
diff --git a/test/reference/radial-gradient.mask.rgb24.ref.png b/test/reference/radial-gradient.mask.rgb24.ref.png
new file mode 100644
index 0000000..a2cbbc8
Binary files /dev/null and b/test/reference/radial-gradient.mask.rgb24.ref.png differ
diff --git a/test/reference/radial-outer-focus.base.argb32.ref.png b/test/reference/radial-outer-focus.base.argb32.ref.png
new file mode 100644
index 0000000..21f0bf6
Binary files /dev/null and b/test/reference/radial-outer-focus.base.argb32.ref.png differ
diff --git a/test/reference/radial-outer-focus.base.rgb24.ref.png b/test/reference/radial-outer-focus.base.rgb24.ref.png
new file mode 100644
index 0000000..21f0bf6
Binary files /dev/null and b/test/reference/radial-outer-focus.base.rgb24.ref.png differ
diff --git a/test/reference/radial-outer-focus.mask.argb32.ref.png b/test/reference/radial-outer-focus.mask.argb32.ref.png
new file mode 100644
index 0000000..21f0bf6
Binary files /dev/null and b/test/reference/radial-outer-focus.mask.argb32.ref.png differ
diff --git a/test/reference/radial-outer-focus.mask.rgb24.ref.png b/test/reference/radial-outer-focus.mask.rgb24.ref.png
new file mode 100644
index 0000000..21f0bf6
Binary files /dev/null and b/test/reference/radial-outer-focus.mask.rgb24.ref.png differ
diff --git a/test/reference/radial-outer-focus.traps.argb32.ref.png b/test/reference/radial-outer-focus.traps.argb32.ref.png
new file mode 100644
index 0000000..21f0bf6
Binary files /dev/null and b/test/reference/radial-outer-focus.traps.argb32.ref.png differ
diff --git a/test/reference/radial-outer-focus.traps.rgb24.ref.png b/test/reference/radial-outer-focus.traps.rgb24.ref.png
new file mode 100644
index 0000000..21f0bf6
Binary files /dev/null and b/test/reference/radial-outer-focus.traps.rgb24.ref.png differ
diff --git a/test/reference/random-clip.base.argb32.ref.png b/test/reference/random-clip.base.argb32.ref.png
new file mode 100644
index 0000000..85f7808
Binary files /dev/null and b/test/reference/random-clip.base.argb32.ref.png differ
diff --git a/test/reference/random-clip.base.rgb24.ref.png b/test/reference/random-clip.base.rgb24.ref.png
new file mode 100644
index 0000000..85f7808
Binary files /dev/null and b/test/reference/random-clip.base.rgb24.ref.png differ
diff --git a/test/reference/random-clip.mask.argb32.ref.png b/test/reference/random-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..41643cb
Binary files /dev/null and b/test/reference/random-clip.mask.argb32.ref.png differ
diff --git a/test/reference/random-clip.mask.rgb24.ref.png b/test/reference/random-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..41643cb
Binary files /dev/null and b/test/reference/random-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/random-intersections-curves-eo.mask.argb32.ref.png b/test/reference/random-intersections-curves-eo.mask.argb32.ref.png
new file mode 100644
index 0000000..c8b0c53
Binary files /dev/null and b/test/reference/random-intersections-curves-eo.mask.argb32.ref.png differ
diff --git a/test/reference/random-intersections-curves-eo.mask.rgb24.ref.png b/test/reference/random-intersections-curves-eo.mask.rgb24.ref.png
new file mode 100644
index 0000000..c8b0c53
Binary files /dev/null and b/test/reference/random-intersections-curves-eo.mask.rgb24.ref.png differ
diff --git a/test/reference/random-intersections-curves-nz.mask.argb32.ref.png b/test/reference/random-intersections-curves-nz.mask.argb32.ref.png
new file mode 100644
index 0000000..2678590
Binary files /dev/null and b/test/reference/random-intersections-curves-nz.mask.argb32.ref.png differ
diff --git a/test/reference/random-intersections-curves-nz.mask.rgb24.ref.png b/test/reference/random-intersections-curves-nz.mask.rgb24.ref.png
new file mode 100644
index 0000000..2678590
Binary files /dev/null and b/test/reference/random-intersections-curves-nz.mask.rgb24.ref.png differ
diff --git a/test/reference/random-intersections-eo.mask.argb32.ref.png b/test/reference/random-intersections-eo.mask.argb32.ref.png
new file mode 100644
index 0000000..0e8460e
Binary files /dev/null and b/test/reference/random-intersections-eo.mask.argb32.ref.png differ
diff --git a/test/reference/random-intersections-eo.mask.rgb24.ref.png b/test/reference/random-intersections-eo.mask.rgb24.ref.png
new file mode 100644
index 0000000..0e8460e
Binary files /dev/null and b/test/reference/random-intersections-eo.mask.rgb24.ref.png differ
diff --git a/test/reference/random-intersections-nonzero.mask.argb32.ref.png b/test/reference/random-intersections-nonzero.mask.argb32.ref.png
new file mode 100644
index 0000000..dfc2f33
Binary files /dev/null and b/test/reference/random-intersections-nonzero.mask.argb32.ref.png differ
diff --git a/test/reference/random-intersections-nonzero.mask.rgb24.ref.png b/test/reference/random-intersections-nonzero.mask.rgb24.ref.png
new file mode 100644
index 0000000..dfc2f33
Binary files /dev/null and b/test/reference/random-intersections-nonzero.mask.rgb24.ref.png differ
diff --git a/test/reference/raster-source.mask.argb32.ref.png b/test/reference/raster-source.mask.argb32.ref.png
new file mode 100644
index 0000000..ac5e560
Binary files /dev/null and b/test/reference/raster-source.mask.argb32.ref.png differ
diff --git a/test/reference/raster-source.mask.rgb24.ref.png b/test/reference/raster-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..ac5e560
Binary files /dev/null and b/test/reference/raster-source.mask.rgb24.ref.png differ
diff --git a/test/reference/rectangle-rounding-error.mask.argb32.ref.png b/test/reference/rectangle-rounding-error.mask.argb32.ref.png
new file mode 100644
index 0000000..6cc1b21
Binary files /dev/null and b/test/reference/rectangle-rounding-error.mask.argb32.ref.png differ
diff --git a/test/reference/rectangle-rounding-error.mask.rgb24.ref.png b/test/reference/rectangle-rounding-error.mask.rgb24.ref.png
new file mode 100644
index 0000000..6cc1b21
Binary files /dev/null and b/test/reference/rectangle-rounding-error.mask.rgb24.ref.png differ
diff --git a/test/reference/rectilinear-dash.mask.argb32.ref.png b/test/reference/rectilinear-dash.mask.argb32.ref.png
new file mode 100644
index 0000000..33e7851
Binary files /dev/null and b/test/reference/rectilinear-dash.mask.argb32.ref.png differ
diff --git a/test/reference/rectilinear-dash.mask.rgb24.ref.png b/test/reference/rectilinear-dash.mask.rgb24.ref.png
new file mode 100644
index 0000000..33e7851
Binary files /dev/null and b/test/reference/rectilinear-dash.mask.rgb24.ref.png differ
diff --git a/test/reference/rectilinear-fill.mask.argb32.ref.png b/test/reference/rectilinear-fill.mask.argb32.ref.png
new file mode 100644
index 0000000..dbaf383
Binary files /dev/null and b/test/reference/rectilinear-fill.mask.argb32.ref.png differ
diff --git a/test/reference/rectilinear-fill.mask.rgb24.ref.png b/test/reference/rectilinear-fill.mask.rgb24.ref.png
new file mode 100644
index 0000000..dbaf383
Binary files /dev/null and b/test/reference/rectilinear-fill.mask.rgb24.ref.png differ
diff --git a/test/reference/rectilinear-grid.mask.argb32.ref.png b/test/reference/rectilinear-grid.mask.argb32.ref.png
new file mode 100644
index 0000000..8d47ef5
Binary files /dev/null and b/test/reference/rectilinear-grid.mask.argb32.ref.png differ
diff --git a/test/reference/rectilinear-grid.mask.rgb24.ref.png b/test/reference/rectilinear-grid.mask.rgb24.ref.png
new file mode 100644
index 0000000..8d47ef5
Binary files /dev/null and b/test/reference/rectilinear-grid.mask.rgb24.ref.png differ
diff --git a/test/reference/rectilinear-miter-limit.mask.argb32.ref.png b/test/reference/rectilinear-miter-limit.mask.argb32.ref.png
new file mode 100644
index 0000000..d64d581
Binary files /dev/null and b/test/reference/rectilinear-miter-limit.mask.argb32.ref.png differ
diff --git a/test/reference/rectilinear-miter-limit.mask.rgb24.ref.png b/test/reference/rectilinear-miter-limit.mask.rgb24.ref.png
new file mode 100644
index 0000000..d64d581
Binary files /dev/null and b/test/reference/rectilinear-miter-limit.mask.rgb24.ref.png differ
diff --git a/test/reference/rectilinear-stroke.mask.argb32.ref.png b/test/reference/rectilinear-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..260909b
Binary files /dev/null and b/test/reference/rectilinear-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/rectilinear-stroke.mask.rgb24.ref.png b/test/reference/rectilinear-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..260909b
Binary files /dev/null and b/test/reference/rectilinear-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/reflected-stroke.mask.argb32.ref.png b/test/reference/reflected-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..9a7d6bc
Binary files /dev/null and b/test/reference/reflected-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/reflected-stroke.mask.rgb24.ref.png b/test/reference/reflected-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..9a7d6bc
Binary files /dev/null and b/test/reference/reflected-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/rel-path.mask.argb32.ref.png b/test/reference/rel-path.mask.argb32.ref.png
new file mode 100644
index 0000000..67fe178
Binary files /dev/null and b/test/reference/rel-path.mask.argb32.ref.png differ
diff --git a/test/reference/rel-path.mask.rgb24.ref.png b/test/reference/rel-path.mask.rgb24.ref.png
new file mode 100644
index 0000000..78d8a08
Binary files /dev/null and b/test/reference/rel-path.mask.rgb24.ref.png differ
diff --git a/test/reference/rgb24-ignore-alpha.mask.argb32.ref.png b/test/reference/rgb24-ignore-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..922eddd
Binary files /dev/null and b/test/reference/rgb24-ignore-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/rgb24-ignore-alpha.mask.rgb24.ref.png b/test/reference/rgb24-ignore-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..922eddd
Binary files /dev/null and b/test/reference/rgb24-ignore-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/rotate-clip-image-surface-paint.mask.argb32.ref.png b/test/reference/rotate-clip-image-surface-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..7f74b2b
Binary files /dev/null and b/test/reference/rotate-clip-image-surface-paint.mask.argb32.ref.png differ
diff --git a/test/reference/rotate-clip-image-surface-paint.mask.rgb24.ref.png b/test/reference/rotate-clip-image-surface-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..7f74b2b
Binary files /dev/null and b/test/reference/rotate-clip-image-surface-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/rotate-image-surface-paint.mask.argb32.ref.png b/test/reference/rotate-image-surface-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..06a4820
Binary files /dev/null and b/test/reference/rotate-image-surface-paint.mask.argb32.ref.png differ
diff --git a/test/reference/rotate-image-surface-paint.mask.rgb24.ref.png b/test/reference/rotate-image-surface-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..06a4820
Binary files /dev/null and b/test/reference/rotate-image-surface-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/rotated-clip.mask.argb32.ref.png b/test/reference/rotated-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..8168f9d
Binary files /dev/null and b/test/reference/rotated-clip.mask.argb32.ref.png differ
diff --git a/test/reference/rotated-clip.mask.rgb24.ref.png b/test/reference/rotated-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..8168f9d
Binary files /dev/null and b/test/reference/rotated-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/rounded-rectangle-fill.mask.argb32.ref.png b/test/reference/rounded-rectangle-fill.mask.argb32.ref.png
new file mode 100644
index 0000000..3232c07
Binary files /dev/null and b/test/reference/rounded-rectangle-fill.mask.argb32.ref.png differ
diff --git a/test/reference/rounded-rectangle-fill.mask.rgb24.ref.png b/test/reference/rounded-rectangle-fill.mask.rgb24.ref.png
new file mode 100644
index 0000000..3232c07
Binary files /dev/null and b/test/reference/rounded-rectangle-fill.mask.rgb24.ref.png differ
diff --git a/test/reference/rounded-rectangle-stroke.mask.argb32.ref.png b/test/reference/rounded-rectangle-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..3f2a1fb
Binary files /dev/null and b/test/reference/rounded-rectangle-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/rounded-rectangle-stroke.mask.rgb24.ref.png b/test/reference/rounded-rectangle-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..3f2a1fb
Binary files /dev/null and b/test/reference/rounded-rectangle-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/scale-down-source-surface-paint.mask.argb32.ref.png b/test/reference/scale-down-source-surface-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..7477094
Binary files /dev/null and b/test/reference/scale-down-source-surface-paint.mask.argb32.ref.png differ
diff --git a/test/reference/scale-down-source-surface-paint.mask.rgb24.ref.png b/test/reference/scale-down-source-surface-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..7477094
Binary files /dev/null and b/test/reference/scale-down-source-surface-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/scale-offset-image.mask.argb32.ref.png b/test/reference/scale-offset-image.mask.argb32.ref.png
new file mode 100644
index 0000000..ab1ced8
Binary files /dev/null and b/test/reference/scale-offset-image.mask.argb32.ref.png differ
diff --git a/test/reference/scale-offset-image.mask.rgb24.ref.png b/test/reference/scale-offset-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..ab1ced8
Binary files /dev/null and b/test/reference/scale-offset-image.mask.rgb24.ref.png differ
diff --git a/test/reference/scale-offset-similar.mask.argb32.ref.png b/test/reference/scale-offset-similar.mask.argb32.ref.png
new file mode 100644
index 0000000..ab1ced8
Binary files /dev/null and b/test/reference/scale-offset-similar.mask.argb32.ref.png differ
diff --git a/test/reference/scale-offset-similar.mask.rgb24.ref.png b/test/reference/scale-offset-similar.mask.rgb24.ref.png
new file mode 100644
index 0000000..ab1ced8
Binary files /dev/null and b/test/reference/scale-offset-similar.mask.rgb24.ref.png differ
diff --git a/test/reference/scale-source-surface-paint.mask.argb32.ref.png b/test/reference/scale-source-surface-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..e159d15
Binary files /dev/null and b/test/reference/scale-source-surface-paint.mask.argb32.ref.png differ
diff --git a/test/reference/scale-source-surface-paint.mask.rgb24.ref.png b/test/reference/scale-source-surface-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..3491a7c
Binary files /dev/null and b/test/reference/scale-source-surface-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/select-font-face.mask.argb32.ref.png b/test/reference/select-font-face.mask.argb32.ref.png
new file mode 100644
index 0000000..1334a9a
Binary files /dev/null and b/test/reference/select-font-face.mask.argb32.ref.png differ
diff --git a/test/reference/select-font-face.mask.rgb24.ref.png b/test/reference/select-font-face.mask.rgb24.ref.png
new file mode 100644
index 0000000..1334a9a
Binary files /dev/null and b/test/reference/select-font-face.mask.rgb24.ref.png differ
diff --git a/test/reference/select-font-face.traps.argb32.ref.png b/test/reference/select-font-face.traps.argb32.ref.png
new file mode 100644
index 0000000..1334a9a
Binary files /dev/null and b/test/reference/select-font-face.traps.argb32.ref.png differ
diff --git a/test/reference/select-font-face.traps.rgb24.ref.png b/test/reference/select-font-face.traps.rgb24.ref.png
new file mode 100644
index 0000000..1334a9a
Binary files /dev/null and b/test/reference/select-font-face.traps.rgb24.ref.png differ
diff --git a/test/reference/self-copy-overlap.mask.argb32.ref.png b/test/reference/self-copy-overlap.mask.argb32.ref.png
new file mode 100644
index 0000000..a70e819
Binary files /dev/null and b/test/reference/self-copy-overlap.mask.argb32.ref.png differ
diff --git a/test/reference/self-copy-overlap.mask.rgb24.ref.png b/test/reference/self-copy-overlap.mask.rgb24.ref.png
new file mode 100644
index 0000000..e9cd7b5
Binary files /dev/null and b/test/reference/self-copy-overlap.mask.rgb24.ref.png differ
diff --git a/test/reference/self-copy.mask.argb32.ref.png b/test/reference/self-copy.mask.argb32.ref.png
new file mode 100644
index 0000000..d8221d8
Binary files /dev/null and b/test/reference/self-copy.mask.argb32.ref.png differ
diff --git a/test/reference/self-copy.mask.rgb24.ref.png b/test/reference/self-copy.mask.rgb24.ref.png
new file mode 100644
index 0000000..d8221d8
Binary files /dev/null and b/test/reference/self-copy.mask.rgb24.ref.png differ
diff --git a/test/reference/self-intersecting.mask.argb32.ref.png b/test/reference/self-intersecting.mask.argb32.ref.png
new file mode 100644
index 0000000..d554d83
Binary files /dev/null and b/test/reference/self-intersecting.mask.argb32.ref.png differ
diff --git a/test/reference/self-intersecting.mask.rgb24.ref.png b/test/reference/self-intersecting.mask.rgb24.ref.png
new file mode 100644
index 0000000..d554d83
Binary files /dev/null and b/test/reference/self-intersecting.mask.rgb24.ref.png differ
diff --git a/test/reference/set-source.mask.argb32.ref.png b/test/reference/set-source.mask.argb32.ref.png
new file mode 100644
index 0000000..222b372
Binary files /dev/null and b/test/reference/set-source.mask.argb32.ref.png differ
diff --git a/test/reference/set-source.mask.rgb24.ref.png b/test/reference/set-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..5e13c82
Binary files /dev/null and b/test/reference/set-source.mask.rgb24.ref.png differ
diff --git a/test/reference/shape-general-convex.mask.argb32.ref.png b/test/reference/shape-general-convex.mask.argb32.ref.png
new file mode 100644
index 0000000..b4d4df7
Binary files /dev/null and b/test/reference/shape-general-convex.mask.argb32.ref.png differ
diff --git a/test/reference/shape-general-convex.mask.rgb24.ref.png b/test/reference/shape-general-convex.mask.rgb24.ref.png
new file mode 100644
index 0000000..b4d4df7
Binary files /dev/null and b/test/reference/shape-general-convex.mask.rgb24.ref.png differ
diff --git a/test/reference/shape-sierpinski.mask.argb32.ref.png b/test/reference/shape-sierpinski.mask.argb32.ref.png
new file mode 100644
index 0000000..ac98557
Binary files /dev/null and b/test/reference/shape-sierpinski.mask.argb32.ref.png differ
diff --git a/test/reference/shape-sierpinski.mask.rgb24.ref.png b/test/reference/shape-sierpinski.mask.rgb24.ref.png
new file mode 100644
index 0000000..ac98557
Binary files /dev/null and b/test/reference/shape-sierpinski.mask.rgb24.ref.png differ
diff --git a/test/reference/show-glyphs-advance.mask.argb32.ref.png b/test/reference/show-glyphs-advance.mask.argb32.ref.png
new file mode 100644
index 0000000..e65ad05
Binary files /dev/null and b/test/reference/show-glyphs-advance.mask.argb32.ref.png differ
diff --git a/test/reference/show-glyphs-advance.mask.rgb24.ref.png b/test/reference/show-glyphs-advance.mask.rgb24.ref.png
new file mode 100644
index 0000000..e65ad05
Binary files /dev/null and b/test/reference/show-glyphs-advance.mask.rgb24.ref.png differ
diff --git a/test/reference/show-glyphs-advance.traps.argb32.ref.png b/test/reference/show-glyphs-advance.traps.argb32.ref.png
new file mode 100644
index 0000000..e65ad05
Binary files /dev/null and b/test/reference/show-glyphs-advance.traps.argb32.ref.png differ
diff --git a/test/reference/show-glyphs-advance.traps.rgb24.ref.png b/test/reference/show-glyphs-advance.traps.rgb24.ref.png
new file mode 100644
index 0000000..e65ad05
Binary files /dev/null and b/test/reference/show-glyphs-advance.traps.rgb24.ref.png differ
diff --git a/test/reference/show-glyphs-many.mask.argb32.ref.png b/test/reference/show-glyphs-many.mask.argb32.ref.png
new file mode 100644
index 0000000..b638015
Binary files /dev/null and b/test/reference/show-glyphs-many.mask.argb32.ref.png differ
diff --git a/test/reference/show-glyphs-many.mask.rgb24.ref.png b/test/reference/show-glyphs-many.mask.rgb24.ref.png
new file mode 100644
index 0000000..b638015
Binary files /dev/null and b/test/reference/show-glyphs-many.mask.rgb24.ref.png differ
diff --git a/test/reference/show-text-current-point.mask.argb32.ref.png b/test/reference/show-text-current-point.mask.argb32.ref.png
new file mode 100644
index 0000000..d60d4ac
Binary files /dev/null and b/test/reference/show-text-current-point.mask.argb32.ref.png differ
diff --git a/test/reference/show-text-current-point.mask.rgb24.ref.png b/test/reference/show-text-current-point.mask.rgb24.ref.png
new file mode 100644
index 0000000..d60d4ac
Binary files /dev/null and b/test/reference/show-text-current-point.mask.rgb24.ref.png differ
diff --git a/test/reference/show-text-current-point.traps.argb32.ref.png b/test/reference/show-text-current-point.traps.argb32.ref.png
new file mode 100644
index 0000000..d60d4ac
Binary files /dev/null and b/test/reference/show-text-current-point.traps.argb32.ref.png differ
diff --git a/test/reference/show-text-current-point.traps.rgb24.ref.png b/test/reference/show-text-current-point.traps.rgb24.ref.png
new file mode 100644
index 0000000..d60d4ac
Binary files /dev/null and b/test/reference/show-text-current-point.traps.rgb24.ref.png differ
diff --git a/test/reference/skew-extreme.mask.argb32.ref.png b/test/reference/skew-extreme.mask.argb32.ref.png
new file mode 100644
index 0000000..5ccd8c0
Binary files /dev/null and b/test/reference/skew-extreme.mask.argb32.ref.png differ
diff --git a/test/reference/skew-extreme.mask.rgb24.ref.png b/test/reference/skew-extreme.mask.rgb24.ref.png
new file mode 100644
index 0000000..5ccd8c0
Binary files /dev/null and b/test/reference/skew-extreme.mask.rgb24.ref.png differ
diff --git a/test/reference/smask-fill.mask.argb32.ref.png b/test/reference/smask-fill.mask.argb32.ref.png
new file mode 100644
index 0000000..84e1755
Binary files /dev/null and b/test/reference/smask-fill.mask.argb32.ref.png differ
diff --git a/test/reference/smask-fill.mask.rgb24.ref.png b/test/reference/smask-fill.mask.rgb24.ref.png
new file mode 100644
index 0000000..84e1755
Binary files /dev/null and b/test/reference/smask-fill.mask.rgb24.ref.png differ
diff --git a/test/reference/smask-image-mask.mask.argb32.ref.png b/test/reference/smask-image-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..12063bd
Binary files /dev/null and b/test/reference/smask-image-mask.mask.argb32.ref.png differ
diff --git a/test/reference/smask-image-mask.mask.rgb24.ref.png b/test/reference/smask-image-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..12063bd
Binary files /dev/null and b/test/reference/smask-image-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/smask-mask.mask.argb32.ref.png b/test/reference/smask-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..80329c2
Binary files /dev/null and b/test/reference/smask-mask.mask.argb32.ref.png differ
diff --git a/test/reference/smask-mask.mask.rgb24.ref.png b/test/reference/smask-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..80329c2
Binary files /dev/null and b/test/reference/smask-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/smask-paint.mask.argb32.ref.png b/test/reference/smask-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..95af29a
Binary files /dev/null and b/test/reference/smask-paint.mask.argb32.ref.png differ
diff --git a/test/reference/smask-paint.mask.rgb24.ref.png b/test/reference/smask-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..95af29a
Binary files /dev/null and b/test/reference/smask-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/smask-stroke.mask.argb32.ref.png b/test/reference/smask-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..d7b56e5
Binary files /dev/null and b/test/reference/smask-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/smask-stroke.mask.rgb24.ref.png b/test/reference/smask-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..d7b56e5
Binary files /dev/null and b/test/reference/smask-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/smask-text.mask.argb32.ref.png b/test/reference/smask-text.mask.argb32.ref.png
new file mode 100644
index 0000000..344ac20
Binary files /dev/null and b/test/reference/smask-text.mask.argb32.ref.png differ
diff --git a/test/reference/smask-text.mask.rgb24.ref.png b/test/reference/smask-text.mask.rgb24.ref.png
new file mode 100644
index 0000000..344ac20
Binary files /dev/null and b/test/reference/smask-text.mask.rgb24.ref.png differ
diff --git a/test/reference/smask-text.traps.argb32.ref.png b/test/reference/smask-text.traps.argb32.ref.png
new file mode 100644
index 0000000..66ef289
Binary files /dev/null and b/test/reference/smask-text.traps.argb32.ref.png differ
diff --git a/test/reference/smask-text.traps.rgb24.ref.png b/test/reference/smask-text.traps.rgb24.ref.png
new file mode 100644
index 0000000..66ef289
Binary files /dev/null and b/test/reference/smask-text.traps.rgb24.ref.png differ
diff --git a/test/reference/smask.mask.argb32.ref.png b/test/reference/smask.mask.argb32.ref.png
new file mode 100644
index 0000000..dab308d
Binary files /dev/null and b/test/reference/smask.mask.argb32.ref.png differ
diff --git a/test/reference/smask.mask.rgb24.ref.png b/test/reference/smask.mask.rgb24.ref.png
new file mode 100644
index 0000000..dab308d
Binary files /dev/null and b/test/reference/smask.mask.rgb24.ref.png differ
diff --git a/test/reference/smask.traps.argb32.ref.png b/test/reference/smask.traps.argb32.ref.png
new file mode 100644
index 0000000..357e8e7
Binary files /dev/null and b/test/reference/smask.traps.argb32.ref.png differ
diff --git a/test/reference/smask.traps.rgb24.ref.png b/test/reference/smask.traps.rgb24.ref.png
new file mode 100644
index 0000000..357e8e7
Binary files /dev/null and b/test/reference/smask.traps.rgb24.ref.png differ
diff --git a/test/reference/solid-pattern-cache-stress.mask.argb32.ref.png b/test/reference/solid-pattern-cache-stress.mask.argb32.ref.png
new file mode 100644
index 0000000..08a2ce1
Binary files /dev/null and b/test/reference/solid-pattern-cache-stress.mask.argb32.ref.png differ
diff --git a/test/reference/solid-pattern-cache-stress.mask.rgb24.ref.png b/test/reference/solid-pattern-cache-stress.mask.rgb24.ref.png
new file mode 100644
index 0000000..08a2ce1
Binary files /dev/null and b/test/reference/solid-pattern-cache-stress.mask.rgb24.ref.png differ
diff --git a/test/reference/source-clip-scale.mask.argb32.ref.png b/test/reference/source-clip-scale.mask.argb32.ref.png
new file mode 100644
index 0000000..4b63ad9
Binary files /dev/null and b/test/reference/source-clip-scale.mask.argb32.ref.png differ
diff --git a/test/reference/source-clip-scale.mask.rgb24.ref.png b/test/reference/source-clip-scale.mask.rgb24.ref.png
new file mode 100644
index 0000000..4b63ad9
Binary files /dev/null and b/test/reference/source-clip-scale.mask.rgb24.ref.png differ
diff --git a/test/reference/source-clip.mask.argb32.ref.png b/test/reference/source-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..821bc6c
Binary files /dev/null and b/test/reference/source-clip.mask.argb32.ref.png differ
diff --git a/test/reference/source-clip.mask.rgb24.ref.png b/test/reference/source-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..821bc6c
Binary files /dev/null and b/test/reference/source-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/source-surface-scale-paint.mask.argb32.ref.png b/test/reference/source-surface-scale-paint.mask.argb32.ref.png
new file mode 100644
index 0000000..087ef75
Binary files /dev/null and b/test/reference/source-surface-scale-paint.mask.argb32.ref.png differ
diff --git a/test/reference/source-surface-scale-paint.mask.rgb24.ref.png b/test/reference/source-surface-scale-paint.mask.rgb24.ref.png
new file mode 100644
index 0000000..322af21
Binary files /dev/null and b/test/reference/source-surface-scale-paint.mask.rgb24.ref.png differ
diff --git a/test/reference/spline-decomposition.mask.argb32.ref.png b/test/reference/spline-decomposition.mask.argb32.ref.png
new file mode 100644
index 0000000..e93e621
Binary files /dev/null and b/test/reference/spline-decomposition.mask.argb32.ref.png differ
diff --git a/test/reference/spline-decomposition.mask.rgb24.ref.png b/test/reference/spline-decomposition.mask.rgb24.ref.png
new file mode 100644
index 0000000..e93e621
Binary files /dev/null and b/test/reference/spline-decomposition.mask.rgb24.ref.png differ
diff --git a/test/reference/stride-12-image.base.argb32.ref.png b/test/reference/stride-12-image.base.argb32.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/stride-12-image.base.argb32.ref.png differ
diff --git a/test/reference/stride-12-image.base.rgb24.ref.png b/test/reference/stride-12-image.base.rgb24.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/stride-12-image.base.rgb24.ref.png differ
diff --git a/test/reference/stride-12-image.mask.argb32.ref.png b/test/reference/stride-12-image.mask.argb32.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/stride-12-image.mask.argb32.ref.png differ
diff --git a/test/reference/stride-12-image.mask.rgb24.ref.png b/test/reference/stride-12-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/stride-12-image.mask.rgb24.ref.png differ
diff --git a/test/reference/stride-12-image.traps.argb32.ref.png b/test/reference/stride-12-image.traps.argb32.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/stride-12-image.traps.argb32.ref.png differ
diff --git a/test/reference/stride-12-image.traps.rgb24.ref.png b/test/reference/stride-12-image.traps.rgb24.ref.png
new file mode 100644
index 0000000..4428456
Binary files /dev/null and b/test/reference/stride-12-image.traps.rgb24.ref.png differ
diff --git a/test/reference/stroke-ctm-caps.mask.argb32.ref.png b/test/reference/stroke-ctm-caps.mask.argb32.ref.png
new file mode 100644
index 0000000..3a77d3e
Binary files /dev/null and b/test/reference/stroke-ctm-caps.mask.argb32.ref.png differ
diff --git a/test/reference/stroke-ctm-caps.mask.rgb24.ref.png b/test/reference/stroke-ctm-caps.mask.rgb24.ref.png
new file mode 100644
index 0000000..3a77d3e
Binary files /dev/null and b/test/reference/stroke-ctm-caps.mask.rgb24.ref.png differ
diff --git a/test/reference/stroke-image.mask.argb32.ref.png b/test/reference/stroke-image.mask.argb32.ref.png
new file mode 100644
index 0000000..03a07eb
Binary files /dev/null and b/test/reference/stroke-image.mask.argb32.ref.png differ
diff --git a/test/reference/stroke-image.mask.rgb24.ref.png b/test/reference/stroke-image.mask.rgb24.ref.png
new file mode 100644
index 0000000..03a07eb
Binary files /dev/null and b/test/reference/stroke-image.mask.rgb24.ref.png differ
diff --git a/test/reference/stroke-open-box.mask.argb32.ref.png b/test/reference/stroke-open-box.mask.argb32.ref.png
new file mode 100644
index 0000000..b5f5bd5
Binary files /dev/null and b/test/reference/stroke-open-box.mask.argb32.ref.png differ
diff --git a/test/reference/stroke-open-box.mask.rgb24.ref.png b/test/reference/stroke-open-box.mask.rgb24.ref.png
new file mode 100644
index 0000000..b5f5bd5
Binary files /dev/null and b/test/reference/stroke-open-box.mask.rgb24.ref.png differ
diff --git a/test/reference/stroke-pattern.base.argb32.ref.png b/test/reference/stroke-pattern.base.argb32.ref.png
new file mode 100644
index 0000000..67bb031
Binary files /dev/null and b/test/reference/stroke-pattern.base.argb32.ref.png differ
diff --git a/test/reference/stroke-pattern.base.rgb24.ref.png b/test/reference/stroke-pattern.base.rgb24.ref.png
new file mode 100644
index 0000000..67bb031
Binary files /dev/null and b/test/reference/stroke-pattern.base.rgb24.ref.png differ
diff --git a/test/reference/stroke-pattern.mask.argb32.ref.png b/test/reference/stroke-pattern.mask.argb32.ref.png
new file mode 100644
index 0000000..38ff6ad
Binary files /dev/null and b/test/reference/stroke-pattern.mask.argb32.ref.png differ
diff --git a/test/reference/stroke-pattern.mask.rgb24.ref.png b/test/reference/stroke-pattern.mask.rgb24.ref.png
new file mode 100644
index 0000000..38ff6ad
Binary files /dev/null and b/test/reference/stroke-pattern.mask.rgb24.ref.png differ
diff --git a/test/reference/stroke-pattern.traps.argb32.ref.png b/test/reference/stroke-pattern.traps.argb32.ref.png
new file mode 100644
index 0000000..67bb031
Binary files /dev/null and b/test/reference/stroke-pattern.traps.argb32.ref.png differ
diff --git a/test/reference/stroke-pattern.traps.rgb24.ref.png b/test/reference/stroke-pattern.traps.rgb24.ref.png
new file mode 100644
index 0000000..67bb031
Binary files /dev/null and b/test/reference/stroke-pattern.traps.rgb24.ref.png differ
diff --git a/test/reference/subsurface-image-repeat.mask.argb32.ref.png b/test/reference/subsurface-image-repeat.mask.argb32.ref.png
new file mode 100644
index 0000000..3dd6306
Binary files /dev/null and b/test/reference/subsurface-image-repeat.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-image-repeat.mask.rgb24.ref.png b/test/reference/subsurface-image-repeat.mask.rgb24.ref.png
new file mode 100644
index 0000000..3dd6306
Binary files /dev/null and b/test/reference/subsurface-image-repeat.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface-modify-child.mask.argb32.ref.png b/test/reference/subsurface-modify-child.mask.argb32.ref.png
new file mode 100644
index 0000000..c37e22e
Binary files /dev/null and b/test/reference/subsurface-modify-child.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-modify-child.mask.rgb24.ref.png b/test/reference/subsurface-modify-child.mask.rgb24.ref.png
new file mode 100644
index 0000000..c37e22e
Binary files /dev/null and b/test/reference/subsurface-modify-child.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface-modify-parent.mask.argb32.ref.png b/test/reference/subsurface-modify-parent.mask.argb32.ref.png
new file mode 100644
index 0000000..c37e22e
Binary files /dev/null and b/test/reference/subsurface-modify-parent.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-modify-parent.mask.rgb24.ref.png b/test/reference/subsurface-modify-parent.mask.rgb24.ref.png
new file mode 100644
index 0000000..c37e22e
Binary files /dev/null and b/test/reference/subsurface-modify-parent.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface-outside-target.mask.argb32.ref.png b/test/reference/subsurface-outside-target.mask.argb32.ref.png
new file mode 100644
index 0000000..337cdd8
Binary files /dev/null and b/test/reference/subsurface-outside-target.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-outside-target.mask.rgb24.ref.png b/test/reference/subsurface-outside-target.mask.rgb24.ref.png
new file mode 100644
index 0000000..368936e
Binary files /dev/null and b/test/reference/subsurface-outside-target.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface-outside-target.traps.argb32.ref.png b/test/reference/subsurface-outside-target.traps.argb32.ref.png
new file mode 100644
index 0000000..337cdd8
Binary files /dev/null and b/test/reference/subsurface-outside-target.traps.argb32.ref.png differ
diff --git a/test/reference/subsurface-outside-target.traps.rgb24.ref.png b/test/reference/subsurface-outside-target.traps.rgb24.ref.png
new file mode 100644
index 0000000..368936e
Binary files /dev/null and b/test/reference/subsurface-outside-target.traps.rgb24.ref.png differ
diff --git a/test/reference/subsurface-pad.mask.argb32.ref.png b/test/reference/subsurface-pad.mask.argb32.ref.png
new file mode 100644
index 0000000..eeb9f8f
Binary files /dev/null and b/test/reference/subsurface-pad.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-pad.mask.rgb24.ref.png b/test/reference/subsurface-pad.mask.rgb24.ref.png
new file mode 100644
index 0000000..eeb9f8f
Binary files /dev/null and b/test/reference/subsurface-pad.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface-reflect.mask.argb32.ref.png b/test/reference/subsurface-reflect.mask.argb32.ref.png
new file mode 100644
index 0000000..55643f4
Binary files /dev/null and b/test/reference/subsurface-reflect.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-reflect.mask.rgb24.ref.png b/test/reference/subsurface-reflect.mask.rgb24.ref.png
new file mode 100644
index 0000000..55643f4
Binary files /dev/null and b/test/reference/subsurface-reflect.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface-repeat.mask.argb32.ref.png b/test/reference/subsurface-repeat.mask.argb32.ref.png
new file mode 100644
index 0000000..c37e22e
Binary files /dev/null and b/test/reference/subsurface-repeat.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-repeat.mask.rgb24.ref.png b/test/reference/subsurface-repeat.mask.rgb24.ref.png
new file mode 100644
index 0000000..c37e22e
Binary files /dev/null and b/test/reference/subsurface-repeat.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface-scale.base.argb32.ref.png b/test/reference/subsurface-scale.base.argb32.ref.png
new file mode 100644
index 0000000..69bb0fb
Binary files /dev/null and b/test/reference/subsurface-scale.base.argb32.ref.png differ
diff --git a/test/reference/subsurface-scale.base.rgb24.ref.png b/test/reference/subsurface-scale.base.rgb24.ref.png
new file mode 100644
index 0000000..69bb0fb
Binary files /dev/null and b/test/reference/subsurface-scale.base.rgb24.ref.png differ
diff --git a/test/reference/subsurface-scale.mask.argb32.ref.png b/test/reference/subsurface-scale.mask.argb32.ref.png
new file mode 100644
index 0000000..69bb0fb
Binary files /dev/null and b/test/reference/subsurface-scale.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-scale.mask.rgb24.ref.png b/test/reference/subsurface-scale.mask.rgb24.ref.png
new file mode 100644
index 0000000..69bb0fb
Binary files /dev/null and b/test/reference/subsurface-scale.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface-scale.traps.argb32.ref.png b/test/reference/subsurface-scale.traps.argb32.ref.png
new file mode 100644
index 0000000..69bb0fb
Binary files /dev/null and b/test/reference/subsurface-scale.traps.argb32.ref.png differ
diff --git a/test/reference/subsurface-scale.traps.rgb24.ref.png b/test/reference/subsurface-scale.traps.rgb24.ref.png
new file mode 100644
index 0000000..69bb0fb
Binary files /dev/null and b/test/reference/subsurface-scale.traps.rgb24.ref.png differ
diff --git a/test/reference/subsurface-similar-repeat.mask.argb32.ref.png b/test/reference/subsurface-similar-repeat.mask.argb32.ref.png
new file mode 100644
index 0000000..c37e22e
Binary files /dev/null and b/test/reference/subsurface-similar-repeat.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface-similar-repeat.mask.rgb24.ref.png b/test/reference/subsurface-similar-repeat.mask.rgb24.ref.png
new file mode 100644
index 0000000..c37e22e
Binary files /dev/null and b/test/reference/subsurface-similar-repeat.mask.rgb24.ref.png differ
diff --git a/test/reference/subsurface.mask.argb32.ref.png b/test/reference/subsurface.mask.argb32.ref.png
new file mode 100644
index 0000000..feeb5dc
Binary files /dev/null and b/test/reference/subsurface.mask.argb32.ref.png differ
diff --git a/test/reference/subsurface.mask.rgb24.ref.png b/test/reference/subsurface.mask.rgb24.ref.png
new file mode 100644
index 0000000..feeb5dc
Binary files /dev/null and b/test/reference/subsurface.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-big-scale-down.mask.argb32.ref.png b/test/reference/surface-pattern-big-scale-down.mask.argb32.ref.png
new file mode 100644
index 0000000..c050990
Binary files /dev/null and b/test/reference/surface-pattern-big-scale-down.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-big-scale-down.mask.rgb24.ref.png b/test/reference/surface-pattern-big-scale-down.mask.rgb24.ref.png
new file mode 100644
index 0000000..c050990
Binary files /dev/null and b/test/reference/surface-pattern-big-scale-down.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-operator.mask.argb32.ref.png b/test/reference/surface-pattern-operator.mask.argb32.ref.png
new file mode 100644
index 0000000..8178030
Binary files /dev/null and b/test/reference/surface-pattern-operator.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-operator.mask.rgb24.ref.png b/test/reference/surface-pattern-operator.mask.rgb24.ref.png
new file mode 100644
index 0000000..2378bdd
Binary files /dev/null and b/test/reference/surface-pattern-operator.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-none.mask.argb32.ref.png b/test/reference/surface-pattern-scale-down-extend-none.mask.argb32.ref.png
new file mode 100644
index 0000000..9df14cc
Binary files /dev/null and b/test/reference/surface-pattern-scale-down-extend-none.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-none.mask.rgb24.ref.png b/test/reference/surface-pattern-scale-down-extend-none.mask.rgb24.ref.png
new file mode 100644
index 0000000..9df14cc
Binary files /dev/null and b/test/reference/surface-pattern-scale-down-extend-none.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-pad.mask.argb32.ref.png b/test/reference/surface-pattern-scale-down-extend-pad.mask.argb32.ref.png
new file mode 100644
index 0000000..2ee9419
Binary files /dev/null and b/test/reference/surface-pattern-scale-down-extend-pad.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-pad.mask.rgb24.ref.png b/test/reference/surface-pattern-scale-down-extend-pad.mask.rgb24.ref.png
new file mode 100644
index 0000000..2ee9419
Binary files /dev/null and b/test/reference/surface-pattern-scale-down-extend-pad.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-reflect.mask.argb32.ref.png b/test/reference/surface-pattern-scale-down-extend-reflect.mask.argb32.ref.png
new file mode 100644
index 0000000..f2e93a7
Binary files /dev/null and b/test/reference/surface-pattern-scale-down-extend-reflect.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-reflect.mask.rgb24.ref.png b/test/reference/surface-pattern-scale-down-extend-reflect.mask.rgb24.ref.png
new file mode 100644
index 0000000..f2e93a7
Binary files /dev/null and b/test/reference/surface-pattern-scale-down-extend-reflect.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-repeat.mask.argb32.ref.png b/test/reference/surface-pattern-scale-down-extend-repeat.mask.argb32.ref.png
new file mode 100644
index 0000000..c5cff0f
Binary files /dev/null and b/test/reference/surface-pattern-scale-down-extend-repeat.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down-extend-repeat.mask.rgb24.ref.png b/test/reference/surface-pattern-scale-down-extend-repeat.mask.rgb24.ref.png
new file mode 100644
index 0000000..c5cff0f
Binary files /dev/null and b/test/reference/surface-pattern-scale-down-extend-repeat.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down.mask.argb32.ref.png b/test/reference/surface-pattern-scale-down.mask.argb32.ref.png
new file mode 100644
index 0000000..8bb58a2
Binary files /dev/null and b/test/reference/surface-pattern-scale-down.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-scale-down.mask.rgb24.ref.png b/test/reference/surface-pattern-scale-down.mask.rgb24.ref.png
new file mode 100644
index 0000000..8bb58a2
Binary files /dev/null and b/test/reference/surface-pattern-scale-down.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern-scale-up.mask.argb32.ref.png b/test/reference/surface-pattern-scale-up.mask.argb32.ref.png
new file mode 100644
index 0000000..e8d84e2
Binary files /dev/null and b/test/reference/surface-pattern-scale-up.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern-scale-up.mask.rgb24.ref.png b/test/reference/surface-pattern-scale-up.mask.rgb24.ref.png
new file mode 100644
index 0000000..e8d84e2
Binary files /dev/null and b/test/reference/surface-pattern-scale-up.mask.rgb24.ref.png differ
diff --git a/test/reference/surface-pattern.mask.argb32.ref.png b/test/reference/surface-pattern.mask.argb32.ref.png
new file mode 100644
index 0000000..079ebfb
Binary files /dev/null and b/test/reference/surface-pattern.mask.argb32.ref.png differ
diff --git a/test/reference/surface-pattern.mask.rgb24.ref.png b/test/reference/surface-pattern.mask.rgb24.ref.png
new file mode 100644
index 0000000..079ebfb
Binary files /dev/null and b/test/reference/surface-pattern.mask.rgb24.ref.png differ
diff --git a/test/reference/svg-surface-source.mask.argb32.ref.png b/test/reference/svg-surface-source.mask.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/svg-surface-source.mask.argb32.ref.png differ
diff --git a/test/reference/svg-surface-source.mask.rgb24.ref.png b/test/reference/svg-surface-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/svg-surface-source.mask.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-gray.mask.argb32.ref.png b/test/reference/text-antialias-gray.mask.argb32.ref.png
new file mode 100644
index 0000000..06b805e
Binary files /dev/null and b/test/reference/text-antialias-gray.mask.argb32.ref.png differ
diff --git a/test/reference/text-antialias-gray.mask.rgb24.ref.png b/test/reference/text-antialias-gray.mask.rgb24.ref.png
new file mode 100644
index 0000000..06b805e
Binary files /dev/null and b/test/reference/text-antialias-gray.mask.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-gray.traps.argb32.ref.png b/test/reference/text-antialias-gray.traps.argb32.ref.png
new file mode 100644
index 0000000..06b805e
Binary files /dev/null and b/test/reference/text-antialias-gray.traps.argb32.ref.png differ
diff --git a/test/reference/text-antialias-gray.traps.rgb24.ref.png b/test/reference/text-antialias-gray.traps.rgb24.ref.png
new file mode 100644
index 0000000..06b805e
Binary files /dev/null and b/test/reference/text-antialias-gray.traps.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-none.mask.argb32.ref.png b/test/reference/text-antialias-none.mask.argb32.ref.png
new file mode 100644
index 0000000..86c09cd
Binary files /dev/null and b/test/reference/text-antialias-none.mask.argb32.ref.png differ
diff --git a/test/reference/text-antialias-none.mask.rgb24.ref.png b/test/reference/text-antialias-none.mask.rgb24.ref.png
new file mode 100644
index 0000000..86c09cd
Binary files /dev/null and b/test/reference/text-antialias-none.mask.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-none.traps.argb32.ref.png b/test/reference/text-antialias-none.traps.argb32.ref.png
new file mode 100644
index 0000000..86c09cd
Binary files /dev/null and b/test/reference/text-antialias-none.traps.argb32.ref.png differ
diff --git a/test/reference/text-antialias-none.traps.rgb24.ref.png b/test/reference/text-antialias-none.traps.rgb24.ref.png
new file mode 100644
index 0000000..86c09cd
Binary files /dev/null and b/test/reference/text-antialias-none.traps.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-bgr.base.argb32.ref.png b/test/reference/text-antialias-subpixel-bgr.base.argb32.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel-bgr.base.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-bgr.base.rgb24.ref.png b/test/reference/text-antialias-subpixel-bgr.base.rgb24.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel-bgr.base.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-bgr.mask.argb32.ref.png b/test/reference/text-antialias-subpixel-bgr.mask.argb32.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel-bgr.mask.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-bgr.mask.rgb24.ref.png b/test/reference/text-antialias-subpixel-bgr.mask.rgb24.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel-bgr.mask.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-bgr.traps.argb32.ref.png b/test/reference/text-antialias-subpixel-bgr.traps.argb32.ref.png
new file mode 100644
index 0000000..a221472
Binary files /dev/null and b/test/reference/text-antialias-subpixel-bgr.traps.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-bgr.traps.rgb24.ref.png b/test/reference/text-antialias-subpixel-bgr.traps.rgb24.ref.png
new file mode 100644
index 0000000..a221472
Binary files /dev/null and b/test/reference/text-antialias-subpixel-bgr.traps.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-rgb.base.argb32.ref.png b/test/reference/text-antialias-subpixel-rgb.base.argb32.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel-rgb.base.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-rgb.base.rgb24.ref.png b/test/reference/text-antialias-subpixel-rgb.base.rgb24.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel-rgb.base.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-rgb.mask.argb32.ref.png b/test/reference/text-antialias-subpixel-rgb.mask.argb32.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel-rgb.mask.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-rgb.mask.rgb24.ref.png b/test/reference/text-antialias-subpixel-rgb.mask.rgb24.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel-rgb.mask.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-rgb.traps.argb32.ref.png b/test/reference/text-antialias-subpixel-rgb.traps.argb32.ref.png
new file mode 100644
index 0000000..af5e0ae
Binary files /dev/null and b/test/reference/text-antialias-subpixel-rgb.traps.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-rgb.traps.rgb24.ref.png b/test/reference/text-antialias-subpixel-rgb.traps.rgb24.ref.png
new file mode 100644
index 0000000..af5e0ae
Binary files /dev/null and b/test/reference/text-antialias-subpixel-rgb.traps.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vbgr.base.argb32.ref.png b/test/reference/text-antialias-subpixel-vbgr.base.argb32.ref.png
new file mode 100644
index 0000000..9fd35ea
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vbgr.base.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vbgr.base.rgb24.ref.png b/test/reference/text-antialias-subpixel-vbgr.base.rgb24.ref.png
new file mode 100644
index 0000000..9fd35ea
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vbgr.base.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vbgr.mask.argb32.ref.png b/test/reference/text-antialias-subpixel-vbgr.mask.argb32.ref.png
new file mode 100644
index 0000000..9fd35ea
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vbgr.mask.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vbgr.mask.rgb24.ref.png b/test/reference/text-antialias-subpixel-vbgr.mask.rgb24.ref.png
new file mode 100644
index 0000000..9fd35ea
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vbgr.mask.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vbgr.traps.argb32.ref.png b/test/reference/text-antialias-subpixel-vbgr.traps.argb32.ref.png
new file mode 100644
index 0000000..905579b
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vbgr.traps.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vbgr.traps.rgb24.ref.png b/test/reference/text-antialias-subpixel-vbgr.traps.rgb24.ref.png
new file mode 100644
index 0000000..905579b
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vbgr.traps.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vrgb.base.argb32.ref.png b/test/reference/text-antialias-subpixel-vrgb.base.argb32.ref.png
new file mode 100644
index 0000000..9fd35ea
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vrgb.base.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vrgb.base.rgb24.ref.png b/test/reference/text-antialias-subpixel-vrgb.base.rgb24.ref.png
new file mode 100644
index 0000000..9fd35ea
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vrgb.base.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vrgb.mask.argb32.ref.png b/test/reference/text-antialias-subpixel-vrgb.mask.argb32.ref.png
new file mode 100644
index 0000000..9fd35ea
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vrgb.mask.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vrgb.mask.rgb24.ref.png b/test/reference/text-antialias-subpixel-vrgb.mask.rgb24.ref.png
new file mode 100644
index 0000000..9fd35ea
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vrgb.mask.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vrgb.traps.argb32.ref.png b/test/reference/text-antialias-subpixel-vrgb.traps.argb32.ref.png
new file mode 100644
index 0000000..f7c5bef
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vrgb.traps.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel-vrgb.traps.rgb24.ref.png b/test/reference/text-antialias-subpixel-vrgb.traps.rgb24.ref.png
new file mode 100644
index 0000000..f7c5bef
Binary files /dev/null and b/test/reference/text-antialias-subpixel-vrgb.traps.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel.base.argb32.ref.png b/test/reference/text-antialias-subpixel.base.argb32.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel.base.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel.base.rgb24.ref.png b/test/reference/text-antialias-subpixel.base.rgb24.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel.base.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel.mask.argb32.ref.png b/test/reference/text-antialias-subpixel.mask.argb32.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel.mask.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel.mask.rgb24.ref.png b/test/reference/text-antialias-subpixel.mask.rgb24.ref.png
new file mode 100644
index 0000000..f8d5130
Binary files /dev/null and b/test/reference/text-antialias-subpixel.mask.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-subpixel.traps.argb32.ref.png b/test/reference/text-antialias-subpixel.traps.argb32.ref.png
new file mode 100644
index 0000000..af5e0ae
Binary files /dev/null and b/test/reference/text-antialias-subpixel.traps.argb32.ref.png differ
diff --git a/test/reference/text-antialias-subpixel.traps.rgb24.ref.png b/test/reference/text-antialias-subpixel.traps.rgb24.ref.png
new file mode 100644
index 0000000..af5e0ae
Binary files /dev/null and b/test/reference/text-antialias-subpixel.traps.rgb24.ref.png differ
diff --git a/test/reference/text-glyph-range.mask.argb32.ref.png b/test/reference/text-glyph-range.mask.argb32.ref.png
new file mode 100644
index 0000000..648fef5
Binary files /dev/null and b/test/reference/text-glyph-range.mask.argb32.ref.png differ
diff --git a/test/reference/text-glyph-range.mask.rgb24.ref.png b/test/reference/text-glyph-range.mask.rgb24.ref.png
new file mode 100644
index 0000000..648fef5
Binary files /dev/null and b/test/reference/text-glyph-range.mask.rgb24.ref.png differ
diff --git a/test/reference/text-glyph-range.traps.argb32.ref.png b/test/reference/text-glyph-range.traps.argb32.ref.png
new file mode 100644
index 0000000..3268699
Binary files /dev/null and b/test/reference/text-glyph-range.traps.argb32.ref.png differ
diff --git a/test/reference/text-glyph-range.traps.rgb24.ref.png b/test/reference/text-glyph-range.traps.rgb24.ref.png
new file mode 100644
index 0000000..3268699
Binary files /dev/null and b/test/reference/text-glyph-range.traps.rgb24.ref.png differ
diff --git a/test/reference/text-pattern.mask.argb32.ref.png b/test/reference/text-pattern.mask.argb32.ref.png
new file mode 100644
index 0000000..95410fa
Binary files /dev/null and b/test/reference/text-pattern.mask.argb32.ref.png differ
diff --git a/test/reference/text-pattern.mask.rgb24.ref.png b/test/reference/text-pattern.mask.rgb24.ref.png
new file mode 100644
index 0000000..a6b9e4c
Binary files /dev/null and b/test/reference/text-pattern.mask.rgb24.ref.png differ
diff --git a/test/reference/text-rotate.mask.argb32.ref.png b/test/reference/text-rotate.mask.argb32.ref.png
new file mode 100644
index 0000000..b455aab
Binary files /dev/null and b/test/reference/text-rotate.mask.argb32.ref.png differ
diff --git a/test/reference/text-rotate.mask.rgb24.ref.png b/test/reference/text-rotate.mask.rgb24.ref.png
new file mode 100644
index 0000000..b455aab
Binary files /dev/null and b/test/reference/text-rotate.mask.rgb24.ref.png differ
diff --git a/test/reference/text-rotate.traps.argb32.ref.png b/test/reference/text-rotate.traps.argb32.ref.png
new file mode 100644
index 0000000..ff3fe84
Binary files /dev/null and b/test/reference/text-rotate.traps.argb32.ref.png differ
diff --git a/test/reference/text-rotate.traps.rgb24.ref.png b/test/reference/text-rotate.traps.rgb24.ref.png
new file mode 100644
index 0000000..ff3fe84
Binary files /dev/null and b/test/reference/text-rotate.traps.rgb24.ref.png differ
diff --git a/test/reference/text-transform.mask.argb32.ref.png b/test/reference/text-transform.mask.argb32.ref.png
new file mode 100644
index 0000000..4603bc5
Binary files /dev/null and b/test/reference/text-transform.mask.argb32.ref.png differ
diff --git a/test/reference/text-transform.mask.rgb24.ref.png b/test/reference/text-transform.mask.rgb24.ref.png
new file mode 100644
index 0000000..4603bc5
Binary files /dev/null and b/test/reference/text-transform.mask.rgb24.ref.png differ
diff --git a/test/reference/tiger.mask.argb32.ref.png b/test/reference/tiger.mask.argb32.ref.png
new file mode 100644
index 0000000..85ae151
Binary files /dev/null and b/test/reference/tiger.mask.argb32.ref.png differ
diff --git a/test/reference/tiger.mask.rgb24.ref.png b/test/reference/tiger.mask.rgb24.ref.png
new file mode 100644
index 0000000..85ae151
Binary files /dev/null and b/test/reference/tiger.mask.rgb24.ref.png differ
diff --git a/test/reference/transforms.mask.argb32.ref.png b/test/reference/transforms.mask.argb32.ref.png
new file mode 100644
index 0000000..390bad4
Binary files /dev/null and b/test/reference/transforms.mask.argb32.ref.png differ
diff --git a/test/reference/transforms.mask.rgb24.ref.png b/test/reference/transforms.mask.rgb24.ref.png
new file mode 100644
index 0000000..390bad4
Binary files /dev/null and b/test/reference/transforms.mask.rgb24.ref.png differ
diff --git a/test/reference/translate-show-surface.mask.argb32.ref.png b/test/reference/translate-show-surface.mask.argb32.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/translate-show-surface.mask.argb32.ref.png differ
diff --git a/test/reference/translate-show-surface.mask.rgb24.ref.png b/test/reference/translate-show-surface.mask.rgb24.ref.png
new file mode 100644
index 0000000..0a145d9
Binary files /dev/null and b/test/reference/translate-show-surface.mask.rgb24.ref.png differ
diff --git a/test/reference/trap-clip.mask.argb32.ref.png b/test/reference/trap-clip.mask.argb32.ref.png
new file mode 100644
index 0000000..98cd0a2
Binary files /dev/null and b/test/reference/trap-clip.mask.argb32.ref.png differ
diff --git a/test/reference/trap-clip.mask.rgb24.ref.png b/test/reference/trap-clip.mask.rgb24.ref.png
new file mode 100644
index 0000000..c013153
Binary files /dev/null and b/test/reference/trap-clip.mask.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-gray.mask.argb32.ref.png b/test/reference/twin-antialias-gray.mask.argb32.ref.png
new file mode 100644
index 0000000..6b091af
Binary files /dev/null and b/test/reference/twin-antialias-gray.mask.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-gray.mask.rgb24.ref.png b/test/reference/twin-antialias-gray.mask.rgb24.ref.png
new file mode 100644
index 0000000..6b091af
Binary files /dev/null and b/test/reference/twin-antialias-gray.mask.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-mixed.mask.argb32.ref.png b/test/reference/twin-antialias-mixed.mask.argb32.ref.png
new file mode 100644
index 0000000..d6c406f
Binary files /dev/null and b/test/reference/twin-antialias-mixed.mask.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-mixed.mask.rgb24.ref.png b/test/reference/twin-antialias-mixed.mask.rgb24.ref.png
new file mode 100644
index 0000000..d6c406f
Binary files /dev/null and b/test/reference/twin-antialias-mixed.mask.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-none.mask.argb32.ref.png b/test/reference/twin-antialias-none.mask.argb32.ref.png
new file mode 100644
index 0000000..cb9628e
Binary files /dev/null and b/test/reference/twin-antialias-none.mask.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-none.mask.rgb24.ref.png b/test/reference/twin-antialias-none.mask.rgb24.ref.png
new file mode 100644
index 0000000..cb9628e
Binary files /dev/null and b/test/reference/twin-antialias-none.mask.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.mask.argb32.ref.png b/test/reference/twin-antialias-subpixel.mask.argb32.ref.png
new file mode 100644
index 0000000..6b091af
Binary files /dev/null and b/test/reference/twin-antialias-subpixel.mask.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.mask.rgb24.ref.png b/test/reference/twin-antialias-subpixel.mask.rgb24.ref.png
new file mode 100644
index 0000000..6b091af
Binary files /dev/null and b/test/reference/twin-antialias-subpixel.mask.rgb24.ref.png differ
diff --git a/test/reference/twin.mask.argb32.ref.png b/test/reference/twin.mask.argb32.ref.png
new file mode 100644
index 0000000..6b091af
Binary files /dev/null and b/test/reference/twin.mask.argb32.ref.png differ
diff --git a/test/reference/twin.mask.rgb24.ref.png b/test/reference/twin.mask.rgb24.ref.png
new file mode 100644
index 0000000..6b091af
Binary files /dev/null and b/test/reference/twin.mask.rgb24.ref.png differ
diff --git a/test/reference/unaligned-box.mask.argb32.ref.png b/test/reference/unaligned-box.mask.argb32.ref.png
new file mode 100644
index 0000000..ec7c489
Binary files /dev/null and b/test/reference/unaligned-box.mask.argb32.ref.png differ
diff --git a/test/reference/unaligned-box.mask.rgb24.ref.png b/test/reference/unaligned-box.mask.rgb24.ref.png
new file mode 100644
index 0000000..ec7c489
Binary files /dev/null and b/test/reference/unaligned-box.mask.rgb24.ref.png differ
diff --git a/test/reference/unantialiased-shapes.mask.argb32.ref.png b/test/reference/unantialiased-shapes.mask.argb32.ref.png
new file mode 100644
index 0000000..d9f466e
Binary files /dev/null and b/test/reference/unantialiased-shapes.mask.argb32.ref.png differ
diff --git a/test/reference/unantialiased-shapes.mask.rgb24.ref.png b/test/reference/unantialiased-shapes.mask.rgb24.ref.png
new file mode 100644
index 0000000..d9f466e
Binary files /dev/null and b/test/reference/unantialiased-shapes.mask.rgb24.ref.png differ
diff --git a/test/reference/unbounded-operator.mask.argb32.ref.png b/test/reference/unbounded-operator.mask.argb32.ref.png
new file mode 100644
index 0000000..08f4356
Binary files /dev/null and b/test/reference/unbounded-operator.mask.argb32.ref.png differ
diff --git a/test/reference/unbounded-operator.mask.rgb24.ref.png b/test/reference/unbounded-operator.mask.rgb24.ref.png
new file mode 100644
index 0000000..80d20dc
Binary files /dev/null and b/test/reference/unbounded-operator.mask.rgb24.ref.png differ
diff --git a/test/reference/unclosed-strokes.mask.argb32.ref.png b/test/reference/unclosed-strokes.mask.argb32.ref.png
new file mode 100644
index 0000000..8af8472
Binary files /dev/null and b/test/reference/unclosed-strokes.mask.argb32.ref.png differ
diff --git a/test/reference/unclosed-strokes.mask.rgb24.ref.png b/test/reference/unclosed-strokes.mask.rgb24.ref.png
new file mode 100644
index 0000000..8af8472
Binary files /dev/null and b/test/reference/unclosed-strokes.mask.rgb24.ref.png differ
diff --git a/test/reference/user-font-mask.mask.argb32.ref.png b/test/reference/user-font-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..02a9a5e
Binary files /dev/null and b/test/reference/user-font-mask.mask.argb32.ref.png differ
diff --git a/test/reference/user-font-mask.mask.rgb24.ref.png b/test/reference/user-font-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..02a9a5e
Binary files /dev/null and b/test/reference/user-font-mask.mask.rgb24.ref.png differ
diff --git a/test/reference/user-font-proxy.mask.argb32.ref.png b/test/reference/user-font-proxy.mask.argb32.ref.png
new file mode 100644
index 0000000..5acbca5
Binary files /dev/null and b/test/reference/user-font-proxy.mask.argb32.ref.png differ
diff --git a/test/reference/user-font-proxy.mask.rgb24.ref.png b/test/reference/user-font-proxy.mask.rgb24.ref.png
new file mode 100644
index 0000000..5acbca5
Binary files /dev/null and b/test/reference/user-font-proxy.mask.rgb24.ref.png differ
diff --git a/test/reference/user-font-proxy.traps.argb32.ref.png b/test/reference/user-font-proxy.traps.argb32.ref.png
new file mode 100644
index 0000000..094938c
Binary files /dev/null and b/test/reference/user-font-proxy.traps.argb32.ref.png differ
diff --git a/test/reference/user-font-proxy.traps.rgb24.ref.png b/test/reference/user-font-proxy.traps.rgb24.ref.png
new file mode 100644
index 0000000..094938c
Binary files /dev/null and b/test/reference/user-font-proxy.traps.rgb24.ref.png differ
diff --git a/test/reference/user-font-rescale.mask.argb32.ref.png b/test/reference/user-font-rescale.mask.argb32.ref.png
new file mode 100644
index 0000000..0939060
Binary files /dev/null and b/test/reference/user-font-rescale.mask.argb32.ref.png differ
diff --git a/test/reference/user-font-rescale.mask.rgb24.ref.png b/test/reference/user-font-rescale.mask.rgb24.ref.png
new file mode 100644
index 0000000..0939060
Binary files /dev/null and b/test/reference/user-font-rescale.mask.rgb24.ref.png differ
diff --git a/test/reference/user-font-rescale.traps.argb32.ref.png b/test/reference/user-font-rescale.traps.argb32.ref.png
new file mode 100644
index 0000000..0939060
Binary files /dev/null and b/test/reference/user-font-rescale.traps.argb32.ref.png differ
diff --git a/test/reference/user-font-rescale.traps.rgb24.ref.png b/test/reference/user-font-rescale.traps.rgb24.ref.png
new file mode 100644
index 0000000..0939060
Binary files /dev/null and b/test/reference/user-font-rescale.traps.rgb24.ref.png differ
diff --git a/test/reference/user-font.mask.argb32.ref.png b/test/reference/user-font.mask.argb32.ref.png
new file mode 100644
index 0000000..b234a88
Binary files /dev/null and b/test/reference/user-font.mask.argb32.ref.png differ
diff --git a/test/reference/user-font.mask.rgb24.ref.png b/test/reference/user-font.mask.rgb24.ref.png
new file mode 100644
index 0000000..b234a88
Binary files /dev/null and b/test/reference/user-font.mask.rgb24.ref.png differ
diff --git a/test/reference/white-in-noop.mask.argb32.ref.png b/test/reference/white-in-noop.mask.argb32.ref.png
new file mode 100644
index 0000000..f42bb8d
Binary files /dev/null and b/test/reference/white-in-noop.mask.argb32.ref.png differ
diff --git a/test/reference/white-in-noop.mask.rgb24.ref.png b/test/reference/white-in-noop.mask.rgb24.ref.png
new file mode 100644
index 0000000..f42bb8d
Binary files /dev/null and b/test/reference/white-in-noop.mask.rgb24.ref.png differ
diff --git a/test/reference/world-map-fill.mask.argb32.ref.png b/test/reference/world-map-fill.mask.argb32.ref.png
new file mode 100644
index 0000000..fad82ee
Binary files /dev/null and b/test/reference/world-map-fill.mask.argb32.ref.png differ
diff --git a/test/reference/world-map-fill.mask.rgb24.ref.png b/test/reference/world-map-fill.mask.rgb24.ref.png
new file mode 100644
index 0000000..fad82ee
Binary files /dev/null and b/test/reference/world-map-fill.mask.rgb24.ref.png differ
diff --git a/test/reference/world-map-stroke.mask.argb32.ref.png b/test/reference/world-map-stroke.mask.argb32.ref.png
new file mode 100644
index 0000000..ec0d502
Binary files /dev/null and b/test/reference/world-map-stroke.mask.argb32.ref.png differ
diff --git a/test/reference/world-map-stroke.mask.rgb24.ref.png b/test/reference/world-map-stroke.mask.rgb24.ref.png
new file mode 100644
index 0000000..ec0d502
Binary files /dev/null and b/test/reference/world-map-stroke.mask.rgb24.ref.png differ
diff --git a/test/reference/world-map.mask.argb32.ref.png b/test/reference/world-map.mask.argb32.ref.png
new file mode 100644
index 0000000..218a303
Binary files /dev/null and b/test/reference/world-map.mask.argb32.ref.png differ
diff --git a/test/reference/world-map.mask.rgb24.ref.png b/test/reference/world-map.mask.rgb24.ref.png
new file mode 100644
index 0000000..218a303
Binary files /dev/null and b/test/reference/world-map.mask.rgb24.ref.png differ
diff --git a/test/reference/xcb-huge-image-shm.mask.argb32.ref.png b/test/reference/xcb-huge-image-shm.mask.argb32.ref.png
new file mode 100644
index 0000000..a0b24c8
Binary files /dev/null and b/test/reference/xcb-huge-image-shm.mask.argb32.ref.png differ
diff --git a/test/reference/xcb-huge-image-shm.mask.rgb24.ref.png b/test/reference/xcb-huge-image-shm.mask.rgb24.ref.png
new file mode 100644
index 0000000..a0b24c8
Binary files /dev/null and b/test/reference/xcb-huge-image-shm.mask.rgb24.ref.png differ
diff --git a/test/reference/xcb-snapshot-assert.mask.argb32.ref.png b/test/reference/xcb-snapshot-assert.mask.argb32.ref.png
new file mode 100644
index 0000000..850ce59
Binary files /dev/null and b/test/reference/xcb-snapshot-assert.mask.argb32.ref.png differ
diff --git a/test/reference/xcb-snapshot-assert.mask.rgb24.ref.png b/test/reference/xcb-snapshot-assert.mask.rgb24.ref.png
new file mode 100644
index 0000000..850ce59
Binary files /dev/null and b/test/reference/xcb-snapshot-assert.mask.rgb24.ref.png differ
diff --git a/test/reference/xcb-stress-cache.mask.argb32.ref.png b/test/reference/xcb-stress-cache.mask.argb32.ref.png
new file mode 100644
index 0000000..850ce59
Binary files /dev/null and b/test/reference/xcb-stress-cache.mask.argb32.ref.png differ
diff --git a/test/reference/xcb-stress-cache.mask.rgb24.ref.png b/test/reference/xcb-stress-cache.mask.rgb24.ref.png
new file mode 100644
index 0000000..850ce59
Binary files /dev/null and b/test/reference/xcb-stress-cache.mask.rgb24.ref.png differ
diff --git a/test/reference/xcb-surface-source.mask.argb32.ref.png b/test/reference/xcb-surface-source.mask.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/xcb-surface-source.mask.argb32.ref.png differ
diff --git a/test/reference/xcb-surface-source.mask.rgb24.ref.png b/test/reference/xcb-surface-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/xcb-surface-source.mask.rgb24.ref.png differ
diff --git a/test/reference/xcomposite-projection.mask.argb32.ref.png b/test/reference/xcomposite-projection.mask.argb32.ref.png
new file mode 100644
index 0000000..9ccabda
Binary files /dev/null and b/test/reference/xcomposite-projection.mask.argb32.ref.png differ
diff --git a/test/reference/xcomposite-projection.mask.rgb24.ref.png b/test/reference/xcomposite-projection.mask.rgb24.ref.png
new file mode 100644
index 0000000..9ccabda
Binary files /dev/null and b/test/reference/xcomposite-projection.mask.rgb24.ref.png differ
diff --git a/test/reference/xlib-expose-event.mask.argb32.ref.png b/test/reference/xlib-expose-event.mask.argb32.ref.png
new file mode 100644
index 0000000..fd71f5a
Binary files /dev/null and b/test/reference/xlib-expose-event.mask.argb32.ref.png differ
diff --git a/test/reference/xlib-expose-event.mask.rgb24.ref.png b/test/reference/xlib-expose-event.mask.rgb24.ref.png
new file mode 100644
index 0000000..fd71f5a
Binary files /dev/null and b/test/reference/xlib-expose-event.mask.rgb24.ref.png differ
diff --git a/test/reference/xlib-surface-source.mask.argb32.ref.png b/test/reference/xlib-surface-source.mask.argb32.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/xlib-surface-source.mask.argb32.ref.png differ
diff --git a/test/reference/xlib-surface-source.mask.rgb24.ref.png b/test/reference/xlib-surface-source.mask.rgb24.ref.png
new file mode 100644
index 0000000..0d68a82
Binary files /dev/null and b/test/reference/xlib-surface-source.mask.rgb24.ref.png differ
diff --git a/test/reference/zero-alpha.mask.argb32.ref.png b/test/reference/zero-alpha.mask.argb32.ref.png
new file mode 100644
index 0000000..595c0ae
Binary files /dev/null and b/test/reference/zero-alpha.mask.argb32.ref.png differ
diff --git a/test/reference/zero-alpha.mask.rgb24.ref.png b/test/reference/zero-alpha.mask.rgb24.ref.png
new file mode 100644
index 0000000..595c0ae
Binary files /dev/null and b/test/reference/zero-alpha.mask.rgb24.ref.png differ
diff --git a/test/reference/zero-mask.mask.argb32.ref.png b/test/reference/zero-mask.mask.argb32.ref.png
new file mode 100644
index 0000000..ffae8d9
Binary files /dev/null and b/test/reference/zero-mask.mask.argb32.ref.png differ
diff --git a/test/reference/zero-mask.mask.rgb24.ref.png b/test/reference/zero-mask.mask.rgb24.ref.png
new file mode 100644
index 0000000..263c3d1
Binary files /dev/null and b/test/reference/zero-mask.mask.rgb24.ref.png differ
commit 3d499ea901b3a76cd765ddce9f4e7d3acebd1bd3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 10:41:37 2012 +0000
xlib: Replace obsolete disable-xrender with shiny new device debug interface
As prototyped with xcb.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/boilerplate/cairo-boilerplate-xlib.c b/boilerplate/cairo-boilerplate-xlib.c
index de79dcb..3a6beef 100644
--- a/boilerplate/cairo-boilerplate-xlib.c
+++ b/boilerplate/cairo-boilerplate-xlib.c
@@ -392,49 +392,6 @@ _cairo_boilerplate_xlib_window_create_surface (const char *name,
return surface;
}
-
-cairo_status_t
-cairo_boilerplate_xlib_surface_disable_render (cairo_surface_t *abstract_surface)
-{
-#if 0
- /* The following stunt doesn't work with xlib-xcb because it doesn't use
- * cairo_xlib_surface_t for its surfaces. Sadly, there is no sane
- * alternative, so we can't disable render with xlib-xcb.
- * FIXME: Find an alternative. */
-#if !CAIRO_HAS_XLIB_XCB_FUNCTIONS
- cairo_xlib_surface_t *surface = (cairo_xlib_surface_t*) abstract_surface;
-
- if (cairo_surface_get_type (abstract_surface) != CAIRO_SURFACE_TYPE_XLIB)
- return CAIRO_STATUS_SURFACE_TYPE_MISMATCH;
-
- surface->render_major = surface->render_minor = -1;
- surface->xrender_format = NULL;
-
- /* The content type is forced by _xrender_format_to_content() during
- * non-Render surface creation, so repeat the procedure here. */
- surface->base.content = CAIRO_CONTENT_COLOR;
-
- /* These flags are set based on known bugs and lack of RENDER support */
-#if CAIRO_XLIB_SURFACE_HAS_BUGGY_GRADIENTS
- surface->buggy_gradients = TRUE;
-#endif
-#if CAIRO_XLIB_SURFACE_HAS_BUGGY_PAD_REFLECT
- surface->buggy_pad_reflect = TRUE;
-#endif
-#if CAIRO_XLIB_SURFACE_HAS_BUGGY_REPEAT
- surface->buggy_repeat = TRUE;
-#endif
-#endif
-#endif
-
- return CAIRO_STATUS_SUCCESS;
-}
-#else
-cairo_status_t
-cairo_boilerplate_xlib_surface_disable_render (cairo_surface_t *abstract_surface)
-{
- return CAIRO_STATUS_SUCCESS;
-}
#endif
@@ -462,7 +419,7 @@ _cairo_boilerplate_xlib_fallback_create_surface (const char *name,
Display *dpy;
int screen;
XSetWindowAttributes attr;
- cairo_surface_t *surface;
+ cairo_surface_t *surface, *dummy;
/* We're not yet bothering to support perf mode for the
* xlib-fallback surface. */
@@ -516,13 +473,18 @@ _cairo_boilerplate_xlib_fallback_create_surface (const char *name,
XMapWindow (dpy, xtc->drawable);
xtc->drawable_is_pixmap = FALSE;
+ dummy = cairo_xlib_surface_create (dpy, xtc->drawable,
+ DefaultVisual (dpy, screen),
+ width, height);
+ cairo_xlib_device_debug_cap_xrender_version (cairo_surface_get_device (dummy),
+ -1, -1);
+
surface = cairo_xlib_surface_create (dpy, xtc->drawable,
DefaultVisual (dpy, screen),
width, height);
+ cairo_surface_destroy (dummy);
if (cairo_surface_status (surface))
_cairo_boilerplate_xlib_cleanup (xtc);
- else
- cairo_boilerplate_xlib_surface_disable_render (surface);
_cairo_boilerplate_xlib_setup_test_surface(surface);
diff --git a/src/cairo-xlib-display.c b/src/cairo-xlib-display.c
index fd7253c..65cd3fb 100644
--- a/src/cairo-xlib-display.c
+++ b/src/cairo-xlib-display.c
@@ -146,6 +146,17 @@ static const cairo_device_backend_t _cairo_xlib_device_backend = {
_cairo_xlib_display_destroy,
};
+
+static void _cairo_xlib_display_select_compositor (cairo_xlib_display_t *display)
+{
+ if (display->render_major > 0 || display->render_minor >= 4)
+ display->compositor = _cairo_xlib_traps_compositor_get ();
+ else if (display->render_major > 0 || display->render_minor >= 0)
+ display->compositor = _cairo_xlib_mask_compositor_get ();
+ else
+ display->compositor = _cairo_xlib_core_compositor_get ();
+}
+
/**
* cairo_xlib_device_create:
* @dpy: the display to create the device for
@@ -221,6 +232,8 @@ _cairo_xlib_device_create (Display *dpy)
}
}
+ _cairo_xlib_display_select_compositor (display);
+
codes = XAddExtension (dpy);
if (unlikely (codes == NULL)) {
device = _cairo_device_create_in_error (CAIRO_STATUS_NO_MEMORY);
@@ -331,13 +344,6 @@ _cairo_xlib_device_create (Display *dpy)
display->buggy_pad_reflect = TRUE;
}
- if (display->render_major > 0 || display->render_minor >= 4)
- display->compositor = _cairo_xlib_traps_compositor_get ();
- else if (display->render_major > 0 || display->render_minor >= 0)
- display->compositor = _cairo_xlib_mask_compositor_get ();
- else
- display->compositor = _cairo_xlib_core_compositor_get ();
-
display->next = _cairo_xlib_display_list;
_cairo_xlib_display_list = display;
@@ -552,6 +558,43 @@ _cairo_xlib_display_has_gradients (cairo_device_t *device)
return ! ((cairo_xlib_display_t *) device)->buggy_gradients;
}
+/**
+ * cairo_xlib_device_debug_cap_xrender_version:
+ * @device: a #cairo_device_t for the XCB backend
+ * @major_version: major version to restrict to
+ * @minor_version: minor version to restrict to
+ *
+ * Restricts all future XCB surfaces for this devices to the specified version
+ * of the RENDER extension. This function exists solely for debugging purpose.
+ * It let's you find out how cairo would behave with an older version of
+ * the RENDER extension.
+ *
+ * Use the special values -1 and -1 for disabling the RENDER extension.
+ **/
+void
+cairo_xlib_device_debug_cap_xrender_version (cairo_device_t *device,
+ int major_version,
+ int minor_version)
+{
+ cairo_xlib_display_t *display = (cairo_xlib_display_t *) device;
+
+ if (device == NULL || device->status)
+ return;
+
+ if (device->backend->type != CAIRO_DEVICE_TYPE_XLIB)
+ return;
+
+ if (major_version < display->render_major ||
+ (major_version == display->render_major &&
+ minor_version < display->render_minor))
+ {
+ display->render_major = major_version;
+ display->render_minor = minor_version;
+ }
+
+ _cairo_xlib_display_select_compositor (display);
+}
+
void
cairo_xlib_device_debug_set_precision (cairo_device_t *device,
int precision)
diff --git a/src/cairo-xlib.h b/src/cairo-xlib.h
index 7f770b9..ecf8d6c 100644
--- a/src/cairo-xlib.h
+++ b/src/cairo-xlib.h
@@ -93,6 +93,11 @@ cairo_xlib_surface_get_height (cairo_surface_t *surface);
/* debug interface */
+cairo_public void
+cairo_xlib_device_debug_cap_xrender_version (cairo_device_t *device,
+ int major_version,
+ int minor_version);
+
/*
* @precision: -1 implies automatically choose based on antialiasing mode,
* any other value overrides and sets the corresponding PolyMode.
diff --git a/test/get-xrender-format.c b/test/get-xrender-format.c
index 8e99eb7..3228d57 100644
--- a/test/get-xrender-format.c
+++ b/test/get-xrender-format.c
@@ -101,16 +101,6 @@ preamble (cairo_test_context_t *ctx)
goto CLEANUP_PIXMAP;
}
- cairo_test_log (ctx, "Testing without the X Render extension.\n");
-
- cairo_boilerplate_xlib_surface_disable_render (surface);
-
- format = cairo_xlib_surface_get_xrender_format (surface);
- if (format != NULL) {
- cairo_test_log (ctx, "Error: did not receive a NULL format as expected\n");
- goto CLEANUP_PIXMAP;
- }
-
result = CAIRO_TEST_SUCCESS;
CLEANUP_PIXMAP:
diff --git a/test/xlib-surface.c b/test/xlib-surface.c
index be44b14..4edc44b 100644
--- a/test/xlib-surface.c
+++ b/test/xlib-surface.c
@@ -136,7 +136,6 @@ do_test (const cairo_test_context_t *ctx,
unsigned char *reference_data,
unsigned char *test_data,
unsigned char *diff_data,
- cairo_bool_t use_render,
cairo_bool_t use_pixmap,
cairo_bool_t set_size,
cairo_bool_t offscreen)
@@ -184,9 +183,6 @@ do_test (const cairo_test_context_t *ctx,
if (! surface_compare_visual_and_format (surface))
return CAIRO_TEST_FAILURE;
- if (!use_render)
- cairo_boilerplate_xlib_surface_disable_render (surface);
-
if (set_size) {
cairo_xlib_surface_set_size (surface, SIZE, SIZE);
@@ -243,13 +239,10 @@ do_test (const cairo_test_context_t *ctx,
&result);
}
- cairo_test_log (ctx, "xlib-surface: %s, %s, %s%s: %s\n",
- use_render ? " render" : "no-render",
+ cairo_test_log (ctx, "xlib-surface: %s, %s, %s: %s\n",
set_size ? " size" : "no-size",
use_pixmap ? "pixmap" : "window",
- use_pixmap ?
- " " :
- (offscreen ? ", offscreen" : ", onscreen"),
+ use_pixmap ? " " : (offscreen ? ", offscreen" : ", onscreen"),
image_diff_is_failure (&result, 0) ? "FAIL" : "PASS");
if (image_diff_is_failure (&result, 0))
@@ -335,17 +328,7 @@ preamble (cairo_test_context_t *ctx)
for (offscreen = 0; offscreen <= 1; offscreen++) {
status = do_test (ctx, dpy,
reference_data, test_data, diff_data,
- 1, use_pixmap, set_size, offscreen);
- if (status)
- result = status;
- }
-
- for (set_size = 0; set_size <= 1; set_size++)
- for (use_pixmap = 0; use_pixmap <= 1; use_pixmap++)
- for (offscreen = 0; offscreen <= 1; offscreen++) {
- status = do_test (ctx, dpy,
- reference_data, test_data, diff_data,
- 0, use_pixmap, set_size, offscreen);
+ use_pixmap, set_size, offscreen);
if (status)
result = status;
}
commit 73df8eb8db521585f1ac6abb053843b5717cd27e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 10:19:18 2012 +0000
test/xlib: Remove stale reference images
We know have a swrast reference compositor for xlib (test-traps) and so
should not need these old xlib specific reference images.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/test/reference/a1-image-sample.xlib.argb32.ref.png b/test/reference/a1-image-sample.xlib.argb32.ref.png
deleted file mode 100644
index b8fd457..0000000
Binary files a/test/reference/a1-image-sample.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/a1-image-sample.xlib.rgb24.ref.png b/test/reference/a1-image-sample.xlib.rgb24.ref.png
deleted file mode 100644
index b8fd457..0000000
Binary files a/test/reference/a1-image-sample.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/arc-direction.xlib.ref.png b/test/reference/arc-direction.xlib.ref.png
deleted file mode 100644
index 2790a2b..0000000
Binary files a/test/reference/arc-direction.xlib.ref.png and /dev/null differ
diff --git a/test/reference/clip-rotate-image-surface-paint.xlib.argb32.ref.png b/test/reference/clip-rotate-image-surface-paint.xlib.argb32.ref.png
deleted file mode 100644
index 1093804..0000000
Binary files a/test/reference/clip-rotate-image-surface-paint.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-rotate-image-surface-paint.xlib.rgb24.ref.png b/test/reference/clip-rotate-image-surface-paint.xlib.rgb24.ref.png
deleted file mode 100644
index 1093804..0000000
Binary files a/test/reference/clip-rotate-image-surface-paint.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/image-bug-710072-aligned.xlib.argb32.ref.png b/test/reference/image-bug-710072-aligned.xlib.argb32.ref.png
deleted file mode 100644
index 42abd20..0000000
Binary files a/test/reference/image-bug-710072-aligned.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/image-bug-710072-aligned.xlib.rgb24.ref.png b/test/reference/image-bug-710072-aligned.xlib.rgb24.ref.png
deleted file mode 100644
index 42abd20..0000000
Binary files a/test/reference/image-bug-710072-aligned.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/image-bug-710072-unaligned.xlib.argb32.ref.png b/test/reference/image-bug-710072-unaligned.xlib.argb32.ref.png
deleted file mode 100644
index 0a5a6e6..0000000
Binary files a/test/reference/image-bug-710072-unaligned.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/image-bug-710072-unaligned.xlib.rgb24.ref.png b/test/reference/image-bug-710072-unaligned.xlib.rgb24.ref.png
deleted file mode 100644
index 0a5a6e6..0000000
Binary files a/test/reference/image-bug-710072-unaligned.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/image-surface-source.xlib.argb32.ref.png b/test/reference/image-surface-source.xlib.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/image-surface-source.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/image-surface-source.xlib.rgb24.ref.png b/test/reference/image-surface-source.xlib.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/image-surface-source.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/map-to-image-fill.xlib.argb32.ref.png b/test/reference/map-to-image-fill.xlib.argb32.ref.png
deleted file mode 100644
index c2893e0..0000000
Binary files a/test/reference/map-to-image-fill.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/map-to-image-fill.xlib.rgb24.ref.png b/test/reference/map-to-image-fill.xlib.rgb24.ref.png
deleted file mode 100644
index c2893e0..0000000
Binary files a/test/reference/map-to-image-fill.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/rotate-clip-image-surface-paint.xlib.argb32.ref.png b/test/reference/rotate-clip-image-surface-paint.xlib.argb32.ref.png
deleted file mode 100644
index 9d991d9..0000000
Binary files a/test/reference/rotate-clip-image-surface-paint.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/rotate-clip-image-surface-paint.xlib.rgb24.ref.png b/test/reference/rotate-clip-image-surface-paint.xlib.rgb24.ref.png
deleted file mode 100644
index 9d991d9..0000000
Binary files a/test/reference/rotate-clip-image-surface-paint.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/rotate-image-surface-paint.xlib.argb32.ref.png b/test/reference/rotate-image-surface-paint.xlib.argb32.ref.png
deleted file mode 100644
index 06a4820..0000000
Binary files a/test/reference/rotate-image-surface-paint.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/rotate-image-surface-paint.xlib.rgb24.ref.png b/test/reference/rotate-image-surface-paint.xlib.rgb24.ref.png
deleted file mode 100644
index 06a4820..0000000
Binary files a/test/reference/rotate-image-surface-paint.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/smask-image-mask.xlib.argb32.ref.png b/test/reference/smask-image-mask.xlib.argb32.ref.png
deleted file mode 100644
index 12063bd..0000000
Binary files a/test/reference/smask-image-mask.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/smask-image-mask.xlib.rgb24.ref.png b/test/reference/smask-image-mask.xlib.rgb24.ref.png
deleted file mode 100644
index 12063bd..0000000
Binary files a/test/reference/smask-image-mask.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/subsurface-image-repeat.xlib.argb32.ref.png b/test/reference/subsurface-image-repeat.xlib.argb32.ref.png
deleted file mode 100644
index 3dd6306..0000000
Binary files a/test/reference/subsurface-image-repeat.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/subsurface-image-repeat.xlib.rgb24.ref.png b/test/reference/subsurface-image-repeat.xlib.rgb24.ref.png
deleted file mode 100644
index 3dd6306..0000000
Binary files a/test/reference/subsurface-image-repeat.xlib.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/xcb-huge-image-shm.xlib.argb32.ref.png b/test/reference/xcb-huge-image-shm.xlib.argb32.ref.png
deleted file mode 100644
index a0b24c8..0000000
Binary files a/test/reference/xcb-huge-image-shm.xlib.argb32.ref.png and /dev/null differ
diff --git a/test/reference/xcb-huge-image-shm.xlib.rgb24.ref.png b/test/reference/xcb-huge-image-shm.xlib.rgb24.ref.png
deleted file mode 100644
index a0b24c8..0000000
Binary files a/test/reference/xcb-huge-image-shm.xlib.rgb24.ref.png and /dev/null differ
commit b2132eed79c60b3a70b88e5b5bbac7c541355735
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 10:18:56 2012 +0000
boilerplate/xlib: The xlib-fallback should be visually identical to image
diff --git a/boilerplate/cairo-boilerplate-xlib.c b/boilerplate/cairo-boilerplate-xlib.c
index abd1ba9..de79dcb 100644
--- a/boilerplate/cairo-boilerplate-xlib.c
+++ b/boilerplate/cairo-boilerplate-xlib.c
@@ -581,7 +581,7 @@ static const cairo_boilerplate_target_t targets[] = {
/* This is a fallback surface which uses xlib fallbacks instead of
* the Render extension. */
{
- "xlib-fallback", "xlib", NULL, NULL,
+ "xlib-fallback", "image", NULL, NULL,
CAIRO_SURFACE_TYPE_XLIB, CAIRO_CONTENT_COLOR, 1,
"cairo_xlib_surface_create",
_cairo_boilerplate_xlib_fallback_create_surface,
commit cd4fd8a8028f3233dbfbfde283bca894700c833d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 10:11:16 2012 +0000
test: Update traps for changes in reference font
diff --git a/test/reference/clear-source.traps.argb32.ref.png b/test/reference/clear-source.traps.argb32.ref.png
index b7e8025..352bf45 100644
Binary files a/test/reference/clear-source.traps.argb32.ref.png and b/test/reference/clear-source.traps.argb32.ref.png differ
diff --git a/test/reference/clear-source.traps.rgb24.ref.png b/test/reference/clear-source.traps.rgb24.ref.png
index b7e8025..352bf45 100644
Binary files a/test/reference/clear-source.traps.rgb24.ref.png and b/test/reference/clear-source.traps.rgb24.ref.png differ
diff --git a/test/reference/culled-glyphs.traps.argb32.ref.png b/test/reference/culled-glyphs.traps.argb32.ref.png
index 08aad33..6701295 100644
Binary files a/test/reference/culled-glyphs.traps.argb32.ref.png and b/test/reference/culled-glyphs.traps.argb32.ref.png differ
diff --git a/test/reference/culled-glyphs.traps.rgb24.ref.png b/test/reference/culled-glyphs.traps.rgb24.ref.png
index 08aad33..6701295 100644
Binary files a/test/reference/culled-glyphs.traps.rgb24.ref.png and b/test/reference/culled-glyphs.traps.rgb24.ref.png differ
diff --git a/test/reference/fill-image.traps.argb32.ref.png b/test/reference/fill-image.traps.argb32.ref.png
index b94ed91..1e67073 100644
Binary files a/test/reference/fill-image.traps.argb32.ref.png and b/test/reference/fill-image.traps.argb32.ref.png differ
diff --git a/test/reference/fill-image.traps.rgb24.ref.png b/test/reference/fill-image.traps.rgb24.ref.png
index b94ed91..1e67073 100644
Binary files a/test/reference/fill-image.traps.rgb24.ref.png and b/test/reference/fill-image.traps.rgb24.ref.png differ
diff --git a/test/reference/large-twin-antialias-mixed.traps.argb32.ref.png b/test/reference/large-twin-antialias-mixed.traps.argb32.ref.png
index 456e81d..ace463b 100644
Binary files a/test/reference/large-twin-antialias-mixed.traps.argb32.ref.png and b/test/reference/large-twin-antialias-mixed.traps.argb32.ref.png differ
diff --git a/test/reference/large-twin-antialias-mixed.traps.rgb24.ref.png b/test/reference/large-twin-antialias-mixed.traps.rgb24.ref.png
index 456e81d..ace463b 100644
Binary files a/test/reference/large-twin-antialias-mixed.traps.rgb24.ref.png and b/test/reference/large-twin-antialias-mixed.traps.rgb24.ref.png differ
diff --git a/test/reference/overlapping-glyphs.traps.argb32.ref.png b/test/reference/overlapping-glyphs.traps.argb32.ref.png
index 0dc6fdb..11bf4e1 100644
Binary files a/test/reference/overlapping-glyphs.traps.argb32.ref.png and b/test/reference/overlapping-glyphs.traps.argb32.ref.png differ
diff --git a/test/reference/overlapping-glyphs.traps.rgb24.ref.png b/test/reference/overlapping-glyphs.traps.rgb24.ref.png
index 9702cc2..6b65510 100644
Binary files a/test/reference/overlapping-glyphs.traps.rgb24.ref.png and b/test/reference/overlapping-glyphs.traps.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-bottom.traps.argb32.ref.png b/test/reference/partial-clip-text-bottom.traps.argb32.ref.png
index 7a03fad..6a299d4 100644
Binary files a/test/reference/partial-clip-text-bottom.traps.argb32.ref.png and b/test/reference/partial-clip-text-bottom.traps.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-bottom.traps.rgb24.ref.png b/test/reference/partial-clip-text-bottom.traps.rgb24.ref.png
index 7a03fad..6a299d4 100644
Binary files a/test/reference/partial-clip-text-bottom.traps.rgb24.ref.png and b/test/reference/partial-clip-text-bottom.traps.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-left.traps.argb32.ref.png b/test/reference/partial-clip-text-left.traps.argb32.ref.png
index 95c07f4..54a1a85 100644
Binary files a/test/reference/partial-clip-text-left.traps.argb32.ref.png and b/test/reference/partial-clip-text-left.traps.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-left.traps.rgb24.ref.png b/test/reference/partial-clip-text-left.traps.rgb24.ref.png
index 95c07f4..54a1a85 100644
Binary files a/test/reference/partial-clip-text-left.traps.rgb24.ref.png and b/test/reference/partial-clip-text-left.traps.rgb24.ref.png differ
diff --git a/test/reference/random-clip.traps.argb32.ref.png b/test/reference/random-clip.traps.argb32.ref.png
index 374d6fe..01cc60a 100644
Binary files a/test/reference/random-clip.traps.argb32.ref.png and b/test/reference/random-clip.traps.argb32.ref.png differ
diff --git a/test/reference/random-clip.traps.rgb24.ref.png b/test/reference/random-clip.traps.rgb24.ref.png
index 374d6fe..01cc60a 100644
Binary files a/test/reference/random-clip.traps.rgb24.ref.png and b/test/reference/random-clip.traps.rgb24.ref.png differ
diff --git a/test/reference/stroke-image.traps.argb32.ref.png b/test/reference/stroke-image.traps.argb32.ref.png
index 15d4dce..75737d5 100644
Binary files a/test/reference/stroke-image.traps.argb32.ref.png and b/test/reference/stroke-image.traps.argb32.ref.png differ
diff --git a/test/reference/stroke-image.traps.rgb24.ref.png b/test/reference/stroke-image.traps.rgb24.ref.png
index 15d4dce..75737d5 100644
Binary files a/test/reference/stroke-image.traps.rgb24.ref.png and b/test/reference/stroke-image.traps.rgb24.ref.png differ
diff --git a/test/reference/subsurface.traps.argb32.ref.png b/test/reference/subsurface.traps.argb32.ref.png
index 77e3c23..feeb5dc 100644
Binary files a/test/reference/subsurface.traps.argb32.ref.png and b/test/reference/subsurface.traps.argb32.ref.png differ
diff --git a/test/reference/subsurface.traps.rgb24.ref.png b/test/reference/subsurface.traps.rgb24.ref.png
index 77e3c23..feeb5dc 100644
Binary files a/test/reference/subsurface.traps.rgb24.ref.png and b/test/reference/subsurface.traps.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-gray.traps.argb32.ref.png b/test/reference/twin-antialias-gray.traps.argb32.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin-antialias-gray.traps.argb32.ref.png and b/test/reference/twin-antialias-gray.traps.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-gray.traps.rgb24.ref.png b/test/reference/twin-antialias-gray.traps.rgb24.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin-antialias-gray.traps.rgb24.ref.png and b/test/reference/twin-antialias-gray.traps.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-mixed.traps.argb32.ref.png b/test/reference/twin-antialias-mixed.traps.argb32.ref.png
index 0c91dd1..d6c406f 100644
Binary files a/test/reference/twin-antialias-mixed.traps.argb32.ref.png and b/test/reference/twin-antialias-mixed.traps.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-mixed.traps.rgb24.ref.png b/test/reference/twin-antialias-mixed.traps.rgb24.ref.png
index 0c91dd1..d6c406f 100644
Binary files a/test/reference/twin-antialias-mixed.traps.rgb24.ref.png and b/test/reference/twin-antialias-mixed.traps.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-none.traps.argb32.ref.png b/test/reference/twin-antialias-none.traps.argb32.ref.png
index 42f386d..02cf333 100644
Binary files a/test/reference/twin-antialias-none.traps.argb32.ref.png and b/test/reference/twin-antialias-none.traps.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-none.traps.rgb24.ref.png b/test/reference/twin-antialias-none.traps.rgb24.ref.png
index 42f386d..02cf333 100644
Binary files a/test/reference/twin-antialias-none.traps.rgb24.ref.png and b/test/reference/twin-antialias-none.traps.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.traps.argb32.ref.png b/test/reference/twin-antialias-subpixel.traps.argb32.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin-antialias-subpixel.traps.argb32.ref.png and b/test/reference/twin-antialias-subpixel.traps.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.traps.rgb24.ref.png b/test/reference/twin-antialias-subpixel.traps.rgb24.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin-antialias-subpixel.traps.rgb24.ref.png and b/test/reference/twin-antialias-subpixel.traps.rgb24.ref.png differ
diff --git a/test/reference/twin.traps.argb32.ref.png b/test/reference/twin.traps.argb32.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin.traps.argb32.ref.png and b/test/reference/twin.traps.argb32.ref.png differ
diff --git a/test/reference/twin.traps.rgb24.ref.png b/test/reference/twin.traps.rgb24.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin.traps.rgb24.ref.png and b/test/reference/twin.traps.rgb24.ref.png differ
diff --git a/test/reference/user-font.traps.argb32.ref.png b/test/reference/user-font.traps.argb32.ref.png
index 0ea3d17..c94cd49 100644
Binary files a/test/reference/user-font.traps.argb32.ref.png and b/test/reference/user-font.traps.argb32.ref.png differ
diff --git a/test/reference/user-font.traps.rgb24.ref.png b/test/reference/user-font.traps.rgb24.ref.png
index 0ea3d17..c94cd49 100644
Binary files a/test/reference/user-font.traps.rgb24.ref.png and b/test/reference/user-font.traps.rgb24.ref.png differ
commit c9f18bb034c31b37692b80db47b663f14f441f6a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 22 10:09:05 2012 +0000
test: Update base reference images for new reference font
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/test/reference/clear-source.base.argb32.ref.png b/test/reference/clear-source.base.argb32.ref.png
index b7e8025..352bf45 100644
Binary files a/test/reference/clear-source.base.argb32.ref.png and b/test/reference/clear-source.base.argb32.ref.png differ
diff --git a/test/reference/clear-source.base.rgb24.ref.png b/test/reference/clear-source.base.rgb24.ref.png
index b7e8025..352bf45 100644
Binary files a/test/reference/clear-source.base.rgb24.ref.png and b/test/reference/clear-source.base.rgb24.ref.png differ
diff --git a/test/reference/clip-operator.base.argb32.ref.png b/test/reference/clip-operator.base.argb32.ref.png
index 63a7baa..289b5d9 100644
Binary files a/test/reference/clip-operator.base.argb32.ref.png and b/test/reference/clip-operator.base.argb32.ref.png differ
diff --git a/test/reference/clip-operator.base.rgb24.ref.png b/test/reference/clip-operator.base.rgb24.ref.png
index d3d84f2..299960e 100644
Binary files a/test/reference/clip-operator.base.rgb24.ref.png and b/test/reference/clip-operator.base.rgb24.ref.png differ
diff --git a/test/reference/clip-text.base.argb32.ref.png b/test/reference/clip-text.base.argb32.ref.png
index eed421f..2a68298 100644
Binary files a/test/reference/clip-text.base.argb32.ref.png and b/test/reference/clip-text.base.argb32.ref.png differ
diff --git a/test/reference/clip-text.base.rgb24.ref.png b/test/reference/clip-text.base.rgb24.ref.png
index eed421f..2a68298 100644
Binary files a/test/reference/clip-text.base.rgb24.ref.png and b/test/reference/clip-text.base.rgb24.ref.png differ
diff --git a/test/reference/culled-glyphs.base.argb32.ref.png b/test/reference/culled-glyphs.base.argb32.ref.png
index 08aad33..6701295 100644
Binary files a/test/reference/culled-glyphs.base.argb32.ref.png and b/test/reference/culled-glyphs.base.argb32.ref.png differ
diff --git a/test/reference/culled-glyphs.base.rgb24.ref.png b/test/reference/culled-glyphs.base.rgb24.ref.png
index 08aad33..6701295 100644
Binary files a/test/reference/culled-glyphs.base.rgb24.ref.png and b/test/reference/culled-glyphs.base.rgb24.ref.png differ
diff --git a/test/reference/fill-image.base.argb32.ref.png b/test/reference/fill-image.base.argb32.ref.png
index b94ed91..1e67073 100644
Binary files a/test/reference/fill-image.base.argb32.ref.png and b/test/reference/fill-image.base.argb32.ref.png differ
diff --git a/test/reference/fill-image.base.rgb24.ref.png b/test/reference/fill-image.base.rgb24.ref.png
index b94ed91..1e67073 100644
Binary files a/test/reference/fill-image.base.rgb24.ref.png and b/test/reference/fill-image.base.rgb24.ref.png differ
diff --git a/test/reference/font-matrix-translation.base.argb32.ref.png b/test/reference/font-matrix-translation.base.argb32.ref.png
index dd5faba..a4a1082 100644
Binary files a/test/reference/font-matrix-translation.base.argb32.ref.png and b/test/reference/font-matrix-translation.base.argb32.ref.png differ
diff --git a/test/reference/font-matrix-translation.base.rgb24.ref.png b/test/reference/font-matrix-translation.base.rgb24.ref.png
index dd5faba..a4a1082 100644
Binary files a/test/reference/font-matrix-translation.base.rgb24.ref.png and b/test/reference/font-matrix-translation.base.rgb24.ref.png differ
diff --git a/test/reference/ft-show-glyphs-positioning.base.argb32.ref.png b/test/reference/ft-show-glyphs-positioning.base.argb32.ref.png
index b49ed47..af6dcaf 100644
Binary files a/test/reference/ft-show-glyphs-positioning.base.argb32.ref.png and b/test/reference/ft-show-glyphs-positioning.base.argb32.ref.png differ
diff --git a/test/reference/ft-show-glyphs-positioning.base.rgb24.ref.png b/test/reference/ft-show-glyphs-positioning.base.rgb24.ref.png
index b49ed47..af6dcaf 100644
Binary files a/test/reference/ft-show-glyphs-positioning.base.rgb24.ref.png and b/test/reference/ft-show-glyphs-positioning.base.rgb24.ref.png differ
diff --git a/test/reference/ft-show-glyphs-table.base.argb32.ref.png b/test/reference/ft-show-glyphs-table.base.argb32.ref.png
index c762dc7..ed69124 100644
Binary files a/test/reference/ft-show-glyphs-table.base.argb32.ref.png and b/test/reference/ft-show-glyphs-table.base.argb32.ref.png differ
diff --git a/test/reference/ft-show-glyphs-table.base.rgb24.ref.png b/test/reference/ft-show-glyphs-table.base.rgb24.ref.png
index c762dc7..ed69124 100644
Binary files a/test/reference/ft-show-glyphs-table.base.rgb24.ref.png and b/test/reference/ft-show-glyphs-table.base.rgb24.ref.png differ
diff --git a/test/reference/glyph-cache-pressure.base.argb32.ref.png b/test/reference/glyph-cache-pressure.base.argb32.ref.png
index 14182f1..a6e1b06 100644
Binary files a/test/reference/glyph-cache-pressure.base.argb32.ref.png and b/test/reference/glyph-cache-pressure.base.argb32.ref.png differ
diff --git a/test/reference/glyph-cache-pressure.base.rgb24.ref.png b/test/reference/glyph-cache-pressure.base.rgb24.ref.png
index 14182f1..a6e1b06 100644
Binary files a/test/reference/glyph-cache-pressure.base.rgb24.ref.png and b/test/reference/glyph-cache-pressure.base.rgb24.ref.png differ
diff --git a/test/reference/halo-transform.base.argb32.ref.png b/test/reference/halo-transform.base.argb32.ref.png
index ac314b0..45cb90f 100644
Binary files a/test/reference/halo-transform.base.argb32.ref.png and b/test/reference/halo-transform.base.argb32.ref.png differ
diff --git a/test/reference/halo-transform.base.rgb24.ref.png b/test/reference/halo-transform.base.rgb24.ref.png
index ac314b0..45cb90f 100644
Binary files a/test/reference/halo-transform.base.rgb24.ref.png and b/test/reference/halo-transform.base.rgb24.ref.png differ
diff --git a/test/reference/halo.base.argb32.ref.png b/test/reference/halo.base.argb32.ref.png
index bc971d8..c915a24 100644
Binary files a/test/reference/halo.base.argb32.ref.png and b/test/reference/halo.base.argb32.ref.png differ
diff --git a/test/reference/halo.base.rgb24.ref.png b/test/reference/halo.base.rgb24.ref.png
index bc971d8..c915a24 100644
Binary files a/test/reference/halo.base.rgb24.ref.png and b/test/reference/halo.base.rgb24.ref.png differ
diff --git a/test/reference/large-twin-antialias-mixed.base.argb32.ref.png b/test/reference/large-twin-antialias-mixed.base.argb32.ref.png
index 456e81d..ace463b 100644
Binary files a/test/reference/large-twin-antialias-mixed.base.argb32.ref.png and b/test/reference/large-twin-antialias-mixed.base.argb32.ref.png differ
diff --git a/test/reference/large-twin-antialias-mixed.base.rgb24.ref.png b/test/reference/large-twin-antialias-mixed.base.rgb24.ref.png
index 456e81d..ace463b 100644
Binary files a/test/reference/large-twin-antialias-mixed.base.rgb24.ref.png and b/test/reference/large-twin-antialias-mixed.base.rgb24.ref.png differ
diff --git a/test/reference/operator-clear.base.argb32.ref.png b/test/reference/operator-clear.base.argb32.ref.png
index 235db6b..c49b4a8 100644
Binary files a/test/reference/operator-clear.base.argb32.ref.png and b/test/reference/operator-clear.base.argb32.ref.png differ
diff --git a/test/reference/operator-clear.base.rgb24.ref.png b/test/reference/operator-clear.base.rgb24.ref.png
index fa07d4a..51d38d1 100644
Binary files a/test/reference/operator-clear.base.rgb24.ref.png and b/test/reference/operator-clear.base.rgb24.ref.png differ
diff --git a/test/reference/operator-source.base.argb32.ref.png b/test/reference/operator-source.base.argb32.ref.png
index 6884f33..42e24f2 100644
Binary files a/test/reference/operator-source.base.argb32.ref.png and b/test/reference/operator-source.base.argb32.ref.png differ
diff --git a/test/reference/operator-source.base.rgb24.ref.png b/test/reference/operator-source.base.rgb24.ref.png
index 32a6a40..4736d58 100644
Binary files a/test/reference/operator-source.base.rgb24.ref.png and b/test/reference/operator-source.base.rgb24.ref.png differ
diff --git a/test/reference/overlapping-glyphs.base.argb32.ref.png b/test/reference/overlapping-glyphs.base.argb32.ref.png
index 0dc6fdb..11bf4e1 100644
Binary files a/test/reference/overlapping-glyphs.base.argb32.ref.png and b/test/reference/overlapping-glyphs.base.argb32.ref.png differ
diff --git a/test/reference/overlapping-glyphs.base.rgb24.ref.png b/test/reference/overlapping-glyphs.base.rgb24.ref.png
index 9702cc2..6b65510 100644
Binary files a/test/reference/overlapping-glyphs.base.rgb24.ref.png and b/test/reference/overlapping-glyphs.base.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-bottom.base.argb32.ref.png b/test/reference/partial-clip-text-bottom.base.argb32.ref.png
index 7a03fad..6a299d4 100644
Binary files a/test/reference/partial-clip-text-bottom.base.argb32.ref.png and b/test/reference/partial-clip-text-bottom.base.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-bottom.base.rgb24.ref.png b/test/reference/partial-clip-text-bottom.base.rgb24.ref.png
index 7a03fad..6a299d4 100644
Binary files a/test/reference/partial-clip-text-bottom.base.rgb24.ref.png and b/test/reference/partial-clip-text-bottom.base.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-left.base.argb32.ref.png b/test/reference/partial-clip-text-left.base.argb32.ref.png
index 95c07f4..54a1a85 100644
Binary files a/test/reference/partial-clip-text-left.base.argb32.ref.png and b/test/reference/partial-clip-text-left.base.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-left.base.rgb24.ref.png b/test/reference/partial-clip-text-left.base.rgb24.ref.png
index 95c07f4..54a1a85 100644
Binary files a/test/reference/partial-clip-text-left.base.rgb24.ref.png and b/test/reference/partial-clip-text-left.base.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-right.base.argb32.ref.png b/test/reference/partial-clip-text-right.base.argb32.ref.png
index 3e69ca9..2fbdca0 100644
Binary files a/test/reference/partial-clip-text-right.base.argb32.ref.png and b/test/reference/partial-clip-text-right.base.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-right.base.rgb24.ref.png b/test/reference/partial-clip-text-right.base.rgb24.ref.png
index 3e69ca9..2fbdca0 100644
Binary files a/test/reference/partial-clip-text-right.base.rgb24.ref.png and b/test/reference/partial-clip-text-right.base.rgb24.ref.png differ
diff --git a/test/reference/partial-clip-text-top.base.argb32.ref.png b/test/reference/partial-clip-text-top.base.argb32.ref.png
index afe2d3e..d18475b 100644
Binary files a/test/reference/partial-clip-text-top.base.argb32.ref.png and b/test/reference/partial-clip-text-top.base.argb32.ref.png differ
diff --git a/test/reference/partial-clip-text-top.base.rgb24.ref.png b/test/reference/partial-clip-text-top.base.rgb24.ref.png
index afe2d3e..d18475b 100644
Binary files a/test/reference/partial-clip-text-top.base.rgb24.ref.png and b/test/reference/partial-clip-text-top.base.rgb24.ref.png differ
diff --git a/test/reference/pthread-show-text.base.argb32.ref.png b/test/reference/pthread-show-text.base.argb32.ref.png
index efa5fe9..90d0af3 100644
Binary files a/test/reference/pthread-show-text.base.argb32.ref.png and b/test/reference/pthread-show-text.base.argb32.ref.png differ
diff --git a/test/reference/pthread-show-text.base.rgb24.ref.png b/test/reference/pthread-show-text.base.rgb24.ref.png
index efa5fe9..90d0af3 100644
Binary files a/test/reference/pthread-show-text.base.rgb24.ref.png and b/test/reference/pthread-show-text.base.rgb24.ref.png differ
diff --git a/test/reference/select-font-face.base.argb32.ref.png b/test/reference/select-font-face.base.argb32.ref.png
index be89d71..1334a9a 100644
Binary files a/test/reference/select-font-face.base.argb32.ref.png and b/test/reference/select-font-face.base.argb32.ref.png differ
diff --git a/test/reference/select-font-face.base.rgb24.ref.png b/test/reference/select-font-face.base.rgb24.ref.png
index be89d71..1334a9a 100644
Binary files a/test/reference/select-font-face.base.rgb24.ref.png and b/test/reference/select-font-face.base.rgb24.ref.png differ
diff --git a/test/reference/show-glyphs-advance.base.argb32.ref.png b/test/reference/show-glyphs-advance.base.argb32.ref.png
index e784099..e65ad05 100644
Binary files a/test/reference/show-glyphs-advance.base.argb32.ref.png and b/test/reference/show-glyphs-advance.base.argb32.ref.png differ
diff --git a/test/reference/show-glyphs-advance.base.rgb24.ref.png b/test/reference/show-glyphs-advance.base.rgb24.ref.png
index e784099..e65ad05 100644
Binary files a/test/reference/show-glyphs-advance.base.rgb24.ref.png and b/test/reference/show-glyphs-advance.base.rgb24.ref.png differ
diff --git a/test/reference/show-text-current-point.base.argb32.ref.png b/test/reference/show-text-current-point.base.argb32.ref.png
index b2ee5b2..d60d4ac 100644
Binary files a/test/reference/show-text-current-point.base.argb32.ref.png and b/test/reference/show-text-current-point.base.argb32.ref.png differ
diff --git a/test/reference/show-text-current-point.base.rgb24.ref.png b/test/reference/show-text-current-point.base.rgb24.ref.png
index b2ee5b2..d60d4ac 100644
Binary files a/test/reference/show-text-current-point.base.rgb24.ref.png and b/test/reference/show-text-current-point.base.rgb24.ref.png differ
diff --git a/test/reference/smask-text.base.argb32.ref.png b/test/reference/smask-text.base.argb32.ref.png
index 871eaee..344ac20 100644
Binary files a/test/reference/smask-text.base.argb32.ref.png and b/test/reference/smask-text.base.argb32.ref.png differ
diff --git a/test/reference/smask-text.base.rgb24.ref.png b/test/reference/smask-text.base.rgb24.ref.png
index 871eaee..344ac20 100644
Binary files a/test/reference/smask-text.base.rgb24.ref.png and b/test/reference/smask-text.base.rgb24.ref.png differ
diff --git a/test/reference/smask.base.argb32.ref.png b/test/reference/smask.base.argb32.ref.png
index 445d920..357e8e7 100644
Binary files a/test/reference/smask.base.argb32.ref.png and b/test/reference/smask.base.argb32.ref.png differ
diff --git a/test/reference/smask.base.rgb24.ref.png b/test/reference/smask.base.rgb24.ref.png
index 445d920..357e8e7 100644
Binary files a/test/reference/smask.base.rgb24.ref.png and b/test/reference/smask.base.rgb24.ref.png differ
diff --git a/test/reference/stroke-image.base.argb32.ref.png b/test/reference/stroke-image.base.argb32.ref.png
index 15d4dce..75737d5 100644
Binary files a/test/reference/stroke-image.base.argb32.ref.png and b/test/reference/stroke-image.base.argb32.ref.png differ
diff --git a/test/reference/stroke-image.base.rgb24.ref.png b/test/reference/stroke-image.base.rgb24.ref.png
index 15d4dce..75737d5 100644
Binary files a/test/reference/stroke-image.base.rgb24.ref.png and b/test/reference/stroke-image.base.rgb24.ref.png differ
diff --git a/test/reference/subsurface-outside-target.base.argb32.ref.png b/test/reference/subsurface-outside-target.base.argb32.ref.png
index 16294f3..337cdd8 100644
Binary files a/test/reference/subsurface-outside-target.base.argb32.ref.png and b/test/reference/subsurface-outside-target.base.argb32.ref.png differ
diff --git a/test/reference/subsurface-outside-target.base.rgb24.ref.png b/test/reference/subsurface-outside-target.base.rgb24.ref.png
index 1009249..368936e 100644
Binary files a/test/reference/subsurface-outside-target.base.rgb24.ref.png and b/test/reference/subsurface-outside-target.base.rgb24.ref.png differ
diff --git a/test/reference/subsurface.base.argb32.ref.png b/test/reference/subsurface.base.argb32.ref.png
index 77e3c23..feeb5dc 100644
Binary files a/test/reference/subsurface.base.argb32.ref.png and b/test/reference/subsurface.base.argb32.ref.png differ
diff --git a/test/reference/subsurface.base.rgb24.ref.png b/test/reference/subsurface.base.rgb24.ref.png
index 77e3c23..feeb5dc 100644
Binary files a/test/reference/subsurface.base.rgb24.ref.png and b/test/reference/subsurface.base.rgb24.ref.png differ
diff --git a/test/reference/text-antialias-gray.base.argb32.ref.png b/test/reference/text-antialias-gray.base.argb32.ref.png
index b1dbc20..06b805e 100644
Binary files a/test/reference/text-antialias-gray.base.argb32.ref.png and b/test/reference/text-antialias-gray.base.argb32.ref.png differ
diff --git a/test/reference/text-antialias-gray.base.rgb24.ref.png b/test/reference/text-antialias-gray.base.rgb24.ref.png
index b1dbc20..06b805e 100644
Binary files a/test/reference/text-antialias-gray.base.rgb24.ref.png and b/test/reference/text-antialias-gray.base.rgb24.ref.png differ
diff --git a/test/reference/text-glyph-range.base.argb32.ref.png b/test/reference/text-glyph-range.base.argb32.ref.png
index 91de73d..3268699 100644
Binary files a/test/reference/text-glyph-range.base.argb32.ref.png and b/test/reference/text-glyph-range.base.argb32.ref.png differ
diff --git a/test/reference/text-glyph-range.base.rgb24.ref.png b/test/reference/text-glyph-range.base.rgb24.ref.png
index 91de73d..3268699 100644
Binary files a/test/reference/text-glyph-range.base.rgb24.ref.png and b/test/reference/text-glyph-range.base.rgb24.ref.png differ
diff --git a/test/reference/text-pattern.base.argb32.ref.png b/test/reference/text-pattern.base.argb32.ref.png
index d9f3eaa..79f18e4 100644
Binary files a/test/reference/text-pattern.base.argb32.ref.png and b/test/reference/text-pattern.base.argb32.ref.png differ
diff --git a/test/reference/text-pattern.base.rgb24.ref.png b/test/reference/text-pattern.base.rgb24.ref.png
index 70d4a59..b073b98 100644
Binary files a/test/reference/text-pattern.base.rgb24.ref.png and b/test/reference/text-pattern.base.rgb24.ref.png differ
diff --git a/test/reference/text-rotate.base.argb32.ref.png b/test/reference/text-rotate.base.argb32.ref.png
index 1db9a00..ff3fe84 100644
Binary files a/test/reference/text-rotate.base.argb32.ref.png and b/test/reference/text-rotate.base.argb32.ref.png differ
diff --git a/test/reference/text-rotate.base.rgb24.ref.png b/test/reference/text-rotate.base.rgb24.ref.png
index 1db9a00..ff3fe84 100644
Binary files a/test/reference/text-rotate.base.rgb24.ref.png and b/test/reference/text-rotate.base.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-gray.base.argb32.ref.png b/test/reference/twin-antialias-gray.base.argb32.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin-antialias-gray.base.argb32.ref.png and b/test/reference/twin-antialias-gray.base.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-gray.base.rgb24.ref.png b/test/reference/twin-antialias-gray.base.rgb24.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin-antialias-gray.base.rgb24.ref.png and b/test/reference/twin-antialias-gray.base.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-mixed.base.argb32.ref.png b/test/reference/twin-antialias-mixed.base.argb32.ref.png
index 0c91dd1..d6c406f 100644
Binary files a/test/reference/twin-antialias-mixed.base.argb32.ref.png and b/test/reference/twin-antialias-mixed.base.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-mixed.base.rgb24.ref.png b/test/reference/twin-antialias-mixed.base.rgb24.ref.png
index 0c91dd1..d6c406f 100644
Binary files a/test/reference/twin-antialias-mixed.base.rgb24.ref.png and b/test/reference/twin-antialias-mixed.base.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-none.base.argb32.ref.png b/test/reference/twin-antialias-none.base.argb32.ref.png
index 42f386d..02cf333 100644
Binary files a/test/reference/twin-antialias-none.base.argb32.ref.png and b/test/reference/twin-antialias-none.base.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-none.base.rgb24.ref.png b/test/reference/twin-antialias-none.base.rgb24.ref.png
index 42f386d..02cf333 100644
Binary files a/test/reference/twin-antialias-none.base.rgb24.ref.png and b/test/reference/twin-antialias-none.base.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.base.argb32.ref.png b/test/reference/twin-antialias-subpixel.base.argb32.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin-antialias-subpixel.base.argb32.ref.png and b/test/reference/twin-antialias-subpixel.base.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.base.rgb24.ref.png b/test/reference/twin-antialias-subpixel.base.rgb24.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin-antialias-subpixel.base.rgb24.ref.png and b/test/reference/twin-antialias-subpixel.base.rgb24.ref.png differ
diff --git a/test/reference/twin.base.argb32.ref.png b/test/reference/twin.base.argb32.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin.base.argb32.ref.png and b/test/reference/twin.base.argb32.ref.png differ
diff --git a/test/reference/twin.base.rgb24.ref.png b/test/reference/twin.base.rgb24.ref.png
index bfd4211..d1102b2 100644
Binary files a/test/reference/twin.base.rgb24.ref.png and b/test/reference/twin.base.rgb24.ref.png differ
diff --git a/test/reference/unbounded-operator.base.argb32.ref.png b/test/reference/unbounded-operator.base.argb32.ref.png
index dfb9031..fe86a94 100644
Binary files a/test/reference/unbounded-operator.base.argb32.ref.png and b/test/reference/unbounded-operator.base.argb32.ref.png differ
diff --git a/test/reference/unbounded-operator.base.rgb24.ref.png b/test/reference/unbounded-operator.base.rgb24.ref.png
index 6a0c5b3..c8555af 100644
Binary files a/test/reference/unbounded-operator.base.rgb24.ref.png and b/test/reference/unbounded-operator.base.rgb24.ref.png differ
diff --git a/test/reference/user-font-proxy.base.argb32.ref.png b/test/reference/user-font-proxy.base.argb32.ref.png
index 92ce636..094938c 100644
Binary files a/test/reference/user-font-proxy.base.argb32.ref.png and b/test/reference/user-font-proxy.base.argb32.ref.png differ
diff --git a/test/reference/user-font-proxy.base.rgb24.ref.png b/test/reference/user-font-proxy.base.rgb24.ref.png
index 92ce636..094938c 100644
Binary files a/test/reference/user-font-proxy.base.rgb24.ref.png and b/test/reference/user-font-proxy.base.rgb24.ref.png differ
diff --git a/test/reference/user-font-rescale.base.argb32.ref.png b/test/reference/user-font-rescale.base.argb32.ref.png
index c644f75..0939060 100644
Binary files a/test/reference/user-font-rescale.base.argb32.ref.png and b/test/reference/user-font-rescale.base.argb32.ref.png differ
diff --git a/test/reference/user-font-rescale.base.rgb24.ref.png b/test/reference/user-font-rescale.base.rgb24.ref.png
index c644f75..0939060 100644
Binary files a/test/reference/user-font-rescale.base.rgb24.ref.png and b/test/reference/user-font-rescale.base.rgb24.ref.png differ
diff --git a/test/reference/user-font.base.argb32.ref.png b/test/reference/user-font.base.argb32.ref.png
index 0ea3d17..c94cd49 100644
Binary files a/test/reference/user-font.base.argb32.ref.png and b/test/reference/user-font.base.argb32.ref.png differ
diff --git a/test/reference/user-font.base.rgb24.ref.png b/test/reference/user-font.base.rgb24.ref.png
index 0ea3d17..c94cd49 100644
Binary files a/test/reference/user-font.base.rgb24.ref.png and b/test/reference/user-font.base.rgb24.ref.png differ
More information about the cairo-commit
mailing list