|From:||Chris Wilson <ickle-AT-cantiga.alporthouse.com>|
|Subject:||cairo release 1.12.0 now available|
|Date:||Fri, 23 Mar 2012 20:24:44 +0000|
|Cc:||cairo-AT-cairographics.org, gnome-announce-list-AT-gnome.org, ftp-release-AT-lists.freedesktop.org, pr-AT-lwn.net|
A new cairo release 1.12.0 is now available from: http://cairographics.org/releases/cairo-1.12.0.tar.gz which can be verified with: http://cairographics.org/releases/cairo-1.12.0.tar.gz.sha1 63e0d1372a7919956b6d959709dfdf35d3cecc02 cairo-1.12.0.tar.gz http://cairographics.org/releases/cairo-1.12.0.tar.gz.sha... (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.12.0 tag which points to a commit named: a0bf6d25b5b68c897d63580d1ca9ee182f04cce1 which can be verified with: git verify-tag 1.12.0 and can be checked out with a command such as: git checkout -b build 1.12.0 Release 1.12.0 (2012-03-23 Chris Wilson <email@example.com>) =================================================================== It's taken over 18 months, but the wait is finally over. A new cairo release! We are pleased to annouce a new stable release of Cairo that brings many new features and performance improvements, all whilst maintaining compatibility with cairo-1.0 and all releases since. We recommend anyone using a previous release of Cairo to upgrade to 1.12.0. The major feature of this release is the introduction of a new procedural pattern; the mesh gradient. This, albeit complex, gradient is constructed from a set of cubic Bezier patches and is a superset of all other gradient surfaces which allows for the construction of incredibily detailed patterns. In PDF parlance, the mesh gradient corresponds with type 7 patterns. Many thanks to Andrea Canciani for bringing this to Cairo, and for his work on making gradient handling robust. Not content with just adding another procedural pattern, Cairo 1.12 also adds new API to create a callback pattern, cairo_pattern_create_raster_source, that allows the application to provide the pixel data for the region of interest at the time of rendering. This can be used for instance, by an application to decode compressed images on demand and to keep a cache of those decompressed images, independently of Cairo. When combined with the recording surface, it should form a useful basis for a deferred renderer. With the release of cairo-1.12, we also introduce a new supported backend for interoperating with X using XCB. Uli Schlachter, also maintainer of awesome and contributor to libxcb, has volunteered to maintain cairo-xcb for us. Thanks Uli! For cairo-1.12, we have also added some common API to address any surface as an image and so allow direct modification of the raster data. Previously, only the Quartz and Win32 backends supported a very narrow interface to allow for efficient pixel upload. Now with cairo_surface_create_similar_image, cairo_surface_map_to_image, and cairo_surface_unmap_image, Cairo exports a consistent method for treating those surfaces as an image and so allow modification inplace. These are the same routines used internally, and should support efficient transfer or direct mapping of the target surfaces as applicable. Another focus over the past year has been to address many performance issues, without sacrificing the composition model. To accomplish the goal, once again the rasterisation pipeline was overhauled and made explicit, giving the backends the freedom to implement their own specific pipeline whilst also providing a library of common routines from which to build the pipeline. For instance, this allows the image backend and the gl backend to composite scan line primitives inplace, and to then implement custom fallbacks to catch the corner cases that do not map onto their fastest paths. Similarly, this allows for the Xlib backend to implement trapezoidation without compromising the other backends, yet still allow for the pipeline to be used elsewhere for testing and fallbacks. Clipping was once again overhauled, so that the common cases for the raster pipelines could be captured and processed with fast paths with the emphasis on performing geometric clipping to reduce the frequency of using multi-pass clipmasks. Stroking was made faster, both by providing specialised fast-paths for simple, yet frequent, cases (such as stroking around a rectangle) and by reducing the number of edges generated by the general stroker. As part of the focus on performance, Cairo 1.12 introduces some antialias hints (NONE,FAST, GOOD, BEST) that are interpolated by the raserisers to fine tune their performance versus quality. Cairo 1.12 also introduces a new observation architecture, cairo_surface_observer_t, which can be used to analyse the amount of time consumed by drawing commands and help identify inefficiencies in both Cairo and the application. Last, but by no means least, the OpenGL backend has seen significant work including the port to GLESv2 and the exploitation of advanced hardware features. Interesting times. As always, I would like to thank everyone who contributed to Cairo, not only through writing code, but also submitting documentation, bug reports, suggestions and generally having fun with Cairo! In particular though this release could not have happened without the efforts of Adrian Johnson, Alexandros Frantiz, Andrea Canicani, Martin Robinson, Nis Martensen, and Uli Schlachter. Thanks. -Chris 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, 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 versions of cairo can always be found at: http://cairographics.org/download Documentation on using cairo and frequently-asked questions: http://cairographics.org/documentation http://cairographics.org/FAQ Mailing lists for contacting cairo users and developers: http://cairographics.org/lists Roadmap and unscheduled things to do, (please feel free to help out): http://cairographics.org/roadmap http://cairographics.org/todo List of changes since 1.11.4 ----------------------------- Chris Wilson (21): version: Post-release version bump to 1.11.5 skia: Setup opacity for cairo_paint_with_alpha() image: Support SRC compositing with in the inline span-compositor clip: Intialise polygon fill-rule prior to use spans-compositor: Only destroy the clip if we made the copy trace: Add breadcrumb for cairo_image_surface_get_data() gl: Manually invert images without MESA_pack_invert extension stroke: Adapt rectilinear stroker to handle separable non-unity scaling win32: Check for damage before blitting compositor: Add tracing for damage damage: Fix memcpy size win32: Fix damage flushing win32: Hook up glyph creation again win32: Remove obsolete font rendering routines directfb: Tweak, tweak, tweak. image: Fix leak of white solid color for masked composition of CLEAR test: Tweak the results summary win32: Copy back the fallback damage to the right location win32: mark-dirty cannot assume the fallback has been discarded cairo: Add some missing doc entries for cairo_raster_source_pattern_t version: bump for 1.12.0 release! Chuanbo Weng (1): subsurface: Avoid potential crash when subsurface's size is less than 0 Dongyeon Kim (1): trace: Wrap GL surfaces Henry (Yu) Song (2): scaled-font: Ignore empty glyphs when checking for potential overlap boilerplate/gl: set width and height to be at least 1 Henry Song (1): gl: use direct mode for uploading gradient texture Igor Oliveira (1): gl: GL_UNPACK_ROW_LENGTH does not accept negative values Kouhei Sutou (1): skia: add a missing header into archive -- Chris Wilson, Intel Open Source Technology Centre
Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds