[cairo-announce] cairo release 1.12.2 now available

Chris Wilson chris at chris-wilson.co.uk
Sun Apr 29 13:05:50 PDT 2012

A new cairo release 1.12.2 is now available from:


    which can be verified with:

	bc2ee50690575f16dab33af42a2e6cdc6451e3f9  cairo-1.12.2.tar.xz

	(signed by Chris Wilson)

  Additionally, a git clone of the source tree:

	git clone git://git.cairographics.org/git/cairo

    will include a signed 1.12.2 tag which points to a commit named:

    which can be verified with:
	git verify-tag 1.12.2

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

Release 1.12.2 (2012-04-29 Chris Wilson <chris at chris-wilson.co.uk>)
After such a long gestation period for the release of Cairo 1.12, we
inevitably accumulated a few bugs that were flushed out by broadening the
test base. Thanks to everybody who tried the release, apologies to any one
unfortunate enough to encounter a bug and many thanks for reporting it. As
a result Adrian Johnson, Alexandros Frantzis, Andrea Canciani, Kalev
Lember, Maarten Bosman, Marcus Meissner, Nis Martensen and Uli Schlachter
have squashed many more bugs and improved the documentation. I would
strongly recommend everyone to upgrade to cairo-1.12.2.

Bug fixes

 Allow applications to create 0x0 xlib surfaces, such as used by LibreOffice.
 Trim composite extents for SOURCE/CLEAR operators to the mask.

 Use fallback fonts in PDF for unhandled computed glyph widths

 Handle snapshots of recording surfaces for analysing pattern extents.
 Fixes a regression of reporting the PDF bounding box as being the page size.

 Fix allocation size for PDF pattern ids.
 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49089

 Fix emission of rectilinear dashed segments, with and without scaling, and
 application of degenerate line joins.

 Clamp unbounded fixup polygons to the clip extents.

 Prevent infinite loop due to rounding errors whilst incrementing along dashes.

 Prevent overflow for inline a8 span filling.

 Miscellaneous build fixes for Cygwin on Windows and Solaris.

List of all changes since 1.12.0

Adrian Johnson (10):
      fix bug in _cairo_image_analyze_color
      type1-subset: use fallback font if glyph widths are calculated
      fix indentation in cairo_type1_font_subset_parse_charstring
      type1-subset: if font name is prefixed with a subset tag, strip it off
      fix _cairo_pattern_get_ink_extents to work with snapshot recording surfaces
      test: disable subsurface tests with vector backends
      pdf: avoid unnecessary use of patterns in mask groups
      any2ppm: fix missing enumeration warning
      pdf: support all image types
      ps: support all image types

Alexandros Frantzis (1):
      gl: Fix creation of gradient ramps for GLESv2

Andrea Canciani (12):
      doc: Add script to enforce stricter validation of documentation comments
      doc: Make informational comments syntactically different from docs
      doc: Make documentation comments symmetric
      doc: Manually fix remaining warnings about symmetry
      doc: Make doc ids more consistent my always putting ':' after them
      doc: Make the documentation name match the function name
      doc: Do not use the '@' prefix on some tags
      doc: Add "since" tag to documentation
      doc: Fix some wrong versions
      doc: Add since documentation for enumeration values
      doc: Silence warnings about 'Since' field in private functions
      doc: Silence last 'missing Since field' errors

Behdad Esfahbod (5):
      Fix math in comments
      Fix typos
      More typo fixes
      Fix another typo

Chris Wilson (54):
      version: Post release bump to 1.12.1
      test: Add test case for tracking source operator extents
      composite-rectangles: Trim extents for SOURCE and CLEAR to the mask
      test: update two reference images highlighted to be wrong due to source extents
      cairoint: Mark PDF surface as requiring the deflate stream output
      stroke: Fix misuse of half_line_x for vertical caps on dashes
      traps: Clip the trapezoid extents against the clip extents
      build: Disable -Wset-but-unused-variable
      analysis: Apply the integer translation to the bbox as well
      ps (API): Export the ability to set the creation date of the surface
      ps (debug API): Export the ability to force fallbacks
      pdf (debug API): Export the ability to force fallbacks
      Revert accidental push of ps debugging API.
      test: Add rectilinear-dash-scale
      stroke(boxes): Apply user scale factors to dash segments
      image: Split inline SRC composition
      boxes: Remove unused inline function
      Split cairo-box-privates into struct+inlines
      Split cairo-clip-privates into struct+inlines
      Split cairo-combsort-privates into struct+inlines
      Split cairo-contour-privates into struct+inlines
      Split cairo-surface-private into struct+inlines
      Split cairo-surface-observer-private into struct+inlines
      Split cairo-surface-snapshot-private into struct+inlines
      Split cairo-recording-surface-private into struct+inlines
      Split cairo-recording-surface-private into struct+inlines
      Split cairo-pattern-private into struct+inlines
      Split cairo-error-private into struct+inlines
      Split cairo-surface-subsurface-private into struct+inlines
      Split cairo-list into struct+inlines
      dash: Use a epsilon compare for stepping the dash
      dash: Increment dash_remain by the next segment to reduce accumulation errors
      gl: Uses the inline clip function, so update its include
      stroke(boxes): Convert the dash step back into device units before incrementing
      xlib: Allow applications to create 0x0 surfaces
      xlib: Fix inline conversion for TrueColor PutImage
      image: Fix typo in _blit_spans()
      image: Allow a snapshot to steal the original memory upon finish
      snapshot: Perform the cow under a mutex
      Update the remaining backends to handle a NULL extents for _cairo_surface_get_source
      image: Avoid overflow when computing lerp spans for a8
      Satisfy check-doc-syntax.awk for unimplemented functions
      test: Exercise clip inversion imperfections
      test: Exercise degenerate dashes that are wholly solid
      image: Add a little bit of debugging to show number of boxes being drawn
      gstate: Reduce degenerate dash to solid
      test: Fix array lengths for degenerate-solid-dash
      gstate: Correctly compact degenerate dash segments
      test: Update degenerate-solid-dash reference
      path-stroke-boxes: Fix degenerate end-caps for anti-clockwise paths
      check-doc-syntax: Fix handling of return value in make check
      check-doc-syntax: Only parse the source files for incorrect tags
      version: bump for cairo-1.12.2 release
      version: Post release bump to 1.12.3

Dimiter Stanev (1):
      win32: compilation fix for recent private/inline header separation

Gilles Espinasse (1):
      Cosmetic configure fix

Henry (Yu) Song (3):
      gl: use font's antialias option to check whether it needs mask
      gl: fix y-axis origin when map_to_image() for non texture GL surface
      gl: Remove an unused variable

Javier Jardón (4):
      configure.ac: Update autotools configuration
      configure.ac: generate xz tarballs by default
      autogen.sh: User autoreconf instead custom script
      configure.ac: Do not generate template files when building docs

Jeff Mahoney (1):
      pdf: Fix wrong allocation in _cairo_pdf_surface_add_source_surface

Kalev Lember (1):
      win32: Avoid redefining ssize_t

Maarten Bosmans (4):
      test: Give some functions in any2ppm a prefix
      Protect code using dlfcn.h with CAIRO_HAS_DLSYM
      test: Only use alarm() when SIGALRM is also defined
      Add _cairo_win32_print_gdi_error to boilerplate code

Marcus Meissner (1):
      configure: Conditionally include -flto

Nis Martensen (6):
      add unused symbols to sections doc
      doc: no separate cairo-xcb-xrender section
      doc: add returns statement to cairo_surface_supports_mime_type
      doc: do not use / in section title
      doc: add missing chapters

Uli Schlachter (4):
      xcb/xlib: Add missing "Since: 1.12"
      README: Note that xcb is no longer experimental
      xcb: Fix SHM in _get_image()
      xlib: Disable fallback compositor with xlib-xcb

Cairo - Multi-platform 2D graphics library

What is cairo
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System (via both Xlib and XCB), quartz, win32, and image buffers,
as well as PDF, PostScript, and SVG file output. Experimental backends
include OpenGL, 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):


Chris Wilson, Intel Open Source Technology Centre
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.cairographics.org/archives/cairo-announce/attachments/20120429/dace2abf/attachment.pgp>

More information about the cairo-announce mailing list