A new cairo release 0.9.2 is now available from: http://cairographics.org/snapshots/cairo-0.9.2.tar.gz which can be verified with: http://cairographics.org/snapshots/cairo-0.9.2.tar.gz.sha1 6b9139a9dafae6593dd5bcdf89308ff42c32e689 cairo-0.9.2.tar.gz http://cairographics.org/snapshots/cairo-0.9.2.tar.gz.sha1.asc (signed by Carl Worth) What is cairo? -------------- Cairo is a vector graphics library designed to provide high-quality display and print output. Currently available backends include the X Window System, OpenGL (via glitz), Quartz, win32, in-memory image buffers, PNG images, PostScript, and PDF files. As of version 2.7/2.8, GTK+ now performs much of its drawing through cairo and allows application code to perform rendering through cairo. For more information on cairo, see http://cairographics.org Why this release? ----------------- This is a development release leading up to cairo 1.0. The cairo 1.0 release will be source and binary compatible with the cairo 0.9.x series. All API changes in cairo 0.9.x are finalized at this point, and cairo 0.9.x should be considered API frozen. Barring discovery of serious issues with the new APIs, no API changes are anticipated between this release and the 1.0 release. Have fun! And please report any problems here: http://bugs.freedesktop.org/enter_bug.cgi?product=cairo Detailed notes on this release are included below. -Carl Release 0.9.2 (2005-08-13 Carl Worth <cworth cworth org>) ========================================================= Release numbering ----------------- * You will notice that this release jumped from 0.9.0 to 0.9.2. We've decided to use an odd micro version number (eg. 0.9.1) to indicate in-progress development between releases. As soon as 0.9.2 is tagged, the version will be incremented in CVS to 0.9.3 where it will stay until just before 0.9.4 is built, uploaded, and tagged. So, even-micro == a released version, odd-micro == something in-between. Libpixman dependency dropped ---------------------------- * As of this release, the dependency on an internal libpixman has been dropped. Instead, the code from libpixman needed for cairo has been incorporated into the cairo source tree. The motivation for this change is that while cairo's API is stable and ready to be maintained after the 1.0 release, libpixman's API is not, so we do not want to expose it at this time. Also, the incorporation of libpixman into cairo also renames all previously-public libpixman symbols in order to avoid any conflict with a future release of libpixman API additions ------------- * Macros and functions have been added so that the version of cairo can be queried at either compile-time or at run-time. The version is made available as both a human-readable string and as a single integer: CAIRO_VERSION_STRING eg. "0.9.2" CAIRO_VERSION eg. 000902 const char* cairo_version_string (void); /* eg. "0.9.2" */ int cairo_version (void); /* eg. 000902 */ A macro is provided to convert a three-part component version into the encoded single-integer form: CAIRO_VERSION_ENCODE(X,Y,Z) For example, the CAIRO_VERSION value of 000902 is obtained as CAIRO_VERSION_ENCODE(0,9,2). The intent is to make version comparisons easy, either at compile-time: #if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(0,9,2) ... #endif Or at run-time: if (cairo_version() >= CAIRO_VERSION_ENCODE(0,9,2)) { /* ... */ } Thread safety ------------- * This release adds pthread-based locking (when available) to make the caches used by cairo safe for threaded programs. Some may remember a failed experiment with this locking between the 0.5.1 and 0.5.2 snapshots, (where even single-threaded programs that linked with -lpthread would deadlock). We believe that that problem has been fixed, so we are looking forward to testing and reports from users with threaded applications. Bug fixes --------- * The XCB and Quartz backends failed to compiled in the 0.9.0 release due to minor syntax errors. These have now been fixed. * Various crashes in glitz and pixman due to size 0 glyphs have been fixed. Corrections to previous 0.9.0 announcement ========================================== * The previous announcement for 0.9.0 was written rather hastily and had some problems. It neglected to mention the new cairo_get_antialias function and it it incorrectly listed a new function as cairo_flush instead of the correct cairo_surface_flush. * In addition the following release notes were mistakenly omitted: Soname change ------------- * In all prior snapshots, the libtool library versioning was set to 1:0:0. As this release is intended to mark the beginning of backwards-compatible releases, the versioning has been incremented to 2:0:0. You will notice that the numeric extension on the installed library filename will change similarly. This change will also require all cairo-using applications to be recompiled. We recognize that this may cause some frustration since this release is backwards-compatible with 0.6.0 and in that sense "shouldn't" require re-compilation. However, since all historical snapshots have used the same 1:0:0 version in spite of incompatible API changes between them, it was essential that the upcoming 1.0 release series have distinct library versioning. All future releases will use the library versioning to properly indicate compatibility between releases. So, any application re-compiled now to work with the 0.9.0 will not need to be recompiled when a compatible 1.0 release of cairo is made in the future. Semantic changes ---------------- * The behavior of cairo_set_source with a pattern with a non-identity matrix was previously not well-defined. The new behavior is as follows: The pattern's transformation matrix will be locked to the user space in effect at the time of cairo_set_source(). This means that further modifications of the CTM will not affect the source pattern.
Attachment:
pgpsEYfcUNeEt.pgp
Description: PGP signature