[cairo-announce] cairo snapshot 1.3.14 now available

Carl Worth cworth at cworth.org
Wed Feb 14 00:51:06 PST 2007

A new cairo snapshot 1.3.14 is now available from:


    which can be verified with:

        648981b1e04eb231a82befea8eaf39e01502001c  cairo-1.3.14.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.3.14 tag which points to a commit named:

    which can be verified with:
        git verify-tag 1.3.14

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

This is the seventh development snapshot in the 1.3 series, (and there
likely won't be many more before the 1.4.0 release). It comes just
over 3 weeks after the 1.3.12 snapshot.

Since we're so close to the 1.4.0 release, there are not a lot of new
features nor even a lot of new performance improvements in this
snapshot. Instead, there are a great number of bug fixes. Some are
long-standing bugs that we're glad to say goodbye to, and several are
fixes for regressions that were introduced as part of the optimization
efforts during the 1.3.x series.

Major improvements between 1.3.12 and 1.3.14
PDF text selection fixed
The inability to correctly select text in cairo-generated PDF has been
a defect ever since the initial support for the PDF backend in the
cairo 1.2.0 release. With the 1.3.14 snapshot, in most situations, and
with most PDF viewer applications, the PDF generated by cairo will
allow text to be correctly selected for copy-and-paste, (as well as

We're very excited about this new functionality, (and very grateful to
Adrian Johnson, Behdad Esfahbod, and others that have put a lot of
work into this lately). Please test this new ability and give feedback
on the cairo at cairographics.org list.

Many thread-safety issues fixed
We've discovered that no release of cairo has ever provided safe text
rendering from a multi-threaded application. With the 1.3.14 snapshot
a huge number of the bugs in this area have been fixed, and multiple
application developers have now reported success at writing
multi-threaded applications with cairo.

Other fixes
Fixed a bug that was causing glyph spacing to be 32 times larger than
desired when using cairo-win32.

Fixed a regression in the rendering of linear gradients that had been
present since the 1.3.8 snapshot.

Fixed several problems in cairo-atsui that were leading to assertion
failures when rendering text.

Fix corrupted results when rendering a transformed source image
surface to an xlib surface. This was a regression that had been
present since the 1.3.2 snapshot.

Fixed PDF output to prevent problems printing from some versions of
Acrobat Reader, (a single glyph was being substituted for every

And many other fixes as well, (see the log below for more details).

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 including 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.3.12 to 1.3.14
Adrian Johnson (16):
      TrueType Subsetting: Add comment
      TrueType Subsetting: Whitespace change
      TrueType: Include notdef glyph in the subset
      PDF: Add Encoding dictionary to TrueType fonts
      PDF: Fix TrueType font metrics
      PS: Correct the TrueType Encoding and Charstrings
      PDF: Correct the y value of Td in show_glyphs
      PDF: Make text selection and extraction work
      PDF: Another fix for TrueType metrics
      PDF: Fix Type3 font metrics to make text selection work
      PDF: Compress Type3 fonts
      Output-stream: Omit the minus sign from negative zero
      PDF: Remove dead code
      CFF: Fix Visual C++ compile problem
      output-stream: coding style fix
      PDF: Add missing character code to Differences array

Behdad Esfahbod (4):
      PDF: Fix approximate diagonal in recent commit
      [pixman/src/fbmmx.c] Hide "dereferencing type-punned pointer" warnings
      [configure.in] Use AC_MSG_RESULT in PKG_CHECK_MODULES's second branch
      [pixman/src/fbmmx.c] Add comment around M64

Brian Ewins (5):
      [ATSUI] Handle deleted glyphs correctly. (#9530)
      [ATSUI] out-of-range glyphs should be treated as deleted. (#9530)
      [ATSUI] Some glyph operations cannot be 'unsupported'. (#9530)
      Unreleased lock typo in cairo-scaled-font.c
      [ATSUI] scale fonts using font size not font matrix

Carl Worth (32):
      configure.in: Increment version to 1.3.13 after making the 1.3.12 snapshot
      doc tmpl churn
      Add rotate-image-surface-paint test case
      Fix _cairo_pattern_acquire_surface_for_surface to not clone outside surface extents
      Add two tests of cairo_surface_finish to test/nil-surface.c
      Fix crashes in cairo_surface_finish for NULL or nil
      Don't finish a finished surface in cairo_surface_destroy
      ROADMAP: Add bug about broken cairo_show_text on win32
      ROADMAP: Note that linear gradient bug is fixed.
      Don't hold mutex over backend->scaled_font_create
      Avoid holding lock when calling _cairo_scaled_font_fini
      Move scaled font holdovers magic from reference to create to fix race condition
      Add scaled_font->mutex to allow locking for all subordinate objects
      Remove half-leftover debugging code from previous commit
      Remove dead cff_dict_remove function
      ROADMAP: Note that the 8801 locking bug is fixed.
      ROADMAP: Drop 1.3.6 which is already in the past and note 8379 fix and pixman gradient improvements
      test/pthread-show-text: Increease iterations to expose locking bug
      Expand font_map locking to cover call to backend->scaled_font_create
      Add missing locking to _cairo_scaled_font_text_to_glyphs
      Add missing _cairo_ft_unscaled_font_unlock_face to _cairo_ft_scaled_font_create
      Avoid public cairo_ft_scaled_font_lock_face for internal use
      Add mutex to implement _cairo_ft_unscaled_font_lock_face and _cairo_ft_unscaled_font_unlock_face
      Increase pthread-show-text thread count and add cairo_select_font_face to expose more bugs.
      Add locking to cairo_font_face_reference/destroy
      Rename cairo_toy_font_face_hash_table_mutex to cairo_font_face_mutex
      ROADMAP: Note that text spacing issues for win32 are fixed
      Add missing call to set_scale of unscaled_font in scaled_glyph init
      Fix cairo_ft_unscaled_font_t to have a lock_count again not an is_locked Boolean
      Mark test/rotate-image-surface-paint as XFAIL
      NEWS: Add notes for the 1.3.14 snapshot
      Increment cairo version to 1.3.14 (and libtool versioning to 12:4:10)

Dan Amelang (3):
      Add "rectangles" perf test
      Fix Win32 text spacing problem
      Update Win32 makefiles

David Turner (1):
      fixing gradient repeat mode computations

Eugeniy Meshcheryakov (7):
      [PDF-CFF] Fix bad /LastChar value for CFF fonts in PDF backend
      CFF Subsetting: Add charset data to embedded font
      TrueType Subsetting : Correct the checksum calculation
      TrueType Subsetting: Correct the checksum calculation of 'head' table
      TrueType Subsetting: Sort table directory
      [cairo-surface] Use a macro definition for all nil surfaces
      [PS/PDF/SVG] Return a write_error nil surface on write errors

Jinghua Luo (1):
      type1-subset: fix error handling.

Kalle Vahlman (1):
      [cairoint] Make it compile with libpng disabled

Michael Emmel (2):
      Turned off acclerated rectangle drawing in dfb backend
      Merge branch 'master' of ssh+git://git.cairographics.org/git/cairo

Peter Weilbacher (2):
      Correct scaled font mutex definitions for OS/2
      Oops, correct typo in previous commit

Soren Sandmann Pedersen (2):
      Remove left-over assert and some alpha checks from
      Apply patch from Marco Gritti and Jordan Crouse to correctly detect

T Rowley (1):
      Add linear-gradient-reflect test case

Vladimir Vukicevic (3):
      [atsui] add function prototype for a public 10.4 function that's
      [win32] regression with win32 glyph y-offsets (mozbug#365021)
      [mmx] avoid casts between int32 and __m64 types
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo-announce/attachments/20070214/76ccccd2/attachment.pgp

More information about the cairo-announce mailing list