[cairo] cairo release 1.12.0 now available [resend]

Behdad Esfahbod behdad at behdad.org
Sun Mar 25 11:35:36 PDT 2012

Congrats on the release, everyone!  Great job.

On 03/24/2012 05:57 AM, Chris Wilson wrote:
> 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.sha1.asc
> 	(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 <chris at chris-wilson.co.uk>)
> ===================================================================
> 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
> w available
> 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
> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo

More information about the cairo mailing list