[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