[cairo-commit] [cairo-www] src/news
Chris Wilson
ickle at freedesktop.org
Fri Mar 23 13:26:55 PDT 2012
src/news/cairo-1.12.0.mdwn | 210 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 210 insertions(+)
New commits:
commit ee749a543c7164908ac17cdf4bad2d6922b77082
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Mar 23 20:26:23 2012 +0000
News for 1.12.0 release
diff --git a/src/news/cairo-1.12.0.mdwn b/src/news/cairo-1.12.0.mdwn
new file mode 100644
index 0000000..8426457
--- /dev/null
+++ b/src/news/cairo-1.12.0.mdwn
@@ -0,0 +1,210 @@
+[[!meta title="cairo 1.12.0 release available"]]
+[[!meta date="2012-03-23"]]
+
+ From: Chris Wilson <chris at chris-wilson.co.uk>
+ Date: Fri, 23 Mar 2012 20:34:00 +0000
+ To: cairo-announce at cairographics.org
+
+ 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
+ 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
More information about the cairo-commit
mailing list