[cairo-announce] cairo snapshot 1.5.18 now available
cworth at cworth.org
Sun Apr 6 03:31:08 PDT 2008
A new cairo snapshot 1.5.18 is now available from:
which can be verified with:
(signed by Carl Worth)
Additionally, a git clone of the source tree:
git clone git://git.cairographics.org/git/cairo
will include a signed 1.5.18 tag which points to a commit named:
which can be verified with:
git verify-tag 1.5.18
and can be checked out with a command such as:
git checkout -b build 1.5.18
This is the ninth snapshot in cairo's unstable 1.5 series. It comes
just 4 days after the 1.5.16 snapshot. We had hoped to not need
another snapshot before the final 1.6.0 release, but several critical
bugs were found and fixed in the last few days, so we thought it
important to let people test the fixes with this snapshot. See below
Have fun with cairo!
Summary of changes from cairo 1.5.16 to 1.5.18
The README now lists necessary dependencies.
Various graphics state defaults are now documented, (source pattern is
opaque black, line width is 2.0, line join is miter, line cap is butt,
miter limit is 10.0, etc.).
Several cleanups have been made along many error-path returns,
(carefully propagating up the original error status values, cleaning
up memory leaks during error recovery, etc.). This is yet another in
Chris "ickle" Wilson's long series of error-handling cleanups during
the 1.5 series.
Avoid undesired clipping when drawing scaled surface patterns with
Fix emission of 1-bit alpha masks in PDF output.
Fix a bug that would cause glyphs to be misplaced along the Y axis:
Originally, an issue about a crash, but later leading to the
misplaced glyphs issue being discovered.
Fix misplaced glyphs in cairo's PostScript output.
This issue occurs when consecutive glyphs are placed far
apart. This case is exercised by the new ft-show-glyphs-table test
case, which was originally inspired by the Debian bug #23474136
Fix more misplaced glyphs in cairo's PostScript output:
The issue here showed up under very particular circumstance, (when
converting a PDF file with a CFF font with CID Identity-H encoding
and using glyph 0, (defined by the CFF specification as .notdef)
as a space instead). More concretely, this problem appeared when
converting the UbuntuDesktop.pdf file mentioned in this bug
As usual with arcane font-encoding-specific bugs like this, many
thanks to Adrian Johnson for his magical ability to dive into
specifications and emerge almost instantaneously with fixes. And
thanks to Sebastien Bacher for bringing the bug to our attention.
Fix serious failure on X servers without the Render extension.
Since the 1.5.14 snapshot (with support for PseudoColor visuals),
any application attempting to create a "similar" xlib surface would
fail on an X server without the Render extension. Thanks to
Frederic Crozat for pointing out that cairo's test suite was
entirely failing when run against Xvfb.
Avoid crashing cairo-xlib applications for too-large glyphs
Naively sending glyphs of any size to the X server will eventually
violate the X limit on maximum request sizes. We now properly
detect when a glyph would be too large and use existing fallbacks
to render the glyph rather than trying to send it to the X server.
Enable the buggy_repeat workaround for Xorg servers < 1.4
We have determined that Xorg 1.3.0 (as packaged in Fedora 8 at
least) has a bug that can result in an X server crash when cairo
uses certain X Render repeat operations, (as exercised by cairo's
extend-reflect test). We avoid this crash by using fallbacks
whenever a repeating surface is needed for any Xorg server with a
version less than 1.4. This is slower, but should prevent the
(Meanwhile, there appears to be a separate bug where some X
servers or specific X-server drivers will use random pixmap data
when asked to draw a repeating surface. The buggy_repeat
workaround would also avoid those problems, but we have not yet
characterized whether the new "version < 1.4" is a good
characterization of those problems or not.)
Implement cairo_font_extents for this backend.
The cairo-quartz-font implementation added in the 1.5.14 snapshot was
entirely missing support for the cairo_font_extents function. Thanks to
Richard Hult for pointing out this obvious shortcoming, (and obvious
lack of coverage in our test suite):
CGFont backend returns 0 font extents
What is cairo
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System, win32, and image buffers, as well as PDF, PostScript, and SVG
file output. Experimental backends include OpenGL (through glitz),
Quartz, XCB, BeOS, OS/2, and DirectFB.
Cairo is designed to produce consistent output on all output media
while taking advantage of display hardware acceleration when available
(for example, through the X Render Extension).
The cairo API provides operations similar to the drawing operators of
PostScript and PDF. Operations in cairo include stroking and filling
cubic Bézier splines, transforming and compositing translucent images,
and antialiased text rendering. All drawing operations can be
transformed by any affine transformation (scale, rotation, shear,
Cairo has been designed to let you draw anything you want in a modern
2D graphical user interface. At the same time, the cairo API has been
designed to be as fun and easy to learn as possible. If you're not
having fun while programming with cairo, then we have failed
somewhere---let us know and we'll try to fix it next time around.
Cairo is free software and is available to be redistributed and/or
modified under the terms of either the GNU Lesser General Public
License (LGPL) version 2.1 or the Mozilla Public License (MPL) version
Where to get more information about cairo
The primary source of information about cairo is:
The latest versions of cairo can always be found at:
Documentation on using cairo and frequently-asked questions:
Mailing lists for contacting cairo users and developers:
Roadmap and unscheduled things to do, (please feel free to help out):
All changes from cairo 1.5.16 to cairo 1.5.18
Adrian Johnson (9):
PDF: Fix glyph positioning bug
PS: Fix emulation of 'Td' pdf operator
Add PS reference image for ft-show-glyphs-table
TrueType: Remove assert
TrueType: Fix buffer check
Add assert to scaled_glyph_lookup in scaled-font-subsets
Type1-fallback: Use correct glyph advance in Type 1 charstrings
Type1-fallback: Use correct glyph metrics for .notdef glyph
scaled-font-subsets: Special case .notdef in a new subset
Carl Worth (18):
Increment cairo version to 1.5.17 after 1.5.16 snapshot
Add new ft-show-glyphs-table test to exercise recent glyph positioning bug fix
Enable buggy_repeat workaround for X.Org servers < 1.4
Add new filter-bilinear-extents test
Replace open-coded transformation with a call to _cairo_matrix_transform_bounding_box
_cairo_pattern_get_extents: Fix to allow for expansion based on filter
Update smask-text reference image
Change default filter from BEST to GOOD
Revert "[README] Remove the Dependencies section as it falls out of date easily"
README: Update dependencies
Document EXTEND_REFLECT and EXTEND_PAD as implemented for surfaces since 1.6
Document default extend modes
Document toy nature of cairo_select_font_face
Document many more defaults
Document default opaque black source pattern.
Add missing parens() to function name in gtk-doc comment
NEWS: Add notes for 1.5.18 snapshot
Increment cairo version to 1.5.18 and library versioning to 19:1:17
Chris Wilson (29):
[cairo-pdf-operators] Destroy stream on error.
[cairo-ps-surface] Check error status before potential illegal dereference.
[cairo-svg-surface] Release acquired surface on error path.
[cairo-pdf-surface] Check surface status before extracting the pdf target.
[cairo-pdf-surface] Do not mask error during cleanup.
[cairo-svg-surface] Missing status check.
[cairo-ps-surface] Check surface status before extracting the ps target.
[cairo-svg-surface] Check surface status before extracting the svg target.
[cairo-xlib] Handle malloc failures for cairo_xlib_visual_info_t.
[test/text-transform] Fix pattern leak.
[cairo-xlib-surface] Preserve Visuals for non-TrueColor similar surfaces.
[cairo-xlib-surface] Avoid writing to the error surface.
[.gitignore] Add test/stroke-image
[cairo-font-face] Cleanup up the font_face on the error path.
[test] Add a1-mask.
[cairo-pdf-surface] Do not bitswap big-endian A1 masks.
[cairo-array] Guard against integer overflow whilst growing the array.
[cairo-truetype-subset] Perform a quick sanity check that glyf end >= begin.
[cairo-truetype-subset] Prevent accesses beyond the end of the glyph array.
[cairo-truetype-subset] Check reads are within valid data.
Add links to the font specifications.
[test] Exercise "soft" masks.
[pdf] Copy the glyphs for use within an smask group.
[configure.in] Add a link to the LTP homepage.
[test] Add bilevel image test case.
[xlib] Avoiding sending glyphs > XMaxRequestSize.
[test] Summarise failures per backend.
[test] Disable jobserver with make check.
[test] Remove some redundant evals from the summary.
Vladimir Vukicevic (2):
[cgfont] Implement missing scaled font metrics
[cgfont] typo fix
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
Url : http://lists.cairographics.org/archives/cairo-announce/attachments/20080406/5387b89e/attachment.pgp
More information about the cairo-announce