summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2008-12-17 09:32:16 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2009-08-29 08:08:28 +0100
commitf8bb3617c3a7ec598c42eff1f8562e3ccc95127f (patch)
treef6c8f949ab44ca126053fb5cea2b9b88a4748cb8 /test
parent7c499db8afe8a7cf8c512ec166fe7dbf11a25c02 (diff)
Eliminate self-intersecting strokes.
We refactor the surface fallbacks to convert full strokes and fills to the intermediate polygon representation (as opposed to before where we returned the trapezoidal representation). This allow greater flexibility to choose how then to rasterize the polygon. Where possible we use the local spans rasteriser for its increased performance, but still have the option to use the tessellator instead (for example, with the current Render protocol which does not yet have a polygon image). In order to accommodate this, the spans interface is tweaked to accept whole polygons instead of a path and the tessellator is tweaked for speed. Performance Impact ================== ... Still measuring, expecting some severe regressions. ...
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am90
-rw-r--r--test/Makefile.sources3
-rw-r--r--test/caps-joins-alpha.ref.pngbin2463 -> 2570 bytes
-rw-r--r--test/caps-joins-alpha.xlib.ref.pngbin0 -> 2278 bytes
-rw-r--r--test/caps-joins-curve.ref.pngbin5132 -> 5725 bytes
-rw-r--r--test/caps-joins-curve.xlib.ref.pngbin0 -> 5126 bytes
-rw-r--r--test/clear.pdf.argb32.ref.pngbin0 -> 790 bytes
-rw-r--r--test/clear.ps.argb32.ref.pngbin0 -> 790 bytes
-rw-r--r--test/clip-operator.svg12.argb32.xfail.pngbin8406 -> 8404 bytes
-rw-r--r--test/clip-operator.svg12.rgb24.xfail.pngbin4540 -> 4523 bytes
-rw-r--r--test/clipped-group.pdf.ref.pngbin310 -> 334 bytes
-rw-r--r--test/clipped-trapezoids-ref.pngbin0 -> 1055 bytes
-rw-r--r--test/clipped-trapezoids.c95
-rw-r--r--test/clipped-trapezoids.ref.pngbin0 -> 963 bytes
-rw-r--r--test/close-path-current-point.ref.pngbin1916 -> 1893 bytes
-rw-r--r--test/dash-caps-joins.ref.pngbin4718 -> 4520 bytes
-rw-r--r--test/dash-curve.ref.pngbin39696 -> 41284 bytes
-rw-r--r--test/dash-curve.xlib.ref.pngbin0 -> 40109 bytes
-rw-r--r--test/dash-scale.ref.pngbin8058 -> 7616 bytes
-rw-r--r--test/degenerate-arc.ref.pngbin544 -> 646 bytes
-rw-r--r--test/degenerate-dash.ref.pngbin2005 -> 2086 bytes
-rw-r--r--test/degenerate-dash.xlib.ref.pngbin0 -> 1898 bytes
-rw-r--r--test/degenerate-path.argb32.ref.pngbin0 -> 240 bytes
-rw-r--r--test/degenerate-path.ref.pngbin257 -> 0 bytes
-rw-r--r--test/degenerate-path.rgb24.ref.pngbin224 -> 210 bytes
-rw-r--r--test/degenerate-pen.ref.pngbin1139 -> 997 bytes
-rw-r--r--test/degenerate-pen.xlib.ref.pngbin0 -> 997 bytes
-rw-r--r--test/device-offset-fractional.pdf.xfail.pngbin275 -> 275 bytes
-rw-r--r--test/fill-and-stroke-alpha-add.ref.pngbin591 -> 562 bytes
-rw-r--r--test/fill-and-stroke-alpha-add.svg12.xfail.pngbin614 -> 631 bytes
-rw-r--r--test/fill-and-stroke-alpha.ref.pngbin519 -> 515 bytes
-rw-r--r--test/fill-and-stroke.argb32.ref.pngbin0 -> 313 bytes
-rw-r--r--test/fill-and-stroke.ref.pngbin279 -> 0 bytes
-rw-r--r--test/fill-and-stroke.rgb24.ref.pngbin257 -> 287 bytes
-rw-r--r--test/fill-and-stroke.xlib.argb32.ref.pngbin0 -> 322 bytes
-rw-r--r--test/fill-and-stroke.xlib.rgb24.ref.pngbin0 -> 291 bytes
-rw-r--r--test/filter-nearest-offset.pdf.xfail.pngbin1867 -> 1926 bytes
-rw-r--r--test/filter-nearest-transformed.pdf.xfail.pngbin482 -> 488 bytes
-rw-r--r--test/ft-text-vertical-layout-type1.ps.ref.pngbin0 -> 1634 bytes
-rw-r--r--test/ft-text-vertical-layout-type1.ps2.ref.pngbin1846 -> 0 bytes
-rw-r--r--test/ft-text-vertical-layout-type1.ps3.ref.pngbin1846 -> 0 bytes
-rw-r--r--test/ft-text-vertical-layout-type1.ref.pngbin3643 -> 3647 bytes
-rw-r--r--test/ft-text-vertical-layout-type1.svg.ref.pngbin3607 -> 3609 bytes
-rw-r--r--test/ft-text-vertical-layout-type1.xlib.ref.pngbin3980 -> 3640 bytes
-rw-r--r--test/ft-text-vertical-layout-type3.ps.ref.pngbin0 -> 1636 bytes
-rw-r--r--test/ft-text-vertical-layout-type3.ps2.ref.pngbin1804 -> 0 bytes
-rw-r--r--test/ft-text-vertical-layout-type3.ps3.ref.pngbin1804 -> 0 bytes
-rw-r--r--test/ft-text-vertical-layout-type3.ref.pngbin3608 -> 3607 bytes
-rw-r--r--test/ft-text-vertical-layout-type3.svg.ref.pngbin3626 -> 3626 bytes
-rw-r--r--test/ft-text-vertical-layout-type3.xlib.ref.pngbin3934 -> 3605 bytes
-rw-r--r--test/group-unaligned.svg.argb32.xfail.pngbin520 -> 522 bytes
-rw-r--r--test/joins.ref.pngbin5879 -> 5708 bytes
-rw-r--r--test/leaky-dashed-rectangle.pdf.ref.pngbin347 -> 347 bytes
-rw-r--r--test/leaky-dashed-rectangle.xlib.ref.pngbin0 -> 347 bytes
-rw-r--r--test/leaky-dashed-stroke.ref.pngbin9214 -> 9387 bytes
-rw-r--r--test/leaky-dashed-stroke.xlib.ref.pngbin0 -> 9305 bytes
-rw-r--r--test/line-width-scale.ref.pngbin6445 -> 5716 bytes
-rw-r--r--test/long-dashed-lines.ref.pngbin2116 -> 2070 bytes
-rw-r--r--test/mask-glyphs.svg.ref.pngbin1211147 -> 1211158 bytes
-rw-r--r--test/meta-surface-pattern.pdf.argb32.ref.pngbin3919 -> 3835 bytes
-rw-r--r--test/meta-surface-pattern.pdf.rgb24.ref.pngbin3867 -> 3682 bytes
-rw-r--r--test/meta-surface-pattern.svg.argb32.ref.pngbin3930 -> 3778 bytes
-rw-r--r--test/meta-surface-pattern.svg.rgb24.ref.pngbin3910 -> 3760 bytes
-rw-r--r--test/new-sub-path.argb32.ref.pngbin0 -> 421 bytes
-rw-r--r--test/new-sub-path.pdf.argb32.ref.pngbin0 -> 512 bytes
-rw-r--r--test/new-sub-path.ref.pngbin386 -> 0 bytes
-rw-r--r--test/new-sub-path.rgb24.ref.pngbin355 -> 381 bytes
-rw-r--r--test/operator-source.svg12.argb32.xfail.pngbin2967 -> 2951 bytes
-rw-r--r--test/operator-source.svg12.rgb24.xfail.pngbin2976 -> 2963 bytes
-rw-r--r--test/over-around-source.pdf.argb32.ref.pngbin585 -> 576 bytes
-rw-r--r--test/random-intersections-eo.c (renamed from test/random-intersections.c)2
-rw-r--r--test/random-intersections-eo.ps.ref.pngbin0 -> 78806 bytes
-rw-r--r--test/random-intersections-eo.quartz.ref.png (renamed from test/random-intersections.quartz.ref.png)bin197778 -> 197778 bytes
-rw-r--r--test/random-intersections-eo.ref.pngbin0 -> 136018 bytes
-rw-r--r--test/random-intersections-eo.xlib.ref.pngbin0 -> 134655 bytes
-rw-r--r--test/random-intersections-nonzero.c79
-rw-r--r--test/random-intersections-nonzero.ps.ref.pngbin0 -> 77299 bytes
-rw-r--r--test/random-intersections-nonzero.ref.pngbin0 -> 141154 bytes
-rw-r--r--test/random-intersections-nonzero.xlib.ref.pngbin0 -> 141548 bytes
-rw-r--r--test/random-intersections.ps2.ref.pngbin89253 -> 0 bytes
-rw-r--r--test/random-intersections.ps3.ref.pngbin89253 -> 0 bytes
-rw-r--r--test/random-intersections.ref.pngbin133462 -> 0 bytes
-rw-r--r--test/random-intersections.xlib.ref.pngbin148722 -> 0 bytes
-rw-r--r--test/reflected-stroke.ref.pngbin5704 -> 4978 bytes
-rw-r--r--test/rel-path.ref.pngbin212 -> 198 bytes
-rw-r--r--test/rel-path.rgb24.ref.pngbin228 -> 214 bytes
-rw-r--r--test/scale-offset-image.meta.xfail.pngbin8599 -> 0 bytes
-rw-r--r--test/scale-offset-image.pdf.xfail.pngbin8694 -> 10099 bytes
-rw-r--r--test/scale-offset-image.xfail.pngbin8599 -> 9960 bytes
-rw-r--r--test/scale-offset-image.xlib-fallback.xfail.pngbin8580 -> 8706 bytes
-rw-r--r--test/scale-offset-image.xlib.xfail.pngbin9100 -> 9132 bytes
-rw-r--r--test/scale-offset-similar.meta.xfail.pngbin9095 -> 10752 bytes
-rw-r--r--test/scale-offset-similar.pdf.xfail.pngbin9368 -> 11024 bytes
-rw-r--r--test/scale-offset-similar.xfail.pngbin8599 -> 9960 bytes
-rw-r--r--test/scale-offset-similar.xlib-fallback.xfail.pngbin8580 -> 8706 bytes
-rw-r--r--test/scale-offset-similar.xlib.xfail.pngbin8570 -> 8696 bytes
-rw-r--r--test/self-intersecting.argb32.xfail.pngbin235 -> 0 bytes
-rw-r--r--test/self-intersecting.c3
-rw-r--r--test/self-intersecting.pdf.argb32.xfail.pngbin285 -> 0 bytes
-rw-r--r--test/self-intersecting.pdf.rgb24.xfail.pngbin269 -> 0 bytes
-rw-r--r--test/self-intersecting.ps.ref.png (renamed from test/self-intersecting.ps.argb32.xfail.png)bin186 -> 186 bytes
-rw-r--r--test/self-intersecting.ps.rgb24.xfail.pngbin186 -> 0 bytes
-rw-r--r--test/self-intersecting.ref.pngbin242 -> 301 bytes
-rw-r--r--test/self-intersecting.rgb24.ref.pngbin304 -> 0 bytes
-rw-r--r--test/self-intersecting.rgb24.xfail.pngbin240 -> 0 bytes
-rw-r--r--test/self-intersecting.xlib.argb32.xfail.pngbin235 -> 0 bytes
-rw-r--r--test/self-intersecting.xlib.ref.pngbin0 -> 252 bytes
-rw-r--r--test/self-intersecting.xlib.rgb24.xfail.pngbin240 -> 0 bytes
-rw-r--r--test/smask-stroke.ref.pngbin1845 -> 1714 bytes
-rw-r--r--test/smask-stroke.xlib.ref.pngbin0 -> 1707 bytes
-rw-r--r--test/smask.ps.ref.pngbin0 -> 3430 bytes
-rw-r--r--test/smask.ps2.ref.pngbin3669 -> 0 bytes
-rw-r--r--test/smask.ps3.ref.pngbin3669 -> 0 bytes
-rw-r--r--test/smask.ref.pngbin3417 -> 3423 bytes
-rw-r--r--test/smask.svg.ref.pngbin3458 -> 3457 bytes
-rw-r--r--test/smask.xlib.ref.pngbin3393 -> 3386 bytes
-rw-r--r--test/spline-decomposition.pdf.ref.pngbin19156 -> 19540 bytes
-rw-r--r--test/spline-decomposition.ps.ref.pngbin9090 -> 9028 bytes
-rw-r--r--test/spline-decomposition.ref.pngbin19107 -> 19569 bytes
-rw-r--r--test/spline-decomposition.svg.ref.pngbin19156 -> 19540 bytes
-rw-r--r--test/spline-decomposition.xlib.ref.pngbin0 -> 19158 bytes
-rw-r--r--test/stroke-ctm-caps.ref.pngbin1057 -> 873 bytes
-rw-r--r--test/stroke-image.pdf.ref.pngbin1554 -> 1475 bytes
-rw-r--r--test/stroke-image.ps.ref.pngbin0 -> 1641 bytes
-rw-r--r--test/stroke-image.ps2.ref.pngbin2121 -> 0 bytes
-rw-r--r--test/stroke-image.ps3.ref.pngbin2121 -> 0 bytes
-rw-r--r--test/stroke-image.ref.pngbin1866 -> 1344 bytes
-rw-r--r--test/stroke-image.xlib.ref.pngbin0 -> 1440 bytes
-rw-r--r--test/surface-pattern.pdf.xfail.pngbin10528 -> 10532 bytes
-rw-r--r--test/text-rotate.pdf.ref.pngbin16639 -> 16757 bytes
-rw-r--r--test/text-rotate.ref.pngbin17775 -> 16738 bytes
-rw-r--r--test/text-rotate.svg.ref.pngbin17024 -> 17118 bytes
-rw-r--r--test/text-rotate.xlib.ref.pngbin0 -> 16646 bytes
-rw-r--r--test/twin.ps.ref.pngbin2197 -> 2142 bytes
-rw-r--r--test/twin.ref.pngbin4038 -> 3979 bytes
-rw-r--r--test/twin.xlib.ref.pngbin0 -> 4435 bytes
-rw-r--r--test/unantialiased-shapes.ref.pngbin4459 -> 3969 bytes
-rw-r--r--test/unbounded-operator.svg12.argb32.ref.pngbin0 -> 2767 bytes
-rw-r--r--test/unbounded-operator.svg12.argb32.xfail.pngbin2771 -> 0 bytes
-rw-r--r--test/unbounded-operator.svg12.rgb24.xfail.pngbin1731 -> 1719 bytes
-rw-r--r--test/user-font-proxy.svg.ref.pngbin16814 -> 16817 bytes
-rw-r--r--test/user-font.ps.ref.pngbin0 -> 4605 bytes
-rw-r--r--test/user-font.ps2.ref.pngbin5043 -> 0 bytes
-rw-r--r--test/user-font.ps3.ref.pngbin5043 -> 0 bytes
-rw-r--r--test/user-font.ref.pngbin6082 -> 6270 bytes
-rw-r--r--test/user-font.xlib.ref.pngbin6183 -> 5884 bytes
146 files changed, 235 insertions, 37 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index a05239320..9b5ee2a8b 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -4,8 +4,6 @@ include $(top_srcdir)/test/Makefile.sources
SUBDIRS=pdiff .
-CLEANFILES += have-similar.*
-
# Then we have a collection of tests that are only run if certain
# features are compiled into cairo
if HAVE_PTHREAD
@@ -147,8 +145,10 @@ REFERENCE_IMAGES = \
bitmap-font.rgb24.ref.png \
caps-joins-alpha.quartz.ref.png \
caps-joins-alpha.ref.png \
+ caps-joins-alpha.xlib.ref.png \
caps-joins-curve.ps.ref.png \
caps-joins-curve.ref.png \
+ caps-joins-curve.xlib.ref.png \
caps-joins.ps.ref.png \
caps-joins.ref.png \
caps-sub-paths.ref.png \
@@ -156,6 +156,8 @@ REFERENCE_IMAGES = \
caps.ref.png \
clear.argb32.ref.png \
clear.rgb24.ref.png \
+ clear.pdf.argb32.ref.png \
+ clear.ps.argb32.ref.png \
clear.svg12.argb32.xfail.png \
clear.svg12.rgb24.xfail.png \
clip-all.ref.png \
@@ -237,6 +239,7 @@ REFERENCE_IMAGES = \
clipped-group.ps3.ref.png \
clipped-group.ref.png \
clipped-surface.ref.png \
+ clipped-trapezoids.ref.png \
close-path-current-point.ps.ref.png \
close-path-current-point.ref.png \
close-path.ps2.ref.png \
@@ -275,6 +278,7 @@ REFERENCE_IMAGES = \
dash-curve.ps3.ref.png \
dash-curve.quartz.ref.png \
dash-curve.ref.png \
+ dash-curve.xlib.ref.png \
dash-infinite-loop.ref.png \
dash-no-dash.ref.png \
dash-offset-negative.ref.png \
@@ -302,16 +306,18 @@ REFERENCE_IMAGES = \
degenerate-curve-to.ps.xfail.png \
degenerate-dash.ps.xfail.png \
degenerate-dash.ref.png \
+ degenerate-dash.xlib.ref.png \
degenerate-path.ps.argb32.xfail.png \
degenerate-path.ps.rgb24.xfail.png \
degenerate-path.quartz.ref.png \
degenerate-path.quartz.rgb24.ref.png \
- degenerate-path.ref.png \
+ degenerate-path.argb32.ref.png \
degenerate-path.rgb24.ref.png \
degenerate-pen.ps2.ref.png \
degenerate-pen.ps3.ref.png \
degenerate-pen.quartz.ref.png \
degenerate-pen.ref.png \
+ degenerate-pen.xlib.ref.png \
degenerate-rel-curve-to.ref.png \
degenerate-rel-curve-to.ps.xfail.png \
device-offset-fractional.gl.xfail.png \
@@ -389,8 +395,10 @@ REFERENCE_IMAGES = \
fill-and-stroke.ps3.rgb24.ref.png \
fill-and-stroke.quartz.ref.png \
fill-and-stroke.quartz.rgb24.ref.png \
- fill-and-stroke.ref.png \
+ fill-and-stroke.argb32.ref.png \
fill-and-stroke.rgb24.ref.png \
+ fill-and-stroke.xlib.argb32.ref.png \
+ fill-and-stroke.xlib.rgb24.ref.png \
fill-degenerate-sort-order.ps.argb32.xfail.png \
fill-degenerate-sort-order.ps.rgb24.xfail.png \
fill-degenerate-sort-order.quartz.ref.png \
@@ -469,14 +477,12 @@ REFERENCE_IMAGES = \
ft-text-antialias-none.ps3.argb32.ref.png \
ft-text-antialias-none.ref.png \
ft-text-vertical-layout-type1.pdf.ref.png \
- ft-text-vertical-layout-type1.ps2.ref.png \
- ft-text-vertical-layout-type1.ps3.ref.png \
+ ft-text-vertical-layout-type1.ps.ref.png \
ft-text-vertical-layout-type1.ref.png \
ft-text-vertical-layout-type1.svg.ref.png \
ft-text-vertical-layout-type1.xlib.ref.png \
ft-text-vertical-layout-type3.pdf.ref.png \
- ft-text-vertical-layout-type3.ps2.ref.png \
- ft-text-vertical-layout-type3.ps3.ref.png \
+ ft-text-vertical-layout-type3.ps.ref.png \
ft-text-vertical-layout-type3.ref.png \
ft-text-vertical-layout-type3.svg.ref.png \
ft-text-vertical-layout-type3.xlib.ref.png \
@@ -538,9 +544,11 @@ REFERENCE_IMAGES = \
leaky-dashed-rectangle.pdf.ref.png \
leaky-dashed-rectangle.ps.ref.png \
leaky-dashed-rectangle.ref.png \
+ leaky-dashed-rectangle.xlib.ref.png \
leaky-dashed-stroke.ps2.ref.png \
leaky-dashed-stroke.ps3.ref.png \
leaky-dashed-stroke.ref.png \
+ leaky-dashed-stroke.xlib.ref.png \
leaky-polygon.ps2.ref.png \
leaky-polygon.ps3.ref.png \
leaky-polygon.ref.png \
@@ -613,13 +621,14 @@ REFERENCE_IMAGES = \
miter-precision.ps3.ref.png \
miter-precision.ref.png \
move-to-show-surface.ref.png \
+ new-sub-path.pdf.argb32.ref.png \
new-sub-path.ps2.argb32.ref.png \
new-sub-path.ps2.rgb24.ref.png \
new-sub-path.ps3.argb32.ref.png \
new-sub-path.ps3.rgb24.ref.png \
new-sub-path.quartz.ref.png \
new-sub-path.quartz.rgb24.ref.png \
- new-sub-path.ref.png \
+ new-sub-path.argb32.ref.png \
new-sub-path.rgb24.ref.png \
nil-surface.ref.png \
nil-surface.rgb24.ref.png \
@@ -726,11 +735,13 @@ REFERENCE_IMAGES = \
radial-gradient.pdf.ref.png \
radial-gradient.quartz.ref.png \
radial-gradient.ref.png \
- random-intersections.ps2.ref.png \
- random-intersections.ps3.ref.png \
- random-intersections.quartz.ref.png \
- random-intersections.ref.png \
- random-intersections.xlib.ref.png \
+ random-intersections-eo.ps.ref.png \
+ random-intersections-eo.quartz.ref.png \
+ random-intersections-eo.ref.png \
+ random-intersections-eo.xlib.ref.png \
+ random-intersections-nonzero.ref.png \
+ random-intersections-nonzero.ps.ref.png \
+ random-intersections-nonzero.xlib.ref.png \
rectangle-rounding-error.ref.png \
rectilinear-dash.ref.png \
rectilinear-fill.ref.png \
@@ -783,16 +794,9 @@ REFERENCE_IMAGES = \
self-copy.ps2.ref.png \
self-copy.ps3.ref.png \
self-copy.ref.png \
- self-intersecting.argb32.xfail.png \
- self-intersecting.pdf.argb32.xfail.png \
- self-intersecting.pdf.rgb24.xfail.png \
- self-intersecting.ps.argb32.xfail.png \
- self-intersecting.ps.rgb24.xfail.png \
+ self-intersecting.ps.ref.png \
self-intersecting.ref.png \
- self-intersecting.rgb24.ref.png \
- self-intersecting.rgb24.xfail.png \
- self-intersecting.xlib.argb32.xfail.png \
- self-intersecting.xlib.rgb24.xfail.png \
+ self-intersecting.xlib.ref.png \
set-source.ref.png \
set-source.rgb24.ref.png \
show-glyphs-many.ref.png \
@@ -815,6 +819,7 @@ REFERENCE_IMAGES = \
smask-paint.svg.ref.png \
smask-stroke.pdf.xfail.png \
smask-stroke.ref.png \
+ smask-stroke.xlib.ref.png \
smask-text.pdf.ref.png \
smask-text.ps2.ref.png \
smask-text.ps3.ref.png \
@@ -822,8 +827,7 @@ REFERENCE_IMAGES = \
smask-text.svg.ref.png \
smask-text.xlib.ref.png \
smask.pdf.xfail.png \
- smask.ps2.ref.png \
- smask.ps3.ref.png \
+ smask.ps.ref.png \
smask.ref.png \
smask.svg.ref.png \
smask.xlib.ref.png \
@@ -844,15 +848,16 @@ REFERENCE_IMAGES = \
spline-decomposition.ps.ref.png \
spline-decomposition.ref.png \
spline-decomposition.svg.ref.png \
+ spline-decomposition.xlib.ref.png \
stroke-ctm-caps.ps2.ref.png \
stroke-ctm-caps.ps3.ref.png \
stroke-ctm-caps.quartz.ref.png \
stroke-ctm-caps.ref.png \
stroke-image.pdf.ref.png \
- stroke-image.ps2.ref.png \
- stroke-image.ps3.ref.png \
+ stroke-image.ps.ref.png \
stroke-image.quartz.ref.png \
stroke-image.ref.png \
+ stroke-image.xlib.ref.png \
surface-pattern-big-scale-down.ref.png \
surface-pattern-big-scale-down.ps.xfail.png \
surface-pattern-scale-down.pdf.ref.png \
@@ -900,6 +905,7 @@ REFERENCE_IMAGES = \
text-rotate.quartz.ref.png \
text-rotate.ref.png \
text-rotate.svg.ref.png \
+ text-rotate.xlib.ref.png \
text-transform.pdf.ref.png \
text-transform.ps2.ref.png \
text-transform.ps3.ref.png \
@@ -923,6 +929,7 @@ REFERENCE_IMAGES = \
twin.ps.ref.png \
twin.ref.png \
twin.svg.ref.png \
+ twin.xlib.ref.png \
unantialiased-shapes.quartz.ref.png \
unantialiased-shapes.ref.png \
unbounded-operator.gl.argb32.xfail.png \
@@ -934,7 +941,7 @@ REFERENCE_IMAGES = \
unbounded-operator.quartz.rgb24.ref.png \
unbounded-operator.ref.png \
unbounded-operator.rgb24.ref.png \
- unbounded-operator.svg12.argb32.xfail.png \
+ unbounded-operator.svg12.argb32.ref.png \
unbounded-operator.svg12.rgb24.xfail.png \
unbounded-operator.xlib.rgb24.ref.png \
user-font-mask.pdf.ref.png \
@@ -953,8 +960,7 @@ REFERENCE_IMAGES = \
user-font-rescale.ps3.ref.png \
user-font-rescale.ref.png \
user-font-rescale.svg.ref.png \
- user-font.ps2.ref.png \
- user-font.ps3.ref.png \
+ user-font.ps.ref.png \
user-font.ref.png \
user-font.svg.ref.png \
user-font.xlib.ref.png \
@@ -1132,14 +1138,22 @@ imagediff_LDADD = \
$(top_builddir)/src/libcairo.la
png_flatten_SOURCES = png-flatten.c
-png_flatten_LDADD = $(top_builddir)/src/libcairo.la $(CAIRO_LDADD)
+png_flatten_LDADD = $(top_builddir)/src/libcairo.la \
+ $(CAIRO_LDADD)
if BUILD_ANY2PPM
check_PROGRAMS += any2ppm
any2ppm_CFLAGS = $(AM_CFLAGS) $(POPPLER_CFLAGS) $(LIBRSVG_CFLAGS) $(LIBSPECTRE_CFLAGS)
# add LDADD, so poppler/librsvg uses "our" cairo
any2ppm_LDFLAGS = $(AM_LDFLAGS) $(CAIRO_TEST_UNDEFINED_LDFLAGS)
-any2ppm_LDADD = $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la $(top_builddir)/src/libcairo.la $(CAIRO_LDADD) $(CAIROBOILERPLATE_LIBS) $(POPPLER_LIBS) $(LIBRSVG_LIBS) $(LIBSPECTRE_LIBS)
+any2ppm_LDADD = \
+ $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
+ $(top_builddir)/src/libcairo.la \
+ $(CAIRO_LDADD) \
+ $(CAIROBOILERPLATE_LIBS) \
+ $(POPPLER_LIBS) \
+ $(LIBRSVG_LIBS) \
+ $(LIBSPECTRE_LIBS)
endif
if CAIRO_CAN_TEST_PDF_SURFACE
@@ -1147,7 +1161,9 @@ check_PROGRAMS += pdf2png
pdf2png_CFLAGS = $(AM_CFLAGS) $(POPPLER_CFLAGS)
# add LDADD, so poppler uses "our" cairo
pdf2png_LDFLAGS = $(AM_LDFLAGS) $(CAIRO_TEST_UNDEFINED_LDFLAGS)
-pdf2png_LDADD = $(top_builddir)/src/libcairo.la $(CAIRO_LDADD) $(POPPLER_LIBS)
+pdf2png_LDADD = $(top_builddir)/src/libcairo.la \
+ $(CAIRO_LDADD) \
+ $(POPPLER_LIBS)
endif
if CAIRO_CAN_TEST_SVG_SURFACE
@@ -1155,7 +1171,9 @@ check_PROGRAMS += svg2png
svg2png_CFLAGS = $(AM_CFLAGS) $(LIBRSVG_CFLAGS)
# add LDADD, so librsvg uses "our" cairo
svg2png_LDFLAGS = $(AM_LDFLAGS) $(CAIRO_TEST_UNDEFINED_LDFLAGS)
-svg2png_LDADD = $(top_builddir)/src/libcairo.la $(CAIRO_LDADD) $(LIBRSVG_LIBS)
+svg2png_LDADD = $(top_builddir)/src/libcairo.la \
+ $(CAIRO_LDADD) \
+ $(LIBRSVG_LIBS)
endif
if CAIRO_HAS_SPECTRE
@@ -1163,7 +1181,9 @@ check_PROGRAMS += ps2png
ps2png_CFLAGS = $(AM_CFLAGS) $(LIBSPECTRE_CFLAGS)
# add LDADD, so ps2png uses "our" cairo
ps2png_LDFLAGS = $(AM_LDFLAGS) $(CAIRO_TEST_UNDEFINED_LDFLAGS)
-ps2png_LDADD = $(top_builddir)/src/libcairo.la $(CAIRO_LDADD) $(LIBSPECTRE_LIBS)
+ps2png_LDADD = $(top_builddir)/src/libcairo.la \
+ $(CAIRO_LDADD) \
+ $(LIBSPECTRE_LIBS)
endif
EXTRA_PROGRAMS += $(TESTS)
diff --git a/test/Makefile.sources b/test/Makefile.sources
index 50b4d3eab..0a58ac077 100644
--- a/test/Makefile.sources
+++ b/test/Makefile.sources
@@ -150,7 +150,8 @@ test_sources = \
png.c \
push-group.c \
radial-gradient.c \
- random-intersections.c \
+ random-intersections-eo.c \
+ random-intersections-nonzero.c \
rectangle-rounding-error.c \
rectilinear-fill.c \
rectilinear-miter-limit.c \
diff --git a/test/caps-joins-alpha.ref.png b/test/caps-joins-alpha.ref.png
index 1d34c73b6..b28d936e0 100644
--- a/test/caps-joins-alpha.ref.png
+++ b/test/caps-joins-alpha.ref.png
Binary files differ
diff --git a/test/caps-joins-alpha.xlib.ref.png b/test/caps-joins-alpha.xlib.ref.png
new file mode 100644
index 000000000..288a5005f
--- /dev/null
+++ b/test/caps-joins-alpha.xlib.ref.png
Binary files differ
diff --git a/test/caps-joins-curve.ref.png b/test/caps-joins-curve.ref.png
index 9f7630130..cb4034b07 100644
--- a/test/caps-joins-curve.ref.png
+++ b/test/caps-joins-curve.ref.png
Binary files differ
diff --git a/test/caps-joins-curve.xlib.ref.png b/test/caps-joins-curve.xlib.ref.png
new file mode 100644
index 000000000..be7688d0b
--- /dev/null
+++ b/test/caps-joins-curve.xlib.ref.png
Binary files differ
diff --git a/test/clear.pdf.argb32.ref.png b/test/clear.pdf.argb32.ref.png
new file mode 100644
index 000000000..0960f4851
--- /dev/null
+++ b/test/clear.pdf.argb32.ref.png
Binary files differ
diff --git a/test/clear.ps.argb32.ref.png b/test/clear.ps.argb32.ref.png
new file mode 100644
index 000000000..0960f4851
--- /dev/null
+++ b/test/clear.ps.argb32.ref.png
Binary files differ
diff --git a/test/clip-operator.svg12.argb32.xfail.png b/test/clip-operator.svg12.argb32.xfail.png
index be0696e0f..1c21d15f6 100644
--- a/test/clip-operator.svg12.argb32.xfail.png
+++ b/test/clip-operator.svg12.argb32.xfail.png
Binary files differ
diff --git a/test/clip-operator.svg12.rgb24.xfail.png b/test/clip-operator.svg12.rgb24.xfail.png
index 494852da4..f79de48eb 100644
--- a/test/clip-operator.svg12.rgb24.xfail.png
+++ b/test/clip-operator.svg12.rgb24.xfail.png
Binary files differ
diff --git a/test/clipped-group.pdf.ref.png b/test/clipped-group.pdf.ref.png
index 649586086..23db5a4fd 100644
--- a/test/clipped-group.pdf.ref.png
+++ b/test/clipped-group.pdf.ref.png
Binary files differ
diff --git a/test/clipped-trapezoids-ref.png b/test/clipped-trapezoids-ref.png
new file mode 100644
index 000000000..3fd300c04
--- /dev/null
+++ b/test/clipped-trapezoids-ref.png
Binary files differ
diff --git a/test/clipped-trapezoids.c b/test/clipped-trapezoids.c
new file mode 100644
index 000000000..1f96daa8c
--- /dev/null
+++ b/test/clipped-trapezoids.c
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2008 Chris Wilson
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Chris Wilson not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. Chris Wilson makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * CHRIS WILSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL CHRIS WILSON BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Chris Wilson <chris@chris-wilson.co.uk>
+ */
+
+#include "cairo-test.h"
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+ double dash[2] = { 8, 4 };
+ double radius;
+
+ radius = width;
+ if (height > radius)
+ radius = height;
+
+ /* fill the background using a big circle */
+ cairo_arc (cr, 0, 0, 4 * radius, 0, 2 * M_PI);
+ cairo_fill (cr);
+
+ /* a rotated square - overlapping the corners */
+ cairo_save (cr);
+ cairo_save (cr);
+ cairo_translate (cr, width/2, height/2);
+ cairo_rotate (cr, M_PI/4);
+ cairo_scale (cr, M_SQRT2, M_SQRT2);
+ cairo_rectangle (cr, -width/2, -height/2, width, height);
+ cairo_restore (cr);
+ cairo_set_source_rgba (cr, 0, 1, 0, .5);
+ cairo_set_line_width (cr, radius/2);
+ cairo_stroke (cr);
+ cairo_restore (cr);
+
+ /* and put some circles in the corners */
+ cairo_set_source_rgb (cr, 1, 1, 1);
+ cairo_new_sub_path (cr);
+ cairo_arc (cr, 0, 0, radius/4, 0, 2 * M_PI);
+ cairo_new_sub_path (cr);
+ cairo_arc (cr, width, 0, radius/4, 0, 2 * M_PI);
+ cairo_new_sub_path (cr);
+ cairo_arc (cr, width, height, radius/4, 0, 2 * M_PI);
+ cairo_new_sub_path (cr);
+ cairo_arc (cr, 0, height, radius/4, 0, 2 * M_PI);
+ cairo_fill (cr);
+
+ /* a couple of pixel-aligned lines */
+ cairo_set_source_rgb (cr, 0, 0, 1);
+ cairo_move_to (cr, width/2, -height);
+ cairo_rel_line_to (cr, 0, 3*height);
+ cairo_move_to (cr, -width, height/2);
+ cairo_rel_line_to (cr, 3*width, 0);
+ cairo_stroke (cr);
+
+ /* a couple of dashed diagonals */
+ cairo_save (cr);
+ cairo_set_source_rgb (cr, 1, 0, 0);
+ cairo_set_dash (cr, dash, 2, 0);
+ cairo_set_line_width (cr, 4.);
+ cairo_move_to (cr, -width, -height);
+ cairo_line_to (cr, width+width, height+height);
+ cairo_move_to (cr, width+width, -height);
+ cairo_line_to (cr, -width, height+height);
+ cairo_stroke (cr);
+ cairo_restore (cr);
+
+ return CAIRO_TEST_SUCCESS;
+}
+
+CAIRO_TEST (clipped_trapezoids,
+ "Tests clipping of trapezoids larger than the surface",
+ "clip", /* keywords */
+ NULL, /* requirements */
+ 40, 40,
+ NULL, draw)
diff --git a/test/clipped-trapezoids.ref.png b/test/clipped-trapezoids.ref.png
new file mode 100644
index 000000000..975a692d8
--- /dev/null
+++ b/test/clipped-trapezoids.ref.png
Binary files differ
diff --git a/test/close-path-current-point.ref.png b/test/close-path-current-point.ref.png
index f30002c6b..70f9accc3 100644
--- a/test/close-path-current-point.ref.png
+++ b/test/close-path-current-point.ref.png
Binary files differ
diff --git a/test/dash-caps-joins.ref.png b/test/dash-caps-joins.ref.png
index 15a067988..bde369717 100644
--- a/test/dash-caps-joins.ref.png
+++ b/test/dash-caps-joins.ref.png
Binary files differ
diff --git a/test/dash-curve.ref.png b/test/dash-curve.ref.png
index a590fc433..b940c1b4f 100644
--- a/test/dash-curve.ref.png
+++ b/test/dash-curve.ref.png
Binary files differ
diff --git a/test/dash-curve.xlib.ref.png b/test/dash-curve.xlib.ref.png
new file mode 100644
index 000000000..76212601a
--- /dev/null
+++ b/test/dash-curve.xlib.ref.png
Binary files differ
diff --git a/test/dash-scale.ref.png b/test/dash-scale.ref.png
index a0f004b38..cbfb6bd3e 100644
--- a/test/dash-scale.ref.png
+++ b/test/dash-scale.ref.png
Binary files differ
diff --git a/test/degenerate-arc.ref.png b/test/degenerate-arc.ref.png
index 1d131b225..d83e2c7b7 100644
--- a/test/degenerate-arc.ref.png
+++ b/test/degenerate-arc.ref.png
Binary files differ
diff --git a/test/degenerate-dash.ref.png b/test/degenerate-dash.ref.png
index ec51a3ce4..2ddfc8bbf 100644
--- a/test/degenerate-dash.ref.png
+++ b/test/degenerate-dash.ref.png
Binary files differ
diff --git a/test/degenerate-dash.xlib.ref.png b/test/degenerate-dash.xlib.ref.png
new file mode 100644
index 000000000..a1b2e830c
--- /dev/null
+++ b/test/degenerate-dash.xlib.ref.png
Binary files differ
diff --git a/test/degenerate-path.argb32.ref.png b/test/degenerate-path.argb32.ref.png
new file mode 100644
index 000000000..e647677c7
--- /dev/null
+++ b/test/degenerate-path.argb32.ref.png
Binary files differ
diff --git a/test/degenerate-path.ref.png b/test/degenerate-path.ref.png
deleted file mode 100644
index 102e8905d..000000000
--- a/test/degenerate-path.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/degenerate-path.rgb24.ref.png b/test/degenerate-path.rgb24.ref.png
index 881c0194e..d8210a54c 100644
--- a/test/degenerate-path.rgb24.ref.png
+++ b/test/degenerate-path.rgb24.ref.png
Binary files differ
diff --git a/test/degenerate-pen.ref.png b/test/degenerate-pen.ref.png
index 5961ddd4d..b7dcaadcc 100644
--- a/test/degenerate-pen.ref.png
+++ b/test/degenerate-pen.ref.png
Binary files differ
diff --git a/test/degenerate-pen.xlib.ref.png b/test/degenerate-pen.xlib.ref.png
new file mode 100644
index 000000000..b7dcaadcc
--- /dev/null
+++ b/test/degenerate-pen.xlib.ref.png
Binary files differ
diff --git a/test/device-offset-fractional.pdf.xfail.png b/test/device-offset-fractional.pdf.xfail.png
index 77a496326..6248b4af9 100644
--- a/test/device-offset-fractional.pdf.xfail.png
+++ b/test/device-offset-fractional.pdf.xfail.png
Binary files differ
diff --git a/test/fill-and-stroke-alpha-add.ref.png b/test/fill-and-stroke-alpha-add.ref.png
index 412dd4f5a..c69b6bd3b 100644
--- a/test/fill-and-stroke-alpha-add.ref.png
+++ b/test/fill-and-stroke-alpha-add.ref.png
Binary files differ
diff --git a/test/fill-and-stroke-alpha-add.svg12.xfail.png b/test/fill-and-stroke-alpha-add.svg12.xfail.png
index 32962f7a7..c1d7d6fc7 100644
--- a/test/fill-and-stroke-alpha-add.svg12.xfail.png
+++ b/test/fill-and-stroke-alpha-add.svg12.xfail.png
Binary files differ
diff --git a/test/fill-and-stroke-alpha.ref.png b/test/fill-and-stroke-alpha.ref.png
index fd4b81bef..ff2e156c5 100644
--- a/test/fill-and-stroke-alpha.ref.png
+++ b/test/fill-and-stroke-alpha.ref.png
Binary files differ
diff --git a/test/fill-and-stroke.argb32.ref.png b/test/fill-and-stroke.argb32.ref.png
new file mode 100644
index 000000000..01d92c88c
--- /dev/null
+++ b/test/fill-and-stroke.argb32.ref.png
Binary files differ
diff --git a/test/fill-and-stroke.ref.png b/test/fill-and-stroke.ref.png
deleted file mode 100644
index 298f6945f..000000000
--- a/test/fill-and-stroke.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/fill-and-stroke.rgb24.ref.png b/test/fill-and-stroke.rgb24.ref.png
index ff886eb25..7228813b1 100644
--- a/test/fill-and-stroke.rgb24.ref.png
+++ b/test/fill-and-stroke.rgb24.ref.png
Binary files differ
diff --git a/test/fill-and-stroke.xlib.argb32.ref.png b/test/fill-and-stroke.xlib.argb32.ref.png
new file mode 100644
index 000000000..5f77c9263
--- /dev/null
+++ b/test/fill-and-stroke.xlib.argb32.ref.png
Binary files differ
diff --git a/test/fill-and-stroke.xlib.rgb24.ref.png b/test/fill-and-stroke.xlib.rgb24.ref.png
new file mode 100644
index 000000000..f4035ebea
--- /dev/null
+++ b/test/fill-and-stroke.xlib.rgb24.ref.png
Binary files differ
diff --git a/test/filter-nearest-offset.pdf.xfail.png b/test/filter-nearest-offset.pdf.xfail.png
index ffe2df129..4d436aa17 100644
--- a/test/filter-nearest-offset.pdf.xfail.png
+++ b/test/filter-nearest-offset.pdf.xfail.png
Binary files differ
diff --git a/test/filter-nearest-transformed.pdf.xfail.png b/test/filter-nearest-transformed.pdf.xfail.png
index 7eb5988b7..5ad98a758 100644
--- a/test/filter-nearest-transformed.pdf.xfail.png
+++ b/test/filter-nearest-transformed.pdf.xfail.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type1.ps.ref.png b/test/ft-text-vertical-layout-type1.ps.ref.png
new file mode 100644
index 000000000..05cdf103d
--- /dev/null
+++ b/test/ft-text-vertical-layout-type1.ps.ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type1.ps2.ref.png b/test/ft-text-vertical-layout-type1.ps2.ref.png
deleted file mode 100644
index 4523495bb..000000000
--- a/test/ft-text-vertical-layout-type1.ps2.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/ft-text-vertical-layout-type1.ps3.ref.png b/test/ft-text-vertical-layout-type1.ps3.ref.png
deleted file mode 100644
index 4523495bb..000000000
--- a/test/ft-text-vertical-layout-type1.ps3.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/ft-text-vertical-layout-type1.ref.png b/test/ft-text-vertical-layout-type1.ref.png
index 1accc0b3a..6f0df7b34 100644
--- a/test/ft-text-vertical-layout-type1.ref.png
+++ b/test/ft-text-vertical-layout-type1.ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type1.svg.ref.png b/test/ft-text-vertical-layout-type1.svg.ref.png
index 0be400c13..326a240d3 100644
--- a/test/ft-text-vertical-layout-type1.svg.ref.png
+++ b/test/ft-text-vertical-layout-type1.svg.ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type1.xlib.ref.png b/test/ft-text-vertical-layout-type1.xlib.ref.png
index 2b74aa608..44a1ec7a8 100644
--- a/test/ft-text-vertical-layout-type1.xlib.ref.png
+++ b/test/ft-text-vertical-layout-type1.xlib.ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3.ps.ref.png b/test/ft-text-vertical-layout-type3.ps.ref.png
new file mode 100644
index 000000000..bcc208d8b
--- /dev/null
+++ b/test/ft-text-vertical-layout-type3.ps.ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3.ps2.ref.png b/test/ft-text-vertical-layout-type3.ps2.ref.png
deleted file mode 100644
index e6ad8fc0b..000000000
--- a/test/ft-text-vertical-layout-type3.ps2.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3.ps3.ref.png b/test/ft-text-vertical-layout-type3.ps3.ref.png
deleted file mode 100644
index e6ad8fc0b..000000000
--- a/test/ft-text-vertical-layout-type3.ps3.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3.ref.png b/test/ft-text-vertical-layout-type3.ref.png
index 1bda421c4..94048f1c4 100644
--- a/test/ft-text-vertical-layout-type3.ref.png
+++ b/test/ft-text-vertical-layout-type3.ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3.svg.ref.png b/test/ft-text-vertical-layout-type3.svg.ref.png
index cddb955aa..985a8de65 100644
--- a/test/ft-text-vertical-layout-type3.svg.ref.png
+++ b/test/ft-text-vertical-layout-type3.svg.ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3.xlib.ref.png b/test/ft-text-vertical-layout-type3.xlib.ref.png
index 8ec2ebec2..7a7f68f71 100644
--- a/test/ft-text-vertical-layout-type3.xlib.ref.png
+++ b/test/ft-text-vertical-layout-type3.xlib.ref.png
Binary files differ
diff --git a/test/group-unaligned.svg.argb32.xfail.png b/test/group-unaligned.svg.argb32.xfail.png
index 01c34bec4..38550376d 100644
--- a/test/group-unaligned.svg.argb32.xfail.png
+++ b/test/group-unaligned.svg.argb32.xfail.png
Binary files differ
diff --git a/test/joins.ref.png b/test/joins.ref.png
index eee7627e8..f8e33f8a8 100644
--- a/test/joins.ref.png
+++ b/test/joins.ref.png
Binary files differ
diff --git a/test/leaky-dashed-rectangle.pdf.ref.png b/test/leaky-dashed-rectangle.pdf.ref.png
index 690cb3633..c0ba7b2c0 100644
--- a/test/leaky-dashed-rectangle.pdf.ref.png
+++ b/test/leaky-dashed-rectangle.pdf.ref.png
Binary files differ
diff --git a/test/leaky-dashed-rectangle.xlib.ref.png b/test/leaky-dashed-rectangle.xlib.ref.png
new file mode 100644
index 000000000..690cb3633
--- /dev/null
+++ b/test/leaky-dashed-rectangle.xlib.ref.png
Binary files differ
diff --git a/test/leaky-dashed-stroke.ref.png b/test/leaky-dashed-stroke.ref.png
index e79d4d118..ae64dae4c 100644
--- a/test/leaky-dashed-stroke.ref.png
+++ b/test/leaky-dashed-stroke.ref.png
Binary files differ
diff --git a/test/leaky-dashed-stroke.xlib.ref.png b/test/leaky-dashed-stroke.xlib.ref.png
new file mode 100644
index 000000000..4ebf1a7fe
--- /dev/null
+++ b/test/leaky-dashed-stroke.xlib.ref.png
Binary files differ
diff --git a/test/line-width-scale.ref.png b/test/line-width-scale.ref.png
index c40bce39a..e012b6e2d 100644
--- a/test/line-width-scale.ref.png
+++ b/test/line-width-scale.ref.png
Binary files differ
diff --git a/test/long-dashed-lines.ref.png b/test/long-dashed-lines.ref.png
index caf8b5e5f..09829b713 100644
--- a/test/long-dashed-lines.ref.png
+++ b/test/long-dashed-lines.ref.png
Binary files differ
diff --git a/test/mask-glyphs.svg.ref.png b/test/mask-glyphs.svg.ref.png
index 0058afc15..5d524ddc9 100644
--- a/test/mask-glyphs.svg.ref.png
+++ b/test/mask-glyphs.svg.ref.png
Binary files differ
diff --git a/test/meta-surface-pattern.pdf.argb32.ref.png b/test/meta-surface-pattern.pdf.argb32.ref.png
index 043322280..015f7445d 100644
--- a/test/meta-surface-pattern.pdf.argb32.ref.png
+++ b/test/meta-surface-pattern.pdf.argb32.ref.png
Binary files differ
diff --git a/test/meta-surface-pattern.pdf.rgb24.ref.png b/test/meta-surface-pattern.pdf.rgb24.ref.png
index b59a9caf8..1762e8ac8 100644
--- a/test/meta-surface-pattern.pdf.rgb24.ref.png
+++ b/test/meta-surface-pattern.pdf.rgb24.ref.png
Binary files differ
diff --git a/test/meta-surface-pattern.svg.argb32.ref.png b/test/meta-surface-pattern.svg.argb32.ref.png
index 86f6b6120..ff4154d61 100644
--- a/test/meta-surface-pattern.svg.argb32.ref.png
+++ b/test/meta-surface-pattern.svg.argb32.ref.png
Binary files differ
diff --git a/test/meta-surface-pattern.svg.rgb24.ref.png b/test/meta-surface-pattern.svg.rgb24.ref.png
index bbd89363e..d2d537241 100644
--- a/test/meta-surface-pattern.svg.rgb24.ref.png
+++ b/test/meta-surface-pattern.svg.rgb24.ref.png
Binary files differ
diff --git a/test/new-sub-path.argb32.ref.png b/test/new-sub-path.argb32.ref.png
new file mode 100644
index 000000000..4ecaa0f5c
--- /dev/null
+++ b/test/new-sub-path.argb32.ref.png
Binary files differ
diff --git a/test/new-sub-path.pdf.argb32.ref.png b/test/new-sub-path.pdf.argb32.ref.png
new file mode 100644
index 000000000..41fe1314e
--- /dev/null
+++ b/test/new-sub-path.pdf.argb32.ref.png
Binary files differ
diff --git a/test/new-sub-path.ref.png b/test/new-sub-path.ref.png
deleted file mode 100644
index 7319ab3fc..000000000
--- a/test/new-sub-path.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/new-sub-path.rgb24.ref.png b/test/new-sub-path.rgb24.ref.png
index 8cbc73161..938344a55 100644
--- a/test/new-sub-path.rgb24.ref.png
+++ b/test/new-sub-path.rgb24.ref.png
Binary files differ
diff --git a/test/operator-source.svg12.argb32.xfail.png b/test/operator-source.svg12.argb32.xfail.png
index ccf431567..722e5ac4c 100644
--- a/test/operator-source.svg12.argb32.xfail.png
+++ b/test/operator-source.svg12.argb32.xfail.png
Binary files differ
diff --git a/test/operator-source.svg12.rgb24.xfail.png b/test/operator-source.svg12.rgb24.xfail.png
index 827521b8f..5f445fc54 100644
--- a/test/operator-source.svg12.rgb24.xfail.png
+++ b/test/operator-source.svg12.rgb24.xfail.png
Binary files differ
diff --git a/test/over-around-source.pdf.argb32.ref.png b/test/over-around-source.pdf.argb32.ref.png
index 02af76a91..da700af73 100644
--- a/test/over-around-source.pdf.argb32.ref.png
+++ b/test/over-around-source.pdf.argb32.ref.png
Binary files differ
diff --git a/test/random-intersections.c b/test/random-intersections-eo.c
index 75e6b6260..d35894f33 100644
--- a/test/random-intersections.c
+++ b/test/random-intersections-eo.c
@@ -69,7 +69,7 @@ draw (cairo_t *cr, int width, int height)
return CAIRO_TEST_SUCCESS;
}
-CAIRO_TEST (random_intersections,
+CAIRO_TEST (random_intersections_eo,
"Tests the tessellator trapezoid generation and intersection computation",
"trap", /* keywords */
NULL, /* requirements */
diff --git a/test/random-intersections-eo.ps.ref.png b/test/random-intersections-eo.ps.ref.png
new file mode 100644
index 000000000..4bb11d6fd
--- /dev/null
+++ b/test/random-intersections-eo.ps.ref.png
Binary files differ
diff --git a/test/random-intersections.quartz.ref.png b/test/random-intersections-eo.quartz.ref.png
index ef76cba94..ef76cba94 100644
--- a/test/random-intersections.quartz.ref.png
+++ b/test/random-intersections-eo.quartz.ref.png
Binary files differ
diff --git a/test/random-intersections-eo.ref.png b/test/random-intersections-eo.ref.png
new file mode 100644
index 000000000..ea23a8780
--- /dev/null
+++ b/test/random-intersections-eo.ref.png
Binary files differ
diff --git a/test/random-intersections-eo.xlib.ref.png b/test/random-intersections-eo.xlib.ref.png
new file mode 100644
index 000000000..942a5fc7a
--- /dev/null
+++ b/test/random-intersections-eo.xlib.ref.png
Binary files differ
diff --git a/test/random-intersections-nonzero.c b/test/random-intersections-nonzero.c
new file mode 100644
index 000000000..cad047e04
--- /dev/null
+++ b/test/random-intersections-nonzero.c
@@ -0,0 +1,79 @@
+/*
+ * Copyright © 2006 M Joonas Pihlaja
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+ */
+#include "cairo-test.h"
+
+#define SIZE 512
+#define NUM_SEGMENTS 128
+
+static uint32_t state;
+
+static double
+uniform_random (double minval, double maxval)
+{
+ static uint32_t const poly = 0x9a795537U;
+ uint32_t n = 32;
+ while (n-->0)
+ state = 2*state < state ? (2*state ^ poly) : 2*state;
+ return minval + state * (maxval - minval) / 4294967296.0;
+}
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+ int i;
+
+ cairo_set_source_rgb (cr, 0, 0, 0);
+ cairo_paint (cr);
+
+ state = 0x12345678;
+ cairo_translate (cr, 1, 1);
+ cairo_set_fill_rule (cr, CAIRO_FILL_RULE_WINDING);
+
+ cairo_move_to (cr, 0, 0);
+ for (i = 0; i < NUM_SEGMENTS; i++) {
+ double x = uniform_random (0, width);
+ double y = uniform_random (0, height);
+ cairo_line_to (cr, x, y);
+ }
+ cairo_close_path (cr);
+
+ cairo_set_source_rgb (cr, 1, 0, 0);
+ cairo_fill_preserve (cr);
+ cairo_set_source_rgb (cr, 0, 1, 0);
+ cairo_set_line_width (cr, 0.5);
+ cairo_stroke (cr);
+
+ return CAIRO_TEST_SUCCESS;
+}
+
+CAIRO_TEST (random_intersections_nonzero,
+ "Tests the tessellator trapezoid generation and intersection computation",
+ "trap", /* keywords */
+ NULL, /* requirements */
+ SIZE+3, SIZE+3,
+ NULL, draw)
+
+
diff --git a/test/random-intersections-nonzero.ps.ref.png b/test/random-intersections-nonzero.ps.ref.png
new file mode 100644
index 000000000..043109109
--- /dev/null
+++ b/test/random-intersections-nonzero.ps.ref.png
Binary files differ
diff --git a/test/random-intersections-nonzero.ref.png b/test/random-intersections-nonzero.ref.png
new file mode 100644
index 000000000..3ea650c94
--- /dev/null
+++ b/test/random-intersections-nonzero.ref.png
Binary files differ
diff --git a/test/random-intersections-nonzero.xlib.ref.png b/test/random-intersections-nonzero.xlib.ref.png
new file mode 100644
index 000000000..69e06f8ce
--- /dev/null
+++ b/test/random-intersections-nonzero.xlib.ref.png
Binary files differ
diff --git a/test/random-intersections.ps2.ref.png b/test/random-intersections.ps2.ref.png
deleted file mode 100644
index 590c83248..000000000
--- a/test/random-intersections.ps2.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/random-intersections.ps3.ref.png b/test/random-intersections.ps3.ref.png
deleted file mode 100644
index 590c83248..000000000
--- a/test/random-intersections.ps3.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/random-intersections.ref.png b/test/random-intersections.ref.png
deleted file mode 100644
index ace75a24e..000000000
--- a/test/random-intersections.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/random-intersections.xlib.ref.png b/test/random-intersections.xlib.ref.png
deleted file mode 100644
index 3188edefc..000000000
--- a/test/random-intersections.xlib.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/reflected-stroke.ref.png b/test/reflected-stroke.ref.png
index 20f89c841..2dd865ba5 100644
--- a/test/reflected-stroke.ref.png
+++ b/test/reflected-stroke.ref.png
Binary files differ
diff --git a/test/rel-path.ref.png b/test/rel-path.ref.png
index 7b7007f31..18e67ca3e 100644
--- a/test/rel-path.ref.png
+++ b/test/rel-path.ref.png
Binary files differ
diff --git a/test/rel-path.rgb24.ref.png b/test/rel-path.rgb24.ref.png
index 0a8a8732d..c317d11be 100644
--- a/test/rel-path.rgb24.ref.png
+++ b/test/rel-path.rgb24.ref.png
Binary files differ
diff --git a/test/scale-offset-image.meta.xfail.png b/test/scale-offset-image.meta.xfail.png
deleted file mode 100644
index 3e0191a1f..000000000
--- a/test/scale-offset-image.meta.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/scale-offset-image.pdf.xfail.png b/test/scale-offset-image.pdf.xfail.png
index 3eacbbc86..76e6fb76e 100644
--- a/test/scale-offset-image.pdf.xfail.png
+++ b/test/scale-offset-image.pdf.xfail.png
Binary files differ
diff --git a/test/scale-offset-image.xfail.png b/test/scale-offset-image.xfail.png
index 3e0191a1f..fef3a3995 100644
--- a/test/scale-offset-image.xfail.png
+++ b/test/scale-offset-image.xfail.png
Binary files differ
diff --git a/test/scale-offset-image.xlib-fallback.xfail.png b/test/scale-offset-image.xlib-fallback.xfail.png
index 1a286cdb6..0dd71002b 100644
--- a/test/scale-offset-image.xlib-fallback.xfail.png
+++ b/test/scale-offset-image.xlib-fallback.xfail.png
Binary files differ
diff --git a/test/scale-offset-image.xlib.xfail.png b/test/scale-offset-image.xlib.xfail.png
index efb009177..89611db5f 100644
--- a/test/scale-offset-image.xlib.xfail.png
+++ b/test/scale-offset-image.xlib.xfail.png
Binary files differ
diff --git a/test/scale-offset-similar.meta.xfail.png b/test/scale-offset-similar.meta.xfail.png
index 83d53e65a..0f2553e49 100644
--- a/test/scale-offset-similar.meta.xfail.png
+++ b/test/scale-offset-similar.meta.xfail.png
Binary files differ
diff --git a/test/scale-offset-similar.pdf.xfail.png b/test/scale-offset-similar.pdf.xfail.png
index 7808aeb9a..38b9a2096 100644
--- a/test/scale-offset-similar.pdf.xfail.png
+++ b/test/scale-offset-similar.pdf.xfail.png
Binary files differ
diff --git a/test/scale-offset-similar.xfail.png b/test/scale-offset-similar.xfail.png
index 3e0191a1f..fef3a3995 100644
--- a/test/scale-offset-similar.xfail.png
+++ b/test/scale-offset-similar.xfail.png
Binary files differ
diff --git a/test/scale-offset-similar.xlib-fallback.xfail.png b/test/scale-offset-similar.xlib-fallback.xfail.png
index 1a286cdb6..0dd71002b 100644
--- a/test/scale-offset-similar.xlib-fallback.xfail.png
+++ b/test/scale-offset-similar.xlib-fallback.xfail.png
Binary files differ
diff --git a/test/scale-offset-similar.xlib.xfail.png b/test/scale-offset-similar.xlib.xfail.png
index d58aebab3..09e17daa2 100644
--- a/test/scale-offset-similar.xlib.xfail.png
+++ b/test/scale-offset-similar.xlib.xfail.png
Binary files differ
diff --git a/test/self-intersecting.argb32.xfail.png b/test/self-intersecting.argb32.xfail.png
deleted file mode 100644
index f644ed46e..000000000
--- a/test/self-intersecting.argb32.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/self-intersecting.c b/test/self-intersecting.c
index 6719e93fe..8053235ac 100644
--- a/test/self-intersecting.c
+++ b/test/self-intersecting.c
@@ -47,6 +47,9 @@
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
+ cairo_set_source_rgb (cr, 1, 1, 1);
+ cairo_paint (cr);
+
cairo_translate (cr, 1.0, 1.0);
cairo_set_source_rgb (cr, 1, 0, 0); /* red */
diff --git a/test/self-intersecting.pdf.argb32.xfail.png b/test/self-intersecting.pdf.argb32.xfail.png
deleted file mode 100644
index eb38a893a..000000000
--- a/test/self-intersecting.pdf.argb32.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/self-intersecting.pdf.rgb24.xfail.png b/test/self-intersecting.pdf.rgb24.xfail.png
deleted file mode 100644
index a79a29759..000000000
--- a/test/self-intersecting.pdf.rgb24.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/self-intersecting.ps.argb32.xfail.png b/test/self-intersecting.ps.ref.png
index 84fde0171..84fde0171 100644
--- a/test/self-intersecting.ps.argb32.xfail.png
+++ b/test/self-intersecting.ps.ref.png
Binary files differ
diff --git a/test/self-intersecting.ps.rgb24.xfail.png b/test/self-intersecting.ps.rgb24.xfail.png
deleted file mode 100644
index c81360704..000000000
--- a/test/self-intersecting.ps.rgb24.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/self-intersecting.ref.png b/test/self-intersecting.ref.png
index 384b0abc0..b2f425995 100644
--- a/test/self-intersecting.ref.png
+++ b/test/self-intersecting.ref.png
Binary files differ
diff --git a/test/self-intersecting.rgb24.ref.png b/test/self-intersecting.rgb24.ref.png
deleted file mode 100644
index 51217926f..000000000
--- a/test/self-intersecting.rgb24.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/self-intersecting.rgb24.xfail.png b/test/self-intersecting.rgb24.xfail.png
deleted file mode 100644
index 958215c21..000000000
--- a/test/self-intersecting.rgb24.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/self-intersecting.xlib.argb32.xfail.png b/test/self-intersecting.xlib.argb32.xfail.png
deleted file mode 100644
index f644ed46e..000000000
--- a/test/self-intersecting.xlib.argb32.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/self-intersecting.xlib.ref.png b/test/self-intersecting.xlib.ref.png
new file mode 100644
index 000000000..f8fe0c03b
--- /dev/null
+++ b/test/self-intersecting.xlib.ref.png
Binary files differ
diff --git a/test/self-intersecting.xlib.rgb24.xfail.png b/test/self-intersecting.xlib.rgb24.xfail.png
deleted file mode 100644
index 958215c21..000000000
--- a/test/self-intersecting.xlib.rgb24.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/smask-stroke.ref.png b/test/smask-stroke.ref.png
index 0d3f7feae..c94a09fce 100644
--- a/test/smask-stroke.ref.png
+++ b/test/smask-stroke.ref.png
Binary files differ
diff --git a/test/smask-stroke.xlib.ref.png b/test/smask-stroke.xlib.ref.png
new file mode 100644
index 000000000..71f427bbd
--- /dev/null
+++ b/test/smask-stroke.xlib.ref.png
Binary files differ
diff --git a/test/smask.ps.ref.png b/test/smask.ps.ref.png
new file mode 100644
index 000000000..31ccc17b7
--- /dev/null
+++ b/test/smask.ps.ref.png
Binary files differ
diff --git a/test/smask.ps2.ref.png b/test/smask.ps2.ref.png
deleted file mode 100644
index c006bbdaa..000000000
--- a/test/smask.ps2.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/smask.ps3.ref.png b/test/smask.ps3.ref.png
deleted file mode 100644
index c006bbdaa..000000000
--- a/test/smask.ps3.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/smask.ref.png b/test/smask.ref.png
index e1904548f..b5919de37 100644
--- a/test/smask.ref.png
+++ b/test/smask.ref.png
Binary files differ
diff --git a/test/smask.svg.ref.png b/test/smask.svg.ref.png
index b4ad52703..b9c0308d2 100644
--- a/test/smask.svg.ref.png
+++ b/test/smask.svg.ref.png
Binary files differ
diff --git a/test/smask.xlib.ref.png b/test/smask.xlib.ref.png
index bb70abfe2..5ce0082c7 100644
--- a/test/smask.xlib.ref.png
+++ b/test/smask.xlib.ref.png
Binary files differ
diff --git a/test/spline-decomposition.pdf.ref.png b/test/spline-decomposition.pdf.ref.png
index 9ea094a72..5afa09498 100644
--- a/test/spline-decomposition.pdf.ref.png
+++ b/test/spline-decomposition.pdf.ref.png
Binary files differ
diff --git a/test/spline-decomposition.ps.ref.png b/test/spline-decomposition.ps.ref.png
index 2b3c07dcc..e6324041e 100644
--- a/test/spline-decomposition.ps.ref.png
+++ b/test/spline-decomposition.ps.ref.png
Binary files differ
diff --git a/test/spline-decomposition.ref.png b/test/spline-decomposition.ref.png
index bac35a9cd..426aefaa5 100644
--- a/test/spline-decomposition.ref.png
+++ b/test/spline-decomposition.ref.png
Binary files differ
diff --git a/test/spline-decomposition.svg.ref.png b/test/spline-decomposition.svg.ref.png
index 9ea094a72..5afa09498 100644
--- a/test/spline-decomposition.svg.ref.png
+++ b/test/spline-decomposition.svg.ref.png
Binary files differ
diff --git a/test/spline-decomposition.xlib.ref.png b/test/spline-decomposition.xlib.ref.png
new file mode 100644
index 000000000..30d05b3b3
--- /dev/null
+++ b/test/spline-decomposition.xlib.ref.png
Binary files differ
diff --git a/test/stroke-ctm-caps.ref.png b/test/stroke-ctm-caps.ref.png
index f36435760..799ff3920 100644
--- a/test/stroke-ctm-caps.ref.png
+++ b/test/stroke-ctm-caps.ref.png
Binary files differ
diff --git a/test/stroke-image.pdf.ref.png b/test/stroke-image.pdf.ref.png
index f3eb75d83..80df10040 100644
--- a/test/stroke-image.pdf.ref.png
+++ b/test/stroke-image.pdf.ref.png
Binary files differ
diff --git a/test/stroke-image.ps.ref.png b/test/stroke-image.ps.ref.png
new file mode 100644
index 000000000..208e008ba
--- /dev/null
+++ b/test/stroke-image.ps.ref.png
Binary files differ
diff --git a/test/stroke-image.ps2.ref.png b/test/stroke-image.ps2.ref.png
deleted file mode 100644
index a18716742..000000000
--- a/test/stroke-image.ps2.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/stroke-image.ps3.ref.png b/test/stroke-image.ps3.ref.png
deleted file mode 100644
index a18716742..000000000
--- a/test/stroke-image.ps3.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/stroke-image.ref.png b/test/stroke-image.ref.png
index c8b9417df..a3c57aa1c 100644
--- a/test/stroke-image.ref.png
+++ b/test/stroke-image.ref.png
Binary files differ
diff --git a/test/stroke-image.xlib.ref.png b/test/stroke-image.xlib.ref.png
new file mode 100644
index 000000000..dbb5c5a17
--- /dev/null
+++ b/test/stroke-image.xlib.ref.png
Binary files differ
diff --git a/test/surface-pattern.pdf.xfail.png b/test/surface-pattern.pdf.xfail.png
index a43dc4d00..fadc2c240 100644
--- a/test/surface-pattern.pdf.xfail.png
+++ b/test/surface-pattern.pdf.xfail.png
Binary files differ
diff --git a/test/text-rotate.pdf.ref.png b/test/text-rotate.pdf.ref.png
index bdd64e6e9..ea82bfe4d 100644
--- a/test/text-rotate.pdf.ref.png
+++ b/test/text-rotate.pdf.ref.png
Binary files differ
diff --git a/test/text-rotate.ref.png b/test/text-rotate.ref.png
index b22739892..291c6c7d3 100644
--- a/test/text-rotate.ref.png
+++ b/test/text-rotate.ref.png
Binary files differ
diff --git a/test/text-rotate.svg.ref.png b/test/text-rotate.svg.ref.png
index 7ffd356b2..9d887a02f 100644
--- a/test/text-rotate.svg.ref.png
+++ b/test/text-rotate.svg.ref.png
Binary files differ
diff --git a/test/text-rotate.xlib.ref.png b/test/text-rotate.xlib.ref.png
new file mode 100644
index 000000000..3d359649b
--- /dev/null
+++ b/test/text-rotate.xlib.ref.png
Binary files differ
diff --git a/test/twin.ps.ref.png b/test/twin.ps.ref.png
index e75062ca9..16b49ba62 100644
--- a/test/twin.ps.ref.png
+++ b/test/twin.ps.ref.png
Binary files differ
diff --git a/test/twin.ref.png b/test/twin.ref.png
index 3c46b02a0..f5d524fb7 100644
--- a/test/twin.ref.png
+++ b/test/twin.ref.png
Binary files differ
diff --git a/test/twin.xlib.ref.png b/test/twin.xlib.ref.png
new file mode 100644
index 000000000..044218670
--- /dev/null
+++ b/test/twin.xlib.ref.png
Binary files differ
diff --git a/test/unantialiased-shapes.ref.png b/test/unantialiased-shapes.ref.png
index 128a2a162..c909d3878 100644
--- a/test/unantialiased-shapes.ref.png
+++ b/test/unantialiased-shapes.ref.png
Binary files differ
diff --git a/test/unbounded-operator.svg12.argb32.ref.png b/test/unbounded-operator.svg12.argb32.ref.png
new file mode 100644
index 000000000..45b173fae
--- /dev/null
+++ b/test/unbounded-operator.svg12.argb32.ref.png
Binary files differ
diff --git a/test/unbounded-operator.svg12.argb32.xfail.png b/test/unbounded-operator.svg12.argb32.xfail.png
deleted file mode 100644
index 15965c8e9..000000000
--- a/test/unbounded-operator.svg12.argb32.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/unbounded-operator.svg12.rgb24.xfail.png b/test/unbounded-operator.svg12.rgb24.xfail.png
index 828a9db97..c369fd263 100644
--- a/test/unbounded-operator.svg12.rgb24.xfail.png
+++ b/test/unbounded-operator.svg12.rgb24.xfail.png
Binary files differ
diff --git a/test/user-font-proxy.svg.ref.png b/test/user-font-proxy.svg.ref.png
index 6c458485d..747750a5d 100644
--- a/test/user-font-proxy.svg.ref.png
+++ b/test/user-font-proxy.svg.ref.png
Binary files differ
diff --git a/test/user-font.ps.ref.png b/test/user-font.ps.ref.png
new file mode 100644
index 000000000..63f289698
--- /dev/null
+++ b/test/user-font.ps.ref.png
Binary files differ
diff --git a/test/user-font.ps2.ref.png b/test/user-font.ps2.ref.png
deleted file mode 100644
index e1dd00abf..000000000
--- a/test/user-font.ps2.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/user-font.ps3.ref.png b/test/user-font.ps3.ref.png
deleted file mode 100644
index e1dd00abf..000000000
--- a/test/user-font.ps3.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/user-font.ref.png b/test/user-font.ref.png
index 753fc7bc2..ab18e1ce9 100644
--- a/test/user-font.ref.png
+++ b/test/user-font.ref.png
Binary files differ
diff --git a/test/user-font.xlib.ref.png b/test/user-font.xlib.ref.png
index abc31171a..d81ecf1db 100644
--- a/test/user-font.xlib.ref.png
+++ b/test/user-font.xlib.ref.png
Binary files differ