mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-05 16:58:01 +02:00
NEWS: Add notes for cairo 1.4.6
This commit is contained in:
parent
7f7f4d4f35
commit
c9e0bb5c79
1 changed files with 116 additions and 0 deletions
116
NEWS
116
NEWS
|
|
@ -1,3 +1,119 @@
|
|||
Release 1.4.6 (2007-05-01 Carl Worth <cworth@cworth.org>)
|
||||
=========================================================
|
||||
This is the third update in cairo's stable 1.4 series. It comes a
|
||||
little less than three weeks since the 1.4.4 release. This release
|
||||
fixes the broken mutex initialization that made cairo 1.4.4 unusable
|
||||
on win32, OS/2, and BeOS systems. This release also adds significant
|
||||
improvements to cairo's PDF backend, (native gradients!), and a couple
|
||||
of performance optimizations, (one of which is very significant for
|
||||
users of the xlib backend). See below for more details.
|
||||
|
||||
Repaired mutex initialization
|
||||
-----------------------------
|
||||
We apologize that cairo 1.4.4 did little more than crash on many
|
||||
platforms which are less-frequently used by the most regular cairo
|
||||
maintainers, (win32, OS/2, and BeOS). The mutex initialization
|
||||
problems that caused those crashes should be fixed now. And to avoid
|
||||
similar problems in the future, we've now started posting pre-release
|
||||
snapshots to get better testing, (subscribe to cairo@cairographics.org
|
||||
if you're interested in getting notified of those and testing them).
|
||||
|
||||
PDF Improvements
|
||||
----------------
|
||||
Thanks to Adrian Johnson, (cairo PDF hacker extraordinaire), we have
|
||||
several improvements to cairo's PDF backend to announce:
|
||||
|
||||
Native gradients:
|
||||
|
||||
As of cairo 1.4.6, cairo will now generate native PDF gradients in
|
||||
many cases, (previously, the presence of a gradient on any page
|
||||
would force rasterized output for that page). Currently, only
|
||||
gradients with extend types of PAD (the default) or NONE will
|
||||
generate native PDF gradients---others will still trigger
|
||||
rasterization, (but look for support for other extend modes in a
|
||||
future release). Many thanks to Miklós Erdélyi as well, who did the
|
||||
initial work for this support.
|
||||
|
||||
Better compatibility with PDF viewers:
|
||||
|
||||
The PDF output from cairo should now be displayed correctly by a
|
||||
wider range of PDF viewers. Adrian tested cairo's PDF output against
|
||||
many PDF viewers, identified a common bug in many of those viewers
|
||||
(ignoring the CTM matrix in some cases), and modified cairo's output
|
||||
to avoid triggering that bugs (pre-transforming coordinates and
|
||||
using an identity matrix).
|
||||
|
||||
Better OpenType/CFF subsetting:
|
||||
|
||||
Cairo will now embed CFF and TrueType fonts as CID fonts.
|
||||
|
||||
Performance optimizations
|
||||
-------------------------
|
||||
Faster cairo_paint_with_alpha:
|
||||
|
||||
The cairo_paint_with_alpha call is used to apply a uniform alpha
|
||||
mask to a pattern. For example, it can be used to gradually fade an
|
||||
image out or in. Jeff Muizelaar fixed some missing/broken
|
||||
optimizations within the implementation of this function resulting
|
||||
in cairo_paint_with_alpha being up to 4 times faster when using
|
||||
cairo's image backend.
|
||||
|
||||
Optimize rendering of "off-screen" geometry:
|
||||
|
||||
Something that applications often do is to ask cairo to render
|
||||
things that are either partially or wholly outside the current clip
|
||||
region. Since 1.4.0 the image backend has been fixed to not waste
|
||||
too much time in this case. But other backends have still been
|
||||
suffering.
|
||||
|
||||
In particular, the xlib backend has often performed quite badly in
|
||||
this situation. This is due to a bug in the implementation of
|
||||
trapezoid rasterization in many X servers.
|
||||
|
||||
Now, in cairo 1.4.6 there is a higher-level fix for this
|
||||
situation. Cairo now eliminates or clips trapezoids that are wholly
|
||||
or partially outside the clip region before handing the trapezoids
|
||||
to the backend. This means that the X server's performance bug is
|
||||
avoided in almost all cases.
|
||||
|
||||
The net result is that doing an extreme zoom-in of vector-based
|
||||
objects drawn with cairo might have previously brought the X server
|
||||
to its knees as it allocated buffers large enough to fit all of the
|
||||
geometry, (whether visible or not). But now the memory usage should
|
||||
be bounded and performance should be dramatically better.
|
||||
|
||||
Miscellaneous
|
||||
-------------
|
||||
Behdad contributed an impressively long series of changes that
|
||||
organizes cairo's internals in several ways that will be very
|
||||
beneficial to cairo developers. Thanks, Behdad!
|
||||
|
||||
Behdad has also provided a utility for generating malloc statistics,
|
||||
(which was used during the great malloc purges of 1.4.2 and
|
||||
1.4.4). This utility isn't specific to cairo so may be of benefit to
|
||||
others. It is found in cairo/util/malloc-stats.c and here are Behdad's
|
||||
notes on using it:
|
||||
|
||||
To build, do:
|
||||
|
||||
make malloc-stats.so
|
||||
|
||||
inside util/, and to use, run:
|
||||
|
||||
LD_PRELOAD=malloc-stats.so some-program
|
||||
|
||||
For binaries managed by libtool, eg, cairo-perf, do:
|
||||
|
||||
../libtool --mode=execute /bin/true ./cairo-perf
|
||||
LD_PRELOAD="../util/malloc-stats.so" .libs/lt-cairo-perf
|
||||
|
||||
Finally, the cairo-perf-diff-files utility was enhanced to allow for
|
||||
generating performance reports from several runs of the same backend
|
||||
while some system variables were changed. For example, this is now
|
||||
being used to allow cairo-perf to measure the performance of various
|
||||
different acceleration architectures and configuration options of the
|
||||
X.org X server.
|
||||
|
||||
Release 1.4.4 (2007-04-13 Carl Worth <cworth@cworth.org>)
|
||||
=========================================================
|
||||
This is the second update release in cairo's stable 1.4 series. It
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue