mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-05 05:18:01 +02:00
version: bump for 1.12.0 release!
This commit is contained in:
parent
9cb7586fb0
commit
a0bf6d25b5
2 changed files with 82 additions and 2 deletions
80
NEWS
80
NEWS
|
|
@ -1,3 +1,83 @@
|
|||
Release 1.12.0 (2012-03-23 Chris Wilson <chris@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
|
||||
|
||||
Snapshot 1.11.4 (2012-13-12)
|
||||
============================
|
||||
The cairo community is pleased to finally announce the long aniticpated
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
#define CAIRO_VERSION_H
|
||||
|
||||
#define CAIRO_VERSION_MAJOR 1
|
||||
#define CAIRO_VERSION_MINOR 11
|
||||
#define CAIRO_VERSION_MICRO 5
|
||||
#define CAIRO_VERSION_MINOR 12
|
||||
#define CAIRO_VERSION_MICRO 0
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue