A new cairo release 1.4.10 is now available from:
http://cairographics.org/releases/cairo-1.4.10.tar.gz
which can be verified with:
http://cairographics.org/releases/cairo-1.4.10.tar.gz.sha1
8371097e30650ec817b24694367110139627403e cairo-1.4.10.tar.gz
http://cairographics.org/releases/cairo-1.4.10.tar.gz.sha1.asc
(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.4.10 tag which points to a commit named:
107a74885a25e585b467c7841c6929a12aa62565
which can be verified with:
git verify-tag 1.4.10
and can be checked out with a command such as:
git checkout -b build 1.4.10
This is the fifth update in cairo's stable 1.4 series. It comes roughly three weeks after the 1.4.8 release. The most significant change in this release is a fix to avoid an X error in certain cases, (that were causing OpenOffice.org to crash in Fedora). There is also a semantic change to include child window contents when using an xlib surface as a source, an optimization when drawing many rectangles, and several minor fixes.
-Carl
Significant changes from cairo 1.4.8 to 1.4.10
==============================================
Eliminate X errors that were killing OO.o (Chris Wilson)
--------------------------------------------------------
Cairo is fixed to avoid the X errors propagated when cleaning up Render Pictures after the application had already destroyed the Drawable they reference. (It would be nice if the X server wouldn't complain that some cleanup work is already done, but there you have it.) This fixes the bug causing OpenOffice.org to crash as described here:
XError on right click menus in OOo.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=243811
Use IncludeInferiors when using xlib surface as a source (Ryan Lortie)
----------------------------------------------------------------------
When an xlib surface is used as the source of a draw operation the contents of child windows are now included in the source data. The semantics of drawing to xlib surfaces are unchanged (ie: draws are still clipped by child windows overlapping the destination window).
Optimize drawing of many rectangles (Vladimir Vukicevic)
--------------------------------------------------------
Avoid O(N*N) loop when filling many axis-aligned rectangles, (either many rectangles as separate sub-paths or due to dashing).
Miscellaneous fixes
-------------------
Fix cairo-perf on Solaris by linking to librt. (Behdad Esfahbod)
Fix make check for systems that require executable files to have a particular extension. (Behdad Esfahbod)
Eliminate some warnings in cairo-quartz. (Brian Ewins)
Fix build-breaking typo for cairo-directfb. (Chris Wilson)
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=E9zier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear,
etc.).
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:
http://cairographics.org/
The latest releases of cairo can be found at:
http://cairographics.org/releases
Snapshots of in-development versions of cairo:
http://cairographics.org/snapshots
The programming manual for using cairo:
http://cairographics.org/manual
Mailing lists for contacting cairo users and developers:
http://cairographics.org/lists
Answers to some frequently asked questions about cairo:
http://cairographics.org/FAQ
Log of all commits from cairo 1.4.8 to 1.4.10
=============================================
Behdad Esfahbod (3):
[perf] Link to librt if available
[test] Use check_PROGRAMS instead of custom made SUPPORT_PROGS
[TODO] Add link to Adrian's finer-grain fallback thread
Brian Ewins (5):
[quartz] pass quartz_stroke_t not CGContextRef
commit 75be87b4093aaa7f477d587d5a68308cade1b29c
[quartz] move glyph array declarations
[quartz] remove unused code
[atsui] Document ATSUI
Carl Worth (8):
Update version to 1.4.9 after the 1.4.8 release.
Fix cairo-perf-diff to compile cairo-perf explicitly
Merge branch 'ooo-fix' into cairo
Revert "[cairo-xlib-surface] Check for errors before installing a NOO
P error handler."
Revert "[cairo-xlib-display] Hide XErrors during processing of the wo
rk queue."
Prefer local dpy variable instead of display->display
Add notes to NEWS for 1.4.10
Increment cairo version to 1.4.10 (and libtool versioning to 13:5:11)
Chris Wilson (4):
[cairo-xlib-surface] Check for errors before installing a NOOP error
handler.
[cairo-xlib-display] Hide XErrors during processing of the work queue.
[cairo-directfb] Correct minor typo.
Avoid deferring resource cleanup for application drawables
Nis Martensen (1):
Update INSTALL about status of backends
Ryan Lortie (1):
[xlib] Create source xrender Picture with IncludeInferiors
Vladimir Vukicevic (2):
[misc] Blow away last remaining $Id$ directives in sources
[perf] Add pixman_region_init_rects and use in extract_region
http://cairographics.org/releases/cairo-1.4.10.tar.gz
which can be verified with:
http://cairographics.org/releases/cairo-1.4.10.tar.gz.sha1
8371097e30650ec817b24694367110139627403e cairo-1.4.10.tar.gz
http://cairographics.org/releases/cairo-1.4.10.tar.gz.sha1.asc
(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.4.10 tag which points to a commit named:
107a74885a25e585b467c7841c6929a12aa62565
which can be verified with:
git verify-tag 1.4.10
and can be checked out with a command such as:
git checkout -b build 1.4.10
This is the fifth update in cairo's stable 1.4 series. It comes roughly three weeks after the 1.4.8 release. The most significant change in this release is a fix to avoid an X error in certain cases, (that were causing OpenOffice.org to crash in Fedora). There is also a semantic change to include child window contents when using an xlib surface as a source, an optimization when drawing many rectangles, and several minor fixes.
-Carl
Significant changes from cairo 1.4.8 to 1.4.10
==============================================
Eliminate X errors that were killing OO.o (Chris Wilson)
--------------------------------------------------------
Cairo is fixed to avoid the X errors propagated when cleaning up Render Pictures after the application had already destroyed the Drawable they reference. (It would be nice if the X server wouldn't complain that some cleanup work is already done, but there you have it.) This fixes the bug causing OpenOffice.org to crash as described here:
XError on right click menus in OOo.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=243811
Use IncludeInferiors when using xlib surface as a source (Ryan Lortie)
----------------------------------------------------------------------
When an xlib surface is used as the source of a draw operation the contents of child windows are now included in the source data. The semantics of drawing to xlib surfaces are unchanged (ie: draws are still clipped by child windows overlapping the destination window).
Optimize drawing of many rectangles (Vladimir Vukicevic)
--------------------------------------------------------
Avoid O(N*N) loop when filling many axis-aligned rectangles, (either many rectangles as separate sub-paths or due to dashing).
Miscellaneous fixes
-------------------
Fix cairo-perf on Solaris by linking to librt. (Behdad Esfahbod)
Fix make check for systems that require executable files to have a particular extension. (Behdad Esfahbod)
Eliminate some warnings in cairo-quartz. (Brian Ewins)
Fix build-breaking typo for cairo-directfb. (Chris Wilson)
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=E9zier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear,
etc.).
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:
http://cairographics.org/
The latest releases of cairo can be found at:
http://cairographics.org/releases
Snapshots of in-development versions of cairo:
http://cairographics.org/snapshots
The programming manual for using cairo:
http://cairographics.org/manual
Mailing lists for contacting cairo users and developers:
http://cairographics.org/lists
Answers to some frequently asked questions about cairo:
http://cairographics.org/FAQ
Log of all commits from cairo 1.4.8 to 1.4.10
=============================================
Behdad Esfahbod (3):
[perf] Link to librt if available
[test] Use check_PROGRAMS instead of custom made SUPPORT_PROGS
[TODO] Add link to Adrian's finer-grain fallback thread
Brian Ewins (5):
[quartz] pass quartz_stroke_t not CGContextRef
commit 75be87b4093aaa7f477d587d5a68308cade1b29c
[quartz] move glyph array declarations
[quartz] remove unused code
[atsui] Document ATSUI
Carl Worth (8):
Update version to 1.4.9 after the 1.4.8 release.
Fix cairo-perf-diff to compile cairo-perf explicitly
Merge branch 'ooo-fix' into cairo
Revert "[cairo-xlib-surface] Check for errors before installing a NOO
P error handler."
Revert "[cairo-xlib-display] Hide XErrors during processing of the wo
rk queue."
Prefer local dpy variable instead of display->display
Add notes to NEWS for 1.4.10
Increment cairo version to 1.4.10 (and libtool versioning to 13:5:11)
Chris Wilson (4):
[cairo-xlib-surface] Check for errors before installing a NOOP error
handler.
[cairo-xlib-display] Hide XErrors during processing of the work queue.
[cairo-directfb] Correct minor typo.
Avoid deferring resource cleanup for application drawables
Nis Martensen (1):
Update INSTALL about status of backends
Ryan Lortie (1):
[xlib] Create source xrender Picture with IncludeInferiors
Vladimir Vukicevic (2):
[misc] Blow away last remaining $Id$ directives in sources
[perf] Add pixman_region_init_rects and use in extract_region