The cairo team is very pleased to announce cairo 1.0 available from: http://cairographics.org/releases/cairo-1.0.0.tar.gz which can be verified with: http://cairographics.org/releases/cairo-1.0.0.tar.gz.sha1 abc50d6a657cba15b3956c8c3aaea080b71172bb cairo-1.0.0.tar.gz http://cairographics.org/releases/cairo-1.0.0.tar.gz.sha1.asc (signed by Carl Worth) All future 1.x.y releases of cairo will be source and binary compatible with cairo 1.0.0. With this release, we'd like to remind everyone of the proper position for the number 1 in software releases, which is at the beginning. While this release does mark the culmination of months or years of work by many people, it's more significant in marking what is yet to come. Cairo has just begun and we're excited to see where it will go from here. In this release, we have marked three backends as "supported" xlib, image, win32 and all other backends as "experimental" which as such, do not have part in the API guarantees of this release. The experimental backends will not be compiled by default, but they are still available for people to experiment with by means of --enable options to configure. We recognize that many people would find the experimental backends useful, (even with existing bugs), and it is with caution that we mark them this way. We are not trying to remove utility, but we do think it is important to carefully advertise which backends are not yet up to the standards of stability, completeness, and rendering fidelity expected from a cairo backend. These "experimental" backends are certainly not going away, and we hope that each one will become a "supported" backend in a future cairo release quite soon. -Carl PS. Call it "cairo" or the "cairo graphics library", but try not to ever call it "Cairo" unless writing it at the beginning of a sentence. 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, 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 What's new in 1.0.0 compared to 0.9.2 ===================================== Experimental backends --------------------- * The Glitz, PS, PDF, Quartz, and XCB backends have been declared experimental, and are not part of the API guarantees that accompany this release. They are not built by default, even when the required libraries are available, and must be enabled explicitly with --enable options to configure. It is very painful for us to be pushing out a major release without these backends enabled. There has been a tremendous amount of work put into each one and all are quite functional to some extent. However, each also has some limitations. And none of these backends have been tested to the level of completeness and correctness that we expect from cairo backends. We do encourage people to experiment with these backends and report success, failure, or means of improving them. Operator behavior ----------------- * Prior to 0.9.0 the SOURCE, CLEAR and a number of other operators behaved in an inconsistent and buggy fashion and could affect areas outside the clip mask. In 0.9.0, these six "unbounded" operators were fixed to consistently clear areas outside the shape but within the clip mask. This is useful behavior for an operator such as IN, but not what was expected for SOURCE and CLEAR. So, in this release the behavior of SOURCE and CLEAR has been changed again. They now affect areas only within both the source and shape. We can write the new operators as: SOURCE: dest' = (mask IN clip) ? source : dest CLEAR: dest' = (mask IN clip) ? 0 : dest Behavior and API changes ------------------------ * Setting the filter on a gradient pattern would change the interpolation between color stops away from the normal linear interpolation. This dubious behavior has been removed. * The CAIRO_CONTENT_VALID() and CAIRO_FORMAT_VALID() macros -- implementation details that leaked into cairo.h -- have been moved into an internal header. * The cairo_show_text function now advances the current point according to the total advance values of the string. API additions ------------- * cairo_set_dash can now detect error and can set CAIRO_STATUS_INVALID_DASH. Features -------- * When compiled against recent versions of fontconfig and FreeType, artificial bold fonts can now be turned on from fonts.conf using the FC_EMBOLDEN fontconfig key. Optimization ------------ * The compositing code from the 'xserver' code tree has now been completely merged into libpixman. This includes MMX optimization of common operations. * The image transformation code in libpixman has been improved and now performs significantly faster. Bug fixes --------- * Several crashes related to corruption in the font caches have been fixed. * All test cases now match pixel-for-pixel on x86 and PPC; this required fixing bugs in the compositing, stroking, and pattern rendering code. * Negative dash offsets have been fixed to work correctly. * The stroking of paths with multiple subpaths has now been fixed to apply caps to all subpaths rather than just the last one. * Many build fixes for better portability on various systems. * Lots of other bug fixes, but we're too tired to describe them in more detail here. Acknowledgments ================ We would like to express our appreciation to everyone who has contributed to making cairo everything it is today. Hundreds of people have debated API on mailing lists, tested early snapshots, submitted bug reports, and contributed code. The following list has been extracted from cairo's ChangeLog, and we recognize that is only a very small subset of those who have helped. Josh Aas - Memory leak fix for quartz backend Shawn T. Amundson - Build fix Olivier Andrieu - PNG backend Peter Dennis Bartok - Bug fix for clipping Dave Beckett - Build fixes, Debian packaging Billy Biggs - Pixman code merge. Optimization. Fixes for subtle rendering bugs. Damien Carbery - Build fixes Andrew Chant - Adding const where needed Steve Chaplin - Bug fixes for PNG reading Tomasz Cholewo - Bug fixes John Ehresman - Build fixes for win32 John Ellson - First font/glyph extents functions Behdad Esfahbod - Release script improvements, bug fixes. Bertram Felgenhauer - Fixes for subtle arithmetic errors J. Ali Harlow - win32 backend updates Richard Henderson - "slim" macros for better shared libraries James Henstridge - Build fixes related to freetype Graydon Hoare - Support for non-render X server, first real text support Thomas Hunger - Initial version of cairo_in_stroke/fill Kristian Høgsberg - PDF backend, PS backend with meta-surfaces Amaury Jacquot - Documentation review, application testing Adrian Johnson - PDF backend improvement Michael Johnson - Bug fix for pre-C99 compilers Øyvind Kolås - Bug fixes. Better default values. Martin Kretzschmar - Arithmetic fix for 64-bit architectures Alexander Larsson - Profiling and performance fixes. Tor Lillqvist - win32 build fixes, build scripts Luke-Jr - Build fix for cross-compiling Jordi Mas - Bug fix for cairo_show_text Jeff Muizelaar - Patient, painful, pixman code merge. Test fixes Peter Nilsson - Glitz backend Geoff Norton - Build fixes Robert O'Callahan - Const-correctness fixes. Mike Owens - Bug fixes Keith Packard - Original concept, tessellation, dashing, font metrics rewrite Stuart Parmenter - Original GDI+ backend, win32 fixes Christof Petig - Build fixes related to freetype David Reveman - New pattern API, glitz backend Calum Robinson - Quartz backend Tim Rowley - Quartz/ATSUI fixes, X server workarounds, win32 glyph path support Jamey Sharp - Surface/font backend virtualization, XCB backend Jason Dorje Short - Build fixes and bug fixes Travis Spencer - XCB backend fix Bill Spitzak - Build fix to find Xrender.h without xrender.pc Owen Taylor - Font rewrite, documentation, win32 backend Malcolm Tredinnick - Documentation fixes Sasha Vasko - Build fix to compile without xlib backend Vladimir Vukicevic - Bug fix for clipping Carl Worth - Original library, support for paths, images Richard D. Worth - Build fixes for cygwin (please let us know if you're aware of someone we've missed)
Attachment:
pgpcfk9QfoB4z.pgp
Description: PGP signature