[cairo-commit] 3 commits - AUTHORS NEWS src/cairo.h
Carl Worth
cworth at kemper.freedesktop.org
Tue Mar 6 01:20:10 PST 2007
AUTHORS | 52 +++++++++++-
NEWS | 251 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
src/cairo.h | 14 +--
3 files changed, 304 insertions(+), 13 deletions(-)
New commits:
diff-tree d0d2c4030741619accd1eb554531bb6a97dd7ae4 (from 0578929fa4add0cf366e200a5bd6b9f2dfcd0b79)
Author: Carl Worth <cworth at cworth.org>
Date: Tue Mar 6 01:20:03 2007 -0800
Clarify that extra elements in cairo_path_data is only available in cairo >= 1.4
diff --git a/src/cairo.h b/src/cairo.h
index cdb9a02..68169a3 100644
--- a/src/cairo.h
+++ b/src/cairo.h
@@ -1333,13 +1333,13 @@ typedef enum _cairo_path_data_type {
* cairo_path_destroy (path);
* </programlisting></informalexample>
*
- * Cairo does not mind if there are more elements in a portion
- * of the path than needed. Such elements can be used by users of
- * the cairo API to hold extra values in the path data structure.
- * For this reason, it is recommended that applications always use
- * <literal>data->header.length</literal> to advance iterate over
- * the path data, instead of hardcoding the number of elements for
- * each element type.
+ * As of cairo 1.4, cairo does not mind if there are more elements in
+ * a portion of the path than needed. Such elements can be used by
+ * users of the cairo API to hold extra values in the path data
+ * structure. For this reason, it is recommended that applications
+ * always use <literal>data->header.length</literal> to advance
+ * iterate over the path data, instead of hardcoding the number of
+ * elements for each element type.
**/
typedef union _cairo_path_data_t cairo_path_data_t;
union _cairo_path_data_t {
diff-tree 0578929fa4add0cf366e200a5bd6b9f2dfcd0b79 (from 66d1dc8b9c3d7c1e26321bdb621ef55779c2fd6d)
Author: Carl Worth <cworth at cworth.org>
Date: Tue Mar 6 01:09:02 2007 -0800
NEWS: Add release notes for 1.4.0 release
diff --git a/NEWS b/NEWS
index 19d8e9b..b4fcd2e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,252 @@
+Release 1.4.0 (2007-03-06 Carl Worth <cworth at cworth.org>)
+=========================================================
+The many people[*] who have been working hard on cairo are very
+pleased to announce the long-awaited release of cairo 1.4. This
+release comes 4 months after the last stable update release (1.2.6)
+and 9 months since the initial release of 1.2.0.
+
+The release notes below are intended to capture the highlights of the
+changes that have occurred from the 1.2 series to the new 1.4.0
+release.
+
+Performance improvements
+------------------------
+Within the cairo project, the last 6 months or so has seen an intense
+effort focusing on the performance of cairo itself. That effort has
+paid off considerably, as can be seen in the following highlights of
+some of the performance differences from cairo 1.2.6 to cairo 1.4.0:
+
+⢠Dramatic improvement when drawing objects that are mostly off-screen
+ with the image backend (with the xlib backend this case is still
+ slow due to an X server bug):
+
+ image-rgba long-lines-uncropped-100 479.64 -> 4.98: 96.24x speedup
+ ââââââââââââââââââââââââââââââââââââââââââââââââ
+
+⢠Dramatic improvement when copying a small fraction of an image
+ surface to an xlib surface:
+
+ xlib-rgba subimage_copy-512 3.93 -> 0.07: 54.52x speedup
+ âââââââââââââââââââââââââââ
+
+⢠Dramatic improvement to tessellation speed for complex objects:
+
+ image-rgb tessellate-256-100 874.16 -> 34.79: 25.13x speedup
+ âââââââââââââ
+ xlib-rgba zrusin_another_fill-415 148.40 -> 13.85: 10.72x speedup
+ âââââ
+ xlib-rgb world_map-800 680.20 -> 345.54: 1.97x speedup
+ â
+
+⢠Dramatic improvement to the speed of stroking rectilinear shapes,
+ (such as the outline of a rectangle or "box"):
+
+ image-rgb box-outline-stroke-100 0.18 -> 0.01: 24.22x speedup
+ ââââââââââââ
+ xlib-rgb box-outline-stroke-100 0.46 -> 0.06: 8.05x speedup
+ ââââ
+
+
+⢠Dramatic improvements to text rendering speeds:
+
+ xlib-rgba text_image_rgba_over-256 63.12 -> 9.61: 6.57x speedup
+ âââ
+
+⢠3x improvements to floating-point to fixed-point conversion speeds:
+
+ image-rgba pattern_create_radial-16 9.29 -> 3.44: 2.70x speedup
+ â
+
+⢠2x improvements to linear gradient computation:
+
+ image-rgb paint_linear_rgb_source-512 26.22 -> 11.61: 2.26x speedup
+ â
+
+⢠2x improvement to a case common in PDF rendering:
+
+ image-rgb unaligned_clip-100 0.10 -> 0.06: 1.81x speedup
+ â
+
+⢠1.3x improvement to rectangle filling speed (note: this improvement
+ is new since 1.3.16---previously this test case was a 1.3x slowdown
+ compared to 1.2.6):
+
+ image-rgba rectangles-512 6.19 -> 4.37: 1.42x speedup
+ â
+ xlib-rgba rectangles-512 7.48 -> 5.58: 1.34x speedup
+ â
+
+NOTE: In spite of our best efforts, there are some measurable
+performance regressions in 1.4 compared to 1.2. It appears that the
+primary problem is the increased overhead of the new tessellator when
+drawing many, very simple shapes. The following test cases capture
+some of that slowdown:
+
+ image-rgba mosaic_tessellate_lines-800 11.03 -> 14.29: 1.30x slowdown
+ â
+ image-rgba box-outline-fill-100 0.01 -> 0.01: 1.26x slowdown
+ â
+ image-rgba fill_solid_rgb_over-64 0.20 -> 0.22: 1.12x slowdown
+
+ image-rgba fill_image_rgba_over-64 0.23 -> 0.25: 1.10x slowdown
+
+ xlib-rgb paint_image_rgba_source-256 3.24 -> 3.47: 1.07x slowdown
+
+We did put some special effort into eliminating this slowdown for the
+very common case of drawing axis-aligned rectangles with an identity
+matrix (see the box-outline-stroke and rectangles speedup numbers
+above). Eliminating the rest of this slowdown will be a worthwhile
+project going forward.
+
+Also note that the "box-outline-fill" case is a slowdown while
+"box-outline-stroke" is a (huge) speedup. These two test cases
+resulted from the fact that some GTK+ theme authors were filling
+between two rectangles to avoid slow performance from the more natural
+means of achieving the same shape by stroking a single rectangle. With
+1.4 that workaround should definitely be eliminated as it will now
+cause things to perform more slowly.
+
+Greatly improved PDF output
+---------------------------
+We are very happy to be able to announce that cairo-generated PDF
+output will now have text that can be selected, cut-and-pasted, and
+searched with most capable PDF viewer applications. This is something
+that was not ever possible with cairo 1.2.
+
+Also, the PDF output now has much more compact encoding of text than
+before. Cairo is now much more careful to not embed multiple copies of
+the same font at different sizes. It also compresses text and font
+streams within the PDF output.
+
+API additions
+-------------
+There are several new functions available in 1.4 that were not
+available in 1.2. Curiously, almost all of the new functions simply
+allow the user to query state that has been set in cairo (many new
+"get" functions) rather than providing any fundamentally new
+operations. The new functionality is:
+
+⢠Getting information about the current clip region
+
+ cairo_clip_extents
+ cairo_copy_clip_rectangle_list
+ cairo_rectangle_list_destroy
+
+⢠Getting information about the current dash setting
+
+ cairo_get_dash_count
+ cairo_get_dash
+
+⢠Getting information from a pattern
+
+ cairo_pattern_get_rgba
+ cairo_pattern_get_surface
+ cairo_pattern_get_color_stop_rgba
+ cairo_pattern_get_color_stop_count
+ cairo_pattern_get_linear_points
+ cairo_pattern_get_radial_circles
+
+⢠Getting the current scaled font
+
+ cairo_get_scaled_font
+
+⢠Getting reference counts
+
+ cairo_get_reference_count
+ cairo_surface_get_reference_count
+ cairo_pattern_get_reference_count
+ cairo_font_face_get_reference_count
+ cairo_scaled_font_get_reference_count
+
+⢠Setting/getting user data on objects
+
+ cairo_set_user_data
+ cairo_get_user_data
+ cairo_pattern_set_user_data
+ cairo_pattern_get_user_data
+ cairo_scaled_font_set_user_data
+ cairo_scaled_font_get_user_data
+
+⢠New cairo-win32 functions:
+
+ cairo_win32_surface_create_with_ddb
+ cairo_win32_surface_get_image
+ cairo_win32_scaled_font_get_logical_to_device
+ cairo_win32_scaled_font_get_device_to_logical
+
+API deprecation
+---------------
+The CAIRO_FORMAT_RGB16_565 enum value has been deprecated. It never
+worked as a format value for cairo_image_surface_create, and it wasn't
+necessary for supporting 16-bit 565 X server visuals.
+
+A sampling of bug fixes in cairo 1.4
+------------------------------------
+ ⢠Fixed radial gradients
+ ⢠Fixed dashing (degenerate and "leaky" cases)
+ ⢠Fixed transformed images in PDF/PS output (eliminate bogus repeating)
+ ⢠Eliminate errors from CAIRO_EXTEND_REFLECT and CAIRO_EXTEND_PAD
+ ⢠cairo_show_page no longer needed for single-page output
+ ⢠SVG: Fix bug preventing text from appearing in many viewers
+ ⢠cairo-ft: Return correct metrics when hinting is off
+ ⢠Eliminate crash in cairo_create_similar if nil surface is returned
+ ⢠Eliminate crash after INVALID_RESTORE error
+ ⢠Fix many bugs related to multi-threaded use and locking
+ ⢠Fix for glyph spacing 32 times larger than desired (cairo-win32)
+ ⢠Fixed several problems in cairo-atsui (assertion failures)
+ ⢠Fix PDF output to avoid problems when printing from Acrobat Reader
+ ⢠Fix segfault on Mac OS X (measuring a zero-length string)
+ ⢠Fix text extents to not include the size of non-inked characters
+ ⢠Fix for glyph cache race condition in glitz backend (Jinghua Luo)
+ ⢠Fix make check to work on OPD platforms (IA64 or PPC64)
+ ⢠Fix compilation problems of cairo "wideint" code on some platforms
+ ⢠Many, many others...
+
+Experimental backends (quartz, XCB, OS/2, BeOS, directfb)
+---------------------------------------------------------
+None of cairo's experimental backends are graduating to "supported"
+status with 1.4.0, but two of them in particular (quartz and xcb), are
+very close.
+
+The quartz baceknd has been entirely rewritten and is now much more
+efficient. The XCB backend has been updated to track the latest XCB
+API (which recently had a 1.0 release).
+
+We hope to see these backends become supported in a future release,
+(once they are passing all the tests in cairo's test suite).
+
+The experimental OS/2 backend is new in cairo 1.4 compared to cairo
+1.2.
+
+Documentation improvements
+--------------------------
+We have added documentation for several functions and types that
+were previously undocumented, and improved documentation on other
+ones. As of this release, there remain only two undocumented
+symbols: cairo_filter_t and cairo_operator_t.
+
+[*]Thanks to everyone
+---------------------
+I've accounted for 41 distinct people with attributed code added to
+cairo between 1.2.6 and 1.4.0, (their names are below). That's an
+impressive number, but there are certainly dozens more that
+contributed with testing, suggestions, clarifying questions, and
+encouragement. I'm grateful for the friendships that have developed as
+we have worked on cairo together. Thanks to everyone for making this
+all so much fun!
+
+Adrian Johnson, Alfred Peng, Alp Toker, Behdad Esfahbod,
+Benjamin Otte, Brian Ewins, Carl Worth, Christian Biesinger,
+Christopher (Monty) Montgomery, Daniel Amelang, Dan Williams,
+Dave Yeo, David Turner, Emmanuel Pacaud, Eugeniy Meshcheryakov,
+Frederic Crozat, Hans Breuer, Ian Osgood, Jamey Sharp, Jeff Muizelaar,
+Jeff Smith, Jinghua Luo, Jonathan Watt, Joonas Pihlaja, Jorn Baayen,
+Kalle Vahlman, Kjartan Maraas, Kristian Høgsberg, M Joonas Pihlaja,
+Mathias Hasselmann, Mathieu Lacage, Michael Emmel, Nicholas Miell,
+Pavel Roskin, Peter Weilbacher, Robert O'Callahan,
+Soren Sandmann Pedersen, Stuart Parmenter, T Rowley,
+Vladimir Vukicevic
+
Snapshot 1.3.16 (2007-03-02 Carl Worth <cworth at cworth.org>)
===========================================================
New API functions
@@ -2518,7 +2767,7 @@ This is the first snapshot to include a
#include <cairo-win32.h>
- void
+ void
cairo_set_target_win32 (cairo_t *cr,
HDC hdc);
diff-tree 66d1dc8b9c3d7c1e26321bdb621ef55779c2fd6d (from 2f4ddc85a50641a7f6e1f467fa94610875f8ed02)
Author: Carl Worth <cworth at cworth.org>
Date: Mon Mar 5 23:55:05 2007 -0800
Update AUTHORS with 47 (!) new authors since 1.0
diff --git a/AUTHORS b/AUTHORS
index 1322c7f..d637289 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -4,19 +4,29 @@ Shawn T. Amundson <amundson at gtk.org> Bui
Olivier Andrieu <oliv__a at users.sourceforge.net> PNG backend
Peter Dennis Bartok <peter at novonyx.com> Bug fix for clipping
Dave Beckett <dajobe at debian.org> Build fixes, Debian packaging
+Christian Biesinger <cbiesinger at web.de> BeOS backend
Billy Biggs <vektor at dumbterm.net> Pixman code merge. Optimization. Fixes for subtle rendering bugs.
Hans Breuer <hans at breuer.org> win32 bug fixes, build fixes, and improvements
+Brian Cameron <brian.cameron at sun.com> Flag bug in Sun's X server
Damien Carbery <damien.carbery at sun.com> Build fixes
Andrew Chant <andrew.chant at utoronto.ca> Adding const where needed
Steve Chaplin <stevech1097 at yahoo.com.au> Bug fixes for PNG reading
Tomasz Cholewo <cholewo at ieee-cis.org> Bug fixes
+Manu Cornet <manu at manucornet.net> SVG build fix
+Frederic Crozat <fcrozat at mandriva.com> Fix test suite for OPD platforms (IA64 or PPC64)
Radek DoulÃk <rodo at novell.com> Bug report and test case
John Ehresman <jpe at wingide.com> Build fixes for win32
John Ellson <ellson at research.att.com> First font/glyph extents functions
-Behdad Esfahbod <behdad at behdad.org> Release script improvements, bug fixes.
+Michael Emmel <mike.emmel at gmail.com> DirectFB backend
+Miklós Erdélyi <erdelyim at gmail.com> Fix typo leading to a crash
+Behdad Esfahbod <behdad at behdad.org> Huge piles of bug fixes, improvements, and general maintenance
+Brian Ewins <Brian.Ewins at gmail.com> ATSUI maintenance (first success at making it really work)
Bertram Felgenhauer <int-e at gmx.de> Fixes for subtle arithmetic errors
Bdale Garbee <bdale at gag.com> Provided essential support for cairo achitecture sessions
+Jens Granseuer <jensgr at gmx.net> Fixes to generate proper compiler flags
+Laxmi Harikumar <laxmi.harikumar at digital.com> Build fix
J. Ali Harlow <ali at avrc.city.ac.uk> win32 backend updates
+Mathias Hasselmann <mathias.hasselmann at gmx.de> Build fixes
Richard Henderson <rth at twiddle.net> "slim" macros for better shared libraries
James Henstridge <james at daa.com.au> Build fixes related to freetype
Graydon Hoare <graydon at redhat.com> Support for non-render X server, first real text support
@@ -25,33 +35,65 @@ Kristian Høgsberg <krh at redhat.com> PDF
Amaury Jacquot <sxpert at esitcom.org> Documentation review, appplication testing
Adrian Johnson <ajohnson at redneon.com> PDF backend improvement
Michael Johnson <ahze at ahze.net> Bug fix for pre-C99 compilers
+Jonathon Jongsma <jonathon.jongsma at gmail.com> Fix documentation typos
Ãyvind KolÃ¥s <pippin at freedesktop.org> Bug fixes. Better default values.
Martin Kretzschmar <martink at gnome.org> Arithmetic fix for 64-bit architectures
+Mathieu Lacage <Mathieu.Lacage at sophia.inria.fr> several bug/typo fixes
+Dominic Lachowicz <domlachowicz at gmail.com> PDF conformance fix, fix image surface to zero out contents
Alexander Larsson <alexl at redhat.com> Profiling and performance fixes.
Tor Lillqvist <tml at novell.com> win32 build fixes, build scripts
+Jinghua Luo <sunmoon1997 at gmail.com> Add bitmap glyph transformation, many freetype and glitz fixes
Luke-Jr <luke-jr at utopios.org> Build fix for cross-compiling
+Kjartan Maraas <kmaraas at gnome.org> Several fixes for sparse, lots of debug help for multi-thread bugs
Jordi Mas <jordi at ximian.com> Bug fix for cairo_show_text
-Jeff Muizelaar <jeff at infidigm.net> Patient, painful, pixman code merge. Test fixes
+Nicholas Miell <nmiell at gmail.com> Fixes for linking bugs on AMD64
+Eugeniy Meshcheryakov <eugen at debian.org> PS/PDF font subsetting improvements
+Zakharov Mikhail <zmey20000 at yahoo.com> Build fix for HP-UX
+Christopher (Monty) Montgomery <xiphmont at gmail.com> Performnace fix (subimage_copy), multi-thread testing
+Tim Mooney <enchanter at users.sourceforge.net> Fix test suite to compile with Solaris compiler
+Jeff Muizelaar <jeff at infidigm.net> Patient, painful, pixman code merge. Many fixes for intricacies of dashing.
+Yevgen Muntyan <muntyan at tamu.edu> win32 build fix
+Declan Naughton <piratepenguin at gmail.com> Fix documentation typos
Peter Nilsson <c99pnn at cs.umu.se> Glitz backend
+Henning Noren <henning.noren.402 at student.lu.se> Fix memory leak
Geoff Norton <gnorton at customerdna.com> Build fixes
-Robert O'Callahan <rocallahan at novell.com> Const-correctness fixes.
+Robert O'Callahan <rocallahan at novell.com> Const-correctness fixes, several new API functions for completeness (and to help mozilla)
+Ian Osgood <iano at quirkster.com> XCB backend maintenance
+Benjamin Otte <in7y118 at public.uni-hamburg.de> Refinements to cairo/perf timing
Mike Owens <etc at filespanker.com> Bug fixes
+Emmanuel Pacaud <emmanuel.pacaud at lapp.in2p3.fr> SVG backend
Keith Packard <keithp at keithp.com> Original concept, polygon tessellation, dashing, font metrics rewrite
Stuart Parmenter <pavlov at pavlov.net> Original GDI+ backend, win32 fixes
+Alfred Peng <alfred.peng at sun.com> Fixes for Sun compilers and for a memory leak
Christof Petig <christof at petig-baender.de> Build fixes related to freetype
Joonas Pihlaja <jpihlaja at cc.helsinki.fi> Huge improvements to the tessellator performance
+Mart Raudsepp <leio at dustbite.net> Build fixes
David Reveman <davidr at novell.com> New pattern API, glitz backend
Calum Robinson <calumr at mac.com> Quartz backend
-Tim Rowley <tim.rowley at gmail.com> Quartz/ATSUI fixes, X server workarounds, win32 glyph path support
+Pavel Roskin <proski at gnu.org> Several cleanups to eliminate warnings
+Tim Rowley <tim.rowley at gmail.com> Quartz/ATSUI fixes, X server workarounds, win32 glyph path support, test case to expose gradient regression
+Soeren Sandmann <sandmann at daimi.au.dk> Lots of MMX love for pixman compositing
+Torsten Schönfeld <kaffeetisch at gmx.de> Build fixes
Jamey Sharp <jamey at minilop.net> Surface/font backend virtualization, XCB backend
Jason Dorje Short <jdorje at users.sf.net> Build fixes and bug fixes
+Jeff Smith <whydoubt at yahoo.com> Fixes for intricacies of stroking code
Travis Spencer <tspencer at cs.pdx.edu> XCB backend fix
Bill Spitzak <spitzak at d2.com> Build fix to find Xrender.h without xrender.pc
+Zhe Su <james.su at gmail.com> Add support for fontconfig's embeddedbitmap option
Owen Taylor <otaylor at redhat.com> Font rewrite, documentation, win32 backend
+Alp Toker <alp at atoker.com> Fix several code/comment typos
Malcolm Tredinnick <malcolm at commsecure.com.au> Documentation fixes
+David Turner <david at freetype.org> Optimize gradient calculations
+Kalle Vahlman <kalle.vahlman at gmail.com> Allow perf reports to be compared across different platforms
Sasha Vasko <sasha at aftercode.net> Build fix to compile without xlib backend
-Vladimir Vukicevic <vladimir at pobox.com> Bug fix for clipping
+Vladimir Vukicevic <vladimir at pobox.com> Quartz backend rewrite, win32/quartz maintenance
+Jonathan Watt <jwatt at jwatt.org> win32 fixes
+Peter Weilbacher <pmw at avila.aip.de> OS/2 backend
+Dan Williams <dcbw at redhat.com> Implemnt MMX function to help OLPC
+Chris Wilson <cpwilson at taz.qinetiq.com> Fix memory leak
Carl Worth <cworth at isi.edu> Original library, support for paths, images
Richard D. Worth <richard at theworths.org> Build fixes for cygwin
+Kent Worsnop <kworsnop at accesswave.ca> Fix PDF dashing bug
+Dave Yeo <daveryeo at telus.net> Build fix for win32
(please let us know if we have missed anyone)
More information about the cairo-commit
mailing list