[cairo-announce] cairo snapshot 1.5.4 now available

Carl Worth cworth at cworth.org
Wed Dec 5 02:31:16 PST 2007

A new cairo snapshot 1.5.4 is now available from:


    which can be verified with:

        74f01fcea59631b077a823afd3a5146f63cb1c59  cairo-1.5.4.tar.gz

        (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.4 tag which points to a commit named:

    which can be verified with:
        git verify-tag 1.5.4

    and can be checked out with a command such as:
        git checkout -b build 1.5.4

This is the second snapshot in cairo's unstable 1.5 series. It comes
just over 1 month after the 1.5.2 snapshot. There are no API changes
or additions in 1.5.4 compared to 1.5.2, but there are several bug
fixes, and some optimizations. Most of these apply to particular
backends. See below for details.


Description of major changes from 1.5.2 to 1.5.4

General improvements
Use less memory for spline approximation calculations.

Change how the tolerance value is interpreted with regard to
fallback-resolution. [XXX: Is this user-visible? If so, how? Will
follow up on the cairo mailing list for more details.]

Fix precision of floating-point values in vector-output backends to
avoid rounding errors with very small numbers.

Xlib improvements
Fix bug in glyph rendering with xlib, (due to everything being clipped
out). This was a regression in the 1.5.2 snapshot that was visible in
the GIMP, for example. See:

	cairo 1.5.2 causes font problems in GIMP 2.4 status bar and evolution 2.12.1

[XXX: Are we interpreting "cairo_new_path;cairo_clip" as a request to
clip everything? That wouldn't be consistent with how we treat
cairo_new_path;cairo_fill, for example. Will follow up on cairo
mailing list for more details.]

PostScript improvements
Fix bug leading to invalid PostScript files when rendering
text, (need "0 0 xyshow" instead of "0 xyshow").

Fix many issues with Type 3 fonts, including making the resulting text

Quartz improvements
Fix font metrics height value for ATSUI, (helps webkit on GTK+ OS X
layout nicely).

Fix gradients.

Fix EXTEND_NONE mode for patterns.

Fix cairo_quartz_surface_create to properly clear the new surface
in cairo_quartz_surface_create.

Fix to correctly handle 0x0 sized surfaces.

Optimize drawing of EXTEND_REPEAT patterns for OS X 10.5.

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 releases of cairo can be found at:


Snapshots of in-development versions of cairo:


The programming manual for using cairo:


Mailing lists for contacting cairo users and developers:


Answers to some frequently asked questions about cairo:


Summary of all changes from 1.5.2 to 1.5.4
Adrian Johnson (10):
      Round floats in output-stream to 6 significant digits after decimal
      ROADMAP: Mark set PS level complete
      PS: Ensure that xyshow operator has a pair of offsets for each glyph
      PS: Make Type 3 fonts text selectable
      PS: Fix the bounding boxes of Type 3 glyphs
      PS: Don't emit an image for Type 3 .notdef glyph
      PS: Fix the Type 3 FontBBox
      PS: Use correct glyphs widths for Type 3 fonts
      Fix regression in Type1 Fallback
      win32: Implement _cairo_win32_scaled_font_init_glyph_surface()

Behdad Esfahbod (8):
      [cairo-output-stream] Write out floats to 18 digits after decimal point
      [meta-surface] Adjust tolerance when replaying to surfaces with device scale
      [test] fallback-resolution: center text
      [test/fallback-resolution] set tolerance to a large value to see how it performs
      [PS] Fix compiler warnings
      Convert bash scripts to regular sh ones for greater portability
      [configure.in] Bump freetype required version to 2.1.9 (#13482)
      [README] Remove the Dependencies section as it falls out of date easily

Brian Ewins (12):
      [configure.in] fix atsui experimental warning
      [test] log tested paths so that they can be parsed.
      [test] Link to the correct reference image.
      [test] support using a previous build as a reference
      [quartz] handle 0x0 surfaces.
      Revert "[quartz] handle 0x0 surfaces."
      [quartz] fix for cairo_reset_clip()
      [quartz] fix leak in show_glyphs
      [quartz] typo checking for malloc failure
      [quartz] remove double malloc in dashing code.
      [quartz] fill with alpha for EXTEND_NONE
      [quartz] zero memory on bitmap creation

Carl Worth (5):
      Increment cairo version to 1.5.3 after the 1.5.2 snapshot
      Mention cairo_new_sub_path in documentation of cairo_arc
      Explicitly call bash for bash-specific scripts
      NEWS: Add notes for 1.5.4
      Increment version to 1.5.4 and to 14:1:12

Chris Wilson (20):
      [cairo-png] Handle missing PNG_SETJMP_SUPPORTED
      [cairo-png] Check for feof whilst reading.
      [cairo-atomic] Rearrange code under the correct ifdefs.
      [cairo-paginated-surface] Mark the backend static.
      [cairo-scaled-font] Zero extents on early error.
      [cairo] Use NULL instead of a bare 0.
      [cairo-spline] Reduce stack requirements during recursive refinement.
      [cairo-spline] Eliminate redundant _cairo_fixed_to_double().
      [test/degenerate-pen] Add missing return value.
      [cairo-atomic] Check whether we can access int/pointers atomically.
      [cairo-surface] Avoid allocation for common case of 1 box.
      [cairo-path-fixed] Exponentially enlarge cairo_path_buf_t.
      [cairo-atomic] Declare the mutex for NEEDS_MEMORY_BARRIER.
      [cairo-atomic] Add a few more cpus that are known to have atomic access.
      [test/clip-all] Combine text and everything clipped out.
      [cairo-surface] Handle the all clipped out case.
      [cairo-clip] Special case using an empty clip path.
      [cairo-pdf-surface] Create a new path for an empty clip.
      [Makefile.am] Wrap lcov make targets within an AM_CONDITIONAL.
      [Makefile.am] Add lcov-clean to distclean.

Emmanuel Pacaud (7):
      [SVG] Fix opacity of combined stroke and fill.
      [SVG] Remove spurious semicolon when emitting mask url.
      Merge branch 'master' of git+ssh://emmanuel@git.cairographics.org/git/cairo
      [SVG] Indentation fixes.
      [SVG] Add missing image to REFERENCE_IMAGES list.
      Fix _cairo_path_fixed_init_copy.
      Compilation warning suppression (char as array subscript).

Richard Hult (1):
      [atsui] Use ascent+descent+leading to get the distance between baselines

Vladimir Vukicevic (14):
      Handle overflow/underflow gracefully when converting to 16.16 fixed
      [quartz] Fix for 10.5 SDK; the FloatToFixed macro started doing strange things
      [win32] Skip doing some work if we can't call StretchDIBits
      Use correct surface resolution when creating paginated fallback image
      [quartz] work around Quartz bugs with images bigger than a certain size
      [win32] Don't use GetGlyphOutline on non-TrueType fonts
      [win32] Fix FIXED_to_fixed when cairo's fixed format isn't 16.16
      [win32-printing] bail out early if we don't have anything to do in paint_surf
      [quartz] Fix gradients; the wrong color field was being used
      [win32] Remove double-free in win32 font code in init_glyph_path
      [quartz] Handle creating 0x0 surfaces
      [quartz] Use CGContextDrawTiledImage if available
      [quartz] cleanup: remove trailing whitespace
      [quartz] use rectangle_int_t, not rectangle_int16_t

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.cairographics.org/archives/cairo-announce/attachments/20071205/3e7e58bc/attachment.pgp 

More information about the cairo-announce mailing list