[cairo-announce] cairo snapshot 1.5.14 now available

Carl Worth cworth at cworth.org
Thu Mar 20 17:08:01 PDT 2008

A new cairo snapshot 1.5.14 is now available from:


    which can be verified with:

        af40870b3ec62bbdeaecdf3ea4cce23919fedc42  cairo-1.5.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.5.14 tag which points to a commit named:

    which can be verified with:
        git verify-tag 1.5.14

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

This is the seventh snapshot in cairo's unstable 1.5 series. It comes
3 weeks after the 1.5.12 snapshot. This snapshot includes support for
arbitrary X server visuals, (including PseudoColor), which was the
final remaining cairo-specific item on the cairo 1.6 roadmap. It also
includes a huge number of improvements to the cairo-quartz backend. So
this is effectively a cairo 1.6 release candidate. We expect very few
changes from now until 1.6 and only for specific bug fixes. See below
for more about what's new in cairo 1.5.14.

We do appreciate any testing and feedback you can provide. In
particular, if you know of a bug in cairo 1.5.14 that you'd like to
see fixed before 1.6.0 and that bug isn't exercised by the cairo test
suite, then please make loud noises on the cairo mailing list so that
we know about it.

Have fun with cairo!


Changes from cairo 1.5.12 to 1.5.14

API Change
Rename ATSUI font backend to Quartz font backend. This affects the
following usage:

	--enable-atsui		-> --enable-quartz-font

	cairo_atsui_font_face_create_for_atsu_font_id ->

This API change is justified by the cairo-quartz backend still be
marked as "experimental" rather than "supported", (though this is one
step toward making the change to "supported" before 1.6). Cairo will
still provide ABI compatibility with the old symbol name, however.

paginated (all of ps, pdf, svg, and win32-printing)
Optimize by not analyzing an image surface for transparency more than
once, (previously all images were analyzed twice).

cairo-ps and cairo-pdf
Avoiding emitting a matrix into the stroke output when unnecessary,
(making output size more efficient).

Reduce rounding error of path shapes by factoring large scale factors
out of the path matrix, (ensuring that a fixed-number of printed
digits for path coordinates contains as much information as possible).

Reduce excess digits for text position coordinates. This makes the
output file size much smaller without making the result any less

Eliminate bug causing extraneous text repetition on Linux PostScript
output in some cases.

	See: Mozilla Bug 419917 – Printed page contents are reflected
	inside bordered tables (Linux-only)


Optimize output when EXTEND_PAD is used.

Fix to not use fill-stroke operator with transparent fill, (else PDF
output doesn't match the cairo-defined correct result). See:


Fix stroke of path with a non-solid-color source pattern:


Fix text rendering with gradient or image source pattern.

Handling antialiasing correctly for cairo_stroke(), cairo_clip(), and

Correctly handle gradients with non-identity transformations:

	Fixes http://bugs.freedesktop.org/show_bug.cgi?id=14248

Add native implementation of REPEAT and REFLECT extend modes for

Fix implementation for the "unbounded" operators, (CAIRO_OPERATOR_OUT,

Correctly handle endiannees in multi-architecture compiles on Mac OS

Avoid behavior which would cause Core Graphics to print warnings to
the console in some cases.

Fix handling of miter limit.

Fix to not use a 1bpp temporary surface in some cases while printing,
(so grayscale data is preserved rather than just becoming black and

Add support for rendering to arbitrary TrueColor X server
visuals. This fixes at least the following bugs:

	cairo doesn't support 8-bit truecolor visuals

	cairo doesn't support 655 xlib format

Add support for rendering to 8-bit PseudoColor X server visuals. This
fixes the following bug:

	Cairo doesn't support 8-bit pseudocolor visuals

Unresolved issues (must be fixed before cairo 1.6)
XXX: Need to decide if cairo_image_surface_create_for_data should be
documented and tested as supporting an image with a negative
stride. Also need to decide the correct return value for
cairo_format_stride_for_width in case of any error.

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):


Log of all changes from 1.5.12 to 1.5.14
Adrian Johnson (21):
      Round fallback image size up instead of down
      Add fallback image comment to PS output
      Move analyze_image_transparency in to cairo-image-surface.c
      Remember the results of _cairo_image_analyze_transparency
      PDF: Use cairo_image_analyse_transparency during analysis
      win32-printing: Don't scale the miter limit
      Use the correct glyph metrics in Type1 fallback
      Add PS reference image for stroke-ctm-caps
      PDF/PS: Optimize away the stroke ctm when not required
      Do not use PDF fill-stroke operator with transparent fill
      Fix bug in _cairo_path_fixed_is_equal
      Don't use fill-stroke during analysis
      Improve the PDF operators word wrapping
      Add stroke-ctm-caps to .gitignore
      Factor out common stroke code in pdf-operators
      Optimize generated PostScript when EXTEND_PAD is used
      Rescale CTM used for PS/PDF stroking to reduce rounding error
      Make _cairo_dtostr() static
      Add %g conversion specifer to output-stream for limited precision
      Use %g for printing path coordinates in pdf-operators
      PDF: Reduce excess decimals in text position offsets

Antoine Azar (1):
      fixed compilation typo on win32

Behdad Esfahbod (1):
      [cairo-scaled-font] Pedantic check for zero-area glyphs

Carl Worth (21):
      Increment version to 1.5.13 after the 1.5.12 snapshot
      Merge branch 'master' of git.cairographics.org:/git/cairo
      Remove unnecessary cairo_set_tolerance call from get-path-extents test
      get-path-extents: Use APPROX_EQUALS instead of EQUALS for text path tests
      get-path-extents: Fix APPROX_EQUALS to round values on both sides of the comparison
      INSTALL: Add notes on running autogen.sh if there is no configure script
      Move assertion failure for unsupported masks up one level
      Make _pixman_format_to_masks accept a cairo_format_masks_t structure
      Make CAIRO_FORMAT_STRIDE_FOR_WIDTH_BPP available to the cairo internals.
      xlib: Add support for arbitrary TrueColor visuals
      Add support for 8-bit PseudoColor visuals
      Track minor change in pixman filtering sample location
      RELEASING: Clarify steps for verifying no unpushed modifications
      Fix the REFERENCE_IMAGES list, (like always before a snapshot)
      NEWS: Add notes for 1.5.14 snapshot
      Doc template churn
      Increment cairo version to 1.5.14 and libtool versioning to 18:1:16
      Mark new cairo_xlib_visual_info functions as private.
      Disable enum_regexp test in check-doc-syntax.h
      Enable PLT avoidance for cairo_image_surface_get_data/stride
      Cleanup up png-test.png file in 'make clean'

Chris Wilson (18):
      [cairo-truetype-subset] Remove duplicate _cairo_error().
      [cairo-type1-fallback] Propagate original error status.
      [cairo-cff-subset] Propagate error status.
      [cairo-clip] Raise _cairo_error() at original error site.
      [cairo-ft-font] Simplify return of the nil font face during construction.
      [cairo-pattern] Tidy usage of _cairo_error().
      [cairo-xlib] Tidy usage of _cairo_error().
      [cairo-png] Further hardening against malloc failures.
      [cairo-image-surface] Harden cairo_format_stride_for_width().
      [test/a8-mask] Check negative strides as well.
      [cairo-png] Use cairo_format_stride_for_width()
      [cairo-png] Support generating CAIRO_FORMAT_RGB24 from PNGs.
      [cairo-hull] Propagate error during hull computation.
      [cairo-pattern] Raise an error for _cairo_pattern_create_solid() failure.
      [win32] make check doc fixup.
      [cairo-png] Revert accidental chunk from FORMAT_A1 support.
      Define _BSD_SOURCE to enable prototypes for strdup, snprintf.
      [cairoint.h] Mark _cairo_image_analyze_transparency as private.

Claudio Ciccani (1):
      [cairo-directfb] Fixed bug in clone_similar() (src_x added twice).

Emmanuel Pacaud (1):
      [SVG] Replace the color property by stroke.

Jeremy Huddleston (1):
      [mac] Correctly handle endianness in multi-architecture compiles on MacOS X

Vladimir Vukicevic (28):
      [quartz] use CGContextGetType API if available
      [win32] Treat all incoming HDCs as RGB24, regardless of depth
      [quartz] compilation fix
      Fix msvc compilation issue in cairo-compiler-private.h
      [meta] always copy glyph array before passing to _cairo_surface_show_glyphs
      [quartz] fix text rendering with gradient or image source
      [quartz] split out (experimental) quartz-image into separate file
      [quartz] look up the right symbol name for CGContextGetType
      [quartz] handle antialiasing correctly in stroke() and clip()
      [quartz] Correctly handle gradients with non-identity pattern transform
      [quartz] Update a bunch of reference images
      [quartz] some more quartz ref images
      [quartz] implement REPEAT/REFLECT for gradients
      [quartz] properly honor text antialiasing modes in show_glyphs
      [quartz] Don't try to call CGBitmapContextCreateImage on non-bitmap contexts
      [quartz] align strides to 16 bytes, as per apple docs
      [quartz] Don't force interpolation off for images
      [quartz] Apply fixup to unbounded operators to clear area outside of mask
      [quartz] correctly force subpixel AA on a context, even if defaults say otherwise
      [win32] Use a DIB when cloning a surface for a WIN32_PRINTING dest
      Correctly pass the device-space vector through to stroker
      [quartz] remove some compiler warnings
      [test] Add testcase for previous stroker regression fix
      [quartz] compare gradient stops as doubles, not as fixed point
      [quartz] don't say we forced subpixel AA when we didn't
      [quartz] Rename ATSUI font to Quartz font
      [quartz] Fix bogus CGContextGetType warning that's printed on the console
      [quartz] Additional test reference images for quartz

-------------- 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/20080320/9dc89119/attachment.pgp 

More information about the cairo-announce mailing list