summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2007-05-01 13:20:56 -0700
committerCarl Worth <cworth@cworth.org>2007-05-01 13:20:56 -0700
commitc9e0bb5c79abfc50ae6a24f603c5493c3ac68e40 (patch)
treee8886df5532bd62ed299234692bc4a63e4b1140d
parent7f7f4d4f35cd640733b990fcff924a090b43d360 (diff)
NEWS: Add notes for cairo 1.4.6
-rw-r--r--NEWS116
1 files changed, 116 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 600bd84e7..525bc7dc3 100644
--- a/NEWS
+++ b/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