There were legitimate bugs in the ps and pdf backends for these
tests, (particularly with the row of glyphs), but these bugs
were recently fixed with:
commit d89edde84d
Author: Vladimir Vukicevic <vladimir@pobox.com>
Date: Tue Mar 4 00:15:46 2008 -0800
[meta] always copy glyph array before passing to _cairo_surface_show_glyphs
and we just failed to notice the fix at the time.
Previously we were using the cairo_fixed_t type which meant we've
historically only been using 16 bits of precision for these offsets,
and recently only 8 bits. Meanwhile, all manipulatons of offsets
have been in floating-point anyway, so we might as well store them
that way.
This change also prevents a rendering regression introduced with the
24.8->16.16 change betwen snapshots 1.5.10 and 1.5.12 .
This change affected gradient-rendering details for the clip-operator
and operator-source tests, so the corresponding reference images are
updated here.
This reproduces the bug in PS/PDF/Win32-printing where an unsupported
operation that is off the page causes an unsupported operation
assertion in the backend.
This change in reference image was triggered by the following commit
in the pixman library:
commit f2d8a5caa63596739b4dc47c00daaaafd9f522e2
Author: Søren Sandmann <sandmann@redhat.com>
Date: Mon Mar 10 23:41:52 2008 -0400
Add rounding epsilon for NEAREST filter after transformation, not before.
This hasn't appeared in a pixman release yet. So for now, getting
correct results is a matter of "use latest pixman". Soon we'll
have a new pixman release and we'll make cairo depend on that.
I mistakenly generated the original reference images with
a 16.16 version of cairo, (which manifests a different
buggy behavior than does the current 24.8 cairo).
The additional 8 bits of integer allows device space to be 256
times larger before applications need to start worrying about
any issues with overflow. So this should help in many cases.
And the loss of 8 bits of sub-pixel precision shouldn't cause
any harm at all---16 was really much more than necessary.
With this change the details of rasterization for several tests
are changed slightly, (particularly on arcs, for example), so
many reference images are updated here.
NOTE: This change is currently breaking get-path-extents for
ps/pdf/svg as well as push-group for ps. We do not yet know
the reasons for these new failures.
This test isn't generating any image output, so it's silly to
have a 60x60 reference image for that. Not only that, but the
rgb24 cases have always been failing due to a missing rgb24-
specific reference image, (but pdiff had been hiding that).
Parts of the stroker depend upon whether we have in effect a reflection
matrix (one whose determinant < 0). This test incopororates the same
drawing under the a couple of reflections to exercise stroking under
matrices with both positive and negative determinants.
Draw a few rectangles whose vertices are outside the bounds of the
surface, but whose segments cross the surface. This exercises the new
dashed stroker optimisation which tries to determine whether the line
segment is visible.
pdiff was hiding a rgb24 failure here, as the test was drawing using
black ink on the default black background. Instead, explicitly fill
the surface with white first.
This is justified by the previously mentioned bug on poppler
gradients. Note that this test only passes with a patch
to fix a bug in poppler (not yet upstream). Here it is:
PATCH: Keep 'cairo_shape' and 'cairo' consistent
https://bugs.freedesktop.org/show_bug.cgi?id=14593