[cairo-announce] cairo snapshot 1.1.6 now available

Carl Worth cworth at cworth.org
Fri May 5 00:10:45 PDT 2006

A new cairo snapshot 1.1.6 is now available from:


    which can be verified with:

        6c2c5dc688edca44f8087b6ffe8bfc1b7b1c3ba1  cairo-1.1.6.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.1.6 tag which points to a commit named:

    which can be verified with:
	git verify-tag 1.1.6

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

Snapshot 1.1.6 (2006-05-04 Carl Worth <cworth at cworth.org>)
This is the third in a series of snapshots working toward the imminent
1.2 release of cairo. For a list of items still needing work on the
cairo 1.2 roadmap, please see:


As can be seen in that list, there are no longer any API additions
left on the roadmap. Instead, there is a feature (PDF type 3 fonts) a
performance optimization (X server gradients) and a list of bug
fixes. This gives us a fair amount of freedom to cut the 1.2 release
at almost any point by deciding to defer remaining bug fixes to
subsequent maintenance releases such as 1.2.2 and 1.2.4.

Before we will do that, we must first be wiling to commit to all the
new API additions. As a heads-up, there are a couple of potential API
changes being considered. (Note that these are changes to new API
introduced during 1.1 so these will not introduce API
incompatibilities compared to the stable 1.0 series). The changes
being considered are:

  cairo_get_group_target: may acquire x and y offset return
	parameters. May also be eliminated in favor of
	cairo_get_target assuming its role

  cairo_svg_surface_set_dpi: These functions may be removed in favor
	of a new cairo_surface_set_fallback_resolution

Additionally there is the possibility of a slight change in the
semantics of cairo_set_line_width. We believe the current behavior of the sequence:

	cairo_set_line_width; ... change CTM ...; cairo_stroke;

is buggy. It is currently behaving the same as:

	... change CTM ...; cairo_set_line_width; cairo_stroke;

We are considering fixing this bug before 1.2 with the hope that
nobody is already relying on the buggy behavior described here. Do
shout if you suspect you might be in that position.

This snapshot is backwards-compatible with the 1.0 series---it makes a
few API additions but does not remove any API. See a few paragraphs
below for details on what's new in 1.1.6.

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. Experimental backends include OpenGL
(through glitz), Quartz, XCB, PostScript and PDF file output.

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 1.1.

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:


What's new in 1.1.6 compared to 1.1.4
API additions
The long-awaited group-rendering support is now available with the
following function calls:


This API provides a much more convenient mechanism for doing rendering
to an intermediate surface without the need to manually create a
temporary cairo_surface_t and a temporary cairo_t and clean them up

Add the following missing get function to complement


PDF backend (API addition)
The PDF backend now provides for per-page size changes, (similar to
what the PostScript backend got in the 1.1.4 snapshot). The new API


Xlib backend (API additions)
The following functions have been added to allow the extraction of
Xlib surface:


XCB backend (experimental)
Update backend so that it now compiles with the recent XCB 0.9 release.

Bug fixes and memory leak cleanup
Various little things, nothing too significant though.

Tag '1.1.6' created by Carl Worth <cworth at cworth.org> at 2006-05-05 07:45 -0700

cairo-1.1.6 snapshot
Version: GnuPG v1.4.3 (GNU/Linux)


Changes since 1.1.4:
Carl Worth:
      Increment CAIRO_VERSION to 1.1.5 after making the 1.1.4 snapshot
      PS: Use ceil, not rounding when computing integers for BoundingBox
      ps-features: Minor touchups (missing include, typo in error message)
      PDF: Add new cairo_pdf_surface_set_size for doing per-page size changes
      Add new pdf-features test to exercise cairo_pdf_surface_set_size
      ROADMAP: Note that PDF per-page size setting is done. Sort things that appear in 1.1.4
      Add pdf2svg utility for manual testing (not used in test suite)
      Add test/pdf-features.c missing from an earlier commit
      Quiet some 'may be used uninitialized' warnings.
      Shrink the size of a couple of tests (and update reference images).
      Fix bug in test suite causing PS and PDF to fail with rgb24 and device offsets.
      _cairo_surface_fallback_composite_trapezoids: Remove unused variable.
      _cairo_surface_copy_pattern_for_destination: Fix transformation sign/order.
      Abstract away repeated test as _cairo_surface_has_device_offset_or_scale
      _cairo_surface_copy_pattern_for_destination: Remove leaking second call to pattern_init_copy
      _cairo_surface_copy_pattern_for_destination: Don't do any transform if there is no offset
      Move device-offset handling for clipping from _cairo_surface_interesect_clip_path
      _cairo_surface_set_clip_region: Remove device-offset handling that is
      cairo-surface.c: Correct reversed semantics of SURFACE_TO_BACKEND and BACKEND_TO_SURFACE
      _cairo_surface_show_glyphs: Fix reversed device-offset handling so text works again.
      Remove undesired device-offset handling during unbounded fixups.
      cairo_surface_mark_dirty_rectangle: correct sense of device-offset handling
      Remove dead code from _cairo_surface_{acquire,release}_dest_image
      Prefer classic C style comments rather than C++/C99-style
      Rip out device_{x,y}_scale.
      Add support to handle the device-offset of a source surface.
      Move device-offset touchups from the surface layer up to the gstate.
      Implement the device_offset functionality at surface, not gstate layer
      Merge branch 'device-offset-history' into cairo
      ROADMAP: Note that device-offset and push-pop-group have landed.
      Add missing prototype for _cairo_clip_translate
      Clean up error management of xlib surface getter functions.
      Remove trailing comma in enum to pander to non-C99-conformant compilers
      pixman: Remove potential memory leak in failure path.
      Add push-group to test/.gitignore
      Add a couple more group-using tests: fill-and-stroke-alpha[-add]
      Flesh out the documentation for cairo_push_group, cairo_pop_group and friends
      RELEASING: Add a few more steps that we've been somtimes forgetting
      Update version to 1.1.6 and add notes to NEWS file.
      Fix typos in EXTRA_DIST list of reference images.

Emmanuel Pacaud:
      SVG: Emit correct version property of "svg" element.
      SVG: Only "comp-op" property when svg_version >= 1.2
      SVG: Emit "svg" version in document_finish.
      SVG: Fix xml namespace declaration.
      SVG: Fix bug in test suite causing SVG to fail with rgb24 and device offsets.
      SVG: Fix the previous fix for xlink namespace.
      SVG: Update reference images for shrinked tests.
      SVG: Add reference images for push-groups test.
      SVG: Add reference image for tests failing on composited image misplacement.
      SVG: Don't test rectangle-rounding-error.

Ian Osgood:
      Fix the XCB backend build for the XCB 0.9 release.
      Additional piece of "Fix the XCB backend build for the XCB 0.9 release."

Robert O'Callahan:
      Rename cairo_rectangle_t to cairo_rectangle_fixed_t.
      Add Xlib surface getter functions.

Vladimir Vukicevic:
      Augment test framework to test everything under device offsets as well.
      Implement device offset/scale at cairo-surface layer
      Take device offsets into account when compositing scaled glyph images
      Move device offsets handling into high-level operations only (stroke/fill/paint/etc)
      Implement push_group/pop_group
      Add push-group test and reference images
      Fix up clip at pop_group time, to keep it in surface backend coordinates

 NEWS                                                     |   97 ++++
 RELEASING                                                |   19 
 ROADMAP                                                  |   28 -
 configure.in                                             |    8 
 pixman/src/ictri.c                                       |   10 
 src/cairo-analysis-surface.c                             |    4 
 src/cairo-atsui-font.c                                   |    2 
 src/cairo-beos-surface.cpp                               |   44 -
 src/cairo-clip-private.h                                 |   28 -
 src/cairo-clip.c                                         |  106 +++-
 src/cairo-directfb-surface.c                             |   42 -
 src/cairo-glitz-surface.c                                |   42 -
 src/cairo-gstate-private.h                               |    4 
 src/cairo-gstate.c                                       |  263 ++++++-----
 src/cairo-image-surface.c                                |   28 -
 src/cairo-lzw.c                                          |    4 
 src/cairo-meta-surface.c                                 |    4 
 src/cairo-paginated-surface.c                            |    8 
 src/cairo-path.c                                         |   46 +
 src/cairo-pattern.c                                      |    6 
 src/cairo-pdf-surface.c                                  |  100 +++-
 src/cairo-pdf.h                                          |    5 
 src/cairo-ps-surface.c                                   |   20 
 src/cairo-quartz-private.h                               |    2 
 src/cairo-quartz-surface.c                               |   26 -
 src/cairo-region.c                                       |   10 
 src/cairo-scaled-font.c                                  |   16 
 src/cairo-surface-fallback-private.h                     |    6 
 src/cairo-surface-fallback.c                             |  228 ++++-----
 src/cairo-surface.c                                      |  350 +++++++++++----
 src/cairo-svg-surface.c                                  |   69 +-
 src/cairo-traps.c                                        |   49 ++
 src/cairo-win32-private.h                                |    4 
 src/cairo-win32-surface.c                                |   20 
 src/cairo-xcb-surface.c                                  |   44 -
 src/cairo-xlib-surface.c                                 |  109 +++-
 src/cairo-xlib.h                                         |   15 
 src/cairo.c                                              |  238 +++++++++-
 src/cairo.h                                              |   58 +-
 src/cairoint.h                                           |  110 +++-
 src/test-fallback-surface.c                              |   24 -
 src/test-meta-surface.c                                  |    4 
 src/test-paginated-surface.c                             |    4 
 test/.gitignore                                          |   42 -
 test/Makefile.am                                         |   17 
 test/buffer-diff.c                                       |   94 ++--
 test/buffer-diff.h                                       |   21 
 test/cairo-test.c                                        |  150 ++++--
 test/composite-integer-translate-over-svg-argb32-ref.png |binary
 test/composite-integer-translate-over-svg-rgb24-ref.png  |binary
 test/fill-and-stroke-alpha-add-ref.png                   |binary
 test/fill-and-stroke-alpha-add.c                         |  112 ++++
 test/fill-and-stroke-alpha-ref.png                       |binary
 test/fill-and-stroke-alpha.c                             |  106 ++++
 test/imagediff.c                                         |   47 --
 test/linear-gradient-ref.png                             |binary
 test/linear-gradient-svg-argb32-ref.png                  |binary
 test/linear-gradient-svg-rgb24-ref.png                   |binary
 test/linear-gradient.c                                   |    6 
 test/make-html.pl                                        |  122 ++---
 test/paint-source-alpha-svg-argb32-ref.png               |binary
 test/paint-source-alpha-svg-rgb24-ref.png                |binary
 test/paint-with-alpha-svg-argb32-ref.png                 |binary
 test/paint-with-alpha-svg-rgb24-ref.png                  |binary
 test/pdf-features.c                                      |  150 ++++++
 test/pdf2svg.c                                           |  101 ++++
 test/ps-features.c                                       |   11 
 test/push-group-ref.png                                  |binary
 test/push-group-rgb24-ref.png                            |binary
 test/push-group-svg-argb32-ref.png                       |binary
 test/push-group-svg-rgb24-ref.png                        |binary
 test/push-group.c                                        |  119 +++++
 test/scale-source-surface-paint-svg-argb32-ref.png       |binary
 test/scale-source-surface-paint-svg-rgb24-ref.png        |binary
 test/text-pattern-ref.png                                |binary
 test/text-pattern-rgb24-ref.png                          |binary
 test/text-pattern-svg-argb32-ref.png                     |binary
 test/text-pattern-svg-rgb24-ref.png                      |binary
 test/text-pattern.c                                      |    4 
 test/xlib-surface.c                                      |    4 
 80 files changed, 2511 insertions(+), 899 deletions(-)
-------------- 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/20060505/1bd91720/attachment.pgp

More information about the cairo-announce mailing list