[cairo-announce] cairo release 1.4.0 now available

Carl Worth cworth at cworth.org
Tue Mar 6 01:48:38 PST 2007


A new cairo release 1.4.0 is now available from:

        http://cairographics.org/releases/cairo-1.4.0.tar.gz

    which can be verified with:

        http://cairographics.org/releases/cairo-1.4.0.tar.gz.sha1
        2ce727347d8285cee4ce0c3feb0a2df18316a5d3  cairo-1.4.0.tar.gz

        http://cairographics.org/releases/cairo-1.4.0.tar.gz.sha1.asc
        (signed by Carl Worth)

  Additionally, a git clone of the source tree:

        git clone git://git.cairographics.org/git/cairo

    will include a signed 1.4.0 tag which points to a commit named:
        5dfa8c23f13f5cafac5cf56f34888a6e01dc79ba

    which can be verified with:
        git verify-tag 1.4.0

    and can be checked out with a command such as:
        git checkout -b build 1.4.0

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.

Everyone, have fun with cairo!

-Carl

Overview of changes from 1.2.6 to 1.4.0
=======================================
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.

(Note: The performance results reported here were measured on an x86
laptop. Many of the improvements in 1.4---particular those involving
text rendering---are even more dramatic on embedded platforms without
hardware floating-point units. Such devices played an important part
of many of the optimizations that found their way into cairo over the
last few months.)

• 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

What is cairo
=============
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System, win32, and image buffers, as well as PDF, PostScript, and SVG
file output. Experimental backends include OpenGL (through glitz),
Quartz, XCB, BeOS, OS/2, and DirectFB.

Cairo is designed to produce consistent output on all output media
while taking advantage of display hardware acceleration when available
(for example, through the X Render Extension).

The cairo API provides operations similar to the drawing operators of
PostScript and PDF. Operations in cairo including stroking and filling
cubic Bézier splines, transforming and compositing translucent images,
and antialiased text rendering. All drawing operations can be
transformed by any affine transformation (scale, rotation, shear,
etc.).

Cairo has been designed to let you draw anything you want in a modern
2D graphical user interface.  At the same time, the cairo API has been
designed to be as fun and easy to learn as possible. If you're not
having fun while programming with cairo, then we have failed
somewhere---let us know and we'll try to fix it next time around.

Cairo is free software and is available to be redistributed and/or
modified under the terms of either the GNU Lesser General Public
License (LGPL) version 2.1 or the Mozilla Public License (MPL) version
1.1.

Where to get more information about cairo
=========================================
The primary source of information about cairo is:

	http://cairographics.org/

The latest releases of cairo can be found at:

	http://cairographics.org/releases

Snapshots of in-development versions of cairo:

	http://cairographics.org/snapshots

The programming manual for using cairo:

	http://cairographics.org/manual

Mailing lists for contacting cairo users and developers:

	http://cairographics.org/lists

Answers to some frequently asked questions about cairo:

	http://cairographics.org/FAQ

Summary of every commit from 1.2.6 to 1.4.0
===========================================
Adrian Johnson (38):
      Fix Type 1 embedding in PDF
      Correct the value of /LastChar in the PDF Type 1 font dictionary.
      Improve error checking in TrueType subsetting
      Generate Type 1 fonts from glyph outlines
      cairo-type1-fallback.c: return correct error status
      Correct an unsigned to signed conversion problem in truetype subsetting bbox
      Type 1 fallback fonts - use binary encoding in PDF files
      Type1 subsetting: Don't put .notdef in Encoding when there are 256 glyphs
      PS: Add cairo version to PS header
      PDF: Add cairo version to document info dictionary
      type1 fallback: ensure all functions perform correct status checking
      PS: Use xshow/yshow/xyshow for strings of glyphs
      Add OpenType/CFF Subsetting
      PDF: Use Td where possible instead of Tm for positioning glyphs
      Add cairo-deflate-stream.c
      PDF: Compress the content stream
      TrueType Subsetting: Add comment
      TrueType Subsetting: Whitespace change
      TrueType: Include notdef glyph in the subset
      PDF: Add Encoding dictionary to TrueType fonts
      PDF: Fix TrueType font metrics
      PS: Correct the TrueType Encoding and Charstrings
      PDF: Correct the y value of Td in show_glyphs
      PDF: Make text selection and extraction work
      PDF: Another fix for TrueType metrics
      PDF: Fix Type3 font metrics to make text selection work
      PDF: Compress Type3 fonts
      Output-stream: Omit the minus sign from negative zero
      PDF: Remove dead code
      CFF: Fix Visual C++ compile problem
      output-stream: coding style fix
      PDF: Add missing character code to Differences array
      TrueType: Add post table and 3,0 cmap encoding
      TrueType: fix bug #9998 - build error with gcc 2.95
      PDF/PS: Don't embed multiple copies of the same font
      Win32: Fix _cairo_win32_scaled_font_map_glyphs_to_unicode return type
      Subsetting: Add check for malloc() error
      PDF: Ensure ToUnicode CMap name is unique

Alfred Peng (2):
      Add Sun Pro C definition of pixman_private
      Use pixman_private consistently as prefix not suffix

Alp Toker (1):
      Fix various code/comment typos

Behdad Esfahbod (179):
      [test] Use $(srcdir) to find valgrind supressions
      [test] Use FcFreeTypeQuery
      [configure] Invalidate cached warning flags if list of flags changes
      [Makefile] Fix typo
      [Makefile] Add perf to DIST_SUBDIRS
      Update
      [perf/Makefile] Unset DIST_SUBDIRS
      [test/Makefile] Unset DIST_SUBDIRS
      Add scripts to sanity check the shared object for exported and PLT symbols
      Add
      [x86-64] check-plt.sh: match on JU?MP_SLO as on x86-64 "SLOT" is truncated
      configure.in: Require automake version 1.9 here too
      cairo_show_glphs: Mark glyphs argument as const.
      [ROADMAP] Check RGB16_565 deprecated
      [ROADMAP] Add polling API
      check-headers.sh:  Add a test for cairo_public decorators in public headers
      cairo-pdf.h: Add missing cairo_public decorators
      cairo-directfb.h: Add missing cairo_public decorators
      cairo-nquartz.h: Add missing cairo_public decorators.
      check-def.sh: Only allow _cairo_.*_test_.* symbols, not all _cairo.* ones
      [configure] Print out whether SVG and PDF surfaces can be tested
      [check-headers.sh] Don't use '\>' regexp syntax
      [Makefile.am] Pass srcdir down to the tests
      [slim] hide cairo_pattern_status() #8551
      [slim] hide cairo_glitz_surface_create() (#8551)
      [configure.in] Require pkg-config 0.19. (#8686)
      [test] Make sure tests are not relinked unnecessarily
      [perf] Remove SUBDIRS=../boilerplate and add explicit dependencies
      Make autogen.sh extract required versions from configure.in
      Require automake 1.7 again
      [PDF] Set CTM before path construction
      [autogen.sh] Make sed script portable
      [Makefile.am] Minor fixes in release-publish output
      [Makefile.am] Pass tag message to git-tag in release-publish
      [configure] Err if a suitable pkg-config is not found
      Fix typo.
      Add notes for the 1.2.6 release.
      [SVG] Define enum _cairo_svg_version.
      [PS] Eliminate compiler warnings about unoptimizable loops
      [PS] Rename n_glyphs to num_glyphs_unsigned
      [SVG] Fix compiler warning
      [test|perf|boilerplate/Makefile.am] Add -I$(top_builddir)/src to INCLUDES
      [configure] Remove the pkg-config minimum version requirement
      [.gitignore] Add big-trap
      [test] Break the "make clean" target into serveral rm calls
      [docs] Document various CAIRO_VERSION_* macros
      [doc/public/Makefile.am] Move the list of private headers generatable
      [docs] Hook various new API into cairo-sections.txt
      [docs] Document CAIRO_VERSION_STRING.
      [doc] Minor wording improvement.
      [pixman] Remove unused slim_internal.h
      [slim] Define slim macros to dummy prototypes for non-gcc compilers (#9150)
      [docs] Generate index of new symbols in 1.4
      [docs] Update templates
      [FreeType] Do not return large structs from functions
      [FreeType] Remove "UNSUPPORTED" show_glyphs stub and NULL its entry
      Add/remove const to cairo_glyph_t* arguments consistently
      [cairoint] Define CAIRO_STACK_BUFFER_SIZE (defaults to 2kb)
      [cairo-gstate] Use a local buffer on the stack for small glyph operations
      Cache rounded glyph advance values
      [Xlib] Rewrite an optimized cairo_xlib_show_glyphs()
      [pdiff] Fix compiler warnings, that were causing crashes
      [pdiff] Use CAIRO_CFLAGS, to make sure warnings are enabled
      [cairo-gstate] Don't bypass glyph transformation if font_matrix has translation (#9365)
      [test] Fix typo in test comment
      [test] Add ft-text-vertical-layout-type3-ps-argb32-ref.png
      [configure] Use AC_C_INLINE to correctly define inline
      [pdiff] Don't use float math functions if not using gcc with C99
      [pdiff] Define _GNU_SOURCE to get correct symbols out of <math.h>
      [PS] Fix typo in comment emitted for Type1 fallback font subsets
      [type1-subset] Return UNSUPPORTED for vertical fonts
      [tests/ft-text-vertical-layout-type3] Remove comment that this emits Type3 font
      [test] Fix typo in test comment, again
      [cairo-scaled-font] Skip invisible glyphs (like space) in glyph_extents() (#9422)
      Don't call into backends if num_glyphs is zero (#5177)
      [test] Add new test text-zero-len (#5177)
      In _cairo_scaled_font_text_to_glyphs, bail if text is zero-length (#5177)
      [src/Makefile.am] Don't remove cairo-features.h in "make clean"
      Spell check the docs
      [cairo-type1-subset] Do not use an array of pointers, to reduce .data size
      [TODO] Move some items from ROADMAP, and some new ones, into TODO
      PDF: Fix approximate diagonal in recent commit
      [pixman/src/fbmmx.c] Hide "dereferencing type-punned pointer" warnings
      [configure.in] Use AC_MSG_RESULT in PKG_CHECK_MODULES's second branch
      [pixman/src/fbmmx.c] Add comment around M64
      [configure] Improve win32 detection
      [test/Makefile.am] Document why svg2png and pdf2png use LDADD
      [win32] Make win32-surface compile without win32-font
      [test] Add test case for bug #7965 to the get-path-extents test
      [test] Remove ft-text-vertical-layout-type1 from XFAIL
      [PS] Fix rotated image pattern emission by correcting setting the bbox
      [test] Remove text-rotate test from XFAIL as the bugs are fixed now
      [test] Fix syntax typo in text-rotate
      [Makefile.am] Include boilerplate/ in SUBDIRS
      [FreeType] Truely return unhinted advance width if metrics hinting is off
      [xlib/xcb] Check for same_screen in is_compatible
      [test] Add ref image for extend-reflect
      [cairo-surface] Do not err on CAIRO_EXTEND_PAD and CAIRO_EXTEND_REFLECT
      [PS] Update surface_pattern_supported() from PDF
      Support CAIRO_EXTEND_REFLECT on surface patterns
      [cairo-pattern] Fall back on cairo_surface_create_similar in _cairo_pattern_acquire_surface_for_surface
      [cairo-pattern] Correctly delegate device_transform so tests pass again
      [SVG] Use _cairo_pattern_acquire_surface instead of _cairo_surface_acquire_source_image
      [surface] Copy device_transform_inverse in _cairo_surface_clone_similar
      [test] Increase size of extend-reflect test to see that pattern repeats
      [PS/PDF] Accept CAIRO_EXTEND_REFLECT surface patterns natively
      [test] Update surface-pattern test to include transformations
      [test] Remove non-existing test extend-pad
      [PS] Fix surface patterns with transforms
      [test] Add a new, XFAIL, extend-pad test
      [TODO] Add various TODO items
      [SVG] Rename a local variable for clarity
      [SVG] Fix warnings
      [TODO] More TODO items
      [PS] Add note about possible need for fix.
      [Makefile.am] Remove ChangeLog.cache-* in distclean
      [test] Add tests that show xstep/ystep failures in PS/PDF backends
      [PS/PDF] Fix xstep/ystep values for CAIRO_EXTEND_NONE
      [test] Add ref images for new tests
      [cairo.h] Reorder function prototypes a bit for clarity
      [cairo.c] Reorder some function implementations for clarity
      [quartz] Remove comment syntax that is recognized by gtkdoc from regular comments
      Implement cairo_get_scaled_font()
      Slim-hidden cairo_scale()
      [doc] Add new APIs to cairo-sections.txt
      [paginated] Automatically issue a final cairo_show_page()
      [paginated] Also do an automatic show page if nothing ever drawn
      [boilerplate/test-paginated] Issue a show_page before writing buffer
      Revert the solid-pattern cache
      [TODO] Add/remove items
      [RELEASING] Add notifying desktop-devel-list
      [paginated] Also increase page number in copy_page
      [TODO] Add cairo_surface_copy_page()
      [xlib] Drop XrmFinalize() stuff.  That didn't ever exist in any public X server
      [test] Plug a leak in the test suite
      [test] Add leak-revealing path to rectilinear-stroke
      Fix leak in rectilinear stroking code
      [test] Add more valgrind suppressions
      [boilerplate] Add correct dependency on libcairo.la
      [test] Move .la dependencies around
      [PS/PDF] Mark CAIRO_EXTEND_PAD for surface patterns as natively supported
      [test] Support passing extra valgrind flags
      [NEWS] Fix typos
      [doc] Update list of header files to ignore
      [doc] Some documentation love
      Beautify cairo.h
      [doc] Docuemnt all symbols but cairo_filter_t and cairo_operator_t
      [doc] Update templates
      [NEWS] Add note about documentation improvements
      [test] Update list of refrerence images
      [ChangeLog.mk] Adapt to latest git-describe output format
      [Makefile.am] Check for ChangeLog sanity in release-publish
      [test] Include romedalen.png in dist, oops
      [RELEASING] Add note about ChangeLog sanity
      [configure.in] Increase version to 1.3.16 in preparation for release
      [configure.in] Increase version to 1.3.17 post-release
      [RELEASING] Fix git-tag invocation
      [RELEASING] Reorder pushing tag and commits
      [RELEASING] Note that two versions should be added to bugzilla
      [RELEASING] Update announcement mail instructions
      [Makefile.am] Remove releasing instructions that are in RELEASING already
      [Makefile.am] --enable-test-surfaces in distcheck
      [ROADMAP] Remove 1.3.14 items, add 1.4.2 ones
      [SVG] Cast -1 values to unsigned to indicate we really did mean to type them
      [WIN32] Remove unused mutex cairo_toy_font_face_hash_table_mutex
      [WIN32] Make cairo_ft_unscaled_font_map_mutex initialization conditional of ft
      [OS2] Remove unused mutex cairo_toy_font_face_hash_table_mutex
      [OS2] Add mutex initializer for cairo_font_face_mutex
      [beos] Update mutex initializers
      Rename all mutex variables to start with an underscore
      [test] In the bitmap-font test, break cairo_text_path() call into two
      Make cairo_text_path() set current point correctly
      Uniform object handling in _reference(), _destroy(), and _get_reference_count()
      In cairo_text_path(), bail out if zero glyphs
      In cairo_append_path(), allow excess path_data elements
      [quartz] Make utility functions static
      [test] Remove unused variable
      [test] Remove some ref images from random-intersections
      [test] Modify extend-reflect to need a smaller reference image

Benjamin Otte (3):
      boilerplate: Fix compilation for glitz.
      perf: Add yield and fix double comparison
      perf: Make cairo_perf_timer structure private. Make timer functions void.

Brian Ewins (22):
      [ATSUI] Support disabling antialiased text
      [ATSUI] Round glyph locations to nearest pixel
      [ATSUI] Use screen metrics instead of ideal metrics to compute glyph extents
      [ATSUI] Compute glyph extents from the bounding boxes of their paths (#9350)
      [test/text-rotate] Use the same text for measuring and printing
      [ATSUI] Scale glyphs using _cairo_matrix_compute_scale_factor (#9350)
      [perf/cairo-perf-diff] Pass CAIRO_AUTOGEN_OPTIONS to autogen.
      [ATSUI] Select Bitstream Vera and CSS font families reliably.
      [ATSUI] correct the rotation of glyph paths. (#9378)
      [ATSUI] Refactor code for creating CGBitmapContexts from cairo surfaces.
      [ATSUI] [1/2] Implement CAIRO_SCALED_GLYPH_INFO_SURFACE support.(#9467)
      [ATSUI] [2/2] Implement CAIRO_SCALED_GLYPH_INFO_SURFACE support.(#9467)
      [test] Test handling of out-of-range glyph indexes. (#9530)
      [ATSUI] Handle deleted glyphs correctly. (#9530)
      [ATSUI] out-of-range glyphs should be treated as deleted. (#9530)
      [ATSUI] Some glyph operations cannot be 'unsupported'. (#9530)
      Unreleased lock typo in cairo-scaled-font.c
      [ATSUI] scale fonts using font size not font matrix
      [ATSUI] implement load_truetype_table
      [configure.in] --enable-quartz should require atsui and no xlib
      [quartz,atsui] separate the quartz surface and atsui font backend
      [quartz] remove unnecessary flushes

Carl Worth (316):
      Split libcairotest files out from test/ and into boilerplate/
      test: Add link to test log file in HTML output
      Add boilerplate/README explaining its purpose
      Separate the sharable stuff out of cairo-test.c into cairo-boilerplate.c
      boilerplate: Remove custom read/write-png code in favor of using cairo surfaces
      Move test-specific stuff out of boilerplate/ and back into test/
      test: Ignore single-bit errors for SVG backend.
      perf: Add initial skeleton of performance monitoring suite
      Require librsvg >= 2.14.0 to test SVG backend
      boilerplate: Fix missing include of config.h which was preventing many backends from being tested
      perf: Don't measure meta-surface-backed surface types.
      Initial hookup of Vlad's timer/alarm code
      perf: Remove unused util.c
      perf: Collapse timing.[ch] down into cairo-perf.[ch]
      perf: Don't require a separate counter from the timer for perf loops.
      perf: More simplification of PERF_LOOP macros.
      perf: Rename timer-alarm files to cairo-perf-timer
      perf: More consistency improvements for names.
      perf: Drop separate setup function from each test case.
      Make perf interface return a rate. Start print target and test names.
      perf: Fix typo in backend blackballing so that image tests now run
      perf: Add indication of content to output
      perf: Run for multiple iterations and print std. deviation
      perf: Switch from alarm to setitimer for more fine-grained control of timers
      Two big improvements to bring the std. deviation down to where we want it.
      perf: Add README file explaining how to add a new test
      perf/README: Fix typo
      bug 8104: Eliminate unused variables. Replicate assert statement to identify branch of interest.
      pixman: Add pixman_private decorations to hide pixman symbols from public interface
      Add many missing slim_hidden calls to bypass PLT entries for local use of public functions
      slim_hidden_proto: Move smeicolon from definition to use for consistency and legibility
      RELEASING: Add note on checking for local symbol PLT entries.
      Move target tolerance to cairo_test_target structure (should let single-pixel SVG errors pass)
      perf: Remove unused alarm functions
      perf: Fold cairo-perf-timer.h into cairo-perf.h
      perf: Rename functions in line with cairo's naming guidelines
      perf: Report times not rates. Interface in integers not doubles.
      perf: Move sorting and discarding outside of compute_stats. Adjust discard to slowest 15% only.
      perf-paint: Spend more iterations on smaller sizes to balance testing.
      perf/README: Update due to cairo_perf_timer API changes
      Prefer CPU performance counters (if available) over gettimeofday.
      perf: Fix cairo_perf_ticks_per_second to avoid wraparound
      perf: Handle 32-bit wraparound of performance counter
      perf: Allow CAIRO_TEST_TARGET to limit targets tested.
      perf: Add tessellate test case (in -16, -64, and -256 varieties)
      autogen.sh: Require automake version 1.9
      test: Report details errors when image output files cannot be found.
      Make _cairo_output_stream_destroy return the stream's status as a last gasp.
      Use new return value from _cairo_output_stream_destroy
      Check status value of output_stream object at time of destroy
      Remove font->status from cairo_type1_font_t
      cairo_type1_font_create: Fix missing NO_MEMORY check and cleanup style.
      cairo-type1-fallback.c: Regularize some whitespace.
      Add _cairo_array_size to allow querying the allocated size
      type1: Enforce pre-allocation usage and fail-proof behavior of charstring_encode functions
      Fix bitmap-font test failure by not generating a type1 font for a bitmap font.
      boilerplate: Rename cairo_test_target_t to cairo_boilerplate_target_t
      Use unsigned consistently to avoid compiler warning.
      test/bitmap-font: Fix arguments to FcFreeTypeQuery to avoid warnings.
      boilerplate: Allow targets to distinguish between test and perf.
      boilerplate-xlib: New perf-specific surface creation for xlib backend.
      perf: Don't skip COLOR tests
      perf: Make xlib testing wait for the X server to finish rendering.
      Deprecated CAIRO_FORMAT_RGB16_565. Add cairo-deprecated.h .
      Move the REPLACED/DEPRECATED_BY macros from cairo.h to cairo-deprecated.h
      Fix typo in error message (enhacement -> enhancement)
      Add missing pixman_private to _FbOnes when a function.
      Add test case from bug #8379 demonstrating infinite loop during round join
      Add assert statement so the infinite-join test simply exits rather than looping infinitely.
      ROADMAP: Add infinite-join bug (#8379) to the list for 1.4
      ROADMAP: Add a couple of URLs for user-font API discussion
      Fix cairo_copy_path and cairo_copy_path_flat to propagate errors.
      Rename test from stale path-data name to copy-path
      perf: Rework the suite to allow multiple performance tests to be defined in one file.
      Fix typo in documentation of cairo_in_fill (thanks to Jonathan Watt) and clarify a bit.
      tmpl: obnoxious churn
      Use consistent wording to document cairo_in_fill, cairo_in_stroke, cairo_fill_extents, and cairo_stroke_extents.
      Fix Makefile bug preventing 'make doc' from succeeding
      Rename docs-publish target to doc-publish in order to be consistent with the doc target.
      Fix dependency of 'make doc' so that necessary header files are built first.
      Add documentation for cairo_rectangle_list_destroy
      Add missing 'Since: 1.4' tags to documentation of 'clip getter' functions.
      perf/paint: Make all sizes use a consistent number of iterations
      perf: Move the per-size loop from cairo_perf_run to main
      perf: Make cairo_t* available to perf functions
      perf/paint: Dramatically simplify now that we don't need one callback per run.
      perf/paint: Use loops for sources and operators rather than open coding.
      perf/paint: Test image surface as well as similar surface sources
      Fix cairo_image_surface_create to report INVALID_FORMAT errors.
      Cast to squelch warning message
      Add new _cairo_pattern_create_for_status so that patterns properly propagate errors.
      Rename the create_for_status pattern to create_in_error.
      Remove unused variable
      perf: Move iteration over sources and operators from paint to new cairo-perf-cover
      perf: Add stroke and fill tests
      Shorten test names in output (drop unneeded _source and _surface)
      perf: Add linear and radial gradients to the coverage
      perf: Bail if cairo_status returns non-success at the end of a test.
      Fix typo that was resulting in device glyph_extents of INT16_MAX in some cases.
      perf: Add text test
      perf: Add subimage_copy test to demonstrate performance bug found by monty
      perf: Do backend synchronization in cairo_perf_timer_start as well as cairo_perf_timer_stop
      perf: Rename finalize to synchronize as it is used in both start() and stop() now
      Fix typo of , instead of || which was causing a test to be ignored
      perf: Make iterations adaptive (bailing as soon as std. deviation is <= 3% for 5 consecutive iterations
      Rename wait_for_rendering to syncrhonize
      Bug #7497: Change _cairo_color_compute_shorts to not rely on any particular floating-point epsilon value.
      perf: Change minimum size of paint test to 256
      cairo-perf: Remove wasted whitespace in output. Squelch wanring.
      perf: Print ticks as well as ms in output.
      Add cairo-perf-diff program for comparing two cairo-perf reports.
      test/infinite-join: Modify to draw something visible, and make the output a more reasonable size.
      Fix infinite-join test case (bug #8379)
      Merge branch '8379' into cairo
      Add neglected reference images for infinite-join test
      Use zero-size change bar for a speedup/slowdown of 1.0
      test: Add clip-push-group to demonstrate crash in cairo_push_group
      clip-push-group: Adjust test slightly to ensure mask-based clip is not anchored at the origin
      Fix bug in _cairo_clip_init_deep_copy (fixes clip-push-group crash)
      test: Update reference images due to previous change to _cairo_color_compute_shorts
      8711: Fix transformed source surface patterns with xlib backend.
      Fix repeating source surface patterns with xlib backend.
      Add new paint-repeat test
      test/paint-repeat: Use offset larger than source surface for better stress testing
      Fix offset/extent bug in ps output for repeating source surface patterns
      Fix typo
      Add new cairo-perf-diff for finding the performance difference between any 2 revisions.
      Make xlib and xcb backends tolerant of single-bit errors in the test suite output.
      cairo-perf-diff: Simplify git usage and just run cairo-perf that gets built with cairo revision
      cairo-perf: Change outlier elimination and report minimum times.
      Remove typo (mean vs median)
      Increment CAIRO_VERSION to 1.3.1 now that a 1.2.6 release exists
      cairo-perf-diff: Fix to still function if run from the top-level directory containing .git
      cairo-perf-diff: Build and run latest cairo-perf program rather than whatever was in the old checkout
      Don't rely on NQUARTZ or OS2 surface types unless they exist.
      cairo-perf-diff: Use two-part hash to avoid stale data when perf suite changes.
      Add zrusin-another test cases (tessellate and fill).
      cairo-perf: Add command line options for test cases to run, listing tests, and new raw mode.
      test/Makefile.am: Fix typo in EXTRA_DIST that was breaking distcheck
      Rewrite _cairo_matrix_transform_bounding_box to actually accept a box not a rectangle
      boilerplate: Add xrealloc function
      perf: Move statistics code into new cairo-stats.h for sharing
      cairo-perf: Print ticks_per_ms value in raw mode so raw analysis tools can report times
      cairo-perf-diff-files: Add support for diffing "raw" files from "cairo-perf -r"
      perf: Eliminate CAIRO_STATS_MIN_VALID_SAMPLES
      perf/Makefile.am: Add missing zrusin-another.h file to list
      perf: Add world-map performance test case.
      Fix broken size calculation for xrealloc
      cairo-perf-diff: Allow incremental refinement of performance results
      cairo-perf-diff: Separate old and new build directories
      cairo-perf-diff: Use rsync instead of cp to avoid some unnecessary rebuilding
      cairo-perf-diff: rsync only git-managed files from boilerplate/perf
      Add a status field to cairo_traps_t to enable less error checking
      Rewrite tessellate_rectangle as tessellate_convex_quad to make it more useful
      Make _cairo_stroker_add_sub_edge use tessellate_convex_quad rather than tessellate_polygon
      Make miter join code use tessellate_convex_quad rather than tessellate_polygon
      cairo-perf-diff: Run git-ls-tree from the correct directory
      Remove non-existent reference images from Makefile to avoid breaking distcheck target
      Fix get-clip test for surfaces not implementing set_clip_region
      Add missing pattern-getters-ref.png to Makefile to avoid breaking distcheck target
      NEWS: Add notes for 1.3.2 snapshot
      Update cairo version and libtool version for 1.3.2 snapshot
      Increment cairo version to 1.3.3 after 1.3.2 snapshot
      ROADMAP: Set cairo 1.4 to early January for sake of Gnome 2.18
      cairo-perf: When iteration count is given on command-line, never execute fewer
      perf: Add box_outline test case.
      Add const qualifier to cairo_path_t* parameter of cairo_append_path
      Require librsvg 2.15.0 (was 2.14.0) for testing of SVG backend.
      test/clip-operator: Use round to pass only integers to cairo_show_glyphs
      test: Use round to pass only integers to cairo_show_glyphs (in 3 more tests)
      give the big-trap test the XFAIL treatment.
      Add skip list implementation (many thanks to Keith Packard)
      Add new tessellator (unused) in cairo-bentley-ottmann.c
      Adapt new tessellator to match the interface provided by the old tessellator.
      Switch from old tessellator to new tessellator
      Make event_queue_insert ignore duplicate intersection events (not duplicate start/stop events)
      Add some missing cairo_private decorators
      Add Daniel Amelang and Joonas Pihlaja to the AUTHORS file
      NEWS: Add notes for 1.3.4 snapshot
      Increment cairo version to 1.3.4
      Bump version to 1.3.5 after making 1.3.4 snapshot
      RELEASING: Fix typo
      Add an initial BIBLIOGRAPHY for cairo
      Add perceptualdiff program totest/pdiff.
      Use uint32_t instead of the non-standard uint32
      Remove all libtiff-related code by #ifdef
      Hook up Makefiles for perceptualdiff.
      pdiff: Add missing newlins at end of files.
      Add a textbook recommendation to the bibliography
      BIBLIOGRAPHY: Add Joseph O'Rourke's book as recommended by Rafael Villar Burke
      ROADMAP: Add _cairo_lround bug for 1.3.6. Note some completed items for 1.4.0
      ROADMAP: Note that the Banker's rounding bug is fixed
      Fix 'make distcheck' by mentioning test/pdiff in DIST_SUBDIRS
      NEWS: Add notes for 1.3.6 snapshot
      Increment cairo version to 1.3.6 (and libtool versioning to 12:1:10)
      Bump version to 1.3.7 after making 1.3.6 snapshot
      test: Simplify buffer_diff by handling device offset in advance
      pdiff: Factor out a comparison function that doesn't read the 'args' structure
      pdiff: Teach pdiff code to accept cairo image surfaces
      test: Rework buffer_diff interface as new compare_surfaces
      pdiff: Compile pdiff algorithm as a libtool convenience library
      pdiff: Fix line endings
      pdiff: Re-indent all code
      pdiff: Delete all trailing whitespace.
      pdiff: Convert C++-style comments to good old-fashioned C-style comments
      pdiff: Rewrite Laplacian pyramid code from C++ to C
      pdiff: Move function that depends on command-line argument class to same file as main
      pdiff: Rip out unused ImgDiff code, (dropping -output option)
      pdiff: Rewrite main program to use cairo-based pdiff_compare interface
      pdiff: Remove old, unused Yee_Compare interface
      pdiff: Add .gitignore for perceptualdiff binary
      pdiff: Remove intermingled statements and declarations
      pdiff: Remove hideous C++ reference passing
      pdiff: Remove RGBAImage classes now that we're just using cairo image surfaces
      pdiff: Remove all uses of std::string
      pdiff: Fix return value from perceptualdiff program
      pdiff: Replace CompareArgs class with args_t struct
      pdiff: Rename everything to .c and fix an last littele C++ isms.
      pdiff: Remove casts since we're out of the land of X++ where void* is stupidly broken
      Hook up pdiff to the test suite now that its written in C
      test: Remove svg-specific reference images no longer needed thanks to pdiff
      test: Remove ps-specific reference images no longer needed thanks to pdiff
      Fix 'make distcheck' after recent file removals
      Fix a couple of more stale images holding up 'make distcheck'
      NEWS: Add notes for cairo 1.3.8 snapshot
      Increment cairo version to 1.3.8 (and libtool versioning to 12:2:10)
      Bump cairo version to 1.3.9 after making 1.3.8 snapshot
      Merge branch 'master' of git.cairographics.org:/git/cairo into cairo
      test/.gitignore: Ignore binarries for some recently added tests
      Rename cairo-path.c to cairo-path-fixed.c
      Rename cairo-path-data.c to cairo-path.c (and similar)
      Rename remaining cairo_path_data to cairo_path in function names, etc.
      Add new rectilinear-stroke test
      Reimplement path.has_current point as a 1-bit bitfield
      Put ft-text-vertical-layout-type1 back on the XFAIL list
      Add optimization for rectilinear stroke
      Ignore another test case binary
      Annoying template churn
      NEWS: Add notes for 1.3.10 snapshot
      Increment cairo version to 1.3.10 (and libtool versioning to 12:3:10)
      Bump version to 1.3.11 after making 1.3.10 snapshot
      Add long-lines perf case
      Restrict _clip_and_composite_trapezoids to destination extents
      Add unaligned_clip perf case courtesy of Jeff Muizelaar
      cairo-path-fixed: Don't add redundant, succesive MOVE_TO operations to the path
      Fix cairo_get_dash and cairo_get_dash_count APIs
      Add new scale-down-source-surface-paint test
      PDF: Fix CAIRO_EXTEND_NONE for source surface patterns
      Fix two misspellings in a recent comment.
      ROADMAP: Add 3 bugs to fix before the next snapshot
      .gitignore: Add text-glyph-range
      cairo-wideint: Fix to eliminate comparison of signed and unsigned values
      NEWS: Add notes for 1.3.12 snapshot
      configure.in: Increment cairo version to 1.3.12
      configure.in: Increment version to 1.3.13 after making the 1.3.12 snapshot
      doc tmpl churn
      Add rotate-image-surface-paint test case
      Fix _cairo_pattern_acquire_surface_for_surface to not clone outside surface extents
      Add two tests of cairo_surface_finish to test/nil-surface.c
      Fix crashes in cairo_surface_finish for NULL or nil
      Don't finish a finished surface in cairo_surface_destroy
      ROADMAP: Add bug about broken cairo_show_text on win32
      ROADMAP: Note that linear gradient bug is fixed.
      Don't hold mutex over backend->scaled_font_create
      Avoid holding lock when calling _cairo_scaled_font_fini
      Move scaled font holdovers magic from reference to create to fix race condition
      Add scaled_font->mutex to allow locking for all subordinate objects
      Remove half-leftover debugging code from previous commit
      Remove dead cff_dict_remove function
      ROADMAP: Note that the 8801 locking bug is fixed.
      ROADMAP: Drop 1.3.6 which is already in the past and note 8379 fix and pixman gradient improvements
      test/pthread-show-text: Increease iterations to expose locking bug
      Expand font_map locking to cover call to backend->scaled_font_create
      Add missing locking to _cairo_scaled_font_text_to_glyphs
      Add missing _cairo_ft_unscaled_font_unlock_face to _cairo_ft_scaled_font_create
      Avoid public cairo_ft_scaled_font_lock_face for internal use
      Add mutex to implement _cairo_ft_unscaled_font_lock_face and _cairo_ft_unscaled_font_unlock_face
      Increase pthread-show-text thread count and add cairo_select_font_face to expose more bugs.
      Add locking to cairo_font_face_reference/destroy
      Rename cairo_toy_font_face_hash_table_mutex to cairo_font_face_mutex
      ROADMAP: Note that text spacing issues for win32 are fixed
      Add missing call to set_scale of unscaled_font in scaled_glyph init
      Fix cairo_ft_unscaled_font_t to have a lock_count again not an is_locked Boolean
      Mark test/rotate-image-surface-paint as XFAIL
      NEWS: Add notes for the 1.3.14 snapshot
      Increment cairo version to 1.3.14 (and libtool versioning to 12:4:10)
      Bump cairo version to 1.3.15 after making the 1.3.14 snapshot
      Add radial-gradient test case
      Rename radial gradient inner/outer to c1/c2
      Fix implementation of radial gradients for inner radius != 0
      Fix gradient walker to not reset needlessly
      SVG: Support CAIRO_EXTEND_NONE for radial gradients.
      Merge branch 'radial-gradient-fixes' into cairo
      Implement CAIRO_MUTEX_INIT with memcpy instead of pthread_mutex_init
      Cast away a const to quiet a compiler warning.
      Cast -1 values to unsigned to quiet the compiler.
      Update documentation for cairo_get_scaled_font and cairo_get_font_face
      Don't crash if backend->create_similar returns a nil surface
      Fix yet another backend (quartz) for the gradient renaming
      Add test of cairo_get_* after INVALID_RESTORE to nil-surface
      Fix INVALID_RESTORE case to avoid crashes
      Fix leak in pdiff lpyramid
      Add a couple of missing test cases to .gitignore
      Add even more XrmGetFileDatabase leaks to the valgrind suppressions file
      Augment cairo_test_init with cairo_test_fini to avoid leak
      Fix leak in pattern-getters test (missing cairo_pattern_destroy)
      More tightening of test cleanup to avoid valgrind complaints.
      Fix leak of an output stream in cairo_type1_font_destroy
      Add notes for 1.3.16
      Optimize filling of a path that is a single device-axis-aligned rectangle.
      Mark 5 tests that are currently failing as XFAIL (that is, not to be fixed before 1.4)
      Update AUTHORS with 47 (!) new authors since 1.0
      NEWS: Add release notes for 1.4.0 release
      Clarify that extra elements in cairo_path_data is only available in cairo >= 1.4
      Increment cairo version to 1.4.0
      NEWS: Note the x86 nature of the quoted performance results

Christian Biesinger (11):
      fix comment: pixman_private needs to be before the type of a variable
      [win32] Add missing void
      Fix win32 build when pthreads are available
      Add missing ) in comment
      Actually return a value from _cairo_type1_fallback_init_*
      Fix prototype warning by including cairo-test-directfb.h
      Don't return an uninitialized value if _cairo_output_stream_create fails
      [beos] Fix build error
      [win32] Add parentheses around & operator
      [beos] make tests compile again
      [beos] Allow a pixel error of 1 for BeOS tests

Christopher (Monty) Montgomery (1):
      Add extents to clone_similar (fixing subimage_copy performance bug)

Dan Amelang (20):
      Add new perf test "pattern_create_radial"
      Add autoconf macro AX_C_FLOAT_WORDS_BIGENDIAN
      Change _cairo_fixed_from_double to use the "magic number" technique
      Add _cairo_matrix_is_translation
      Refactor _cairo_matrix_is_integer_translation
      Add and incorporate _cairo_gstate_transform_glyphs_to_backend
      Optimize _cairo_matrix_to_pixman_matrix for the common case of an identity matrix
      Change _cairo_matrix_to_pixman_matrix to use a pixman_transform_t as the template, thus avoiding a forced memcpy
      Add configure option --disable-some-floating-point
      Purge cairo-test of all calls to round()
      [perf] Provide watered-down implementations of getline and strndup for
      [configure] Add -a option to grep calls in AX_C_FLOAT_WORDS_BIGENDIAN
      [configure] Fix --disable-some-floating-point to force value to 'no' if none given
      Change _cairo_lround to use arithmetic rounding
      Change _cairo_lround to correctly handle edge cases previously missed
      Don't use the GNU-only grep option "-a"
      Use the "-" option (instead of "-a") when calling "strings"
      Add "rectangles" perf test
      Fix Win32 text spacing problem
      Update Win32 makefiles

Dan Williams (1):
      Implement pixman fbCompositeSrc_8888x0565mmx

Daniel Amelang (2):
      Add _cairo_lround for much faster rounding
      Replace existing rounding code with _cairo_lround

Dave Yeo (1):
      [test] Fix build on Win32

David Turner (2):
      Optimize gradient computations
      fixing gradient repeat mode computations

Emmanuel Pacaud (8):
      Add SVGPrint support.
      Use SVG multipage capability.
      test/pixman-rotate.c: Don't issue a show_page, it's already done in cairo-test.c
      Merge branch 'svgprint'
      SVG: plug a memory leak
      Set overflow to visible for symbols.
      Remove broken special-casing of radial gradient fx,fy under CAIRO_EXTEND_NONE
      Use the offset attribute to improve cairo-svg handling of EXTEND_REPEAT and EXTEND_REFLECT

Eugeniy Meshcheryakov (7):
      [PDF-CFF] Fix bad /LastChar value for CFF fonts in PDF backend
      CFF Subsetting: Add charset data to embedded font
      TrueType Subsetting : Correct the checksum calculation
      TrueType Subsetting: Correct the checksum calculation of 'head' table
      TrueType Subsetting: Sort table directory
      [cairo-surface] Use a macro definition for all nil surfaces
      [PS/PDF/SVG] Return a write_error nil surface on write errors

Frederic Crozat (1):
      [check-defs.sh] Fix make check for OPD platforms

Hans Breuer (1):
      Fix mutex initialization for win32 (missing cairo_font_face_mutex)

Ian Osgood (12):
      Update XCB names for XCB 1.0 RC2 release.
      Replace static fn with xcb-renderutil library fn.
      XCB: Remove unnecessary differences with the Xlib surface.
      Move XCB sections next to XLIB sections.
      XCB: glyph rendering support
      XCB: find_standard_format using wrong enumeration.
      Merge branch 'master' of git+ssh://iano@git.cairographics.org/git/cairo
      XCB: implement subimage_copy fix
      XCB: bring composite, trapezoids up-to-date with Xlib
      XCB: make create_internal match Xlib
      bug: wrong xcb_copy_area param order
      don't squish tiny images in test/index.html

Jamey Sharp (9):
      XCB: add slim_hidden_proto and slim_hidden_def for cairo_xcb_surface_create_with_xrender_format.
      XCB: update cairo-boilerplate to test for an error connection rather than NULL.
      Update .gitignore in boilerplate and test.
      [slim] hide cairo_version_string()
      XCB: Add the have_clip_rects field to cairo_xcb_surface, to match the Xlib surface.
      XCB: Move slim_hidden_def to cairo-xcb-surface.c, not cairo-xcb-xrender.h.
      Add clip-push-group to .gitignore.
      perf: cairo-perf-diff-files.c should generate cairo-perf-diff-files
      XCB/perf: implement boilerplate_xcb_synchronize for fair performance tests.

Jeff Muizelaar (7):
      Add two new test cases to degenerate-path test
      Add a new dashing test
      Add a comment about the point choice when capping degenerate paths
      Rename has_sub_path to has_initial_sub_path
      Fix several issues with dashed stroking code, particularly 'leaky-dash'
      Rename tmp to step_length because that is what it actually is.
      Use a closed interval when eliminating outliers from performance measurements

Jeff Smith (5):
      Change type of cairo_stroker_t's dash_on from int to cairo_bool_t
      Modify how _cairo_stroker_add_caps handles zero-length sub-paths
      Minor changes to shorten the stroking code
      Add or reword several comments in the stroking code
      Clean up some inconsistent spacing in the stroking code

Jinghua Luo (12):
      glitz: fix a crash in _cairo_glitz_surface_get_image.
      glitz: fix for clone similar.
      glitz: fix test case glyph-cache-pressure.
      glitz: don't go fackback path for bitmap glyphs.
      glitz: my previous changes in _cairo_glitz_surface_create_similar is
      glitz: further fix for clone_similar.
      glitz: fix a memory leak in _cairo_glitz_surface_composite_trapezoids.
      Glitz: fix a potential use after free bug in _cairo_glitz_surface_old_show_glyphs.
      glitz: fix all compiler warnings in glitz backend.
      Glitz: position large glyph correctly.
      type1-subset: fix error handling.
      glitz: fix build error.

Jonathan Watt (2):
      revert accidental mode changes in my previous commit
      Remove WINVER from public header file

Joonas Pihlaja (11):
      A 96 by 64 bit divrem that produces a 32 bit quotient and 64 bit remainder.
      Replace the 128 bit divrem by a 96/64 bit one.
      Use an LFSR instead of random().
      Special cases for skip list comparators.
      Avoid a skip-list lookup when deactivating edges.
      Separate start and stop events from intersections (first try.)
      Tweak comparators.
      Malloc less using a free list of nodes.
      Make the skip list check for uniqueness.
      Sort pointers instead of cairo_bo_events in the tessellator.
      perf: new-tessellator: Deferred trapezoid generation (first try)

Jorn Baayen (1):
      [cairo-pattern] Cache surface for solid patterns

Kalle Vahlman (2):
      Add --use-ms option to cairo-perf-diff-files
      [cairoint] Make it compile with libpng disabled

Kjartan Maraas (1):
      Remove unused variables (#7963)

Kristian Høgsberg (1):
      Compute right index when looking up left side bearing.

M Joonas Pihlaja (16):
      cairo-perf-diff-files: Don't segfault reading cooked perf reports.
      test: tessellator event comparator test case for degenerate edges.
      test: check if cairo_in_fill() is reporting false positives for empty trapezoids.
      test: check for tessellator regression from missed stop events
      tessellator bug fix: fill-degenerate-sort-order
      tessellator bug fix: fill-missed-stop
      tessellator bug fix: in-fill-empty-trapezoid
      tessellator: offset working coordinates to be nonnegative
      tessellator: input validation and guard bit removal
      tessellator bug fix: linking fails on x86_64 due to superfluous inline attribute.
      Change license of tessellator tests to the MIT license.
      Replace point sampling in the fill-degenerate-sort-order with rendering.
      Rework the in-fill-empty-trapezoid test to not use the cairo_test() framework.
      test: random-intersections
      New performance test case "mosaic" for splines.
      Make UTF-8 output from cairo-perf-diff-files optional

Mathias Hasselmann (1):
      [test/pdiff] Fix build problem with certain flavors of make

Mathieu Lacage (1):
      bugfix: fix cairo-wideint.c uint64_t usage and const return qualifiers

Michael Emmel (6):
      Fixed directfb test code
      Fixed test to compile
      Fixed test to compile
      Merge branch 'master' of ssh+git://git.cairographics.org/git/cairo
      Turned off acclerated rectangle drawing in dfb backend
      Merge branch 'master' of ssh+git://git.cairographics.org/git/cairo

Nicholas Miell (2):
      Make the SLIM macros robust in the face of macro-renamed symbols
      Fix the AMD64 final link by removing SLIM from pixman

Pavel Roskin (1):
      Clean up _fbOnes()

Peter Weilbacher (6):
      OS/2 backend files
      OS/2 build changes
      Add OS/2 backend and its requirement to INSTALL and README, following the example of BeOS.
      Fix for OS/2 display drivers that cannot handle 32bit output (feed them a 24bit buffer instead).
      Correct scaled font mutex definitions for OS/2
      Oops, correct typo in previous commit

Robert O'Callahan (5):
      Fix _cairo_matrix_transform_bounding_box to return tightness info
      Fix stroke/fill extents bounding boxes
      Add clip getters API + tests
      Remove redundant call to _cairo_surface_get_extents
      Rename cairo_copy_clip_rectangles to cairo_copy_clip_rectangle_list

Soeren Sandmann (1):
      Add SRC and IN implementations to avoid CompositeGeneral in some cases hit by PDF rendering

Soren Sandmann Pedersen (2):
      Remove left-over assert and some alpha checks from
      Apply patch from Marco Gritti and Jordan Crouse to correctly detect

Stuart Parmenter (1):
      [win32] correct win32 show_glyphs for non-y-aligned text

T Rowley (1):
      Add linear-gradient-reflect test case

U-JONATHAN-X60S\jonathan (2):
      Fix a couple of character spacing issues on Windows
      Merge branch 'master' of git://git.cairographics.org/git/cairo

Vladimir Vukicevic (40):
      Add useful pieces from Vladimir's cairo-bench
      [win32] Make cairo as a win32 static library possible
      [win32] Misc win32 compilation fixes
      [win32] win32-specific Makefiles for building with MSVC
      Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo into cairo-master
      Improve make-html.pl, add self-contained output format
      [win32] Fix boilerplate for win32 surfaces to use new _with_dib function
      Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo into cairo-master
      Correctly acquire/release mutex in _cairo_scaled_font_map_destroy
      [win32] Makefile.win32: fix test and add html targets
      [win32] Makefile.win32: use correct (/MD) runtime library flag everywhere
      [win32] Set win32 assertion failure handlers for tests to stderr
      Check for valid path status value before calling _cairo_set_error
      [win32] Support for DDBs, AlphaBlend fix
      [nquartz] Initial commit of native quartz surface
      [win32,perf] Fix cairo-perf-win32
      [perf] Change perf output format, report times in ms, add a few paint tests
      Add win32 output files to gitignore
      dash and pattern getter functions
      [nquartz] Return correct values from operation setup function
      [test] Fix composite-integer-translate-over test
      [win32] Update pixman MMX code to work with MSVC
      [win32] clean up win32_surface_composite
      [win32] implement EXTEND_REPEAT in composite when possible
      [test] add big-trap test
      Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo
      [nquartz] use pattern snapshots, and correctly setup/teardown source
      [nquartz] add test reference files for nquartz backend
      Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo
      [atsui] add function prototype for a public 10.4 function that's
      [win32] regression with win32 glyph y-offsets (mozbug#365021)
      [mmx] avoid casts between int32 and __m64 types
      [quartz] Rename nquartz to quartz
      [quartz] rename NQUARTZ -> QUARTZ in defines
      [quartz] rename test override images from nquartz to quartz
      [quartz] Rename public function parameter from surf -> surface
      [quartz] Remove (disabled) support for rendering via AGL/CGGL
      [core] Add user_data and reference count getters to all objects
      [core] put back REF_COUNT_INVALID to be -1, fix finish
      [quartz] Bug 3939 - Fix Quartz backend endianness problem
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo-announce/attachments/20070306/c6ef964c/attachment-0001.pgp


More information about the cairo-announce mailing list