This is an attempt to fix the following bug:
http://bugzilla.gnome.org/show_bug.cgi?id=332266
With the recent rewrite of the device-offset code, which pushed things
from the gstate to the surface layer, the 16-bit limitations on coordinates
which previously applied to device space only, have lately been applying to
user space. This commit moves the device_transform back up above the conversion
from floating-point to fixed-point values so that once again the limitation
only applies to device space.
The TrueType font subsetting code fails to emit VHEA/VMTX headers for the
font, so WMode 1 doesn't work to switch to vertical metrics. Added a bug
about this, and changed the PS/PDF output code to just use Type3 in this
case until the bug is fixed. Updated the reference images to match the
output for PDF/PS backends for the vertical font check.
This follows the PDF and SVG specifications which only draw degenerate paths when
round caps are in effect.
With this commit, the degenerate-path test passes with the image, xlib, and pdf
backends, (but still fails with ps and svg backends).
We were doing something more complicated originally, and that was because
pixman.h was an installed public header file at one time. But that hasn't
been the case for quite a long time.
Add a new ps reference image due to slightly different rasterization. Also
update pdf and svg backends to ignore this test since those backends do not
support ANTIALIAS_NONE.
Note in ROADMAP that bug 6759 is fixed now.
When accessing the underlying drawable etc of an xlib surface, it is
also helpful to be able to get the width and height without a server
round trip. This patch provides those functions.
Previously this function was attempting to return values in surface
space, (but even then it was doing it wrong). However, all callers
actually expect values in backend space. Fixing this cleans up bug
7268 quite nicely.