[cairo-announce] cairo snapshot 1.9.12 now available
chris at chris-wilson.co.uk
Mon Jul 12 04:46:08 PDT 2010
A new cairo snapshot 1.9.12 is now available from:
which can be verified with:
(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.9.12 tag which points to a commit named:
which can be verified with:
git verify-tag 1.9.12
and can be checked out with a command such as:
git checkout -b build 1.9.12
Snapshot 1.9.12 (2010-07-12)
A couple of weeks spent fixing those annoying bugs and cleaning up the build
system; the list of outstanding tasks to complete for the stable release is
finally shrinking. The chief bug fixer has been Benjamin Otte who not only
made sure that the public API is consistent and being tested for its
consistency, but also ensured that the documentation was up-to-date and
spent time clarifying cases where even the Cairo developers have come
unstuck in the past. Many thanks, Benjamin. However, he was not alone,
as Andrea Canciani continued his fine work in isolating broken corner cases
and proceeding to fix them, and tidying up the quartz backend. And last, but
definitely not least, M Joonas Pihlaja tried building Cairo across a
perverse range of systems and fixed up all the loose bits of code that came
unravelled. Thanks everybody!
The length parameter is now an unsigned long (as opposed to an unsigned
int). The parameter is intended to be an equivalent to a size_t without
requiring POSIX types and be large enough to store the size of the
largest possible allocation.
This a new surface constructor for cairo-gl that explicitly enables
render-to-texture for foreign, i.e. application, textures.
A couple of utility routines add to the region handling interface for
the purpose of replacing existing GdkRegion functionality.
Inkscape was caught in the act of attempting to modify a finished surface.
Unfortunately, we had the ordering of our guards and assertions wrong and
so an ordinary application error was triggering an assert in Cairo. This
lead Benjamin to add a test case to ensure that the entire public API
could handle erroneous input and then proceeded to fix a whole slew of
A regression introduced by the special casing of uploading images to an
xlib surface in-place which was ignoring the translation applied to the
Complete lists of changes between 1.9.10 and 1.9.12
Andrea Canciani (12):
quartz-font: silence compiler warnings
quartz: improve text transform handling
quartz: check return status
quartz-font: correct and explain matrix computations
quartz: remove unused os version info
quartz: remove unused declarations
ft-font: fix typo
user-font: ignore translation in scale matrix
user-font: correct handling of size 0 text
test: fix typo
test: Add quartz functions to api-special-cases test
test: Add halo quartz reference images
Benjamin Otte (68):
boilerplate: Add a describe vfunc
gl: Add describe string
boilerplate: Add describe string
perf: print comment describing backend
configure: remove shave
configure: Use automake silent rules
tests: Add a testcase that checks APIs work consistently
surface: don't call begin_modification on finished surfaces
surface: Fail early if create_similar() is called on a finished surface
surface: Fail if set_mime_data() is called on a finished surface
subsurface: Fail if created from a finished surface
configure: remove dolt
test: Add a new test variant to api-special-cases test
test: add image surface functions to api-special-cases test
test: Add a non-error surface check
test: add PNG functions
test: Add recording and tee surface functions to api-special-cases
tee: Add proper error handling
Call _cairo_error() when setting the FINISHED error on surfaces
test: Add gl functions to the tests
gl: Fail properly when called with finished functions
pdf: Set error when extracting from finished surface
ps: Set error when extracting from finished surface
ps: Allow specifying if errors on extract_surface should be set
svg: Set error when extracting from finished surface
test: Add ps, pdf and svg to the api-special-cases test
test: Add xcb and xlib functions to api-special-cases test
xcb: Setters should set finished surfaces into an error status
xlib: Setters should set finished surfaces into an error status
test: Add documentation to the api-special-cases test
test: Add note about how to fix failures to api-special-cases
region: Add cairo_region_xor() and cairo_region_xor_rectangle()
gl: Fix compile error after rebase failure
doc: Add drm and glew to the ignored directories
glew: The headers are private, not public
doc: Add cairo_rectangle_int_t to the general types list
doc: Add cairo_in_clip() to cairo_t section
doc: Add a section for cairo_device_t
doc: Add missing surface APIs
doc: Add a section about regions
skia: Add cairo-skia.h as a public header
drm: Fix Makefile for drm_xr
doc: add --name-space option to gtkdoc-mkdb
doc: Add list of new symbol in Cairo 1.10
doc: Fix some consistency issues that confuse gtk-doc
doc: Remove CAIRO_FORMAT_RGB16_565 from hidden symbols list
doc: Move tmpl/ docs to inline docs
doc: Fix a syntax issue in quartz-font gtkdoc
doc: Add missing region documentation
doc: Remove the <TITLE> declarations
doc: Copy docs for standard device APIs
doc: Clarify that cairo_surface_get_device() can return NULL
doc: Add more documentation for devices
doc: Document remaining cairo-device functions
gl: Remove double ** from some comments
doc: Add "@Since: 1.10" tags to device docs
build: Get rid of $(foo_files) Makefile.am variables
build: Fix C++ issues with automake
gl: Use unsigned int instead of GLuint
build: copy/paste failure: Don't build libcxx.la
build: Remove wrong flags from libcairo_cxx.la
build: fix glew include
build: Commit new versions of autogenerate Windows build files
build: Fix typo that makes C++ libs not build
qt: Define cairo-qt's API as C symbols
build: Split boilerplate lib generation into two so's
check: Allow unprefix type names in the title
doc: Make the necessity of flush/mark_dirty more obvious
Chris Wilson (10):
xlib: Compile without fontconfig
xlib: Apply translation to image surface upload.
user-font: Check the status before destroying the context
subsurface: Don't assume we ever own the target.
Convert mime data length to use unsigned long
Make distcheck happy.
test: Missing REFERENCE_IMAGES
NEWS for 1.9.12.
version: 1.9.12 snapshot
Colin Walters (1):
Support NOCONFIGURE environment variable
Eric Anholt (1):
gl: Only use a mat3 for the transformation for gradients coordinates.
Kristian HÃ¸gsberg (1):
gl: Add new cairo-gl surface constructor to create surface for texture
M Joonas Pihlaja (9):
build: Factor out a more pliable CAIRO_CC_TRY_LINK_WITH_ENV_SILENT.
build: Purge CAIRO_CC_TRY_LINK_FLAG.
build: Rework pthread detection.
build: Fix regression provoked by newer autoconf and dodgy configuring.
build: Fix typo in pthread test program.
build: Avoid shifting shell parameters that aren't there.
trace: Avoid stdbool.h C99ism.
build: Sync up autogenerated win32 build files.
test: Add comments explaining the bug in bug-seams.
What is cairo
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System, quartz, win32, and image buffers, as well as PDF, PostScript,
and SVG file output. Experimental backends include OpenGL, 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):
Chris Wilson, Intel Open Source Technology Centre
More information about the cairo-announce