[cairo-commit] 4 commits - configure.in NEWS perf/Makefile.am

Carl Worth cworth at kemper.freedesktop.org
Tue May 1 13:45:54 PDT 2007


 NEWS             |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.in     |    4 -
 perf/Makefile.am |    1 
 3 files changed, 119 insertions(+), 2 deletions(-)

New commits:
diff-tree f57a536fceec73435bb13c44275717792b9b3a8c (from ddca8fec07ff95caeda6e4ce9efc3239b146bd2d)
Author: Carl Worth <cworth at cworth.org>
Date:   Tue May 1 13:45:58 2007 -0700

    Increment version to 1.4.7 after the 1.4.6 release

diff --git a/configure.in b/configure.in
index d1bc59e..2247bb5 100644
--- a/configure.in
+++ b/configure.in
@@ -5,7 +5,7 @@ dnl An odd micro number indicates in-pro
 dnl An even micro number indicates a released version.
 m4_define(cairo_version_major, 1)
 m4_define(cairo_version_minor, 4)
-m4_define(cairo_version_micro, 6)
+m4_define(cairo_version_micro, 7)
 
 AC_INIT([cairo],
       cairo_version_major.cairo_version_minor.cairo_version_micro,
diff-tree ddca8fec07ff95caeda6e4ce9efc3239b146bd2d (from 0390ed4f189365d595b40a45b0cf9eef5aa0c6ba)
Author: Carl Worth <cworth at cworth.org>
Date:   Tue May 1 13:37:16 2007 -0700

    perf: Add $(EXTRA_PROGRAMS) to CLEANFILES
    
    Otherwise these programs stick around and break distclean,
    distcheck, and hence release-publish targets.

diff --git a/perf/Makefile.am b/perf/Makefile.am
index 23b5b82..c185efb 100644
--- a/perf/Makefile.am
+++ b/perf/Makefile.am
@@ -92,6 +92,7 @@ VALGRIND_MEMCHECK_FLAGS = \
 VALGRIND_CALLGRIND_FLAGS = \
 	--tool=callgrind
 CLEANFILES = \
+	$(EXTRA_PROGRAMS) \
 	valgrind-log \
 	callgrind.out.* \
 	index.html
diff-tree 0390ed4f189365d595b40a45b0cf9eef5aa0c6ba (from c9e0bb5c79abfc50ae6a24f603c5493c3ac68e40)
Author: Carl Worth <cworth at cworth.org>
Date:   Tue May 1 13:24:43 2007 -0700

    Increment version to 1.4.6 (and library versioning to 13:3:11)

diff --git a/configure.in b/configure.in
index ddeb635..d1bc59e 100644
--- a/configure.in
+++ b/configure.in
@@ -5,7 +5,7 @@ dnl An odd micro number indicates in-pro
 dnl An even micro number indicates a released version.
 m4_define(cairo_version_major, 1)
 m4_define(cairo_version_minor, 4)
-m4_define(cairo_version_micro, 5)
+m4_define(cairo_version_micro, 6)
 
 AC_INIT([cairo],
       cairo_version_major.cairo_version_minor.cairo_version_micro,
@@ -26,7 +26,7 @@ LT_CURRENT=13
 
 # Increment any time the source changes; set to
 # 0 if you increment CURRENT
-LT_REVISION=2
+LT_REVISION=3
 
 # Increment if any interfaces have been added; set to 0
 # if any interfaces have been removed. removal has
diff-tree c9e0bb5c79abfc50ae6a24f603c5493c3ac68e40 (from 7f7f4d4f35cd640733b990fcff924a090b43d360)
Author: Carl Worth <cworth at cworth.org>
Date:   Tue May 1 13:20:56 2007 -0700

    NEWS: Add notes for cairo 1.4.6

diff --git a/NEWS b/NEWS
index 600bd84..525bc7d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,119 @@
+Release 1.4.6 (2007-05-01 Carl Worth <cworth at 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 at 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 at cworth.org>)
 =========================================================
 This is the second update release in cairo's stable 1.4 series. It


More information about the cairo-commit mailing list