# Generated by configure.  Do not edit.

commit e9b9d2a7c17ca4b2bc2991fdc4893aed850578db
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Jun 11 15:28:59 2009 -0700

    Update version to 1.9.2
    
    In preparation for the (long overdue) 1.9.2 snapshot today.

 cairo-version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 8ac8c5b428d11b11ba9fb55264cd9091368f6acb
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Jun 12 11:49:52 2009 -0700

    NEWS: Fix date and name of 1.9.2 snapshot
    
    It's a snapshot, not a release, and the broken REFERENCE_IMAGE list
    derailed me from finishing yesterday.

 NEWS |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 3f474555dd00b8585ae3db848cf46984d77bd16e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 12 11:19:50 2009 +0100

    [test] Add jp2.jp2 to EXTRA_DIST
    
    Required by test/mime-data and so triggering failures during distcheck as
    it was not packaged.

 test/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 7f114b781f5c530d57530e5f76402e41cdabac6b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 12 11:15:16 2009 +0100

    [doc] Workaround read-only tree during make distcheck
    
    This looks to be an ugly necessity to work-around the nasty issue that
    we currently gtkdoc expect to be run inside the source tree. I'm sure
    Behdad will be able to resolve this much more elegantly than this quick
    and fragile attempt.

 build/Makefile.am.gtk-doc   |   11 ++++++-----
 build/configure.ac.features |    2 +-
 doc/public/Makefile.am      |    5 +++--
 3 files changed, 10 insertions(+), 8 deletions(-)

commit 1498c9c333d7579231ac44a91f00f0a49360702d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 12 07:38:00 2009 +0100

    [script] Also mmap backing storage for the pattern descriptions
    
    These can be reasonably large and persist for long times due to the
    font holdover caches, so manually swap them out to save space on tiny
    swapless machines.

 util/cairo-script/cairo-script-operators.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

commit 80ba06803b50cc0f76039939f25372cbbe2e8d81
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 12 08:03:12 2009 +0100

    [Makefile] Update list of reference images.

 test/Makefile.am | 1432 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 818 insertions(+), 614 deletions(-)

commit fb21a0da8730823ff092f8e298af3d5b4e8c90e4
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Jun 11 15:28:02 2009 -0700

    Update CLEANFILES for 'make distcheck'
    
    This is a standard part of the release ritual.

 test/Makefile.am |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit a4f023ef2eb041fecba5f3fd2d5a1594975ca211
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Jun 11 14:51:14 2009 -0700

    NEWS: Update date for snapshot planned for today.

 NEWS |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 82139b42919be1acf6bade733bb2ff489e50812d
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Jun 11 14:51:10 2009 -0700

    NEWS: Explain bovine polaroids a bit more.
    
    It's a fun joke, but the COW snapshots feature is important enough
    that we should actually tell users what it is.

 NEWS |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

commit 4d5f66d5b1f243e58d43dc89568be9240262fd5c
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Jun 11 14:42:11 2009 -0700

    NEWS: Cleanup in preparation for 1.9.2 snapshot
    
    Mostly just wrapping to a reasonable line length, and some minor
    wording changes.

 NEWS |   71 +++++++++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 45 insertions(+), 26 deletions(-)

commit 19630f4b73a4fdfb9855ececd6614493e68d3b95
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Jun 10 17:39:48 2009 -0700

    Make the warning about the need to --enable-gtk-doc more explicit.
    
    I must have read it three times and kept thinking, "but I *did*
    just install gtk-doc", before I finally understood what it was
    trying to tell me.

 build/Makefile.am.gtk-doc |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 3aaea453b0f0880d6c8825be21e67821732d1635
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 11 22:36:01 2009 +0100

    [script] Store fonts inside mmaped files.
    
    As an aide to tiny swapless systems write the rarely used bytes that
    define type42 fonts into a deleted file and mmap them back into our
    address space.

 build/configure.ac.system                  |    3 +
 util/cairo-script/cairo-script-operators.c |   91 +++++++++++++++++++++++-----
 2 files changed, 78 insertions(+), 16 deletions(-)

commit 6167f27adfd530bdf091a0e7a3e0141d5db66f00
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 11 22:33:00 2009 +0100

    [script] Fix memleak of duplicated strings from files
    
    csi_string_new() duplicated the bytes which was not what was desired, so
    implement a csi_string_new_for_bytes() to take ownership and prevent the
    leak that was occuring, for example, every time we create a new font face.

 util/cairo-script/cairo-script-file.c    |    5 +++--
 util/cairo-script/cairo-script-objects.c |   27 +++++++++++++++++++++++++++
 util/cairo-script/cairo-script-private.h |    6 ++++++
 3 files changed, 36 insertions(+), 2 deletions(-)

commit 13b56c42bfdb9ad36f9b1bd22f83d7ef3a074ddc
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Jun 11 17:32:23 2009 -0400

    Fix compilation on OS X when compiling for 64 bit
    
    OS X doesn't support ATSUI in 64 bit so don't include the cairo ATSUI
    API in that case.

 src/cairo-quartz-font.c |    3 ++-
 src/cairo-quartz.h      |    2 ++
 2 files changed, 4 insertions(+), 1 deletions(-)

commit 9e3019ef987f8d3ad424c13ffae5a15b08beb327
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 11 22:27:18 2009 +0100

    [perf] Add libcairoperf.la to DEPENDENCIES
    
    It seems adding the explicit dependencies to encourage it to rebuild
    components from other parts of the source tree removed the automagic
    dependency of libcairoperf.la. So add it to the list. Maybe this is not
    the correct solution, but it works again for now.

 perf/Makefile.am |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit 55cbf525479cde8251cc9199f9db89e510d6a9c1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 11 15:40:27 2009 +0100

    [perf] Fix -i getopt parsing.
    
    Gah, I presumed that the ':' separated options that required arguments
    from stand-alone options. I was wrong. The ':' indicates that the
    preceding option takes an argument. So add it back to -i.

 perf/cairo-perf-trace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 614bfdc0846856653a742b035e70d009b0a716cc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 11 15:35:05 2009 +0100

    [xcb] Trivial compile fix.
    
    Update show_glyphs() interface.

 src/cairo-xcb-surface.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

commit f7dbdf1fd1d7cc14491a9419c316b078247e145e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 8 09:39:20 2009 +0100

    [script] Hide pixman-ops when copying pixels
    
    Seeing unexpected time inside pixman composite is quite disturbing when
    trying to track down the apparent slowness in some benchmarks. Remove one
    source of this artefact by simply memcpy'ing pixel data when trivial.

 util/cairo-script/cairo-script-operators.c |   70 ++++++++++++++++++++++------
 1 files changed, 55 insertions(+), 15 deletions(-)

commit ecee5663bf900ab97d2bb7ec41ade838f167e1cd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 8 01:05:28 2009 +0100

    [perf] Fixup compare-backends to work with just a single test.

 perf/cairo-perf-compare-backends.c |   17 ++++++-----------
 1 files changed, 6 insertions(+), 11 deletions(-)

commit 42c0aee1d9ff5e0182c41ed505a2b0f56e564cbb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 11 12:58:05 2009 +0100

    [perf] Add a -x to exclude traces from a benchmark.
    
    Read names of traces to exclude from a file specified using -x on the
    commandline, i.e.
    $ ./cairo-perf-trace -x cairo-traces/tiny.exclude
    
    This is a convenient method for me to exclude certain traces for
    particular machines. For example tiny cannot run
    firefox-36-20090609.trace as that has a greater working set than the
    available RAM on tiny.

 perf/cairo-perf-trace.c |  135 ++++++++++++++++++++++++++++++++++++++++++++---
 perf/cairo-perf.h       |    2 +
 2 files changed, 130 insertions(+), 7 deletions(-)

commit b40ce402ada8d57c5093715be530df08459d1654
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 11 09:16:29 2009 +0100

    [NEWS] Add more notes

 NEWS |   50 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 44 insertions(+), 6 deletions(-)

commit 610da573e91810c53305b6bfe02eb7b714e3d08e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 10 12:59:36 2009 +0100

    [win32-font] Non-fatal error from GetGlyphOutlineW(GGO_METRICS)
    
    If GetGlyphOutlineW(GGO_METRICS) fails to retreive the metrics for the
    specified glyph it returns GDI_ERROR. Like ft, do not interpret this as a
    fatal error but just mark the glyph as empty.
    
    Fixes http://bugs.freedesktop.org/show_bug.cgi?id=20255
    Bug 20255 -- cairo_scaled_font_glyph_extents breaks with invalid glyph id

 src/cairo-win32-font.c |   10 ++--------
 1 files changed, 2 insertions(+), 8 deletions(-)

commit 81b5dc42b0e754d602506a8ccd231df9afd71593
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 10 08:49:39 2009 +0100

    [perf] Expand the section on cairo-perf-trace in the README
    
    Promote the information on how to use cairo-perf-trace and include it
    immediately after the details on cairo-perf. This should make it much
    clearer on how to replay the traces, and the difference between the two
    benchmarks.

 perf/README |   37 ++++++++++++++++++++++++++++++++++---
 1 files changed, 34 insertions(+), 3 deletions(-)

commit ec92e633edd377747155b60aa225b266c38bc498
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 10 08:34:57 2009 +0100

    [perf] Couple cairo-perf-traces into make perf
    
    Rather than complicating cairo-perf to extend it to perform both micro-
    and macro-benchmarks, simply run the two binaries in succession during
    make perf.
    
    For bonus points, consider whether we should hook cairo-perf-trace into
    cairo-perf-diff.

 perf/Makefile.am |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit 0db946cdd9fe601a060b62c5df7df3022ea5e2d6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 9 16:19:36 2009 +0100

    [perf] Add explicit dependences for the local libraries
    
    Update the build rules and add the dependences for the libraries built in
    other parts of cairo.

 perf/Makefile.am |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

commit 844c809698635cf44658fcbfb5da6976890185b9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 9 12:45:53 2009 +0100

    [boilerplate] Print out known targets on error.
    
    Improve the 'Cannot find target ...' error message for an incorrect
    CAIRO_TEST_TARGET by actually listing the targets that have been compiled
    into the test suite.

 boilerplate/cairo-boilerplate.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

commit ac563715506b911f142dd0e4460a6effee45119d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 8 23:58:56 2009 +0100

    [test] Exercise overlapping glyphs
    
    Quite an expensive test that converts an image into a distorted array of
    glyphs, using a perspective transformation taking the intensity of the
    pixel as depth. This generates a pretty picture and many overlapping
    glyphs.

 test/Makefile.am         |    1 +
 test/Makefile.sources    |    1 +
 test/mask-glyphs.c       |  175 ++++++++++++++++++++++++++++++++++++++++++++++
 test/mask-glyphs.ref.png |  Bin 0 -> 1189352 bytes
 4 files changed, 177 insertions(+), 0 deletions(-)

commit 015df191ba947e714285145c3a4ead198ba0d07e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 8 17:40:16 2009 +0100

    [trace] Prevent overflowing the operand stack when recreating objects
    
    Objects like cairo_scaled_font_t may return a reference to a previously
    defined scaled-font instead of creating a new token each time. This caused
    cairo-trace to overflow its operand stack by pushing a new instance of the
    old token every time. Modify the tracer such that a font token can only
    appear once on the stack -- for font-faces we remove the old operand and
    for scaled-fonts we simply pop, chosen to reflect expected usage.

 util/cairo-trace/trace.c |   89 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 63 insertions(+), 26 deletions(-)

commit 09492288b33c36093e50d39e4e7e632ab659a0e2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 8 17:38:14 2009 +0100

    [trace] Option to re-enable mark-dirty
    
    Applications such as swfdec have a strictly correct use of mark-dirty and
    so we need an option to re-enable mark-dirty tracing in conjunction with
    --profile.

 util/cairo-trace/cairo-trace.in |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit 39bac6edddb8913d07fb25f14f088967ca846a78
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 8 11:52:56 2009 +0100

    [perf] Mention cairo-perf-trace early on in the README

 perf/README |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 34ccaeae2d3cf1b5bdd8b97581d6e70324494356
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 8 00:12:28 2009 +0100

    [perf] Continuously update the summary for traces

 perf/cairo-perf-trace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 055e9b0eb650bec6ae8297e5a36f1cac22c43d56
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 7 23:35:57 2009 +0100

    [test] Cache resolved scaled-font
    
    The intention is to stress test the solid pattern caches, so we can cheat
    and avoid repeatedly resolving the toy font.

 test/solid-pattern-cache-stress.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit 25c37509396a89deb644cbd6ada99137ba9d3095
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 7 19:23:04 2009 +0100

    [scaled-font] Report the original-font-face
    
    When queried with cairo_scaled_font_get_font_face() return the original
    font-face which matches the one supplied by the user, rather than the
    implementation derived face.
    
    Fixes test/font-face-get-type.

 src/cairo-scaled-font.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 6d693f6bd7c629372cfb6c284ca98dc04619bfe9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 7 18:59:36 2009 +0100

    [ft] Support font_face->get_implementation
    
    The lazy resolution of patterns was defeating the scaled_font cache as
    ft-fonts that resolved to the same unscaled font were being given different
    font-faces upon creation. We can keep the lazy resolution by simply asking
    the ft backend to create a fully resolved ft-font-face when we need to
    create a scaled-font. This font is then keyed by the resolved font-face
    and so will match all future lazily resolved identical patterns.

 src/cairo-ft-font.c       |  117 +++++++++++++++++++-------------------------
 src/cairo-scaled-font.c   |   20 +++++--
 src/cairo-toy-font-face.c |   41 ++++++++++------
 src/cairoint.h            |    9 ++-
 4 files changed, 96 insertions(+), 91 deletions(-)

commit a29426f4bffc0a3f5bb349a2ba44203394339ae8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 7 17:24:40 2009 +0100

    [ft] Assert that we create an unscaled font for the resolved pattern

 src/cairo-ft-font.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 7d8a0a1cdd62112ccdae2a80bb55ec9cec99b978
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 7 17:01:57 2009 +0100

    [cairo] Keep a small stash of cairo contexts
    
    A cairo context is meant to be extremely cheap to create such that it can
    be used in transient expose events. Thus these are allocated reasonably
    frequently and show up malloc profiles.

 src/cairo.c |   51 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 49 insertions(+), 2 deletions(-)

commit f08fe5b550d53c93b73c6295f8a85a8dcd4a1f4a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 7 15:55:20 2009 +0100

    [trace] Redirect stdout to /dev/null when compressing
    
    Otherwise we mix in stdout in with the trace and prevent replay.

 util/cairo-trace/cairo-trace.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 750c1b5b48dcd33ba4a4d5290c50f564bf45bc58
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 6 21:45:18 2009 +0100

    [configure] Check for FcInit()

 configure.ac      |    2 +-
 test/cairo-test.c |    2 ++
 2 files changed, 3 insertions(+), 1 deletions(-)

commit f7a562a590493904cf10b4fb9af3b42fb3f8a3a2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 6 14:58:46 2009 +0100

    [configure] Don't attempt to build GTK+ utilities on system without GTK+

 configure.ac     |    3 ++-
 util/Makefile.am |    5 ++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 7a95b2745ae619f6ca4631f3cdb03e12203126f3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 6 21:36:08 2009 +0100

    [boilerplate] Minor typo in win32-printing

 boilerplate/cairo-boilerplate.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 16eb160c7794ad34c17c5b12ec586d956baf9831
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 6 20:09:15 2009 +0100

    [script] Enable compilation without fontconfig
    
    Some insane people actually try compiling cairo with freetype and without
    fontconfig...

 util/cairo-script/cairo-script-operators.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit d753ba96aba4dbbcbd0da1823be8824ba233f079
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 5 17:59:38 2009 +0100

    [script] Manage used entries within hash tables
    
    Apply the patch from Karl Tomlinson,
    https://bugs.freedesktop.org/attachment.cgi?id=19802, to repack the hash
    table if the number of free slots falls too low.

 util/cairo-script/cairo-script-hash.c    |  109 ++++++++++++++++++++----------
 util/cairo-script/cairo-script-private.h |    1 +
 2 files changed, 73 insertions(+), 37 deletions(-)

commit 4ccfd474a36f482adcab49a8d38742121817b47e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 6 13:32:21 2009 +0100

    [perf] Switch to using clock_gettime()
    
    Try using clock_gettime() for a high resolution stable time source in
    preference to the potentially unstable TSC.

 build/configure.ac.system |    9 ++++-
 perf/cairo-perf-posix.c   |   72 +++++++++++++++++++++++++++++++++------------
 2 files changed, 60 insertions(+), 21 deletions(-)

commit 867c88ae90e4e69a556c032fa67d94a292f5d817
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 6 12:59:39 2009 +0100

    [script] Add a finish method to the interpreter
    
    When using fonts circular references are established between the holdover
    font caches and the interpreter which need manual intervention via
    cairo_script_interpreter_finish() to break.

 perf/cairo-perf-trace.c                      |    3 +-
 util/cairo-script/cairo-script-interpreter.c |   51 ++++++++++++++++++++------
 util/cairo-script/cairo-script-interpreter.h |    3 ++
 util/cairo-script/cairo-script-objects.c     |   35 ++++++++++++------
 util/cairo-script/cairo-script-private.h     |    3 ++
 5 files changed, 70 insertions(+), 25 deletions(-)

commit 098822d7ee7f14096dd269c1bc96e39da126622c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 6 10:35:19 2009 +0100

    [script] Fix erroneous error return when rendering type3 glyphs
    
    Only return a USER_FONT_ERROR if an error occurs whilst rendering the
    glyph!

 util/cairo-script/cairo-script-operators.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 24e51dd2ee04884e1f6f9f527b6675ad5f883ee2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 5 18:34:29 2009 +0100

    [atomic] Hide compiler warnings
    
    Add uint variants of _cairo_atomic_int_*() to hide the compiler warnings
    about sign conversions.

 src/cairo-atomic-private.h |    3 +++
 src/cairo-surface.c        |    6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

commit 4ae5e2d44555a7219eb76ee187a8f588606c112f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 5 18:29:40 2009 +0100

    [atomic] Provide mutex-based ptr cmpxchg
    
    To handle those CPUs where we do not have an atomic cmpxchg.

 src/cairo-atomic-private.h |    3 +++
 src/cairo-atomic.c         |   13 +++++++++++++
 2 files changed, 16 insertions(+), 0 deletions(-)

commit a1d0a06b6275cac3974be84919993e187394fe43
Author: Thomas Jaeger <ThJaeger@gmail.com>
Date:   Thu Feb 19 12:02:41 2009 -0500

    xlib, xcb: Hand off EXTEND_PAD/EXTEND_REFLECT to Render
    
    Most drivers and the X server used to have incorrect RepeatPad/RepeatReflect
    implementations, forcing cairo to fall back to client-side software rendering,
    which is painfully slow due to pixmaps being transfered over the wire.  These
    issues are mostly fixed in the drivers (with the exception of radeonhd, whose
    developers didn't respond) and the RepeatPad software fallback is implemented
    correctly as of pixman-0.15.0, so this patch will hand off composite operations
    with EXTEND_PAD/EXTEND_REFLECT source patterns to XRender.
    
    There is no way to detect whether the X server or the drivers use a
    broken Render implementation, we make a guess based on the server
    version:  It's probably safe to assume that 1.7 X servers will use
    fixed drivers and a recent enough version of pixman.

 AUTHORS                          |    1 +
 src/cairo-xcb-surface.c          |   15 +++++++++++++--
 src/cairo-xlib-display.c         |   15 +++++++++++----
 src/cairo-xlib-private.h         |    1 +
 src/cairo-xlib-surface-private.h |    1 +
 src/cairo-xlib-surface.c         |   21 ++++++++++++++++++---
 6 files changed, 45 insertions(+), 9 deletions(-)

commit 60aefd0d634c531353c92b77b36424b142efeb93
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 5 07:30:13 2009 +0100

    [configure] Bump pixman dependency.
    
    Reflect was only fixed in the 0.15 series, so require at least that
    version of pixman so we can that advantage of that and drop our
    workaround.

 configure.ac |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9d7a7e76b8bccc2517950976bb8557cd7b955a11
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 4 22:19:31 2009 +0100

    [scaled-font] Close race from 16d128
    
    Whilst waiting for the fontmap lock on destruction another thread may not
    only have resurrected the font but also destroyed it acquired the lock
    first and inserted into the holdovers before the first thread resumes. So
    check that the font is not already in the holdovers array before
    inserting.

 src/cairo-scaled-font-private.h |    6 +++---
 src/cairo-scaled-font.c         |   33 +++++++++++++++++++++++----------
 2 files changed, 26 insertions(+), 13 deletions(-)

commit f4d9a4482fa1bfa37783ca139e3716c8d8649f32
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 4 14:13:06 2009 +0100

    [pattern] Generalise the freed pattern pool
    
    Also cache recently freed surface and gradient patterns. With thanks to
    Jonathan Morton for the inspiration and initial pointer pool code for
    pixman.

 src/cairo-atomic-private.h     |    1 +
 src/cairo-mutex-list-private.h |    1 -
 src/cairo-pattern.c            |  170 ++++++++++++++++++++++++++--------------
 3 files changed, 112 insertions(+), 60 deletions(-)

commit 132f44dce1884c9beed8c5e6588140ee8fa9cfbe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 4 14:12:20 2009 +0100

    valgrindify init/fini routines
    
    Annotate object init/fini routines to detect use-after-free for
    on-stack/embedded objects.

 src/cairo-debug.c        |    2 -
 src/cairo-freelist.c     |    7 ------
 src/cairo-gstate.c       |    7 ++++++
 src/cairo-path-fixed.c   |   10 ++------
 src/cairo-pattern.c      |   49 +++++++++++++++++++++++++++++++++++++++++++++-
 src/cairo-pen.c          |    8 +++++-
 src/cairo-polygon.c      |    4 +++
 src/cairo-region.c       |    5 ++++
 src/cairo-stroke-style.c |    6 +++++
 src/cairo-traps.c        |    4 +++
 src/cairo.c              |    1 +
 src/cairoint.h           |    4 +++
 12 files changed, 88 insertions(+), 19 deletions(-)

commit e89828c5331579d0d4019b6339df09ba1e2aa32e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 21:52:02 2009 +0100

    [freelist] valgrindify freed blocks
    
    Mark freed blocks as unaccessible upon free() and then as undefined
    on alloc().

 src/cairo-freelist.c |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

commit 4e11d56f8e5f409ea2476315c9d67116b213b738
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 4 11:16:48 2009 +0100

    [perf] Update trace summary after each iteration
    
    Running the macro-benchmarks takes so long, feedback is important.

 perf/cairo-perf-trace.c |   29 ++++++++++++++++++++++++++++-
 perf/cairo-perf.h       |    1 +
 2 files changed, 29 insertions(+), 1 deletions(-)

commit 5c2e73e74cb9aef92fdd90a91df44b417a036ebd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 4 10:03:45 2009 +0100

    [perf] Enable traces to be interrupted
    
    Waiting for a long running benchmark can be very annoying, especially if
    you just want a rough-and-ready result. So hook into SIGINT and stop the
    current benchmark (after the end of the iteration) on the first ^C. A
    second ^C within the same iteration will kill the program as before.

 perf/cairo-perf-trace.c |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)

commit 2eaced24475622e73fbf6e3307ab46e3fe37eaef
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 21:49:17 2009 +0100

    [perf] Reconstruct interpreter for each run
    
    Destroy the interpreter after each run of a trace so that we collect any
    left-over garbage.

 perf/cairo-perf-trace.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

commit 1b92ea250fdaef9add1a68bb8565847e6d56b023
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 20:28:49 2009 +0100

    [ft] Don't call FT_Done_Face() on a face we do not own
    
    _font_map_release_face_lock_held() was being called unconditionally during
    _cairo_ft_font_reset_static_data(). This presents two problems. The first
    is that we call FT_Done_Face() on an object not owned by cairo, and the
    second is that the bookkeeping is then incorrect which will trigger an
    assert later.

 src/cairo-ft-font.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 8e5295979fe087fadeff0f56c036f9d002086996
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 20:17:59 2009 +0100

    [pattern] Typo in document
    
    Remove extraneous markup from program-listing.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=20441

 src/cairo-pattern.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit fa5d6c7afdb9b742ad653c65e8804e84f2964599
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 19:29:19 2009 +0100

    [trace] Add a --profile mode
    
    To save typing when creating macro-benchmarks --profile disables
    mark-dirty and caller-info and compresses the trace using LZMA. Not for
    computers short on memory!

 perf/README                     |   11 +++++++++--
 util/cairo-trace/cairo-trace.in |   18 ++++++++++++++++++
 2 files changed, 27 insertions(+), 2 deletions(-)

commit 9451f0b983665d13ad777bc8fd88507fb7a317b4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 13:26:52 2009 +0100

    [perf] Drop ticks from trace benchmarks
    
    Don't report the tick values for the macro-benchmarks as these are so
    large as to be meaningless.

 perf/cairo-perf-trace.c |   37 ++++++++++++++++++++-----------------
 1 files changed, 20 insertions(+), 17 deletions(-)

commit c988dc3719e345f6e1db6b0d656077a6b253b26d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 10:51:23 2009 +0100

    [cairo] Doc typo.
    
    Fix conflicting sentence as pointed out by
    https://bugs.freedesktop.org/show_bug.cgi?id=20183

 src/cairo.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

commit 35d0dd00c9f21cc4fd392d4627756f8d5b53a11b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 10:49:16 2009 +0100

    [image] Doc typo.
    
    Correct parameter reference as pointed out by
    https://bugs.freedesktop.org/show_bug.cgi?id=20182

 src/cairo-image-surface.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 58459ac6435a2889b90580ddf00e69107361f431
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 10:45:51 2009 +0100

    [font-options] Doc typo
    
    Remove duplicate 'with' as pointed out by
    https://bugs.freedesktop.org/show_bug.cgi?id=20180

 src/cairo-font-options.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 8d39dee8e2aea2200fec460e8540838ec29cae5f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 10:40:38 2009 +0100

    [cairo] Update documentation for bug 20154
    
    Several typographical errors were pointed out in
    https://bugs.freedesktop.org/show_bug.cgi?id=20154

 src/cairo.c |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

commit 73469e693c02e6a99a32f12ac333737b47408e5e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 09:51:52 2009 +0100

    [cairo] Tweak error strings.
    
    Rewrite a few error strings so that they more closer match the
    documentation. Where they differ, I believe I have chosen the more
    informative combination of the two texts.

 src/cairo-misc.c |   12 ++++++------
 src/cairo.h      |    4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)

commit ab86662ab499e1f29c0f8c4248771e730c281e3f
Author: Andrew Lavin <aj.lavin@gmail.com>
Date:   Fri May 22 16:36:40 2009 -0400

    [test] Compile fix for invalid-matrix
    
    Fixed test compile error on OS X that caused fenv.h not to be included.

 test/invalid-matrix.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit eec547648439884a464eef832067a363cf1547e2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 3 08:57:15 2009 +0100

    [perf] s/git/anongit/
    
    Third time lucky?

 perf/cairo-perf-trace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ce7e6339428703069f798dffcf23ec3e98cb554f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 21:54:44 2009 +0100

    [perf] Warn if no traces were found

 perf/cairo-perf-trace.c |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

commit f0366f0f3263397181699bf6bf2ed3968ea66403
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 21:48:26 2009 +0100

    [perf] Update to point to new toplevel cairo-traces repo

 perf/cairo-perf-trace.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit c9cd2f9ca101c25d04f52578d54be36ae646049e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 18:47:07 2009 +0100

    [cairo] PLT symbols for cairo_set_source_rgb
    
    Added a private use in user-font, but forgot to add a hidden symbol.

 src/cairo.c    |    1 +
 src/cairoint.h |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

commit 21550a753059b4f880f03ea96148befaa34a6426
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 18:08:45 2009 +0100

    [user-font] Set the initial colour to white
    
    An issue occured when using subpixel antialiasing with user-fonts and
    XRender - the glyphs were transparent, as demonstrated by the font-view
    example.
    
    The problem lies in that enabling subpixel antialiasing triggers use of an
    ARGB32 image surface for rendering the glyph, but the default colour is
    black (so the only information is in the alpha-channel). Given an ARGB32
    glyph XRender treats it as a per-channel mask, but since the R,G,B
    channels were uniformly zero, the glyph is rendered as transparent.
    
    Fix this by setting the initial colour to white before rendering the image
    surface for a user-font glyph, which generates the appropiate gray-level
    mask by default.

 src/cairo-user-font.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit b5799e073e4e404aea277b7640eeee2120318823
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 18:07:31 2009 +0100

    [xlib] Use bswap_32
    
    Byteswap the ARGB32 glyphs using bswap_32 instead of open-coding.

 src/cairo-xlib-surface.c |   30 +++++++++++-------------------
 1 files changed, 11 insertions(+), 19 deletions(-)

commit 56e9765f82a64940b36a64688267fbe5d1c8919e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 14:25:04 2009 +0000

    [util] Add font-view
    
    A C variant of Behdad's python example font viewer.

 util/Makefile.am |    5 ++
 util/font-view.c |  184 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 189 insertions(+), 0 deletions(-)

commit d331dda48017667c15f95bf7d510bce2f38111de
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 15:41:19 2009 +0100

    [perf] Missing ')' in output

 perf/cairo-perf-compare-backends.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit c9ddaf8e7f0006f308aab0b87cf0425b2690d914
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Sep 7 13:09:09 2008 +0930

    PDF: Don't embed the same pattern more than once
    
    The PDF surface now keeps track of all the patterns it is embedding in
    a hash table keyed by the unique_id returned by the
    _cairo_surface_get_unique_id().

 src/cairo-pdf-surface-private.h |   13 +++-
 src/cairo-pdf-surface.c         |  134 ++++++++++++++++++++++++++++++---------
 2 files changed, 115 insertions(+), 32 deletions(-)

commit f7613eeecea1218d353a183078fb77bc5cf4e72e
Author: Paolo Bonzini <bonzini@gnu.org>
Date:   Tue Nov 25 20:15:15 2008 +0100

    Add more surface snapshots providers
    
    This patch adds more implementation of the snapshot method.  For
    surface types where acquire_source_image is already making a copy
    of the bits, doing another one as is the case for the fallback
    implementation is a waste.

 src/cairo-glitz-surface.c  |   16 +++++++++++++++-
 src/cairo-quartz-surface.c |   19 ++++++++++++++++++-
 src/cairo-xcb-surface.c    |   17 ++++++++++++++++-
 src/cairo-xlib-surface.c   |   20 +++++++++++++++++++-
 4 files changed, 68 insertions(+), 4 deletions(-)

commit cffb398f5a484000be458d04ef8f8bce3f6c7e3d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 26 21:07:07 2009 +0100

    Add a generic cow-snapshotting framework
    
    Provide a mechanism for backends to attach and remove snapshots. This can
    be used by backends to provide a cache for _cairo_surface_clone_similar(),
    or by the meta-surfaces to only emit a single pattern for each unique
    snapshot.
    
    In order to prevent stale data being returned upon a snapshot operation,
    if the surface is modified (via the 5 high level operations, and on
    notification of external modification) we break the association with any
    current snapshot of the surface and thus preserve the current data for
    their use.

 src/cairo-meta-surface.c     |    1 -
 src/cairo-surface-fallback.c |    2 +-
 src/cairo-surface-private.h  |    7 +-
 src/cairo-surface.c          |  272 ++++++++++++++++++++++++++++++++----------
 src/cairoint.h               |   12 ++
 test/mask.c                  |   12 ++-
 test/trap-clip.c             |   12 ++-
 7 files changed, 249 insertions(+), 69 deletions(-)

commit 7ed050fd435f17d25c7b757b02cfe200f8779fc2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 13:08:25 2009 +0100

    [perf] Benchmark traces
    
    Add a variant of cairo-perf that measures the time to replay traces.

 boilerplate/cairo-boilerplate-system.c |   15 +
 boilerplate/cairo-boilerplate-system.h |    4 +
 perf/.gitignore                        |    1 +
 perf/Makefile.am                       |   17 +
 perf/README                            |   31 ++
 perf/cairo-perf-compare-backends.c     |   10 +-
 perf/cairo-perf-trace.c                |  530 ++++++++++++++++++++++++++++++++
 7 files changed, 605 insertions(+), 3 deletions(-)

commit 403f780b292762aa45056c2fb5a48bb806521173
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 09:16:16 2009 +0100

    [perf] Add a verbose flag for summary output with raw
    
    Use 'cairo-perf -v -r' to have both the summary output along with the raw
    values. This gives a progress report whilst benchmarking, very reassuring
    with long running tests.

 perf/cairo-perf.c |   82 +++++++++++++++++++++++++++++++++-------------------
 perf/cairo-perf.h |    3 ++
 2 files changed, 55 insertions(+), 30 deletions(-)

commit 70fd2bbce38fca65db6725c632ee591352dfe42c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 2 09:00:21 2009 +0100

    [perf] Exclude similar testing by default
    
    There are synchronisation issues with similar surfaces (as only the
    original target surface is synced) which interferes with making
    performance comparisons. (There still maybe some value should you be aware
    of the limitations...)

 perf/cairo-perf.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit bc49cb377c70c4c6926ca52e34094e99a4591f14
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat May 30 12:28:23 2009 +0100

    [perf] Benchmark mixing different masks and sources

 perf/Makefile.am  |    1 +
 perf/cairo-perf.c |    1 +
 perf/cairo-perf.h |    1 +
 perf/mask.c       |  290 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 293 insertions(+), 0 deletions(-)

commit 4aca84ddb22bc178cbc9b132b9ce06af3f4b300b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 28 18:05:26 2009 +0100

    [perf] Add a pure glyphs performance metric
    
    Use the new API Behdad exposed in 1.8 to precompute a glyph string using
    Cairo and then benchmark cairo_show_glyphs(). This is then equivalent to
    the text benchmark but without the extra step of converting to glyphs on
    every call to cairo_show_text() i.e. it shows the underlying glyph
    rendering performance.

 perf/Makefile.am  |    1 +
 perf/cairo-perf.c |    1 +
 perf/cairo-perf.h |    1 +
 perf/glyphs.c     |   97 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 100 insertions(+), 0 deletions(-)

commit 55f4e0e4e8c7df59bfc9e6ffea8daa065276e42f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat May 30 16:50:17 2009 +0100

    [perf] Change seperators from '-' to '.'
    
    This allows the perf tests to use '-' in the name which is easier to read
    and differentiates with using '_' to separate source and operators.

 perf/cairo-perf-compare-backends.c |   22 ++++++++++++----------
 perf/cairo-perf-cover.c            |   32 ++++++++++++++++----------------
 perf/cairo-perf-report.c           |   16 +++++++++++++---
 perf/cairo-perf.c                  |    8 ++++----
 perf/mosaic.c                      |    8 ++++----
 perf/pattern_create_radial.c       |    4 ++--
 perf/pythagoras-tree.c             |    2 +-
 perf/subimage_copy.c               |    4 ++--
 perf/unaligned-clip.c              |    2 +-
 perf/world-map.c                   |    4 ++--
 perf/zrusin.c                      |    4 ++--
 11 files changed, 59 insertions(+), 47 deletions(-)

commit b7c03d4e400245fc2b2d748fe808a9724e61f22f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 27 16:31:51 2009 +0100

    [ps] Trivial warning fix.

 src/cairo-ps-surface.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 99482b17a50a8ae52b7627bf624e358ed3623540
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 27 18:34:54 2009 +0100

    [script] Improve caching of glyph advance
    
    The glyph advance cache was only enabled for glyph indices < 256,
    causing a large number of misses for non-ASCII text. Improve this by
    simply applying the modulus of the index to select the cache slot - which
    may cause some glyph advances to be overwritten and re-queried, but
    improves the hit rate.

 util/cairo-script/cairo-script-operators.c |   39 ++++++++++------------------
 1 files changed, 14 insertions(+), 25 deletions(-)

commit 51193f1610c0f6893768e43e90a3395ec96c28fb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 28 14:16:58 2009 +0100

    [pattern] Pass flags to _cairo_pattern_acquire_surface()
    
    Allow the caller to choose whether or not various conversions take place.
    The first flag is used to disable the expansion of reflected patterns into a
    repeating surface.

 src/cairo-directfb-surface.c |    1 +
 src/cairo-glitz-surface.c    |    1 +
 src/cairo-image-surface.c    |    3 +++
 src/cairo-pattern.c          |   13 +++++++++++--
 src/cairo-xcb-surface.c      |    4 ++++
 src/cairo-xlib-surface.c     |    5 +++++
 src/cairoint.h               |    6 ++++++
 7 files changed, 31 insertions(+), 2 deletions(-)

commit 4ec451a2fa4050a60a81d01473d23ff2973f47e6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 27 17:35:54 2009 +0100

    [scaled-font] Cache repeated glyphs during probing device_extents
    
    Maintain a local on-stack cache of recently queried glyphs to avoid
    relatively expensive hash table queries.

 src/cairo-scaled-font.c |   35 +++++++++++++++++++++++------------
 1 files changed, 23 insertions(+), 12 deletions(-)

commit ec22ae5b1d7e8ec364813f3b1c73f538018ecb57
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 27 11:11:06 2009 +0100

    [scaled-font] Compare most recently used font directly
    
    Avoid the relatively expensive _cairo_scaled_font_init_key() operation
    when checking against the most recently used font.

 src/cairo-scaled-font.c |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

commit 16d128c15edf36a6e285fe4fbd6a828b64fd7f87
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 27 21:10:04 2009 +0100

    [scaled-font] Lazily acquire the font_map_lock on font destruction.
    
    We can defer taking the cairo_scaled_font_map_lock until we drop the
    last reference to the scaled font so long as we double check the reference
    count after waiting for the lock and not making assumptions about
    unreferenced fonts during construction. This is significant as even
    acquiring the uncontended cairo_scaled_font_map_lock during
    cairo_scaled_font_destroy() was showing up as a couple of percent on text
    heavy profiles (e.g. gnome-terminal).

 src/cairo-scaled-font.c |   32 +++++++++++++++++---------------
 1 files changed, 17 insertions(+), 15 deletions(-)

commit dc083ab30a5b781e205354c525ee054982364abd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 27 14:54:34 2009 +0100

    [cairo] Track the MRU scaled font
    
    When observing applications two patterns emerge. The first is due to
    Pango, which wraps each glyph run within a context save/restore. This
    causes the scaled font to be evicted after every run and reloaded on the
    next. This is caught by the MRU slot on the cairo_scaled_font_map and
    prevents a relatively costly traversal of the hash table and holdovers.
    
    The second pattern is by applications that directly manage the rendering
    of their own glyphs. The prime example of this is gnome-terminal/vte. Here
    the application frequently alternates between a few scaled fonts - which
    requires a hash table retrieval every time.
    
    By introducing a MRU slot on the gstate we are able to directly recover
    the scaled font around 90% of the time.
    
    Of 110,000 set-scaled-fonts:
      4,000 were setting the current font
     96,000 were setting to the previous font
      2,500 were recovered from the MRU on the cairo_scaled_font_map
      7,500 needed a hash retrieval
    which compares to ~106,000 hash lookups without the additional MRU slot on
    the gstate.
    
    This translates to an elapsed time saving of ~5% when replaying a
    gnome-terminal trace using the drm backend.

 src/cairo-gstate-private.h |    1 +
 src/cairo-gstate.c         |   18 ++++++++++++++----
 src/cairo.c                |    6 ++++++
 3 files changed, 21 insertions(+), 4 deletions(-)

commit fda89c56ff484a8cd33cd780e8b9396d3538284d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 27 15:59:16 2009 +0100

    Markup a few more functions as const/pure

 src/cairoint.h |   59 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 31 insertions(+), 28 deletions(-)

commit e05097c604c607d27b341cd33426001bd2d1f690
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 27 16:45:20 2009 +0100

    [surface] Assign a unique id to the surface.
    
    Allocate an ever-increasing, non-zero, unique identifier to each surface.
    True for the first 4-billion...

 src/cairo-pattern.c         |   11 ++++++++---
 src/cairo-surface-private.h |    2 ++
 src/cairo-surface.c         |   25 +++++++++++++++++++++++++
 3 files changed, 35 insertions(+), 3 deletions(-)

commit 45835f623f5ddda6e3258361b9d6ab27860a9198
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 26 12:46:46 2009 +0100

    [cache] Expose init/fini methods so that caches can be embedded.
    
    The structure is already exposed, so just expose the
    constructors/destructors in order to enable caches to be embedded and
    remove a superfluous malloc.

 src/cairo-cache-private.h |   27 +++++++++---
 src/cairo-cache.c         |  110 +++++++++++++++-----------------------------
 src/cairo-scaled-font.c   |   35 +++++++-------
 src/cairo-types-private.h |   14 ------
 4 files changed, 77 insertions(+), 109 deletions(-)

commit c3aac9cf49362b726a54a33a46bd8511a10f644f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 26 10:37:30 2009 +0100

    [image] Eliminate trapezoid array allocation
    
    By simply iterating over the array cairo_trapezoid_t, converting each one
    separately to a pixman_trapezoid_t and rasterizing each one individually
    we can avoid the common heap allocation. pixman performs exactly the same
    iteration internally so there is no efficiency loss.

 src/cairo-image-surface.c |   92 ++++++++++++++++++++++-----------------------
 1 files changed, 45 insertions(+), 47 deletions(-)

commit 7b2bc441387abcf3967587f571dc5741d0a53938
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 26 10:41:53 2009 +0100

    [surface-fallback] Tidy pattern handling.
    
    Make the treatment of replacing the NULL source pattern with WHITE
    consistent. As it is a solid pattern, we can skip _cairo_pattern_fini()
    and so make the code more readable, and consistent along the error paths.

 src/cairo-surface-fallback.c |   83 +++++++++++++++++-------------------------
 1 files changed, 33 insertions(+), 50 deletions(-)

commit e83e113eae9e7cb3e09719bfc0ad68450faf3ecd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 23:25:38 2009 +0100

    [surface] Speed up cairo_surface_get_mime_data().
    
    The number of mime-types attached to a surface is usually small,
    typically zero. Therefore it is quicker to do a strcmp() against
    each key in the private mime-data array than it is to intern the
    string (i.e. compute a hash, search the hash table, and do a final
    strcmp).

 src/cairo-array.c   |    8 --------
 src/cairo-surface.c |   33 ++++++++++++++++++---------------
 src/cairoint.h      |    6 ++++++
 3 files changed, 24 insertions(+), 23 deletions(-)

commit 247e76b923d54f639e2ca50c8da945c15b691158
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 26 08:53:45 2009 +0100

    [script] Speed up floating-point scanner
    
    Hard-code frequent exponents to reduce number of calls to pow().

 util/cairo-script/cairo-script-scanner.c |   45 ++++++++++++++++++++---------
 1 files changed, 31 insertions(+), 14 deletions(-)

commit c5e85835b29c7654e1c28a90b2e587afba7b6f0f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 26 15:52:30 2009 +0100

    [debug] Relax ASSERT_NOT_REACHED
    
    Need to actually handle random pixman image formats...
    For the time being, ignore them.

 src/cairo-debug.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 4232719af968ed05636fe34f2ffe2520dc02d737
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat May 30 23:03:55 2009 -0400

    [ft] Fix vertical advance metrics of bitmap fonts (#21985)

 src/cairo-ft-font.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 4314cae874dec2747df6be88859d7b6174eece31
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed May 27 17:56:05 2009 +0930

    Fix typo in comment

 src/cairo-truetype-subset.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7dbc2fe80a4fe0dcee4a293e47ab6edcefc24e18
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 20:36:34 2009 +0100

    [script] Simplify _dictionary_name_equal
    
    Just a simple return TRUE since all necessary checking is performed by
    _csi_hash_table_lookup().

 util/cairo-script/cairo-script-objects.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

commit 0b5e92e66be94ce7cc9c31e911f23c4cb7ec77af
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 19:56:57 2009 +0100

    [script] Check hash value between comparing keys

 util/cairo-script/cairo-script-hash.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

commit a364f71194aa2ea92071662f156c9b2a4d9211b4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 21:25:27 2009 +0100

    [trace] Set output location using pwd
    
    Record the current working directory and pass that along to cairo-trace so
    that the trace output is local to the user and not the application. This
    is vital if the application is called via a script that changes directory.

 util/cairo-trace/cairo-trace.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit a76e09ea656faa63fbfa159e8f52c9c9ec7d35c6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 21:22:43 2009 +0100

    [trace] Missing newlines in error messages.

 util/cairo-trace/trace.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit b7f199fde25c960bf87302d5e868a7c2dffa4f5d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 12:40:35 2009 +0100

    [pattern] Trim REPEAT source size when applicable.
    
    Some backends are quite constrained with surface sizes and so trigger
    fallbacks when asked to clone large images. To avoid this we attempt
    to trim ROIs (as these are often limited to the destination image, and
    so can be accommodated by the hardware). This patch allows trimming
    REPEAT sources both horizontally and vertically independently.

 src/cairo-pattern.c |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)

commit e4efc80b8e89b05afc22d74f984f4ec9012bc39b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 21:15:22 2009 +0100

    [build] Make valgrind support user-configurable
    
    As the number of places where we add valgrind client requests grows, it
    becomes imperative that we should be able to disable them with a simple
    configure time option.

 build/configure.ac.analysis |   37 ++++++++++++++++++++++---------------
 1 files changed, 22 insertions(+), 15 deletions(-)

commit d840deb57b51236820dc8c320ecd7540973de873
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 22:11:22 2009 +0100

    [in-fill] Fix typo in on-vertex test.
    
    Eeek! Comparing point->y against in_fill->x is a bad idea.

 src/cairo-path-in-fill.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit cfd484cd01a77b1f91e27daccfc5f240cf7c692d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 25 22:10:20 2009 +0100

    [test] Change test semantics to match new in-fill definition
    
    The in-fill definition has changed to include queries on the edges and
    vertices, so update the test case to match.

 test/in-fill-trapezoid.c |   77 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 57 insertions(+), 20 deletions(-)

commit b71b019fe50a9188ddbecd1945606da8ba3bad53
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 27 16:32:21 2009 +0000

    [in-fill] Treat on-edge queries as inside.
    
    Jeff Muizelaar noted that the treatment of edges differed with firefox's
    canvas definition, which considers a point on any edge as inside. The
    current implementation has a similar definition to that of flash, for
    which the top and right edges are outside. Arguably, firefox has the more
    intuitive definition here...

 src/cairo-path-in-fill.c |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

commit efd0f0b2922d0801e4e0e8e75ddf9b9892a2f2e6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 20 18:49:28 2009 +0100

    [xlib] Handle too-large images gracefully.
    
    Trigger a fallback to an image surface for massive patterns.

 src/cairo-xlib-surface.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 3c6838532a62c294e7f18b13b0b7f8da9a1a1e1e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 20 18:46:35 2009 +0100

    [surface] Early return if the backend cannot clone an image
    
    If the backend cannot create a similar surface to hold the image, then
    report back the failure before embarking upon an infinite recursion.
    The UNSUPPORTED return should percolate up through the call stack and
    trigger a fallback.

 src/cairo-surface.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit bf2c7356d4c955fb770863874a0ea111e9ba02a4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 22 12:52:43 2009 +0100

    [surface] Provide nil-surface for INVALID_SIZE
    
    So that we can faithfully report back failure if the user tries to create
    a surface larger than the backend can support.

 src/cairo-surface.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 6717f0d748000416172057d0aab2471377456e27
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 20 17:35:19 2009 +0100

    [win32] Wrap win32-font usage with CAIRO_HAS_WIN32_FONT
    
    Bug 19251: --enable-win32=yes and --enable-win32-font=no causes
    compilation failure
    [https://bugs.freedesktop.org/show_bug.cgi?id=19251]
    
    Wrap use of the win32 font backend within win32-printing-surface within
    CAIRO_HAS_WIN32_FONT ifdefs to prevent compilation failure if the user
    explicitly disables the win32 font backend.

 src/cairo-win32-printing-surface.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit c7d2b0de830f4c653fbb5016c4efdc5f0e5af0eb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 20 17:34:56 2009 +0100

    [win32] Typo
    
    Correct function name in error string.

 src/cairo-win32-printing-surface.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 6e87e354e42d1a758a252533407e6e1829638544
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun May 17 18:14:28 2009 +0930

    Correct the comment for the index_to_ucs4 font backend function

 src/cairoint.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 2a34992cccfd77c2acf30fe851311f16137ba32f
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun May 17 18:12:39 2009 +0930

    Ensure win32 font index_to_ucs4() sets ucs4 to -1 if lookup fails

 src/cairo-win32-font.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 4c8e5485a10478c19e8a6cb48595473f5bb8ee8a
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun May 17 18:05:42 2009 +0930

    Fix win32 build breakage
    
    that was caused by c25992479aca481d326f72665ebdcf0904273eac

 src/cairo-win32-private.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 31596cf2b298054bbd3e340ae77a3388eadc0d8b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 15 17:40:26 2009 +0100

    [debug] Check image contents using memcheck.
    
    As an aide to tracking down the source of uninitialised reads, run
    VALGRIND_CHECK_MEM_IS_DEFINED() over the contents of image surfaces at the
    boundary between backends, e.g. upon setting a glyph image or acquiring
    a source image.

 src/cairo-debug.c       |   42 ++++++++++++++++++++++++++++++++++++++++++
 src/cairo-ft-font.c     |    2 ++
 src/cairo-pattern.c     |    2 ++
 src/cairo-png.c         |    2 ++
 src/cairo-scaled-font.c |    3 +++
 src/cairo-surface.c     |   32 +++++++++++++++++++++++---------
 src/cairoint.h          |   11 +++++++++++
 7 files changed, 85 insertions(+), 9 deletions(-)

commit 791a6fa399894e735d522781b15b7f18c3ecd4d1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 15 16:57:49 2009 +0100

    [memfault] Update macros to avoid namescape collision with memcheck
    
    Basing the macro names of the memfault skin lead to a namespace
    collision with memcheck. After updating the headers, update cairo's usage
    to match.

 src/cairo-malloc-private.h |    2 +-
 test/cairo-test.c          |   62 ++++++++++++++++++++++----------------------
 2 files changed, 32 insertions(+), 32 deletions(-)

commit c897f36a6b09f3591d858142e3236f256f0bd6a2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 15 20:37:52 2009 +0100

    [test] Stress the ft from-face cache
    
    Create a set of font faces using the same FT_Face to stress test the
    handling of from-face fonts within the backend cache.

 test/ft-font-create-for-ft-face.c |  109 ++++++++++++++++++++++++++++++++++---
 1 files changed, 102 insertions(+), 7 deletions(-)

commit 477df1f5504a507d0c5960aa7e21375284a6f99c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 15 10:48:56 2009 +0100

    [test] Clear expected floating point exceptions
    
    test/invalid-matrix deliberately feeds garbage into the API to test our
    error detection. This causes FPE to be raised during the course of the
    test - so they are deliberately disable for the duration. However, the
    exceptions were not being cleared and so the FPE could be triggered on
    the next floating point operation. This was being masked during make check,
    by the fact that each test is run in its own forked process and was only
    observed when multiple tests were run in foreground mode.

 build/configure.ac.system |    2 +-
 test/invalid-matrix.c     |    4 ++++
 2 files changed, 5 insertions(+), 1 deletions(-)

commit f47a93ef30249b531e588335045d052c3dcc71bd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat May 9 09:55:49 2009 +0100

    [test] Check text->path with user-fonts (twin)
    
    Check behaviour of user-fonts, twin in particular, when using the text as
    a path.

 test/twin.c           |   11 ++++++++++-
 test/twin.ps.ref.png  |  Bin 1114 -> 2197 bytes
 test/twin.ref.png     |  Bin 1492 -> 4038 bytes
 test/twin.svg.ref.png |  Bin 1487 -> 3027 bytes
 4 files changed, 10 insertions(+), 1 deletions(-)

commit 669e7ae5c98812360bf20b798c20024ae2e9810b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 8 17:36:01 2009 +0100

    [test] Relax APPROX_EQUALS condition
    
    The bounding box of the text is rounded to the nearest pixel boundaries,
    so therefore the test must accept a similar level of imprecision.

 test/get-path-extents.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit fe7410c6cdc19bb366bf1e93481bf8287a14d52e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat May 9 19:01:06 2009 +0100

    [test] Add a note to "Getting the elusive zero failures"
    
    The test suite depends upon many external factors and in order to achieve
    a pass, your system must match that upon which the reference images were
    generated. Add a note to read test/README in case of failures so that the
    casual user is not unduly alarmed by cairo reportedly failing.

 test/cairo-test-runner.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

commit 2f962799a77faef0e6ad62c79bd7eebc9b8c5a4b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 15 18:49:03 2009 +0100

    [test] Fix typos that excluded backend test sources

 test/Makefile.am |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit c25992479aca481d326f72665ebdcf0904273eac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat May 9 10:10:14 2009 +0100

    [xlib] Use minimal depth for similar clones.
    
    Damian Frank noted
    [http://lists.cairographics.org/archives/cairo/2009-May/017095.html]
    a performance problem with an older XServer with an
    unaccelerated composite - similar problems will be seen with non-XRender
    servers which will trigger extraneous fallbacks. The problem he found was
    that painting an ARGB32 image onto an RGB24 destination window (using
    SOURCE) was going via the RENDER protocol and not core. He was able to
    demonstrate that this could be worked around by declaring the pixel data as
    an RGB24 image. The issue is that the image is uploaded into a temporary
    pixmap of matching depth (i.e. 32 bit for ARGB32 and 24 bit for RGB23
    data), however the core protocol can only blit between Drawables of
    matching depth - so without the work-around the Drawables are mismatched
    and we either need to use RENDER or fallback.
    
    This patch adds a content mask to _cairo_surface_clone_similar() to
    provide the extra bit of information to the backends for when it is
    possible for them to drop channels from the clone. This is used by the
    xlib backend to only create a 24 bit source when blitting to a Window.

 src/cairo-clip.c                     |    1 +
 src/cairo-directfb-surface.c         |    2 +
 src/cairo-glitz-surface.c            |    3 ++
 src/cairo-image-surface.c            |    4 +++
 src/cairo-pattern.c                  |   18 ++++++++++++--
 src/cairo-quartz-surface.c           |    1 +
 src/cairo-surface-fallback-private.h |    1 +
 src/cairo-surface-fallback.c         |    3 +-
 src/cairo-surface.c                  |    7 +++++-
 src/cairo-win32-surface.c            |    3 +-
 src/cairo-xcb-surface.c              |    5 ++++
 src/cairo-xlib-surface.c             |   42 +++++++++++++++++++++++++--------
 src/cairoint.h                       |    4 +++
 src/test-fallback-surface.c          |    1 +
 src/test-fallback16-surface.c        |    2 +
 test/surface-source.c                |    1 +
 16 files changed, 82 insertions(+), 16 deletions(-)

commit 0238fe2cafea2e1ed19bb222117bd73ee6898d4d
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Thu May 14 11:46:29 2009 +0100

    [ft] Resolve mutual referencing problems with zombie faces
    
    Bug 21706 -- zombie ft_font_face / ft_unscaled_font mutual
                 referencing problems
    [http://bugs.freedesktop.org/show_bug.cgi?id=21706]
    
    There can be more than one zombie font_face belonging to an unscaled_font,
    but only the first is destroyed.  This leaks the client's FT_Face
    (and associated font data) as release of the FT_Face depends on release
    of the font_face.
    
    (The reason why Firefox ends up with two different font_faces for one
    unscaled_font is that load_flags for faces with artificial oblique have
    FT_LOAD_NO_BITMAP set.
    https://bugzilla.mozilla.org/show_bug.cgi?id=486974)
    
    Also it's possible for _cairo_ft_font_face_create to pull out a zombie
    font_face from the unscaled_font, which would crash
    _cairo_ft_font_face_scaled_font_create, as that expects non-null
    font_face->unscaled (if !font-face->pattern).

 AUTHORS             |    2 +-
 src/cairo-ft-font.c |   38 ++++++++++++++++++++++++++++++--------
 2 files changed, 31 insertions(+), 9 deletions(-)

commit d6f6ec9082c86b9fd9e2389b9627f08a91c2cdd3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 8 16:43:43 2009 +0100

    [ft] Restore the ability to lazily resolve patterns.
    
    I broke the ability for the ft font backend to resolve patterns whilst
    fixing the font creation to propagate the error status from fontconfig
    (be27e8). By adjusting the sequence of error checks we do not confuse
    the absence of a match with a fatal error and thereby restoring the
    lazy pattern resolution whilst ensuring error propagation.

 src/cairo-ft-font.c |   32 +++++++++++++++++---------------
 1 files changed, 17 insertions(+), 15 deletions(-)

commit a352fd46020e18f9d9f839f0c3f3a63c1d8c0ae1
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Fri May 15 15:34:05 2009 -0400

    Only include <strings.h> for ffs() when we HAVE_FFS
    
    This fixes breakage caused by 3d3d10a31e04498ef91a288d89b3dec291bfc323

 src/cairo-skiplist.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 088d2a6cc70b01f55d178d235542247180b3e5ee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 11:35:17 2009 +0100

    [doc] Update identifiers

 doc/public/tmpl/cairo-status.sgml |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit d8fb6a03d3034cf776687bcc1f0625a8a9f2ae07
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 14:57:13 2009 +0100

    [path] Define _BSD_SOURCE to enable hypot()
    
    hypot() is only declared for BSD/SVID/XOPEN/C99 sources. Choose BSD as
    we've used that elsewhere.

 src/cairo-path-stroke.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit e38f85c5de51016b8858e755e2752816c9995ab2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 14:42:15 2009 +0100

    [script] Pedantic violations
    
    Fixup a few trivial errors with -pedantic.

 util/cairo-script/cairo-script-operators.c |    2 +-
 util/cairo-script/cairo-script-private.h   |    8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 0c00556990a842e0ee0056134c6e196c2fb372b7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 14:11:12 2009 +0100

    [script] Missing include for INT32_MAX
    
    Avoid depending upon stdint.h, or rather cut'n'pasting Cairo's portable
    defines, by using INT_MAX and limits.h instead.

 util/cairo-script/cairo-script-file.c      |    3 ++-
 util/cairo-script/cairo-script-objects.c   |    3 ++-
 util/cairo-script/cairo-script-operators.c |   13 +++++++------
 util/cairo-script/cairo-script-scanner.c   |    5 +++--
 util/cairo-script/cairo-script-stack.c     |    7 ++++---
 5 files changed, 18 insertions(+), 13 deletions(-)

commit 3d3d10a31e04498ef91a288d89b3dec291bfc323
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 14:10:47 2009 +0100

    [skiplist] Missing include for ffs()

 src/cairo-skiplist.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit e5752865ab0ebefec313ab9a6f90451ef2d7af95
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 14:58:45 2009 +0100

    [cairo] Protect typeof against -ansi
    
    s/typeof/__typeof__/ to allow the [gcc-specific] macro to continue to work
    despite -ansi.

 src/cairoint.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5f4f2ab01ab3fa6b07ac7521dfeaf90a787a5dee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 14:34:47 2009 +0100

    [cairo] Remove stray semi-colon
    
    Pedantic finds another victim.

 src/cairoint.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit d86ad461cf7a9d857bd07a6b775c84acbf35647b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 14:16:05 2009 +0100

    [cairo] Convert C99 comments to /* ... */
    
    First victim of -pedantic...

 src/cairoint.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 695f648607dd5a78cf29dcc33ed19aa223d0416a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 11:16:10 2009 +0100

    [cairo] Fix errors reported by check-doc
    
    Identity a few new instances of CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED in
    comments with %.

 src/cairo.h |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 849bdee199b5ebba467603a69d30bb519c10bc75
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 11:36:38 2009 +0100

    [check] Quieten output during checking headers-standalone
    
    Remove the duplication of the compile line and enable shave to replace it
    entirely with a "CHECK $header". This should make errors more obvious.

 build/shave.in           |    3 +++
 src/Makefile.am.analysis |    2 +-
 2 files changed, 4 insertions(+), 1 deletions(-)

commit 84fad4b11bc26cfd0847660e3309eb902d783713
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 11:31:22 2009 +0100

    [build] Fix gtk-doc interoperation with shave
    
    Add --tag=CC to the libtool invocations.

 build/Makefile.am.gtk-doc |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit fd72c56af833a738ddc8f188cabe03d9f8b45475
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 7 11:27:43 2009 +0100

    [build] Report status of gtk-doc in summary

 build/configure.ac.features |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 428fb58a4c96391f96f48026be49a4533cd12834
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Apr 28 15:03:53 2009 -0400

    [user-font] Add CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED
    
    This is useful for language bindings to signal that a method is not
    implemented.

 src/cairo-misc.c      |    2 ++
 src/cairo-surface.c   |    1 +
 src/cairo-user-font.c |   14 +++++++++++---
 src/cairo.h           |   23 ++++++++++++++---------
 4 files changed, 28 insertions(+), 12 deletions(-)

commit f9573d03dde2c38674d36b783044715ab5104b0a
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Mar 17 19:48:12 2009 -0400

    Err, make gtk-doc happy again

 doc/public/tmpl/cairo-status.sgml |    2 +-
 src/cairo.h                       |    2 --
 2 files changed, 1 insertions(+), 3 deletions(-)

commit 30735f790aa3cef822f132932f43a4738cd8cd95
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 5 18:37:25 2009 +0100

    [xlib] Use a similar content surface for cloning images
    
    Simply request a surface with a similar content to the source image when
    uploading pixel data. Failing to do so prevents using a 16-bit (or
    otherwise non-standard pixman image format) window as a source - in fact
    it will trigger an infinite recursion.

 src/cairo-xlib-surface.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

commit 60e38d0530443aa9c78e74e47ba5574887ae220c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 5 17:05:39 2009 +0100

    [surface] Convert FORMAT_INVALID during snapshots
    
    Currently the surface snapshotting attempts to clone the source using a
    new surface of identical format. This will raise an error if the source is
    an unusual xserver, for example one operating at 16bpp. The solution to
    this is to create the surface using the content type rather than the
    format (as elsewhere within the code base). However, we also wish to
    preserve FORMAT_A1 (which is lost if we only choose the format based on
    _cairo_format_from_content) as the various backends may be able to
    trivially special case such bitmaps.

 src/cairo-surface-fallback.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

commit 31f5a2e94d669b9d2785de944d4aee584fd1d76e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 5 15:52:55 2009 +0100

    [png] Coerce FORMAT_INVALID to a known image format
    
    It is possible for cairo_surface_write_to_png() to acquire a non-standard
    image surface when, for example, we try to dump a low bit-depth XServer.
    Handle this scenario by coercing the unknown image format to a standard
    type via pixman.

 src/cairo-png.c |   44 ++++++++++++++++++++++++++++++--------------
 1 files changed, 30 insertions(+), 14 deletions(-)

commit c488b336449a1a7ca4d3f90785afeec9e21784c3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 5 13:59:07 2009 +0100

    [test] Create a new fallback surface to exercise 16-bit paths.
    
    Add a variation of test-fallback-surface that forces the use of a 16-bit
    pixman format code instead of the standard 32-bit types. This creates an
    image surface akin to the fallbacks used with low bit-depth xservers.

 .../cairo-boilerplate-test-surfaces-private.h      |   11 +
 boilerplate/cairo-boilerplate-test-surfaces.c      |   16 ++
 boilerplate/cairo-boilerplate.c                    |   18 ++
 src/Makefile.sources                               |    2 +
 src/test-fallback16-surface.c                      |  234 ++++++++++++++++++++
 src/test-fallback16-surface.h                      |   52 +++++
 test/Makefile.am                                   |    4 +
 test/Makefile.sources                              |    3 +
 test/test-fallback16-surface-source.c              |   43 ++++
 test/test-fallback16-surface-source.ref.png        |  Bin 0 -> 268 bytes
 10 files changed, 383 insertions(+), 0 deletions(-)

commit 1d609d672273da494fd596606b59ab1c0010ae6d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 5 17:11:55 2009 +0100

    [image] Treat A1 image surfaces as BILEVEL_ALPHA
    
    Categorise the transparency of FORMAT_A1 image surfaces as BILEVEL_ALPHA.

 src/cairo-image-surface.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

commit aac132a76a2af3719088678295169f1962a555e6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 24 10:14:36 2009 +0100

    [image] Make _cairo_image_analayze_transparency() more format agnostic
    
    Use the content in preference to the format to determine
    CAIRO_IMAGE_IS_OPAQUE/CAIRO_IMAGE_HAS_ALPHA.

 src/cairo-image-surface.c |   17 +++++++----------
 1 files changed, 7 insertions(+), 10 deletions(-)

commit 4be6de9fc6192d59c8d61e8edafed941e868a756
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 24 10:03:20 2009 +0100

    [image] Return FORMAT_INVALID for an error surface.
    
    The default error value should be CAIRO_FORMAT_INVALID [-1] not 0 (which
    corresponds to CAIRO_FORMAT_ARGB32).

 src/cairo-image-surface.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 6675cf558719f81afe2a4331bc6adb3cda637a26
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 1 09:31:53 2009 +0100

    [build] Add lcov-1.7 to known list

 build/configure.ac.analysis |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 526fcdb7e6cc8b522508762b1a68a5585fddf823
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Apr 20 10:56:06 2009 +0100

    [build] Enable shave support
    
    shave transforms the messy output of autotools into a pretty (quiet!)
    Kbuild-like one.
    
    Lets see how controversial a simple change can be...

 build/.gitignore       |    2 +
 build/aclocal.dolt.m4  |    1 +
 build/aclocal.shave.m4 |   77 ++++++++++++++++++++++++++++++++++++++++++++++
 build/shave-libtool.in |   69 +++++++++++++++++++++++++++++++++++++++++
 build/shave.in         |   79 ++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac           |    4 ++
 6 files changed, 232 insertions(+), 0 deletions(-)

commit 1ae2ddc1dd4c90d50b8c57c4de677f8ab96b1fa2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 16 17:19:12 2009 +0100

    [memfault] Manually inject faults when using stack allocations
    
    Ensure that no assumptions are made that a small allocation will succeed
    by manually injecting faults when we may be simply allocating from an
    embedded memory pool.
    
    The main advantage in manual fault injection is improved code coverage -
    from within the test suite most allocations are handled by the embedded
    memory pools.

 src/cairo-array.c           |    3 +++
 src/cairo-bentley-ottmann.c |    3 +++
 src/cairo-gstate.c          |    3 +++
 src/cairo-hull.c            |    3 +++
 src/cairo-image-surface.c   |    6 ++++++
 src/cairo-malloc-private.h  |    7 +++++++
 src/cairo-misc.c            |    3 +++
 src/cairo-path-stroke.c     |    2 ++
 src/cairo-pattern.c         |    9 +++++++++
 src/cairo-pen.c             |    9 +++++++++
 src/cairo-polygon.c         |    5 +++++
 src/cairo-scaled-font.c     |    3 +++
 src/cairo-stroke-style.c    |    3 +++
 src/cairo-traps.c           |    5 +++++
 14 files changed, 64 insertions(+), 0 deletions(-)

commit 817589e1967ebdd5e5bda1781eb76010fd8c37dc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 16 13:01:52 2009 +0100

    [test] Call FcInit() manually.
    
    Pre-initialise fontconfig whilst memfault is disabled to avoid a lot of
    expensive, redundant testing of FcInit() throughout the test suite.

 test/cairo-test.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit be27e844c83c0f5cf25dee1c62768dbf70897a06
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 16 17:13:52 2009 +0100

    [ft] Propagate status from font creation
    
    Return the true error status whel
    _cairo_ft_unscaled_font_create_internal(). This ensures that the original
    error is not masked and we are able to report the error during fontconfig
    pattern resolution.

 src/cairo-ft-font.c |   90 +++++++++++++++++++++++++++++----------------------
 1 files changed, 51 insertions(+), 39 deletions(-)

commit d46c56f18c8a93d3d50be9333292c7c9b0ac0a78
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 16 13:00:59 2009 +0100

    [ft] Check for pattern duplication failure.
    
    Check the return of FcPatternDuplicate() for failure, and propagate the
    error.

 src/cairo-ft-font.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 50302f156dfba4dcb3639843d7eda819f2c6797c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 16 12:59:36 2009 +0100

    [ft] Check (correctly!) for pattern duplication failure.
    
    Check the return from FcPatternDuplicate() for allocation failure (and not
    the original pattern)!

 src/cairo-ft-font.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 8bf109bd2a9c9bf755671185733def898a4f96f2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 16 17:17:06 2009 +0100

    [pattern] Silence compiler with impossible case.
    
    Assert that the pattern is one of the four known types, and return an
    error so that the compiler knows that the local variable can not be used
    uninitialised.

 src/cairo-pattern.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 5a76c233bffda65140c6ada9b5f2ed7d3bcc999e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 14 11:02:40 2009 +0100

    [type3] Propagate error from font creation.
    
    Perform an error check after creating a scaled-font to prevent operations
    on a nil-object.

 src/cairo-type3-glyph-surface.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit d46bd67c8b3f63d6286845e814f8f1e040f89737
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 10 14:55:24 2009 +0100

    [type3] Add status checks.
    
    Propagate error from the stream when creating the surface and add status
    guards before writing to the potential nil object.

 src/cairo-type3-glyph-surface.c |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

commit a6ffb69a54f15659dac7c6b2e1c98bd7893ccdf1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 3 17:28:05 2009 +0100

    [type3] Check error status before emit_image().
    
    Be careful not to pass an error object down to emit_image() hook,
    propagate the error instead. This relieves the burden of the error check
    from the callee -- which was causing an assertion failure in the ps
    backend.

 src/cairo-type3-glyph-surface.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

commit 21d1138da9bcf9c006e0cf3f3d1d50e1c7cec1de
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 10 14:53:55 2009 +0100

    [scaled-font-subsets] Check for malloc failure.
    
    Check that the utf8 string is successfully allocated before writing to it,
    otherwise propagate the error status back to the callers.

 src/cairo-scaled-font-subsets.c |   63 +++++++++++++++++++++-----------------
 1 files changed, 35 insertions(+), 28 deletions(-)

commit 0f0e2d738437176e72317b37ef66fbc56c60ba93
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 10 14:52:48 2009 +0100

    [pdf] Propagate failure from type3 glyph surface creation.
    
    Add an early check that we successfully created the glyph surface.

 src/cairo-pdf-surface.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

commit 1496c5cf51a2304dfd4e9d359a0645ff44fadd3e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 10 14:50:26 2009 +0100

    [analysis] Use _cairo_region_init()
    
    Avoid secondary allocations of the thin region wrappers during surface
    creation by embedding them into the parent structure. This has the
    satisfactory side-effect of not requiring status checks which current code
    lacks.

 src/cairo-analysis-surface.c |   26 +++++++++++++-------------
 1 files changed, 13 insertions(+), 13 deletions(-)

commit ad83765a1441cb369c3e7f3de77c243297406c7a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 3 09:23:58 2009 +0100

    [xlib] Allocate bounded region on stack.
    
    Eliminate the extremely short-lived and oft unnecessary heap allocation
    of the region by first checking to see whether the clip exceeds the
    surface bounds and only then intersect the clip with a local
    stack-allocated region.

 src/cairo-region.c       |   23 ++++++++++++++++++
 src/cairo-xlib-surface.c |   58 ++++++++++++++++++++++++++++++----------------
 src/cairoint.h           |   10 ++++++++
 3 files changed, 71 insertions(+), 20 deletions(-)

commit 75b06b8bdb5efaf030e063c1f66583d8fde347dc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 1 11:43:16 2009 +0100

    [pattern] Do not modify outparam on error path.
    
    The pdf backend was crashing as a failed pattern copy stored an invalid
    pointer with the resource group.

 src/cairo-pattern.c |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

commit 82cccb26723697492504f395fed33afba28d84ba
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 14 11:01:39 2009 +0100

    [test] Handle memfaults during surface-finish-twice
    
    Check and report memory allocation failures.

 test/surface-finish-twice.c |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

commit f12d52bfcae0792729b33a1fd1b2d23bd3fc7cf3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 4 19:02:15 2009 +0100

    [test] Use xmalloc() to evade memfault.
    
    Do not use the simple malloc() as memfault will inject allocation failures
    (unlike xmalloc() for which faults are excluded) - as this is unnecessary
    inside the test harness and thus does not exercise any cairo code paths.

 test/show-glyphs-many.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ca501d99bbec432252cbb134d863801d4a792a44
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 1 11:41:59 2009 +0100

    [test] Disable signal handling under valgrind
    
    Capturing and handling the signals prevents valgrind from providing
    backtraces for fatal signals -- which is often more useful.

 test/cairo-test.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f8539726368141f8b42c7817cfd59b4abfce33f3
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Apr 7 14:50:25 2009 -0400

    [win32] Fix building with libpng and zlib
    
    Include zlib and libpng dependencies using something like '$(cairo_dir)/../zlib/zdll.lib'
    instead of just 'zdll.lib'. Also, do similarly for the headers.

 build/Makefile.win32.common |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

commit 1798fc6607a89811929d1f21cc71c751438f5699
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Apr 5 11:17:02 2009 +0930

    Fix the TrueType subsetting fix in 9b496af5c
    
    Oops.

 src/cairo-truetype-subset.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit fe97e815e81f4429889fd52bb525c260f9967356
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Apr 5 01:04:12 2009 +1030

    Fix TrueType subsetting bug
    
    Fix incorrect counting of arguments in composite glyphs

 src/cairo-truetype-subset-private.h |    2 +-
 src/cairo-truetype-subset.c         |   12 +++++++-----
 2 files changed, 8 insertions(+), 6 deletions(-)

commit 9b496af5c214283c297a52c90a04743f9da9f6a3
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Apr 5 00:44:02 2009 +1030

    Fix buffer size check in TrueType subsetting
    
    Andrew Cowie reported a problem with the Charis SIL font being
    embedded as a fallback font.
    
    The buffer size check for composite glyphs was incorrect causing the
    subsetting to fail for some fonts.

 src/cairo-truetype-subset.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ba2ec8e1d9144c4a27917e59cb15039552eb008c
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Apr 1 13:29:12 2009 -0400

    Remove trailing comma in cairo_region_overlap_t enum.

 src/cairo.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2d6336624c33e9c674c192b68eb501373a96dc87
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Apr 1 11:32:58 2009 -0400

    [test-win32] Fix static linking of the test suite.
    
    Previously, the test suite needed to be dynamically linked to work.

 boilerplate/Makefile.win32 |    2 +-
 test/Makefile.win32        |    9 ++++++---
 test/pdiff/Makefile.win32  |    2 +-
 3 files changed, 8 insertions(+), 5 deletions(-)

commit 0f21893b0510a188439c2d8cd448bcfcf17ef8c6
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
Date:   Wed Apr 1 08:54:30 2009 -0400

    [region] pixman_region32_contains_point() does not allow NULL for box

 src/cairo-region.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit e46c1d7fa34b4ba89fc3e0fe6f3042a6fa8c0398
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 31 10:39:46 2009 +0100

    [scaled-font-subset] Cleanup after failure to convert to utf16.
    
    Avoid leaking the local hashtable and strings after failing to convert the
    string to utf16.

 src/cairo-scaled-font-subsets.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 180b964aac4e058e6783778d33772f08e13b3669
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 31 10:37:44 2009 +0100

    [scaled-font-subset] Propagate error from scaled-font to collection.
    
    Don't attempt to collect the sub_font if it is in error.

 src/cairo-scaled-font-subsets.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 8362c6f726979abc43ad9f7303bd45fcb03f83b3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 31 10:36:08 2009 +0100

    [type1] Fixup error path during write_charstrings()
    
    On the common error path we attempted to unlock a mutex that was not
    always held, so reorder the error paths appropriately.

 src/cairo-type1-fallback.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 88956cd42e9cc03cb8b4ec730062993eaaf3938d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 31 10:35:24 2009 +0100

    [ps] Check for error during stroking.
    
    Add a missing error status check that caused errors during stroke to be
    masked.

 src/cairo-ps-surface.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 043352aa8d1e3aeacf3b877f45e1bc451a676e15
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 31 10:34:41 2009 +0100

    [pdf] Prevent leak of pad_image on error path.
    
    Ensure that the local pad_image is destroyed after an error.

 src/cairo-pdf-surface.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit b0689f56118dd8ccda6f29901d41cf8f80983aa0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 31 10:27:15 2009 +0100

    Check for errors during get_mime_data()
    
    cairo_surface_get_mime_data() may raise an error on the surface, so we
    need to check lest it goes unnoticed and we generate a corrupt file.

 src/cairo-pdf-surface.c |    2 ++
 src/cairo-ps-surface.c  |    2 ++
 src/cairo-svg-surface.c |    2 ++
 3 files changed, 6 insertions(+), 0 deletions(-)

commit 9f63cbb870892253f363ddb7aac908263672c8dc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 19:09:13 2009 +0100

    [pdf] Free compressed stream after error.
    
    Ensure that the compressed stream is destroyed after encountering an
    error.

 src/cairo-pdf-surface.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

commit ba1a0fa601a817ff489bc5373af57977e41eb99f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 19:08:41 2009 +0100

    [truetype] Free local names on failure.
    
    Ensure that all local allocations are freed on the error path.

 src/cairo-truetype-subset.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

commit edce97a750acf4368bd7249ec6b9a195f8584cdf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 16:50:51 2009 +0100

    [pdf] Remove false assertion.
    
    The stream itself may be in an error state, so an error could be raised.

 src/cairo-pdf-surface.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

commit b580a4a8d6c056ba8b47be32ea8c5b9a1d90d01e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 16:50:10 2009 +0100

    [test] Improve fault injection coverage
    
    In order to exercise the meta-surfaces, we need to inject faults into
    cairo_surface_finish().

 boilerplate/cairo-boilerplate.c |   16 +++++++++++++---
 test/cairo-test.c               |   35 +++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+), 3 deletions(-)

commit 80d5b53b474c94219c51ae16dcc19098a2d86165
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Mar 31 05:47:44 2009 -0400

    [region] Change name of cairo_region_empty() to cairo_region_is_empty()

 src/cairo-clip.c             |    2 +-
 src/cairo-region.c           |    6 +++---
 src/cairo-surface-fallback.c |    2 +-
 src/cairo.h                  |    2 +-
 src/cairoint.h               |    2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

commit 77ee65fd03d06064be023f022d565c5038fe26df
Author: Jonathan Kew <jfkthame@gmail.com>
Date:   Mon Mar 30 14:45:48 2009 -0400

    [win32] Fix horizontal glyph positioning bug
    
    The _cairo_win32_scaled_font_backend version of show_glyphs collects
    glyph runs to hand to ExtTextOutW until the y-offset changes, then flushes the
    glyphs buffered so far. As each glyph is buffered, it also calculates and
    buffers the dx value for the preceding glyph.
    
    However, when it sees a change in dy and decides to flush, it should *not*
    append an entry to the dx buffer, as this would be the "dx" of the previous
    glyph, and instead the new start_x value will be used for the new glyph run
    that's being collected. This bug means that after any vertically-offset glyph,
    the remaining glyphs in the run will get incorrect dx values (horizontal
    escapement).
    
    Mozilla bug #475092

 src/cairo-win32-font.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit aee71e2063b1d6d23cd8dcef7789c9cf106af32a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 13:41:00 2009 +0100

    [test] Memfault checks.
    
    Don't assume an error means the test failed, check for injected allocation
    errors.

 test/create-from-png.c |  164 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 113 insertions(+), 51 deletions(-)

commit ea6197c2f5f04d5e8e8035a330c5199b37beb702
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 10:54:26 2009 +0100

    [surface] Propagate region allocation failure.
    
    Propagate the error status from failing to allocate the region.

 src/cairo-surface.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

commit c35d226f7d3654b312e18068b8ccb47a51002a39
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 10:46:37 2009 +0100

    [traps] Propagate allocation failure.
    
    Report failure to allocation region.

 src/cairo-traps.c |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)

commit e238d10b30e18084bf07eb1643fdf48ef35467ab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 10:22:18 2009 +0100

    [region] Use const cairo_rectangle_int_t consistently.
    
    Add the const declaration to a couple of functions.

 src/cairo-region.c |    4 ++--
 src/cairo.h        |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit de1612bdd767ca37e01938f8e41d9699531a49d9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 10:17:49 2009 +0100

    [region] Use _cairo_status_is_error
    
    Replace the open-coded version with the more readable macro.

 src/cairo-region.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f027405429d0133b2840c4b82bc553355fa5f3d2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 10:12:41 2009 +0100

    [region] Add leading underscore to private _cairo_region_set_error()
    
    Differentiate the private _cairo_region_set_error() function by using a
    leading underscore.

 src/cairo-region.c |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)

commit ed7188a471f73abcc4ca3e2a92685088134391c7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 30 10:07:48 2009 +0100

    [region] Add slim_hidden_def.
    
    Fixes for check-plt.sh (and a few adjacent whitespace).

 src/cairo-region.c |  244 ++++++++++++++++++++++++++++------------------------
 1 files changed, 133 insertions(+), 111 deletions(-)

commit f31c6548f818e1d4e257d94d623705284bcc4274
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Mar 28 19:26:03 2009 +0000

    Silence compiler warnings for CAIRO_STATUS_LAST_STATUS
    
    Add ASSERT_NOT_REACHED (or similar) cases to the error handling switches
    to silence the compiler.

 src/cairo-misc.c    |    5 +++--
 src/cairo-spans.c   |    2 ++
 src/cairo-surface.c |    1 +
 3 files changed, 6 insertions(+), 2 deletions(-)

commit 62d84847c3b857b8fd5aeea3f4b5c0f2f4c91625
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Sat Mar 28 03:58:51 2009 -0400

    [region] Add documentation for all the new region methods.

 src/cairo-region.c |  260 +++++++++++++++++++++++++++++++++++++++++++++------
 src/cairo.h        |    6 +-
 2 files changed, 232 insertions(+), 34 deletions(-)

commit 980e9f0dbd4f21c0ccf4cc33b0b0f2f370667290
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Sat Mar 28 03:04:28 2009 -0400

    [region] Fix status propagation for regions
    
    When an operation fails, store the status code in the destination
    region rather than leaving it unchanged.

 src/cairo-region.c |   66 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 52 insertions(+), 14 deletions(-)

commit 64e490a464472cfe06d779503601d41972ed4518
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Sat Mar 28 01:10:24 2009 -0400

    [region] Use signed ints for width and height in cairo_rectangle_int_t

 src/cairo.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 26999e5aa8b5d353596e31d4b3823cafe007125c
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Fri Mar 27 08:48:42 2009 -0400

    [region] Add cairo_region_intersect_rectangle() and _subtract_rectangle()
    
    Intersecting with and subtracting rectangles is quite common, and we
    already have cairo_union_rectangle().

 src/cairo-clip.c    |   27 ++++-----------------------
 src/cairo-region.c  |   45 ++++++++++++++++++++++++++++++++++++++++++++-
 src/cairo-surface.c |    9 +--------
 src/cairo.h         |   11 ++++++++++-
 src/cairoint.h      |    2 ++
 5 files changed, 61 insertions(+), 33 deletions(-)

commit 4b3245481cfbf96388c140421a071fd1f79ad601
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Sat Feb 21 08:13:25 2009 -0500

    [region] Expand rect to rectangle in a couple of names
    
    Specifically,
    
    	cairo_region_union_rect  ->  cairo_region_union_rectangle
    	cairo_region_create_rect ->  cairo_region_create_rectangle
    
    Also delete cairo_region_clear() which is not that useful.

 src/cairo-analysis-surface.c |    4 ++--
 src/cairo-clip.c             |    4 ++--
 src/cairo-region.c           |   16 +++-------------
 src/cairo-surface-fallback.c |    2 +-
 src/cairo-surface.c          |    4 ++--
 src/cairo-traps.c            |    2 +-
 src/cairo-xlib-surface.c     |    2 +-
 src/cairo.h                  |    7 ++-----
 src/cairoint.h               |    5 ++---
 9 files changed, 16 insertions(+), 30 deletions(-)

commit bf6d9bc1758ac1971485b6565d29934d6b06bef2
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
Date:   Wed Feb 18 08:01:19 2009 -0500

    [region] Delete cairo_region_create_rectangles()
    
    It was only used in _cairo_traps_extract_region() which could be
    simplified significantly by calling cairo_region_union_rect()
    repeatedly instead.

 src/cairo-region.c |   44 --------------------------------------
 src/cairo-traps.c  |   60 ++++++++++++++++++++--------------------------------
 src/cairo.h        |    4 ---
 src/cairoint.h     |    1 -
 4 files changed, 23 insertions(+), 86 deletions(-)

commit e6d82afcab01cc91b88185abc8d1bfb9df5c2c19
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Wed Feb 18 00:20:46 2009 -0500

    [region] Add slim_hidden_proto for region functions

 src/cairoint.h |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

commit e29103c08189cab9de34f577951219a69bd7c8e2
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Wed Feb 18 00:11:35 2009 -0500

    [region] Move region function prototypes to cairo.h along with helper types.
    
    Move struct _cairo_region to cairoint.h and delete
    cairo-region-private.h. Delete cairo_private from the function
    definitions that had it.

 src/Makefile.sources         |    1 -
 src/cairo-analysis-surface.c |    1 -
 src/cairo-clip-private.h     |    1 -
 src/cairo-region-private.h   |  128 ------------------------------------------
 src/cairo-region.c           |    6 +-
 src/cairo-types-private.h    |    6 --
 src/cairo.h                  |   75 ++++++++++++++++++++++++
 src/cairoint.h               |    6 ++-
 8 files changed, 83 insertions(+), 141 deletions(-)

commit 1cca5a1348d071a3c8e2ba9d3ba0d9670b9564f4
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Tue Feb 17 23:52:18 2009 -0500

    [region] Remove underscores from _cairo_region_*

 src/cairo-analysis-surface.c  |   18 +++++-------
 src/cairo-clip.c              |   50 +++++++++++++++++-----------------
 src/cairo-directfb-surface.c  |    4 +-
 src/cairo-paginated-surface.c |    4 +-
 src/cairo-region-private.h    |   36 ++++++++++++------------
 src/cairo-region.c            |   61 ++++++++++++++++++++---------------------
 src/cairo-surface-fallback.c  |   20 +++++++-------
 src/cairo-surface.c           |   14 +++++-----
 src/cairo-traps.c             |   10 +++---
 src/cairo-win32-surface.c     |    8 +++---
 src/cairo-xcb-surface.c       |    4 +-
 src/cairo-xlib-surface.c      |   14 +++++-----
 12 files changed, 120 insertions(+), 123 deletions(-)

commit fcdca966941f4f7cc908bd46df1ec9a6b0f757c1
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Tue Feb 17 22:52:50 2009 -0500

    [region] Always define cairo_rectangle_int_t with ints
    
    Use ints in cairo_rectangle_int_t, no matter the fixed type.

 src/cairo-types-private.h |   38 +++++++++-----------------------------
 1 files changed, 9 insertions(+), 29 deletions(-)

commit cfa7a384b730289233bef556fe1919f781eac684
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Tue Feb 17 23:40:02 2009 -0500

    [region] Add _cairo_region_contains_point()

 src/cairo-region-private.h |    5 ++++-
 src/cairo-region.c         |   15 +++++++++++++--
 src/cairo.h                |    1 +
 3 files changed, 18 insertions(+), 3 deletions(-)

commit 15564d1949778124e553d792f85cae2b031aad45
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Feb 17 05:58:34 2009 -0500

    [region] Add _cairo_region_union

 src/cairo-region-private.h |    4 ++++
 src/cairo-region.c         |   16 ++++++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)

commit df883aa937d2f3ecf52048b60caff48b1c9edac9
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Feb 17 06:06:40 2009 -0500

    [region] Add a cairo_region_overlap_t type

 src/cairo-analysis-surface.c |    4 ++--
 src/cairo-region-private.h   |    8 +++++++-
 src/cairo-region.c           |   33 ++++++++++++++++++++++++---------
 3 files changed, 33 insertions(+), 12 deletions(-)

commit ebd0e685ae2d76c3af96d748a33a7194c70749f3
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
Date:   Mon Feb 16 05:41:31 2009 -0500

    [region] Consistently use rectangles in the API of regions
    
    Usually, rectangles are more useful than boxes, so regions should only
    expose rectangles in their public API.
    
    Specifically,
      _cairo_region_num_boxes becomes _cairo_region_num_rectangles
      _cairo_region_get_box becomes _cairo_region_get_rectangle
    
    Remove the cairo_box_int_t type

 src/cairo-clip.c              |   22 ++++++------------
 src/cairo-directfb-surface.c  |   26 +++++++++++-----------
 src/cairo-paginated-surface.c |   34 ++++++++++++++--------------
 src/cairo-region-private.h    |   14 ++++++------
 src/cairo-region.c            |   28 ++++++++++++------------
 src/cairo-surface-fallback.c  |    2 +-
 src/cairo-surface.c           |   25 ++++++--------------
 src/cairo-traps.c             |   31 +++++++++++++------------
 src/cairo-types-private.h     |    6 -----
 src/cairo-win32-surface.c     |   48 ++++++++++++++++++++--------------------
 src/cairo-xcb-surface.c       |   24 ++++++++++----------
 src/cairo-xlib-surface.c      |   29 ++++++++++++------------
 12 files changed, 134 insertions(+), 155 deletions(-)

commit c29aeee2d3569cd43e88adc05662bb6306987b8b
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Thu Dec 11 18:37:40 2008 -0500

    [region] Change sense of _cairo_region_not_empty() to _cairo_region_empty()
    
    Having "not" in the name causes double negatives.

 src/cairo-clip.c             |    2 +-
 src/cairo-region-private.h   |    2 +-
 src/cairo-region.c           |    6 +++---
 src/cairo-surface-fallback.c |    2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

commit c88321d0a2b9d200b2044674d02fa0683feca74c
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Thu Dec 11 16:20:23 2008 -0500

    [region] Miscellaneous bug fixes.
    
    - Initialize region->status in _cairo_region_create_boxes()
    - Make _cairo_region_copy() actually return a region.
    - Fix a bug where a NULL region could be dereferenced
    
    Also add an assertion that the result of cairo_region_copy() is never
    NULL.

 src/cairo-clip.c          |    2 ++
 src/cairo-image-surface.c |    2 +-
 src/cairo-region.c        |    4 +++-
 3 files changed, 6 insertions(+), 2 deletions(-)

commit 93b285dc2c9c9ec486e0096933c3611f73374fcb
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Thu Dec 11 15:50:15 2008 -0500

    [region] Get rid of clip->has_region

 src/cairo-clip-private.h |    1 -
 src/cairo-clip.c         |   36 +++++++++++++++---------------------
 src/cairo-surface.c      |    2 +-
 3 files changed, 16 insertions(+), 23 deletions(-)

commit e3e1b35eb9eb3cf90d882a7452580f9efe00b89a
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Thu Dec 11 15:29:23 2008 -0500

    [region] Make cairo_region_t a malloced object.

 src/cairo-analysis-surface.c |   26 +++----
 src/cairo-clip-private.h     |    2 +-
 src/cairo-clip.c             |   99 ++++++++++++-------------
 src/cairo-region-private.h   |   42 ++++++-----
 src/cairo-region.c           |  168 +++++++++++++++++++++++++++++++++---------
 src/cairo-surface-fallback.c |   65 ++++++++---------
 src/cairo-surface.c          |   29 ++++----
 src/cairo-traps.c            |   14 ++-
 src/cairo-xlib-surface.c     |   16 ++--
 src/cairoint.h               |    2 +-
 10 files changed, 280 insertions(+), 183 deletions(-)

commit c2c637cf1d89fc8fdcced4467d602a55ef0b14e0
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Sat Mar 28 04:26:10 2009 -0400

    Simplify _cairo_clip_intersect_region()
    
    The intermediate intersection region is not necessary because if the
    operation fails, clip->region will end up as a pixman error region.

 src/cairo-clip.c |   19 +++++--------------
 1 files changed, 5 insertions(+), 14 deletions(-)

commit fe10cd6467f2ec58532dc7c713bb6d08dab08442
Author: Bertram Felgenhauer <int-e@gmx.de>
Date:   Fri Mar 27 07:10:21 2009 +0100

    [spline] fix wrong sign in _cairo_spline_bound.

 src/cairo-spline.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 53107de63a954105f8820e5b96e2a1956cb7af8c
Author: Bertram Felgenhauer <int-e@gmx.de>
Date:   Thu Mar 26 04:56:27 2009 +0100

    [in_fill] Correctly track current point in curve_to.
    
    When discarding a bezier path segment, we still need to update the
    current point.

 src/cairo-path-in-fill.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

commit 578b06a978d51dc3d1d844ee7eea9ddd8329cc8d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 23 10:56:43 2009 +0000

    [perf] Use CAIRO_LDFLAGS
    
    Use CAIRO_LDFLAGS in order to pull in additional link options, such as
    --coverage.

 perf/Makefile.am |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit ac30ced6135c5cf0fb34a67fe8f863030c1fbeb9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 22 19:02:27 2009 +0000

    [test] Check for surface create failure.
    
    If the image surface creation fails, the data pointer will be NULL leading
    to a segfault -- so check!

 test/user-font-mask.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

commit b5a4a2c4b1b1bab25e2ff0842e3c27205ec73d51
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 22 19:00:04 2009 +0000

    [test] Early test for memfault.
    
    Check the error status within after each iteration in
    solid-pattern-cache-stress.

 test/solid-pattern-cache-stress.c |   41 +++++++++++++++++++++++++++----------
 1 files changed, 30 insertions(+), 11 deletions(-)

commit 1a7b94f934f8c9a25e60d9466651b0b7fb919656
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Mar 20 11:06:29 2009 +0000

    [test] Check for errors during get-path-extents.
    
    Need to check that an error was not raised on the context before checking
    whether the extents match expectations.

 test/get-path-extents.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

commit 3b545330887209c68128fca0d1bb40bf4927c2a6
Author: Vladimir Vukicevic <vladimir@pobox.com>
Date:   Sat Mar 21 11:56:18 2009 -0700

    [win32] Use _hypot instead of hypot
    
    The hypot symbol is deprecated on Win32, and nonexistent on Windows CE

 src/cairo-compiler-private.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 895fce1632069ddfb8c581d2b23b1b3552e35104
Author: Stefan Klug <Klug.Stefan@gmx.de>
Date:   Fri Mar 20 17:20:22 2009 -0400

    [wince] Use the official _WIN32_WCE define instead of WINCE

 src/cairo-misc.c |    4 ++--
 src/cairoint.h   |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 86a935de42318c4be92a657ce8e8c452693d4414
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Fri Mar 20 17:14:08 2009 -0400

    [msvc] Fix definition of CAIRO_ENSURE_UNIQUE for non-x86
    
    The current definition of CAIRO_ENSURE_UNIQUE uses x86 assembly so make sure we
    only compile it when targeting x86.

 src/cairo-compiler-private.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit c932a809d6484503d7ee267d934bbc87c8d44092
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 17 12:01:13 2009 +0000

    [test] Propagate allocation failure.
    
    Check for memfaults during rel-path test.

 test/rel-path.c |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

commit 7db55b37d4aef188e04771b45076f6735507c209
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 17 11:58:16 2009 +0000

    [test] Destroy pattern on error paths.
    
    Destroy the pattern after encountering an error in pattern-getters test.

 test/pattern-getters.c |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

commit dc176d88ac03ae71fc32abb27329a35650801d99
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 17 10:42:37 2009 +0000

    [test] Trivial leak on error in show-glyphs-many.
    
    Free the allocated glyph array after failure.

 test/show-glyphs-many.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

commit a4b44ca89eb9975e6af2913e50ec3c3eb566cfdd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 17 14:56:42 2009 +0000

    [pattern] Report the true error status from getters.
    
    As the getters actually return an error status, use it to report any
    pre-existing error status on the pattern.

 src/cairo-pattern.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

commit 496bbcf58233ceecfffc52ae5b1a3a1f07516c67
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Mar 17 19:46:25 2009 -0400

    Make CAIRO_STATUS_LAST_STATUS public

 doc/public/tmpl/cairo-status.sgml |    1 +
 src/cairo.h                       |   12 ++++++++++--
 src/cairoint.h                    |    6 ------
 3 files changed, 11 insertions(+), 8 deletions(-)

commit 922c108365b940dbabf23358189bbaa8602446c9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Mar 17 19:22:31 2009 -0400

    [twin] Reorganize matching code to better reflect the code in Pango
    
    Makes it easier to update later.

 src/cairo-font-face-twin.c |  179 +++++++++++++++++++++++++++++++++-----------
 src/cairoint.h             |    4 +
 2 files changed, 138 insertions(+), 45 deletions(-)

commit 2b4044a36f8b156ca0e58b72614659324a9b022e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Mar 17 18:52:16 2009 -0400

    [twin] Update parsed weights and stretches from Pango

 src/cairo-font-face-twin.c |   64 ++++++++++++++++++++++++++-----------------
 1 files changed, 39 insertions(+), 25 deletions(-)

commit 3ec94f9b5917b8f71304c982bd153e5a810f3b12
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Mar 17 00:53:30 2009 -0400

    Support compiling without fontconfig
    
    Adds a new, fake, fontconfig font backend.  Fontconfig can be disabled
    using --disable-fc, in which case the toy text API wont find fonts and
    the internal font will always be used.
    
    Also defines the feature macro CAIRO_HAS_FC_FONT.  The two fontconfig-specific
    functions in cairo-ft.h depend on that macro now.

 boilerplate/Makefile.win32.features |   10 ++++++++
 build/Makefile.win32.features       |    1 +
 build/Makefile.win32.features-h     |    3 ++
 build/configure.ac.features         |    1 +
 configure.ac                        |   26 +++++++++++++-------
 doc/public/cairo-sections.txt       |    1 +
 doc/public/tmpl/cairo-ft.sgml       |    9 +++++++
 doc/public/tmpl/cairo-status.sgml   |    2 +-
 src/Makefile.win32.features         |   14 +++++++++++
 src/cairo-ft-font.c                 |   43 +++++++++++++++++++++++++++++-----
 src/cairo-ft.h                      |   23 ++++++++++++------
 src/cairo-os2-surface.c             |    6 +++-
 src/cairo-path-fixed.c              |    2 +-
 src/cairo-scaled-font.c             |    4 +-
 src/cairo-xlib-display.c            |    2 -
 src/cairo-xlib-screen.c             |   23 ++++++++----------
 16 files changed, 125 insertions(+), 45 deletions(-)

commit 0e7bcb5e3793771d50f7d391d7b1e538ef220a80
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 16 21:32:44 2009 +0000

    [scaled-font] Improve comments.
    
    Grr. I thought I had merged this in with the previous commit...

 src/cairo-scaled-font.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 9c80392ac415e7f07c71261d280ac4376d3c8471
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 16 19:31:38 2009 +0000

    [scaled-font] Lean and mean global glyph cache.
    
    Jeff Muizelaar pointed out that the severe overallocation implicit in the
    current version of the glyph cache is obnoxious and prevents him from
    accepting the trunk into Mozilla. Jeff captured a trace of scaled font
    and glyph usage during a tp run and presented his analysis in
    http://lists.cairographics.org/archives/cairo/2009-March/016706.html
    
    Using that data, the design was changed to allocate pages of glyphs from a
    capped global pool but with per-font hash tables. This should allow the
    glyph cache to have tight memory bounds with fair allocation according to
    usage. Note that both the old design and the 1.8 glyph cache had
    essentially unbounded memory constraints, since each scaled font could
    cache up to 256 glyphs (1.8) or had a reserved page (old), with no limit
    on the number of active fonts. Currently the eviction policy is a simple
    random strategy, this gives a 'fair' allotment of the cache, but a LRU
    variant might perform better.
    
    On a sample run of firefox-3.0.7 perusing BBC news in 32 languages:
    1.8:  cache allocation 8190x, ~1.2 MiB; elapsed 88.2s
    old:  cache allocation 771x, ~13.8 MiB; elapsed 81.7s
    lean: cache allocation 433x,  ~1.8 MiB; elapsed 82.4s

 src/cairo-cache-private.h       |    5 +-
 src/cairo-cache.c               |   39 ++---
 src/cairo-ft-font.c             |    4 +-
 src/cairo-hash-private.h        |    6 +-
 src/cairo-hash.c                |   55 ------
 src/cairo-scaled-font-private.h |    6 +-
 src/cairo-scaled-font.c         |  396 ++++++++++++++++++++-------------------
 src/cairo-types-private.h       |    3 +
 src/cairoint.h                  |    7 +-
 9 files changed, 232 insertions(+), 289 deletions(-)

commit 121d4bb656755b7ca89065bf87e3e4e47c49c89d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 16 19:42:47 2009 +0000

    [scaled-font] Initialise original_font_face
    
    Eek, attempting to use+free an uninitialised pointer!

 src/cairo-scaled-font.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 9099c7e7307a39bc630919faa65bba089fd15104
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 4 09:26:17 2009 +0000

    [trace] Disable mark dirty tracing.
    
    Applications like firefox have a very conservative approach and mark
    surfaces dirty before every render. As we record the image data every
    time, firefox traces can grow very large with redundant data - so allow
    the user to disable mark dirty tracing.

 util/cairo-trace/cairo-trace.in |   19 +++++++++++++++----
 util/cairo-trace/trace.c        |   27 ++++++++++++++++++++-------
 2 files changed, 35 insertions(+), 11 deletions(-)

commit addeb32c751ac080fe634ea6f83076d018944e4a
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Mar 3 12:20:47 2009 -0500

    [pdf] Intialize 'interpolate'
    
    Intialize 'interpolate' to prevent a gcc warning. Do this instead of adding a
    'default' case to the switch statement so that we still get warnings if new
    filter types are added.

 src/cairo-pdf-surface.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit a8158d443e6a4bafae28a46b883cbdcfd5789eec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 3 11:21:35 2009 +0000

    [truetype] Move the sizeof asserts to compile time.
    
    Eliminate the need for a runtime test on the sizeof the private structures
    by performing the check at compile time. This was provoked by Ginn Chenn
    noting that the test was including a private header.

 src/cairo-truetype-subset.c |   15 ++++++++++
 test/Makefile.sources       |    1 -
 test/truetype-tables.c      |   63 -------------------------------------------
 3 files changed, 15 insertions(+), 64 deletions(-)

commit e4b1f871e9cbb04590df5dc6f6f7854642fa0340
Author: Ginn Chen <Ginn.Chen@Sun.COM>
Date:   Tue Mar 3 10:27:11 2009 +0000

    [configure] Detect mkdir variant with non-gcc compilers.
    
    It doesn't work for non GCC compiler right now, as "-Werror -Wall" is
    an error to non GCC compiler.
    
    I swapped the sequence of build/configure.ac.system and build/
    configure.ac.warnings, then WARN_CFLAGS can be used.

 build/configure.ac.system |    2 +-
 configure.ac              |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f178f55e47013a92a47a24ac04b1041963b03976
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 3 10:25:05 2009 +0000

    [test/any2ppm] Update the cairo-script-interpreter callback.
    
    Reflect the current prototype which now specifies the content to use when
    creating the surface.

 test/any2ppm.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 694f2eea9feecfdc437e6964d1e758fab7315af9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 3 10:24:25 2009 +0000

    [test/any2ppm] Add feature checks for daemon()
    
    Add the feature checks for the presence of the daemon() function call.

 test/any2ppm.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit 9304984f4e20beec7b4de6a4141e2fd489130006
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 1 10:10:24 2009 +0000

    [path] Fix regression introduced with 005436
    
    The order of the multiplication of the CTM and device_transform was
    reversed.

 src/cairo-path.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit b30de64a8ca3de7632696f45bdb580217bd9f8a1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 1 10:05:16 2009 +0000

    [test] Add regression test for 005436
    
    Jeff Muizelaar found a regression in commit 005436 and submitted this
    little test to exercise it. The essence of the bug appears to be wrt to
    the product of the CTM and device transform matrices.

 test/Makefile.sources                  |    1 +
 test/path-append.c                     |   81 ++++++++++++++++++++++++++++++++
 test/path-append.ps.ref.png            |  Bin 0 -> 4516 bytes
 test/path-append.ref.png               |  Bin 0 -> 6165 bytes
 test/path-append.test-fallback.ref.png |  Bin 0 -> 6461 bytes
 test/path-append.xlib-fallback.ref.png |  Bin 0 -> 6357 bytes
 test/path-append.xlib.ref.png          |  Bin 0 -> 6461 bytes
 7 files changed, 82 insertions(+), 0 deletions(-)

commit e20f1a0c76f2185760ca3a7466e25de6beedeaac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 27 16:30:05 2009 +0000

    [in-fill] Close the path, cf fill()
    
    In order for in-fill treat the path equivalently to a fill, we need to
    close the path after interpretation.

 src/cairo-path-in-fill.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 102ddd37bb329d41241f434ede0f9cba8424e71e
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Feb 26 16:04:49 2009 -0500

    [win32] Include $(OPT) flags when linking cairo.dll
    
    This will pass in -Zi which causes the /DEBUG flag to be passed to the
    linker keeping the debug information from being discarded during link.

 src/Makefile.win32 |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit eb2a73ba6d290497cabb0f917c0375eea919178e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 24 20:27:36 2009 +0000

    [ps] Check the status of _cairo_type3_glyph_surface_create()
    
    Doing so serves two purposes. The first is to do an early error check and
    the second is to clearly initialise the status variable.

 src/cairo-ps-surface.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 6eb0a9d97ff7eaaee69ca10e4081cb950a543ce3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Feb 15 21:27:29 2009 +0000

    [scaled-font] Hold reference to original font face
    
    As noted by Carl during his LCA talk, caching of toy fonts was broken
    because we create the scaled font using the implementation font face and
    lose the reference to the containing font face that is cached by the toy
    font face create routines. So the toy fonts were not being preserved for
    the duration of the holdover scaled fonts and we recreated a new font
    face, new scaled font and new glyph caches every time we needed a font.

 src/cairo-ft-font.c             |    2 +-
 src/cairo-scaled-font-private.h |    2 ++
 src/cairo-scaled-font.c         |   17 +++++++++++++----
 src/cairo-toy-font-face.c       |    1 +
 4 files changed, 17 insertions(+), 5 deletions(-)

commit fe7d5323f5bc734e76179b74d68fcba9b924ba94
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Feb 19 16:00:17 2009 -0500

    Relanding: Add CAIRO_ENSURE_UNIQUE macro and use it in _cairo_error()
    
    When using MSVC, _cairo_error() can be folded into other identical functions.
    If that happens, _cairo_error isn't really useful anymore. Using the
    CAIRO_ENSURE_UNIQUE macro makes sure this doesn't happen.
    
    Use __asm to serve as a line delimiter. This allows us to use the
    __asm{} block in a macro.

 src/cairo-compiler-private.h |   24 ++++++++++++++++++++++++
 src/cairo.c                  |    1 +
 2 files changed, 25 insertions(+), 0 deletions(-)

commit 78de0e045ec0c10708052ed48df228e786839ddb
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Feb 19 15:45:11 2009 -0500

    Revert "Add CAIRO_ENSURE_UNIQUE macro and use it in _cairo_error()"
    
    This reverts commit 126824f5e6279f56dab0c040394b6c326b848cf7.
    
    It turns out MSVC doesn't handle line continuation characters in __asm{}
    blocks very well, so revert for now until I come up with something that
    works.

 src/cairo-compiler-private.h |   24 ------------------------
 src/cairo.c                  |    1 -
 2 files changed, 0 insertions(+), 25 deletions(-)

commit 126824f5e6279f56dab0c040394b6c326b848cf7
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Feb 19 13:31:55 2009 -0500

    Add CAIRO_ENSURE_UNIQUE macro and use it in _cairo_error()
    
    When using MSVC, _cairo_error() can be folded into other identical functions. If
    that happens, _cairo_error isn't really useful anymore. Using the
    CAIRO_ENSURE_UNIQUE macro makes sure this doesn't happen.

 src/cairo-compiler-private.h |   24 ++++++++++++++++++++++++
 src/cairo.c                  |    1 +
 2 files changed, 25 insertions(+), 0 deletions(-)

commit d4227fc9126ffbb3a967aea1bc9795e7e64ee8e1
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Feb 19 11:45:14 2009 -0500

    [test] Fix assert on default font family in toy-font-face
    
    toy-font-face was checking that cairo_toy_font_face_get_family returned ""
    which is CAIRO_FONT_FAMILY_DEFAULT when the freetype font backend is the
    default. However, when other font backends are the default the returned family
    is different. Therefore, instead of checking for "", we check for the appropriate
    string depending on the backend.

 test/toy-font-face.c |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

commit 06fa7a8386b267fdbd7635b952adc75a58f62584
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Feb 18 18:43:29 2009 -0500

    Fix a const warning in _cairo_user_data_array_foreach()
    
    _cairo_user_data_array_foreach() was taking a function
    with a void *key parameter instead of a const void *key
    to match cairo_user_data_slot_t.

 src/cairo-array.c   |    2 +-
 src/cairo-surface.c |    2 +-
 src/cairoint.h      |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit f7b3c9df5885a1cd7981ee12b91962bdbfff47af
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Mon Feb 16 22:28:32 2009 -0500

    Add test/Makefile.sources
    
    This lets test/Makefile.am and test/Makefile.win32 share a common list of sources.
    It also makes test/Makefile.win32 useful again.

 test/Makefile.am      |  251 ++++---------------------------------------------
 test/Makefile.sources |  251 +++++++++++++++++++++++++++++++++++++++++++++++++
 test/Makefile.win32   |  125 +++++--------------------
 3 files changed, 293 insertions(+), 334 deletions(-)

commit e380beae5382df547a1b538de94e90c0e2339141
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Feb 16 14:01:43 2009 +0200

    [sdl] Remove new backend.
    
    The SDL backend makes invalid assumptions about SDL_Surface locking
    semantics and doesn't deal correctly with the unpremultiplied pixel
    format supported by SDL.  Removed as per discussion on the mailing list.
    
    http://lists.cairographics.org/archives/cairo/2009-February/016595.html

 boilerplate/Makefile.sources                |    3 -
 boilerplate/Makefile.win32.features         |   10 -
 boilerplate/cairo-boilerplate-sdl-private.h |   56 ----
 boilerplate/cairo-boilerplate-sdl.c         |   69 -----
 boilerplate/cairo-boilerplate.c             |   15 -
 build/Makefile.win32.features               |    1 -
 build/Makefile.win32.features-h             |    3 -
 build/configure.ac.features                 |    1 -
 configure.ac                                |    8 -
 doc/public/tmpl/cairo-surface.sgml          |    1 -
 perf/Makefile.am                            |    4 -
 perf/cairo-perf.c                           |    4 -
 src/Makefile.sources                        |    3 -
 src/Makefile.win32.features                 |   14 -
 src/cairo-sdl-surface.c                     |  418 ---------------------------
 src/cairo-sdl.h                             |   54 ----
 src/cairo.h                                 |    2 -
 test/Makefile.am                            |    4 -
 test/cairo-test-runner.c                    |    4 -
 test/get-clip.c                             |    1 -
 20 files changed, 0 insertions(+), 675 deletions(-)

commit 79a72e63585d7fce7898f2c8bd997c6d88f8895f
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
Date:   Mon Feb 16 05:44:15 2009 -0500

    Delete _cairo_region_boxes_fini()

 src/cairo-region.c |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

commit f6daa664c1b2c894ba3baf2e7a72566bda1fd636
Author: Søren Sandmann <sandmann@daimi.au.dk>
Date:   Sun Feb 15 18:55:17 2009 -0500

    Delete _cairo_region_get_boxes() in favor of _cairo_region_get_box()
    
    The _cairo_region_get_boxes() interface was difficult to use and often
    caused unnecessary memory allocation. With _cairo_region_get_box() it
    is possible to access the boxes of a region without allocating a big
    temporary array.

 src/cairo-clip.c              |   21 +++++++----------
 src/cairo-directfb-surface.c  |   21 +++++++----------
 src/cairo-paginated-surface.c |   19 ++++++---------
 src/cairo-region-private.h    |   10 ++------
 src/cairo-region.c            |   39 ++++++++------------------------
 src/cairo-sdl-surface.c       |   21 +++++++----------
 src/cairo-surface.c           |   44 ++++++++++++++-----------------------
 src/cairo-win32-surface.c     |   48 +++++++++++++++++++---------------------
 src/cairo-xcb-surface.c       |   26 +++++++++------------
 src/cairo-xlib-surface.c      |   31 +++++++++++---------------
 10 files changed, 112 insertions(+), 168 deletions(-)

commit fcb13d262c5a09e56dc25c76103ef4ba623929ff
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
Date:   Sun Feb 15 15:59:10 2009 -0500

    Simplify region handling in xlib surface

 src/cairo-xlib-surface.c |   11 +++--------
 1 files changed, 3 insertions(+), 8 deletions(-)

commit b43e7aee98a8d69677f7e6d2584fe01f550f896b
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Fri Feb 13 12:15:23 2009 -0500

    [wince] We don't need cairo_win32_tmpfile on Windows CE
    
    _cairo_win32_tmpfile() uses _open_osfhandle() which is not available
    on Windows CE. However, Windows CE doesn't have the permisions problems
    that necessitated _cairo_win32_tmpfile() in the first place so we can just
    use tmpfile() on Windows CE.

 src/cairo-misc.c |    5 ++++-
 src/cairoint.h   |    2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

commit fa66291c8862ed592fca469ceab0ac9b1d270835
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 28 14:22:58 2009 +0000

    [perf] Test non-antialiased fill.
    
    Just because the i915 can special case such fills using a single-pass
    tessellation in the stencil buffer.

 perf/fill.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

commit aab9ed3432f0ea7b8b24990de4aa134bb599a3e5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 30 10:22:47 2009 +0000

    [perf] Env variable to ignore similar targets whilst benchmarking.
    
    Use CAIRO_TEST_IGNORE_SIMILAR to skip similar targets.

 perf/cairo-perf.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 655f6987334b991763a5ab7746dbfd73c6b05f3e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 6 20:11:17 2009 +0000

    [perf] Split can_run? into a separate precondition.
    
    Allow tests to skip unnecessary setup when pruning the list of perf cases.

 perf/box-outline.c           |    3 +++
 perf/cairo-perf.c            |   24 ++++++++++++++++--------
 perf/cairo-perf.h            |    4 ++++
 perf/composite-checker.c     |    3 +++
 perf/dragon.c                |    3 +++
 perf/fill.c                  |    3 +++
 perf/intersections.c         |    3 +++
 perf/long-dashed-lines.c     |    3 +++
 perf/long-lines.c            |    3 +++
 perf/mosaic.c                |    3 +++
 perf/paint-with-alpha.c      |    3 +++
 perf/paint.c                 |    3 +++
 perf/pattern_create_radial.c |    3 +++
 perf/pythagoras-tree.c       |    3 +++
 perf/rectangles.c            |    3 +++
 perf/rounded-rectangles.c    |    3 +++
 perf/spiral.c                |    3 +++
 perf/stroke.c                |    3 +++
 perf/subimage_copy.c         |    3 +++
 perf/tessellate.c            |    3 +++
 perf/text.c                  |    3 +++
 perf/twin.c                  |    3 +++
 perf/unaligned-clip.c        |    3 +++
 perf/world-map.c             |    3 +++
 perf/zrusin.c                |    3 +++
 25 files changed, 89 insertions(+), 8 deletions(-)

commit 798581a1b5a8a56ce9d16c5b21eab82851061732
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 30 22:12:49 2009 +0000

    [perf] Extend range of testing.
    
    Primarily to test longer glyph runs, but also test large upper bounds for
    strokes and fills.

 perf/cairo-perf.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 1522fac5c71708fc9e98e03da9f51926c1e3769c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 3 17:18:53 2009 +0000

    [perf] Fix infinite loop in text
    
    The row would wrap-around with the character index, causing an infinite
    loop when trying to fill a window of size 512x512 and above.

 perf/text.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

commit 187e3473512e40fa1d046783e797ec3a198b09b2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 13 13:09:32 2009 +0000

    [test] Free ref_name in fallback-resolution.
    
    Trivial leak of a few thousand bytes.

 test/fallback-resolution.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 005436758c5679f76cc462841678fb93d6c7e0ac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 3 10:20:26 2009 +0000

    [path] Inline path ops during append_to_context()
    
    By inlining the operations, and most significantly, precomputing the
    combined user-to-backend matrix, we can achieve a speed up of over 50%,
    which is a noticeable performance boost in swfdec - where append-to-path
    accounts for over 35% [inclusive] of the time for a h/w accelerated
    backend.

 src/cairo-path.c |   76 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 58 insertions(+), 18 deletions(-)

commit d295942b9d4da3be3318cd5fe2d3b0b1fe005d11
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jan 31 00:56:45 2009 +0000

    Inline _cairo_restrict_value()
    
    This is one instance where the function call overhead dominated the
    function call in both time and size.

 src/cairo-misc.c    |    9 ---------
 src/cairo-pattern.c |   32 ++++++++++++++++----------------
 src/cairo.c         |   14 ++++++++------
 src/cairoint.h      |   13 +++++++++++--
 4 files changed, 35 insertions(+), 33 deletions(-)

commit cc8a09567ca034e7d95e2ef8a3ec833b12c9f87a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 13 13:23:50 2009 +0000

    [surface] Move the meta-data copy-on-snapshot to the generic layer.
    
    As pointed out by Paolo Bonzini, copying the meta data for a snapshot is
    common for all backends and so should be handled by the generic layer.

 src/cairo-surface-fallback.c |   11 -----------
 src/cairo-surface.c          |   30 +++++++++++++++++++++++++++---
 2 files changed, 27 insertions(+), 14 deletions(-)

commit adaf70a93f4449e85997bcde531b76c9044758ea
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 13 12:56:46 2009 +0000

    [surface] Separate the mime-data from the user-data.
    
    Move the mime-data into its own array so that it cannot be confused with
    user-data and we do not need to hard-code the copy list during
    snapshotting. The copy-on-snapshotting code becomes far simpler and will
    accommodate all future mime-types.
    
    Keeping mime-data separate from user-data is important due to the
    principle of least surprise - the API is different and so it would be
    surprising if you queried for user-data and were returned an opaque
    mime-data pointer, and vice versa. (Note this should have been prevented
    by using interned strings, but conceptually it is cleaner to make the
    separation.) Also it aides in trimming the user data arrays which are
    linearly searched.
    
    Based on the original patch by Adrian Johnson:
    http://cgit.freedesktop.org/~ajohnson/cairo/commit/?h=metadata&id=37e607cc777523ad12a2d214708d79ecbca5b380

 src/cairo-array.c            |   36 ++++++++++++++++++++++++++++++++++++
 src/cairo-surface-fallback.c |   27 +++++++--------------------
 src/cairo-surface-private.h  |    1 +
 src/cairo-surface.c          |   42 +++++++++++++++++++++---------------------
 src/cairoint.h               |   14 ++++++++++++--
 5 files changed, 77 insertions(+), 43 deletions(-)

commit 2280de9d0282a599309ec12dc576bae54857f873
Merge: 17ce858 de7270c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 13 10:08:21 2009 +0000

    Merge branch '1.8'

commit de7270cb1e9510cb230e80045c812fa68fcfa585
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 13 10:03:22 2009 +0000

    [cairo] Describe the restrictions upon cairo_set_tolerance()
    
    Truc Troung reported that the behaviour of
    cairo_set_tolerance()/cairo_get_tolerance() was inconsistent with the
    documentation, i.e. we failed to mention that the tolerance would be
    restricted to the smalled fixed-point value.
    
    Add a sentence to the documentation that describes the restriction without
    mentioning what that is... Hopefully that is sufficient detail to
    accommodate the reporter, without exposing internal implementation details.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=20095
    Bug 20095 - The cairo_set_tolerance() function behavior is inconsistency
    with the spec

 src/cairo.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit 17ce8584e7142d13bd7a777c9570e5548a06a90c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Feb 12 18:26:57 2009 +0000

    [NEWS] Add API changes.
    
    Scan the public headers for obvious additions.

 NEWS |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)

commit 2df611a3810eb64c8ed22dfae5f3d3157eef7e6a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 10 10:28:28 2009 +0000

    [script] Expose a normal xlib window for replay
    
    Provide a visible surface for replaying scripts against.

 util/cairo-script/csi-replay.c |  122 +++++++++++++++++++++------------------
 1 files changed, 66 insertions(+), 56 deletions(-)

commit 8e1f103540392b17c51b4fb4b3c3480430cbc212
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Feb 12 12:02:17 2009 -0500

    Divert pclose to _pclose for MSVC
    
    Commit bf62798b1284533e28b78717dac8070ca6d29e54 added a diversion for
    popen but not for pclose. This is needed for linking the boilerplate
    with the test suite.

 src/cairo-compiler-private.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 38a1061bbcf3e69acc05c35f2084d462b43f5477
Merge: b3e2433 e7d4bc3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Feb 12 10:46:29 2009 +0000

    Merge branch '1.8'

commit e7d4bc3d864b1b42bb1cae031036ddf6a4445d3c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Feb 12 10:42:24 2009 +0000

    [png] Correct documentation to avoid reference to NULL
    
    As pointed out by Truc Truong,
    cairo_image_surface_create_from_png_stream() cannot return NULL and so the
    documentation was incorrect.
    
    Fixes http://bugs.freedesktop.org/show_bug.cgi?id=20075
    Bug 20075 There is a misprint in the spec for
    cairo_image_surface_create_from_png_stream() function

 src/cairo-png.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

commit b3e2433f1e78e8799a9f57bfb6da108016687fc9
Author: Søren Sandmann <sandmann@redhat.com>
Date:   Wed Feb 11 17:55:15 2009 -0500

    Correct the reference image for the rotate-image-surface-paint test

 test/rotate-image-surface-paint.ref.png |  Bin 190 -> 191 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit 41cbd935f9dba276db716e2c71ac21dc60505be9
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Feb 11 15:24:20 2009 -0500

    [test] Add cairo_test_NaN and use it in place of strtod
    
    strtod("NaN") returns 0.0 with the MSVC runtime so we
    need to generate NaN some other way.

 test/cairo-test.h        |   15 +++++++++++++++
 test/invalid-matrix.c    |    2 +-
 test/user-font-rescale.c |    2 +-
 3 files changed, 17 insertions(+), 2 deletions(-)

commit 70297f257d4dc0accb5183b806d43a033887acb7
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Feb 10 17:58:28 2009 -0500

    [test] Add crtdbg.h include
    
    crtdbg.h is required for _CrtSetReportMode() and _CrtSetReportFile().

 test/cairo-test-runner.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit b9f0c4b25223830ce73f7e3adef85a0e97a31c0e
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Feb 10 17:57:00 2009 -0500

    Use _cairo_round() instead of round()
    
    MSVC doesn't have round() and the code probably wants
    to round in the same direction regardless of whether
    the values are negative or positive.

 src/cairo-font-face-twin.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

commit dffdbd85157395bceb27d30d6426aa47173f6a18
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Feb 10 17:53:39 2009 -0500

    Add _cairo_round()
    
    _cairo_round() has the same behaviour as _cairo_lround() except
    it returns a double instead of an integer.

 src/cairoint.h |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

commit 41e46c7754fff3a99927979925300a7588b9962f
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Feb 10 11:44:20 2009 -0500

    [test] Don't embed preprocessor directives inside macros
    
    MSVC can't handle this. GCC will warn with -pedantic, but I'm not
    sure we want to enable that.

 test/user-font-mask.c  |   11 ++++++-----
 test/user-font-proxy.c |   10 +++++-----
 test/user-font.c       |   10 +++++-----
 3 files changed, 16 insertions(+), 15 deletions(-)

commit fe40d3bdb0d0cb93169b935e44d14b15e014fa6d
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Mon Feb 9 23:43:04 2009 -0500

    [test] Allocate glyph array with malloc
    
    Keeping it on the stack causes a stack overflow of Window's
    default 1mb stack.

 test/show-glyphs-many.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 50f8c2e4f3407ef237afd94c7317b1e185ccc9dc
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Mon Feb 9 23:39:38 2009 -0500

    [test] define isnan() on MSVC
    
    Needed for user-font-rescale.c

 test/cairo-test.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit dd9fc47418b86610d7896fcf585037c96beaa66f
Author: Jeff Muizelaar <jeff@infidigm.net>
Date:   Mon Feb 9 16:31:08 2009 -0500

    Remove zero size data array for compilation with MSVC
    
    MSVC doesn't support zero sized arrays very well. For example, zero
    sized arrays in arrays.

 src/cairo-tor-scan-converter.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

commit a6c8f18a391407044b33340cf13c49368a2e810e
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Mon Feb 9 15:59:01 2009 -0500

    [test] Avoid C99 designated initializers
    
    MSVC doesn't support these so we shouldn't use them.

 test/path-precision.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

commit 3d2fcec948b93f75ba49b898633a84f60d419779
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Mon Feb 9 15:12:41 2009 -0500

    [test] Define INFINITY on MSVC
    
    1./0. produces a compiler error on MSVC so we'll use HUGEVAL instead.

 test/cairo-test.h     |    3 ---
 test/invalid-matrix.c |    4 ++--
 2 files changed, 2 insertions(+), 5 deletions(-)

commit c22ca79863a54b4293e607c8e4d515868c216842
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Feb 6 12:56:48 2009 -0500

    Don't distribute cairo-features.h (#19992)
    
    Second time I fix this bug.  Mabe we should add a test for it!

 src/Makefile.am |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

commit a55655a82de8dee0f171efb2f7dfb1da341ecdd6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Feb 6 12:47:38 2009 -0500

    [test] Fix "make dist"

 doc/public/tmpl/cairo-status.sgml |    1 +
 test/Makefile.am                  |    1 -
 2 files changed, 1 insertions(+), 1 deletions(-)

commit af5ca7249f7628a8b0758f51934e3c1f6d9f4f36
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Feb 5 16:46:50 2009 -0500

    [test] Fix the definition of INFINITY
    
    In my defence, even with INFINITY as 0, I was seeing new asserts on win32.
    Caught by Jeremy Lea.

 test/invalid-matrix.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 83ec4b16b7b9a27439fee2d84c50e30a1ec2d68c
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Feb 4 14:04:05 2009 -0500

    Elaborate the meaning of arithmetic rounding as done by _cairo_lround()

 src/cairo-misc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2676b3bdd6fbeef62d34c100718f76fe5bbe647d
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Feb 3 14:18:44 2009 -0500

    [test] Define INFINITY if it hasn't been defined.
    
    This lets us use more of invalid-matrix on win32

 test/cairo-test.h     |    3 +++
 test/invalid-matrix.c |   22 ++--------------------
 2 files changed, 5 insertions(+), 20 deletions(-)

commit 6b0c2c8ba61b6fdaad4c77e1a7c02c13c70e03c4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jan 31 11:58:19 2009 +0000

    [directfb] Don't access the scaled_font->glyphs cache directly
    
    Not only does it no longer exist, but doing so bypassed the locking
    mechanisms and sanity checks!
    
    Spotted by Lance Hepler.

 src/cairo-directfb-surface.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

commit d63c1ab3ffcb64220a05c80e674324f524f29dc2
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Jan 31 22:10:57 2009 -0500

    [util/malloc-stats] Do a single backtrace_symbols() call
    
    I was hoping that this may speed things up, but it didn't.  :(

 util/malloc-stats.c |   58 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 50 insertions(+), 8 deletions(-)

commit 64d1c7587041f765b393e1802a10cce02b807ad1
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Jan 31 21:34:21 2009 -0500

    [util] Fix memset bug in malloc-stats

 util/malloc-stats.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

commit b02aeb367dc4bada5412798fa93ce74f3d861273
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Jan 31 21:33:42 2009 -0500

    [util] Don't link backtrace-symbols into malloc-stats
    
    On my rawhide machine, seems like the glibc backgrace-symbols is now as
    good as our private backtrace-symbols.

 util/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7375f4c76bb169cc24d5d714520c337172d3cf69
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 30 21:54:56 2009 +0000

    Trivial warning fixes.
    
    Cleanup a few compiler warnings about unused variables and mismatching
    pointer types.

 src/cairo-bentley-ottmann.c |    1 -
 src/cairo-ps-surface.c      |    4 ++--
 2 files changed, 2 insertions(+), 3 deletions(-)

commit f10eaadf89fa94172a81c05a59febab3f7e32396
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 30 21:50:24 2009 +0000

    Revert "[png] Complete the idempotent read_png() -> write_png()"
    
    This reverts commit 564d64a1323c5cbcde2dd9365ac790fe8aa1c5a6.
    
    In hindsight, and with further discussion with Jeff Muizelaar, this
    behaviour of using the stored contents from the mime-data is completely
    the opposite of the users' expectations. When the user calls
    cairo_surface_write_to_png(), usually in the course of debugging their
    rendering code, they expect the precise contents of the surface to be
    saved.

 src/cairo-png.c |   14 --------------
 1 files changed, 0 insertions(+), 14 deletions(-)

commit dd11d905a54a123ddf619e5f0194fb1800ba643d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 30 10:09:29 2009 +0000

    [util] Use a hash-table for malloc-stats.
    
    At Behdad's request, convert the array of allocators into a simple hash
    table (large static number of buckets + chaining) in order to speed up
    malloc profiling.

 util/malloc-stats.c |  150 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 103 insertions(+), 47 deletions(-)

commit 322fb00066cc4655122fcf7d738a0cbbe46fcdd1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 29 22:05:06 2009 +0000

    [test] Compile again without memfault.
    
    Hide the valgrind macro when not using memfault.

 test/cairo-test.c |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

commit 5e6d25e204b681c5d5fba90abfe4d7401f23460f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 17 20:47:09 2008 +0000

    [skiplist] Provide an initial stack allocated pool.
    
    Since we only need to allocate elts for intersection events and edges, the
    number of elts in flight at any one time is actually quite small and can
    usually be accommodated from an embedded pool.

 src/cairo-bentley-ottmann.c  |   33 ++++++++++-----------------------
 src/cairo-skiplist-private.h |    9 +++++----
 src/cairo-skiplist.c         |   13 ++++++-------
 3 files changed, 21 insertions(+), 34 deletions(-)

commit dd4276c6618aa250637e4499bc7cb0a35b24448c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 30 13:49:24 2008 +0000

    [stroker] Rectilinear dashing.
    
    Extend the rectilinear stroker to handle dashes, so that for pixel-aligned
    dashed strokes we completely avoid tessellation overhead.

 src/cairo-matrix.c                      |    3 +-
 src/cairo-path-stroke.c                 |  492 +++++++++++++++++++++++++------
 src/cairo-pen.c                         |   11 +-
 src/cairo-stroke-style.c                |   18 +-
 src/cairoint.h                          |   11 +-
 test/Makefile.am                        |    4 +-
 test/leaky-dashed-rectangle.pdf.ref.png |  Bin 0 -> 347 bytes
 test/leaky-dashed-rectangle.ps.ref.png  |  Bin 0 -> 444 bytes
 test/leaky-dashed-rectangle.ps2.ref.png |  Bin 444 -> 0 bytes
 test/leaky-dashed-rectangle.ps3.ref.png |  Bin 444 -> 0 bytes
 test/leaky-dashed-rectangle.ref.png     |  Bin 366 -> 347 bytes
 11 files changed, 437 insertions(+), 102 deletions(-)

commit 7f95288c03a400bf770165d427ef623d924b3b47
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 29 09:47:01 2009 +0000

    [ft] Improve error status propagation.
    
    Propagate the error status from deep within the bowels, in order to reduce
    the number of duplicate _cairo_error() and generally clean up the return
    values.

 src/cairo-ft-font.c |   65 +++++++++++++++++++++++++--------------------------
 1 files changed, 32 insertions(+), 33 deletions(-)

commit 53bd2ae2ce27f9b954f34bc9921d798c9a074125
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 26 21:36:27 2009 +0000

    [ft] Distinguish fatal backend errors whilst constructing scaled fonts.
    
    We now have the ability to distinguish an error case where the backend is
    left in an inconsistent state from a transitory error. For the former we
    need to report the error condition via the return value, which will be
    propagated to the font-face. For the latter we just construct an in-error
    scaled font nil-object which is passed back to the user.

 src/cairo-ft-font.c |   38 ++++++++++++++++++++++++++------------
 1 files changed, 26 insertions(+), 12 deletions(-)

commit f17aeedab31753974cce027f92571107425b1bcd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 26 21:11:41 2009 +0000

    [scaled-font] Differentiate fatal error when creating fonts
    
    We only want to set the error state on the backend when it implies that
    the font-face is in an inconsistent state. For example, this may be due to
    a locking error in the backend or that we have detected a corrupt font.
    
    In contrast, if we merely fail to allocated the scaled font then we just
    wish to return that error to the user, without making the font-face itself
    inert.

 src/cairo-scaled-font.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

commit 58cab06c4c2c49bbecb11efaae6b41d30c06eff0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 26 20:52:29 2009 +0000

    [scaled-font] Guard against invalid matrices when creating the scaled font.
    
    Check the user input for validity before passing the values on to the
    backend. Currently the error is detected by the backend and the error is
    propagated onto the font-face.

 src/cairo-scaled-font.c |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

commit 97c88f2af04b6bc5161fa2b567b5e922d7fd326a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 26 20:51:02 2009 +0000

    [surface] Fix memleak of along set_mime_data() error path
    
    Free the mime_data holder if we fail to attach it to the surface.

 src/cairo-surface.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

commit d20e5fc2d95c61ab04e085bf3a99d2cb958421a5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 26 15:08:58 2009 +0000

    [ps] Free images after emitting patterns.
    
    Ensure that the temporary images are freed after we finish with the
    pattern.
    
    Note that we are using 3 members of the surface for temporary storage
    whilst emitting patterns, this should be reviewed.

 src/cairo-ps-surface-private.h |    3 +++
 src/cairo-ps-surface.c         |   18 ++++++++++++++++--
 2 files changed, 19 insertions(+), 2 deletions(-)

commit e6102dbe028ca93db936b2f4cd6368e2ba0a2209
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 26 14:00:13 2009 +0000

    [png] Avoid a double free of the memory stream after error.
    
    _cairo_memory_stream_destroy() finalizes the stream even if the stream was
    in error and that error is reported back to the caller - so ensure we
    don't try to free the stream again.

 src/cairo-png.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 0f3e366f8bbbaa80b518eb1b0297a6122901ce66
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 26 10:54:45 2009 +0000

    [font-face] Close a race when resurrecting fonts.
    
    Paul Messmer provided a thorough analysis of a race between destroying the
    final reference on a font and a concurrent recreation of the font -
    demonstrating how it is possible for the create() to return the font that
    was in the process of being freed.
    
    To stop the race, we need to recheck the reference count upon taking the
    mutex guarding the hash table.

 src/cairo-ft-font.c       |    6 ++++++
 src/cairo-toy-font-face.c |    6 ++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

commit 312b5680a5754c8e7ee1332206b81449cf9bf8a3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 23 21:13:15 2009 +0000

    [cff-subset] Free ps_name.
    
    Ensure ps_name is freed along error paths and by the normal destructor.

 src/cairo-cff-subset.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 5176507fcb61ae1ec1143aa0b6b098bc92575c48
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 23 13:37:54 2009 +0000

    [truetype] Free font name.
    
    Remember to free the font name on destruction.

 src/cairo-truetype-subset.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit ab0ac1b8a84b0d259602f0029a3b5552466f35a6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 29 09:45:11 2009 +0000

    [truetype] Initialise font_name
    
    Ensure the font_name is initialized to NULL.

 src/cairo-cff-subset.c      |    2 ++
 src/cairo-truetype-subset.c |    1 +
 2 files changed, 3 insertions(+), 0 deletions(-)

commit 8388af137841679b7c510980daf3cec1427b6e6b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 29 09:50:38 2009 +0000

    [test] Trivial fixes for error paths.
    
    Kill a few leaks along error paths in the test code.

 test/create-from-png-stream.c |   36 ++++++++++++++++++++++++++++--------
 test/mime-data.c              |    4 ++++
 2 files changed, 32 insertions(+), 8 deletions(-)

commit 3752f690b467432ab5b1058d450cb79d719a794a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 29 09:49:41 2009 +0000

    [test] Suppress suppressed memfault report
    
    Check to see if there are any *unsuppressed* memfaults before declaring
    unreported faults.

 test/cairo-test.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

commit 8dc4c0da9b13b16c593e874d59c13a89a77a2481
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 23 13:17:24 2009 +0000

    [toy-font] Fix unwind behaviour following error during construction.
    
    We failed to cleanup the font face correctly after an allocation failure
    during _cairo_toy_font_face_init() leading to memleaks and live entries
    being left in the font-face hash tables.

 src/cairo-toy-font-face.c |   43 +++++++++++++++++++++----------------------
 1 files changed, 21 insertions(+), 22 deletions(-)

commit 1d52fbc8f4f70e9e2419a6ed66cd907552d1d13b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 23 12:51:52 2009 +0000

    [tessellator] Memleak on error path.
    
    Add a missing _cairo_skip_list_fini() after failure to allocate the
    events.

 src/cairo-bentley-ottmann.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 6b5d2bf1a742b34a58d65f188fe15ffbf2f83118
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 23 10:42:42 2009 +0000

    [trace] Comment out the redundant wrapping of FT_Open_Face()
    
    Remove the left-over debugging spew, but leave a comment to hopefully
    clarify the situation with wrapping FT_Open_Face().

 util/cairo-trace/trace.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

commit faa004033cde21cd81890c7f82abae8eb766bb4b
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Jan 22 11:52:54 2009 +1100

    cairo-trace: Print name of trace file.
    
    It's just a lot easier to use cairo-trace if it tells you
    what file it just created.

 util/cairo-trace/trace.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit d108b2777fcd6ef4fa45aeeef457dc58522e325b
Author: Daniel Holbert <dholbert@mozilla.com>
Date:   Fri Jan 23 10:18:48 2009 +0000

    Spelling corrections: s/it's/its/
    
    As a fun itch to scratch, I've been fixing incorrect uses of the
    contraction "it's" in comments within the mozilla source tree (tracked
    in https://bugzilla.mozilla.org/show_bug.cgi?id=458167 ), and I ran
    across 6 instances of this typo in mozilla's snapshot of cairo.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-ft-font.c            |    2 +-
 src/cairo-matrix.c             |    2 +-
 src/cairo-mutex-impl-private.h |    2 +-
 src/cairo-pdf-operators.c      |    2 +-
 src/cairo-surface-fallback.c   |    2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit 6394ec3048f31b867d9588853fa400c6c630c6f1
Author: Paolo Bonzini <bonzini@gnu.org>
Date:   Mon Dec 15 09:32:43 2008 +0100

    [surface] add CAIRO_STATUS_INVALID_SIZE
    
    Adds an error code replacing CAIRO_STATUS_NO_MEMORY in one case where it
    is not really appropriate.  CAIRO_STATUS_INVALID_SIZE is used by several
    backends that do not support image sizes beyond 2^15 pixels on each side.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-misc.c                 |    4 +++-
 src/cairo-os2-surface.c          |    9 +++++----
 src/cairo-quartz-image-surface.c |    5 +++--
 src/cairo-quartz-surface.c       |    4 ++--
 src/cairo-spans.c                |    2 ++
 src/cairo-surface.c              |    1 +
 src/cairo-xlib-surface.c         |    7 +++----
 src/cairo.h                      |    6 ++++--
 src/cairoint.h                   |    2 +-
 9 files changed, 24 insertions(+), 16 deletions(-)

commit 46acfd2e85dd6f7a73e1172d363d509c769376f2
Author: Paolo Bonzini <bonzini@gnu.org>
Date:   Tue Dec 23 08:31:30 2008 +0100

    [glitz] use image fallback if the cairo_content_t is unsupported
    
    The agreement on the mailing list was that returning NULL is the right
    thing to do, and indeed the callers of _cairo_glitz_surface_create_similar
    are prepared to receive NULL and return CAIRO_STATUS_INT_UNSUPPORTED in
    that case.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-glitz-surface.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 01d20b79daf0abe0f69ccec4ecd5122c5bfe9a4e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 23 10:09:37 2009 +0000

    [scaled-font] Fix up syntax in doc comments
    
    The old NULL vs %NULL conflict.

 src/cairo-scaled-font-subsets-private.h |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

commit aaec63d48386ec825cd4d6e67b6adf7c5fd3b167
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 21 15:04:47 2008 +0000

    [scaled-font] Global glyph cache
    
    Currently glyphs are cached independently in each font i.e. each font
    maintains a cache of up to 256 glyphs, and there can be as many scaled fonts
    in use as the application needs and references (we maintain a holdover
    cache of 512 scaled fonts as well).
    
    Alternatively, as in this patch, we can maintain a global pool of glyphs
    split between all open fonts. This allows a heavily used individual font
    to cache more glyphs than we could allow if we used per-font glyph caches,
    but at the same time maintains fairness across all fonts (by using random
    replacement) and provides a cap on the maximum number of global glyphs.
    
    The glyphs are allocated in pages, which are cached in the global pool.
    Using pages means we can exploit spatial locality within the font
    (nearby indices are typically used in clusters) to reduce frequency of small
    allocations and allow the scaled font to reserve a single MRU page of
    glyphs. This caching dramatically reduces the cairo overhead during the
    cairo-perf benchmarks, and drastically reduces the number of allocations
    made by the application (for example browsing multi-lingual site with
    firefox).

 boilerplate/cairo-boilerplate.c |    5 +-
 src/cairo-cache-private.h       |    8 +
 src/cairo-cache.c               |   36 +++--
 src/cairo-hash-private.h        |    4 +
 src/cairo-hash.c                |  117 +++++++++++----
 src/cairo-mutex-list-private.h  |    1 +
 src/cairo-scaled-font-private.h |    6 +-
 src/cairo-scaled-font.c         |  306 ++++++++++++++++++++++++++++-----------
 src/cairoint.h                  |    9 +-
 9 files changed, 351 insertions(+), 141 deletions(-)

commit 54f6a49ebb18cf396823d0d70b95e4e264142171
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 19 15:36:29 2009 +0000

    [bounds] Skip spline evaluation based on bounding bbox of control points.
    
    The bounding polygon of the control points, defines the extents of the
    spline. Therefore if the control points are entirely contained within the
    current path extents, so is the spline and we do not need to evaluate its
    tight bounds.

 src/cairo-path-bounds.c |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

commit e217c4da7bc5c4817e0d829ff61dd2bd5b3145a6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 19 15:28:05 2009 +0000

    [in-stroke] Check point against extents before computing path.
    
    We can avoid tessellating the path entirely by first checking whether the
    query point is inside the path extents.

 src/cairo-gstate.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

commit 48f9a0e6da0dd24ea9c809876ef3c745dcfd0d52
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 15 00:26:03 2009 +0000

    [spline] Correct the definition of a cubic Bezier curve.
    
    Add the missing coefficients for p1 and p2 so the derivation of the
    derivative and the solution for its inflection points stands correct.

 src/cairo-spline.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit ee7ac5681fa6a74b68beeae667d96d1421050fc9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 21 12:04:06 2009 +0000

    [path] A degenerate curve_to becomes a line_to.
    
    Be consistent.

 src/cairo-path-fixed.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 778ced4879b09f7482bd41c398bf2d984754ed0b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 14 18:55:32 2009 +0000

    [path] Rename _cairo_path_fixed_approximate_extents()
    
    Rename approximate_extents() to approximate_clip_extents() so that it is
    consistent with the fill and stroke variants and clearer under what
    circumstances you may wish to use it.

 src/cairo-analysis-surface.c |    2 +-
 src/cairo-clip.c             |    4 ++--
 src/cairo-path-bounds.c      |    4 ++--
 src/cairo-surface-fallback.c |    2 +-
 src/cairoint.h               |    4 ++--
 5 files changed, 8 insertions(+), 8 deletions(-)

commit 75f7c420b624049c1f6c51795679f8029cd2231d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 21 13:09:41 2009 +0000

    [perf] Remove a redundant clear during source init.
    
    After a short wild goose chase to see why
    cairo_image_surface_fill_rectangles() was appearing in the profile,
    tweak init_and_set_source_surface() to remove the redundant clear and
    to propagate any errors in the auxiliary context.

 perf/cairo-perf-cover.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

commit 706f6de68da65911f434d2065dcb143649fa793e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jan 18 16:47:59 2009 +0000

    [perf] Add another variation on the many-rectangles case
    
    This variation aims to show the difference between calling fill once
    per-rectangle, or once for all rectangles.

 perf/rectangles.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

commit ff5d37a8ad063e84e88f453a403715bc85f8a3ec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 29 10:09:11 2009 +0000

    [mutex] Civilise the comment.
    
    Note bene that Behdad does not like people shouting.

 src/cairo-mutex-impl-private.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f4ff6128d7fb6e4b5ba361a597fc6c0c88d5ec00
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Jan 28 17:16:32 2009 -0500

    Avoid "empty body in an if-statement" warning
    
    Use '(void)expr;' instead of 'if (expr) ;' to avoid getting the warning.
    'if (expr) {}' is an option, however '(void)expr;' seems like a more common
    idiom and getting warnings for __attribute__((warn_unsed_result)) functions is
    probably prefered.

 src/cairo-mutex-impl-private.h |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit 41feeedcc14bf8caef3c039de49f4f28143712c7
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Dec 3 23:58:22 2008 +1030

    Use PS font name in PS TrueType fonts

 src/cairo-ps-surface.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

commit b7a9e1d4ac3972bc3d215070124b6a9eda68d3e3
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Dec 3 23:58:05 2008 +1030

    Embed full font name in PDF TrueType and CFF fonts
    
    if the full font name was available in the font.

 src/cairo-pdf-surface.c |   32 ++++++++++++++++++++++++--------
 1 files changed, 24 insertions(+), 8 deletions(-)

commit 6f2db9a4b07cde2c4932ea481228abc248e90145
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Dec 3 23:57:38 2008 +1030

    Use PS font name in CFF and TrueType PDF font subsets
    
    James Cloos found that the font name in embedded fonts should be the
    PostScript font name (nameID=6 in the name table).
    
    http://lists.cairographics.org/archives/cairo/2008-December/015919.html

 src/cairo-cff-subset.c                  |   70 ++++++++++++++--------
 src/cairo-pdf-surface.c                 |   16 +++---
 src/cairo-scaled-font-subsets-private.h |   19 +++++--
 src/cairo-truetype-subset.c             |   97 ++++++++++++++++++++++---------
 4 files changed, 136 insertions(+), 66 deletions(-)

commit 2ed08f7801a2af27e35afcf57f00f4bf5d48384a
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Dec 3 23:56:01 2008 +1030

    Factor out duplicate code in truetype and cff subsetting
    
    The code for reading the font name from the name table has been moved
    to a new function: _cairo_truetype_read_font_name().

 src/cairo-cff-subset.c                  |   60 ++-----------
 src/cairo-scaled-font-subsets-private.h |   18 ++++
 src/cairo-truetype-subset.c             |  149 ++++++++++++++++++-------------
 3 files changed, 114 insertions(+), 113 deletions(-)

commit 1deb1e451022b9dd5aa6ecb0b580b006047b630e
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Nov 25 23:11:01 2008 +1030

    PDF: Include subset tag in font name
    
    PDF requires font names of subsetted fonts to be preprended with
    "XXXXXX+" where XXXXXX is a sequence of 6 uppercase letters unique the
    font and the set of glyphs in the subset.

 src/cairo-pdf-surface.c |  112 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 104 insertions(+), 8 deletions(-)

commit c4e54629bb444ed3e850ca8deec175936b90c4e4
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Jan 22 12:26:55 2009 +1100

    Add details to test/COPYING about license of bundled fonts.
    
    Just the public-doamin 6x13.pcf file for now, but Adrian will
    be bundling more soon.

 test/COPYING |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit 6801f28f6dfeb21eec44052e75156e9d2b82422e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 14 13:59:28 2009 +0000

    [perf] Add a utility to compare backends.
    
    A minor variation on cairo-perf-diff-files that compares tests with the
    same name for multiple backends.

 perf/.gitignore                    |    1 +
 perf/Makefile.am                   |    8 +-
 perf/cairo-perf-compare-backends.c |  393 ++++++++++++++++++++++++++++++++++++
 perf/cairo-perf-diff-files.c       |    2 +-
 perf/cairo-perf-graph-files.c      |    2 +-
 perf/cairo-perf-report.c           |   43 ++++-
 perf/cairo-perf.h                  |    9 +-
 7 files changed, 448 insertions(+), 10 deletions(-)

commit 4c79cd480db1cf10b6018bce3ea966587efc6081
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 13 12:52:52 2009 +0000

    [perf] Tweak dragon to hit fill_rectangles().
    
    Add a second dragon path that is pixel-aligned and uses a solid pattern,
    so that it can be drawn using fill-rectangles.

 perf/dragon.c |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

commit de9e6b5a3f4e4752e0f99e3ae20ac263a5aae4bb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 12 01:00:30 2009 +0000

    [perf] Cover linear gradient with 3 stops.
    
    The i915 is able to special case gradients with just 2 color stops to
    avoid creating temporary gradient textures, so add a 3 stop linear
    gradient to compare the speed difference.

 perf/cairo-perf-cover.c |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

commit 7cbc55f21624159dfa58a9a50ec004af9368ab3d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jan 10 00:12:06 2009 +0000

    [perf] Add scaled similar surface sources.
    
    Cover the similar source with min/mag scale factors as well, so we can
    compare the performance impact with scaled image sources. This is useful
    to distinguish between transport overhead and transform cost.

 perf/cairo-perf-cover.c |   44 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 40 insertions(+), 4 deletions(-)

commit afce1cfe987eeec6516aed1eb8fd97c2d3b9b07b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 9 14:22:36 2009 +0000

    [scaled-font] Avoid repeated lookup of the same unicode during text->glyphs
    
    Performing the unicode to index is quite expensive, the
    FcFreeTypeCharIndex() taking over 12% in the cairo-perf text benchmarks.
    By adding a simple cache of translated unicode indices, we save around 25%
    of the lookups during benchmarks, with a relative reduction in runtime.

 src/cairo-scaled-font.c |   63 ++++++++++++++++++++++++++++++----------------
 1 files changed, 41 insertions(+), 22 deletions(-)

commit 49eca78a4265432e285af58435219e8b804b38bb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 12 12:42:46 2009 +0000

    [test] Add a huge-radial test case.
    
    Also test the handling of radial gradients with large radii.

 test/Makefile.am                     |   11 +++--
 test/huge-linear.c                   |   67 +++++++++++++++++++++++++++++++++
 test/huge-linear.ps3.ref.png         |  Bin 0 -> 1786 bytes
 test/huge-linear.ref.png             |  Bin 0 -> 1619 bytes
 test/huge-pattern.c                  |   65 --------------------------------
 test/huge-pattern.pdf.argb32.ref.png |  Bin 2430 -> 0 bytes
 test/huge-pattern.pdf.ref.png        |  Bin 2716 -> 0 bytes
 test/huge-pattern.pdf.rgb24.ref.png  |  Bin 2817 -> 0 bytes
 test/huge-pattern.ps3.ref.png        |  Bin 1786 -> 0 bytes
 test/huge-pattern.ref.png            |  Bin 1619 -> 0 bytes
 test/huge-radial.c                   |   69 ++++++++++++++++++++++++++++++++++
 test/huge-radial.ps3.ref.png         |  Bin 0 -> 18449 bytes
 test/huge-radial.ref.png             |  Bin 0 -> 41702 bytes
 13 files changed, 142 insertions(+), 70 deletions(-)

commit 7709d1d9d43a42dd8f9293f18141c57c76ca0970
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 7 21:12:21 2009 +0000

    [test] Add fill-image.
    
    A filled equivalent of stroke-image, that checks that the pattern
    matrices are applied correctly during fills - useful with the
    segregation between fills and strokes introduced by spans.

 test/Makefile.am        |    2 +
 test/fill-image.c       |   83 +++++++++++++++++++++++++++++++++++++++++++++++
 test/fill-image.ref.png |  Bin 0 -> 1317 bytes
 3 files changed, 85 insertions(+), 0 deletions(-)

commit 5605e4bfcd0b6e3e34eed3785bc8ae51b24a7385
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jan 4 11:26:45 2009 +0000

    [test] Propagate failure from painting large-source-roi
    
    Use cairo_get_target() to propagate any failure when creating the
    large-source.

 test/large-source-roi.c |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

commit 59a14f622389ae3f34f93c78b709df2ad6d1d624
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Jan 10 13:09:06 2009 -0500

    Comment win32 maintainer-clean files again

 Makefile.am |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit cc5119173918623ce13363f4b25cd06076fc3fbc
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Sat Jan 10 12:13:40 2009 -0500

    Uncomment win32 maintainer-clean files to make Makefile.am syntactically correct

 Makefile.am |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 06deaa98b67f9e674a6933a8f54dae6a45faf6ff
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Jan 9 15:55:24 2009 -0500

    [build] Include all generated win32 build files in the repo
    
    So a git clone can be built on win32.  The files only change after adding
    new backends.

 Makefile.am                         |    4 +-
 boilerplate/.gitignore              |    2 +-
 boilerplate/Makefile.am             |    2 +-
 boilerplate/Makefile.win32.features |  233 ++++++++++++++++++++++++++
 build/.gitignore                    |    4 +-
 build/Makefile.win32.features       |   22 +++
 build/Makefile.win32.features-h     |   70 ++++++++
 src/.gitignore                      |    3 +-
 src/Makefile.am                     |    2 +-
 src/Makefile.win32.features         |  311 +++++++++++++++++++++++++++++++++++
 10 files changed, 644 insertions(+), 9 deletions(-)

commit a5c1cdf2b030959309e1645bd115f058f1367296
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Nov 13 12:11:12 2008 +0200

    [clip] Fix uninitialised status return in _cairo_clip_intersect_mask() for empty extents.
    
    This fixes the clip-all test case crashing for me.

 src/cairo-clip.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 8157bc8a2dc0d555606d19ad52ae7a603471edd6
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Jan 4 04:14:28 2009 +0200

    [test] Stress test using large source images.
    
    This test attempts to trigger failures in those backend clone_similar
    methods that have size restrictions on the resulting image.  It also
    triggers errors in scaling down large image surfaces as the image
    backend also fails this test.

 test/Makefile.am              |    2 +
 test/large-source-roi.c       |   64 +++++++++++++++++++++++++++++++++++++++++
 test/large-source-roi.ref.png |  Bin 0 -> 102 bytes
 3 files changed, 66 insertions(+), 0 deletions(-)

commit 388ae177e4100698289819429fa1f8e6958d1c60
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jan 3 22:51:28 2009 +0000

    [boilerplate] Remove CAIRO_BOILERPLATE_LOG()
    
    The variadic macro is only used within boilerplate/ so replace it with a
    simple, and portable, call to fprintf.

 boilerplate/cairo-boilerplate-beos.cpp    |   19 +++----------------
 boilerplate/cairo-boilerplate-glitz-agl.c |   10 +++++-----
 boilerplate/cairo-boilerplate-glitz-glx.c |    6 +++---
 boilerplate/cairo-boilerplate-glitz-wgl.c |   10 +++++-----
 boilerplate/cairo-boilerplate-system.c    |   16 ++++++++--------
 boilerplate/cairo-boilerplate-xcb.c       |    4 ++--
 boilerplate/cairo-boilerplate.h           |    4 ----
 test/cairo-test.h                         |    1 -
 8 files changed, 26 insertions(+), 44 deletions(-)

commit 5f816ccd25d1cd303fc1e9e44e80c1207b2a424a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jan 3 22:30:55 2009 +0000

    [boilerplate] Redefine DEBUG() for portability concerns
    
    Behdad warned that using an empty variadic macro was non-portable.

 boilerplate/cairo-boilerplate-xlib.c |   18 +++++++++---------
 boilerplate/cairo-boilerplate.h      |    2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

commit acb2717372f3862ddbde8cfdc814132808b71f86
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jan 3 21:50:55 2009 +0000

    [quartz] Define RTLD_DEFAULT
    
    RTLD_DEFAULT is a gnu-ism (at least according to the manpage on my linux
    system) so declare _GNU_SOURCE before including dlfcn.h and failing that
    provide our own definition.

 src/cairo-quartz-surface.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit ff1f5de5511ba0b7842b53223c26986e4bcdc38a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jan 3 11:44:58 2009 +0000

    [boilerplate] Suppress xlib warnings on stderr
    
    If we cannot test the xlib backend simply because there is no Display,
    just report UNTESTED and do not clutter the output with superfluous
    warnings [see the output from the buildbots for an example]. However,
    keep the warnings around so that a developer can re-enable them
    and so simply move them to a new "lower priority" macro.

 boilerplate/cairo-boilerplate-xlib.c |   18 +++++++++---------
 boilerplate/cairo-boilerplate.h      |    4 ++++
 2 files changed, 13 insertions(+), 9 deletions(-)

commit 75538962c8af11b1ec669caca6259b7769b5cc1d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 17:45:26 2009 +0000

    [boilerplate] Check the return of pclose()
    
    pclose() returns the child exit status, so we can use that to detect
    errors in the convertor process.

 boilerplate/cairo-boilerplate.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

commit 333158ec85cf3c610cc8965fc3f99d72b534cc2e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 15:36:39 2009 +0000

    [configure] Replace awk comparator with an aclocal version
    
    As reported in https://bugs.freedesktop.org/show_bug.cgi?id=19283, the
    fallback freetype version compare is broken inside the configure script as
    the $1-$3 arguments are interpreted as the script is constructed. To avoid
    making that awk comparison any more complicated, we import a version compare
    from the autoconf archives - such that we have a reusable macro for the
    furture.

 build/aclocal.compare.m4 |  162 ++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac             |   18 ++----
 2 files changed, 168 insertions(+), 12 deletions(-)

commit dc33ae24619f4602c23716e9e407f8dd4f1b4a1d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 14:29:53 2009 +0000

    [boilerplate] Use pclose() after popen
    
    Joonas pointed out that we should be using pclose() on a stream returned
    by popen().

 boilerplate/cairo-boilerplate.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f230ce7658910c7f4f8feb722b77a2141824f963
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 14:03:35 2009 +0000

    [path] Fix typo in bounds for empty path.
    
    We set the width to be zero, twice, and the height not even once!

 src/cairo-path-bounds.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 163c326c82a45c1f3ee84bbfaee2cc2e6dc1fafc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 13:46:16 2009 +0000

    [test] Free test name
    
    Adding the missing free for the converted test name.

 test/cairo-test.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit dd65be740c475daf75c602fc79ff25977674d9cf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 13:42:53 2009 +0000

    [test/pdf-mime-data] Free data on error paths.
    
    Cleanup the allocated buffers on error.

 test/pdf-mime-data.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 65f9760d661a0eb2edf9e53fb1b74666ce0ba3b9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 13:43:33 2009 +0000

    [toy-font-face] Return defaults for error objects.
    
    Similar to the behaviour of the other objects, we return the default
    conditions if the object is in any error (and not just a nil object).

 src/cairo-toy-font-face.c |   28 ++++++++++++++++++++++++----
 1 files changed, 24 insertions(+), 4 deletions(-)

commit d478d5ed5ce7c19a02e11435bcf69e867c6705d9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Jan 2 06:48:54 2009 -0500

    [doc] Give a small hint about Twin font
    
    Though, the details are not documented yet.  I'm not sure how much of it
    I do want to document.

 src/cairo-toy-font-face.c |    2 +-
 src/cairo.c               |    7 +++++++
 2 files changed, 8 insertions(+), 1 deletions(-)

commit a023104400f7f08775e9e52c304f5df2bc96382d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 2 10:32:39 2009 +0000

    [trace] Adopt _cairo_dtostr
    
    In order to have locale-independent output of decimal values, we need to
    manually transform such numbers into strings. As this is a solved problem
    for cairo, we adopt _cairo_output_stream_printf() and in particular the
    _cairo_dtostr() routine for our own printf processing.

 util/cairo-trace/trace.c |  920 +++++++++++++++++++++++++++-------------------
 1 files changed, 546 insertions(+), 374 deletions(-)

commit c601f308430f4d33929109fb9170b9322edca3c6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 1 16:55:08 2009 +0000

    [cairo] Early return if we attempt to set the same colour.
    
    Profiling a silly video renderer that called set-source; rectangle; fill;
    for each pixel, we can shave 5% off the cairo overhead by introducing an
    early return if we attempt to reset the current colour.

 src/cairo.c |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

commit fb3522f33a565576002595bf03e07f6c8b16a471
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 20 19:19:54 2008 +0000

    [os2] Fix memory leak of surface on error path
    
    Of we fail to create the mutex, free the surface before returning the
    failure.
    
    Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19208.

 src/cairo-os2-surface.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 8d23c3a6c2ab0ae168afb695e2b8c5f121ed2be3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 20 19:17:28 2008 +0000

    [quartz] Delay allocation of string until after guard.
    
    Fixes a memory leak should we bail due to the version of Quartz being
    insufficient.
    
    Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19209.

 src/cairo-quartz-font.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit 9c9ed8f0b5ce8bc3036dcb0bf841ffaa24797cfa
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 19 13:04:31 2008 +0000

    [scaled-font] Post-process hash value.
    
    Mix the bits within the hash value to reduce clustering.

 src/cairo-scaled-font.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

commit 555dd6b97ec432787d83242727164d25b459cf54
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 19 13:02:00 2008 +0000

    [scaled-font] Switch to a constant loop for hashing.
    
    As we only use the FNV hash for hashing matrices, expose the constant size
    to the compiler so that it can perform its magic.

 src/cairo-scaled-font.c |   18 ++++++++----------
 1 files changed, 8 insertions(+), 10 deletions(-)

commit f5274f5847519208865159fa9bb254d76ba8ddac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 19 16:31:28 2008 +0000

    Iterate over hash table using foreach() in destructors.
    
    Don't use the remarkably inefficient _cairo_hash_table_random_entry() to
    remove all entries from the hash table!

 src/cairo-cff-subset.c |   21 +++++++++++----------
 src/cairo-ft-font.c    |   47 ++++++++++++++++++++++-------------------------
 2 files changed, 33 insertions(+), 35 deletions(-)

commit 1c4ea84b24f3f7e480f9c50b5bd77ac703c36ef0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 20:32:44 2008 +0000

    [cairo] Early return if we attempt to set the same scaled_font
    
    If the application calls cairo_set_scaled_font() with the current
    scaled font, we can return early as it is a no-op.

 src/cairo.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit b661f3d27ba77cdf470a86f6320b1bb31d92a9f0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 18:34:16 2008 +0000

    [cairo] Embed a second gstate.
    
    Experiment with embedding a second gstate into the initial context to
    reduce allocations.

 src/cairo-private.h |    2 +-
 src/cairo.c         |   12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 8abd21bd3afc143501f66fdcdc0c6c4139df490b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 23 15:09:15 2008 +0000

    [script] Call the context creation hook
    
    Hook in the creation hook so applications can record or even modify the
    contexts used in replay.

 util/cairo-script/cairo-script-operators.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

commit 2c9323d3942cbf93b100f711000f48a3eb869271
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 19 14:11:37 2008 +0000

    [script] more targets

 util/cairo-script/csi-replay.c |  101 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 88 insertions(+), 13 deletions(-)

commit fd96cea4fefeeee8bcccde663faa559151e2606e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 19 12:54:53 2008 +0000

    [script] Improve array construction.
    
    Limit the memory allocation to the initial array size and perform a direct
    copy from the operand stack to the array.

 util/cairo-script/cairo-script-objects.c   |   27 ++++++++++++----
 util/cairo-script/cairo-script-operators.c |   45 +++++++++++----------------
 util/cairo-script/cairo-script-private.h   |    1 +
 util/cairo-script/cairo-script-scanner.c   |    2 +-
 util/cairo-script/cairo-script-stack.c     |    2 +-
 5 files changed, 41 insertions(+), 36 deletions(-)

commit ecb8dce27c769158fe4a92432a90b24a96f8afa9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 18:32:44 2008 +0000

    [script] Recreate surface content.
    
    Use the content recorded in the trace, defaulting to COLOR_ALPHA, to
    determine the replayed surface type.

 util/cairo-script/cairo-script-interpreter.h |    1 +
 util/cairo-script/cairo-script-operators.c   |    8 ++-
 util/cairo-script/csi-exec.c                 |    1 +
 util/cairo-script/csi-replay.c               |   80 +++++++++++++++++++-------
 util/cairo-trace/trace.c                     |    8 ++-
 5 files changed, 74 insertions(+), 24 deletions(-)

commit d21529b9ef31228182d2f61bb4f7beb6319b10c4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 20 15:38:13 2008 +0000

    [trace] Correct escaped characters in string literal.
    
    Laziness caused the control character to be used instead of its
    replacement in the escaped string!

 util/cairo-trace/trace.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

commit ca39c4bf7f90646b70b2bbe9e7318fcfae99e35e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 20 15:35:40 2008 +0000

    [trace] Correct a couple of typos.
    
    A couple of minor typos in the escaped characters strings.

 util/cairo-trace/trace.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 1f2fec7388092c8fea87651f9094ca2e0be2104b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 19 18:04:03 2008 +0000

    [trace] Fix OBO in emit_glyphs()
    
    The largest index that will fit within 8 bits is 255 not 256!

 util/cairo-trace/trace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7ebe9e68371e4e77139d9abeb7feb390203b1c8e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 21:59:16 2008 +0000

    [trace] Minor tidy.
    
    Improve scoping of variables.

 util/cairo-trace/trace.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 931556005a1946c5e730afc7977551a2bc5be42c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 21:57:19 2008 +0000

    [trace] Remove the forced switching to C locale
    
    This interferes with the application being traced. It is not clear from
    printf(3) whether "%.f" is locale dependent or not - but until we have a
    failure do not break applications unnecessarily!

 util/cairo-trace/cairo-trace.in |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

commit d0f41b92bf9a9ee313dde6f451b26fffb65a0906
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 17:26:43 2008 +0000

    [trace] Do not force the output filename.
    
    Handle the case of tracing an application that spawns it own graphical
    children but using the autonaming facility within cairo-trace. Currently
    the traced process tree would all attempt to write to the same file,
    creating a broken trace. This means sacrificing the display of the output
    name, but allows use for a wider range of applications.

 util/cairo-trace/cairo-trace.in |   25 ++++++-------------------
 1 files changed, 6 insertions(+), 19 deletions(-)

commit 19e8c5c7f4a561f2454380c8f4098a832d716d28
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 20 19:27:33 2008 +0000

    [test] Fix mismatched free.
    
    A couple of strings allocated using glib functions but freed with system
    malloc.
    
    Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19210.

 test/pdf2png.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 6662eede2af2da50bff1902e694204c69e84f036
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 20 19:14:23 2008 +0000

    [perf] Fix errors reported by cppcheck
    
    Trivial mistakes, identified in bugs
    http://bugs.freedesktop.org/show_bug.cgi?id=19206 and
    http://bugs.freedesktop.org/show_bug.cgi?id=19207.

 perf/cairo-perf-graph-files.c |    2 +-
 perf/cairo-perf-report.c      |    7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

commit 8419c4f124c6ffa75b44901dccab33df8bb6287a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 20 15:34:41 2008 +0000

    [perf] Correct another reference to '<cairo>'
    
    I think that's the last use of the old internal name for twin!

 perf/twin.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 14d94d9354170003ec15847873a273c1752cf9f2
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Jan 2 02:56:38 2009 -0500

    Fix various README typos

 HACKING     |    2 +-
 src/README  |    4 ++--
 util/README |    6 ++++++
 3 files changed, 9 insertions(+), 3 deletions(-)

commit 28a72648ba7abe02ebd4df7234424e333b85dc9c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Dec 30 13:48:47 2008 -0500

    [gstate] Change the glyph dropping safety margin from 2em to 10em
    
    The small margin caused bugs with math fonts.  See:
    https://bugzilla.mozilla.org/show_bug.cgi?id=460023

 src/cairo-gstate.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit fa63c43532de4a38d59d2746c34c815d18121062
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Dec 29 16:11:29 2008 +0000

    [spline] Be pedantic and propagate errors.
    
    We know that the current users will always return SUCCESS, but propagate
    the status return for future users.

 src/cairo-path-bounds.c   |    6 ++----
 src/cairo-spline.c        |   15 +++++++++++----
 src/cairo-types-private.h |    2 +-
 src/cairoint.h            |    2 +-
 4 files changed, 15 insertions(+), 10 deletions(-)

commit 7df082dd8aaa9d31479a8bb1f6f1dfe07f52019a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Dec 29 16:06:36 2008 +0000

    [test] Update twin reference images
    
    Subsequent to recent tweaks, update the reference images for twin.

 test/Makefile.am               |    6 ++----
 test/twin.c                    |    2 +-
 test/twin.pdf.ref.png          |  Bin 1669 -> 0 bytes
 test/twin.ps.ref.png           |  Bin 0 -> 1114 bytes
 test/twin.ps2.ref.png          |  Bin 1095 -> 0 bytes
 test/twin.ps3.ref.png          |  Bin 1095 -> 0 bytes
 test/twin.ref.png              |  Bin 1712 -> 1492 bytes
 test/twin.svg.ref.png          |  Bin 0 -> 1487 bytes
 test/twin.svg11.argb32.ref.png |  Bin 1797 -> 0 bytes
 test/twin.svg11.ref.png        |  Bin 1662 -> 0 bytes
 test/twin.svg11.rgb24.ref.png  |  Bin 1797 -> 0 bytes
 test/twin.svg12.argb32.ref.png |  Bin 1797 -> 0 bytes
 test/twin.svg12.ref.png        |  Bin 1662 -> 0 bytes
 test/twin.svg12.rgb24.ref.png  |  Bin 1797 -> 0 bytes
 14 files changed, 3 insertions(+), 5 deletions(-)

commit e10af38799eb77f1a7b5f75e76c733353c7b8622
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Dec 29 12:54:13 2008 +0000

    make "make check" happy again
    
    Add the missing scoping that caused check-plt to complain.

 src/cairo-font-face-twin.c |    6 ++++--
 src/cairo-scaled-font.c    |    2 ++
 src/cairo.c                |    4 ++++
 src/cairoint.h             |    8 +++++++-
 4 files changed, 17 insertions(+), 3 deletions(-)

commit 010085622674bd02098742f401409da8e7c1b1dc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Dec 29 12:45:13 2008 +0000

    [path] Remove tolerance from path bounders
    
    With Behdad's analytical analysis of the spline bbox, tolerance is now
    redundant for the path extents and the approximate bounds, so remove it
    from the functions parameters.

 src/cairo-analysis-surface.c |    3 +--
 src/cairo-gstate.c           |    3 +--
 src/cairo-path-bounds.c      |   18 ++++++------------
 src/cairo-surface-fallback.c |    1 -
 src/cairoint.h               |    5 +----
 5 files changed, 9 insertions(+), 21 deletions(-)

commit 84b81388bef4a2f300580081415fe09947edb96e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Dec 29 12:16:53 2008 +0000

    [test] Draw spline bbox
    
    Add the stroked extents to the spline-decomposition test.

 test/Makefile.am                        |    6 +--
 test/spline-decomposition.c             |   63 +++++++++++++++++++++++++++++++
 test/spline-decomposition.pdf.ref.png   |  Bin 20404 -> 19156 bytes
 test/spline-decomposition.ps.ref.png    |  Bin 0 -> 9090 bytes
 test/spline-decomposition.ps2.ref.png   |  Bin 8957 -> 0 bytes
 test/spline-decomposition.ps3.ref.png   |  Bin 8957 -> 0 bytes
 test/spline-decomposition.ref.png       |  Bin 20402 -> 19107 bytes
 test/spline-decomposition.svg.ref.png   |  Bin 0 -> 19156 bytes
 test/spline-decomposition.svg11.ref.png |  Bin 20404 -> 0 bytes
 test/spline-decomposition.svg12.ref.png |  Bin 20404 -> 0 bytes
 10 files changed, 65 insertions(+), 4 deletions(-)

commit efb17160904eda8fdb21fa1fd10a09081cf5cb3e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sun Dec 28 16:06:27 2008 -0500

    [_cairo_spline_bound] Protect against b == 0

 src/cairo-spline.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

commit 0b59e29004bb19eb9bd458bbe6a48a7c367f72d0
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sun Dec 28 02:49:39 2008 -0500

    [_cairo_spline_bound] Simplify condition

 src/cairo-spline.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

commit 3bf1b7d574620b1ab3c1fa50977a23d36ab04a40
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sun Dec 28 02:41:39 2008 -0500

    [_cairo_spline_bound] Fix the check for feasible solutions
    
    Also make it more strict.  The only times we call sqrt now is
    when a solution in (0,1) exists.

 src/cairo-spline.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

commit 7f840d156c1212eeb0fddad4b4a6844a9c070bd5
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sun Dec 28 02:02:30 2008 -0500

    [spline] Save a couple more muls

 src/cairo-spline.c |   26 +++++++++++++-------------
 1 files changed, 13 insertions(+), 13 deletions(-)

commit 3292f9906b3637564c37863dde5d214b0fee2885
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sun Dec 28 01:59:12 2008 -0500

    [spline] Do some checks to avoid calling sqrt() if no feasible solution exists

 src/cairo-spline.c |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

commit efe4d2ce99e65f9841951d3ff3e0536973bfb12c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sun Dec 28 01:22:40 2008 -0500

    [spline] Simplify code

 src/cairo-spline.c |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

commit 8672178bf6c7f3a38e11e224f1d484b1f0c7fd7b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sun Dec 28 01:20:37 2008 -0500

    [spline] Remove duplicated code by using a macro

 src/cairo-spline.c |   50 +++++++++++++++++++++-----------------------------
 1 files changed, 21 insertions(+), 29 deletions(-)

commit ef0f6c3ca311c41c9062e1298b020eae1212984e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Dec 27 23:13:45 2008 -0500

    [spline] Add an analytical bounder for splines
    
    The way this works is very simple:  Once for X, and once for Y, it
    takes the derivative of the bezier equation, equals it to zero and
    solves to find the extreme points, and if the extreme points are
    interesting, adds them to the bounder.
    
    Not the fastest algorithm out there, but my estimate is that if
    _de_casteljau() ends up breaking a stroke in at least 10 pieces,
    then the new bounder is faster.  Would be good to see some real
    perf data.

 src/cairo-path-bounds.c |   18 ++-----
 src/cairo-spline.c      |  131 +++++++++++++++++++++++++++++++++++++++++++++++
 src/cairoint.h          |    6 ++
 3 files changed, 141 insertions(+), 14 deletions(-)

commit f2f62c7c4402a28a65c8171238d163af6b2fb95a
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 20:28:54 2008 -0500

    [twin] Micro-optimize

 src/cairo-font-face-twin.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 50bc2bc0170be2a9c84ae3064525b18190e22b48
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 27 11:46:24 2008 +0000

    [path] Simply track the current point for bounds.
    
    The idea is to track always update the current point, but not add it
    during a move-to.

 src/cairo-path-bounds.c |   25 +++++++++++--------------
 1 files changed, 11 insertions(+), 14 deletions(-)

commit 078ebb01ba0b99ab4973ba479fe438f0674aa102
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 27 11:29:15 2008 +0000

    [path] Initialise spline from current point
    
    Joonas spotted that the breakage with the curve bounds was the result of
    initialising the spline using the original move to point and not the
    current point.
    
    Fixes: Bug 19256 Gnome Foot in gnome-games rendered incorrectly
    (https://bugs.freedesktop.org/show_bug.cgi?id=19256)

 src/cairo-path-bounds.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 4320ea68875cc015dfecdf5ed40195e276efca07
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 26 00:01:01 2008 +0000

    [trace] Fix up positional arguments
    
    James Cloos pointed out that the correct form to use is "$@" when
    executing the command line.

 util/cairo-trace/cairo-trace.in |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit e76a676c8f3d6dc9199cf0bc0856af0c659f4a16
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 25 09:51:51 2008 +0000

    [twin] Trivial spelling correction.
    
    This ain't no decadent descendent of the Hershey font...

 src/cairo-font-face-twin.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9332c0a8eaf266e99555df9ad7769f8b5804cbfd
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 16:38:04 2008 -0500

    [util] Add waterfall

 util/Makefile.am |    3 +-
 util/waterfall   |   97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+), 1 deletions(-)

commit ab1febbf22a641feb2fda4b21156b2bd45df039b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 16:35:33 2008 -0500

    [twin] Resnap margin under monospace

 src/cairo-font-face-twin.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

commit 3c91d9f5a2a290653a56242eed6acae4f16e99e3
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 16:30:01 2008 -0500

    [twin] Adjust margins

 src/cairo-font-face-twin.c |  114 +++++++++++++++++++++++++++-----------------
 1 files changed, 70 insertions(+), 44 deletions(-)

commit 0b5c60bae1fb0924bbd43daab38932052e10b3be
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 15:48:46 2008 -0500

    [twin] Clean up hinting

 src/cairo-font-face-twin.c |   89 +++++++++++++++++++++-----------------------
 1 files changed, 42 insertions(+), 47 deletions(-)

commit 6e7a2c4ce32ddfb0e58a74fcba8c4e46e46d32a4
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 15:34:50 2008 -0500

    [twin] Fix monospace for narrow glyphs

 src/cairo-font-face-twin.c |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

commit e8e6ae1294f11addcbc8a95db471bb48a50b0b1a
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 15:15:15 2008 -0500

    [twin] Cache pen and other properties on the scaled font

 src/cairo-font-face-twin.c |  170 ++++++++++++++++++++++++++------------------
 1 files changed, 101 insertions(+), 69 deletions(-)

commit e133cc14469e8ebb8311bf8db206147f6b07786d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 14:56:32 2008 -0500

    [twin] Don't stretch pen

 src/cairo-font-face-twin.c |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

commit dec4d791f4cc626d1fa52d68518f787210240812
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 14:24:08 2008 -0500

    [twin] Minor shuffling

 src/cairo-font-face-twin.c |  142 +++++++++++++++++++++++++-------------------
 1 files changed, 81 insertions(+), 61 deletions(-)

commit c3de08ee2fcfb0e092f0299e249b0f5fe56b87bf
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 14:11:52 2008 -0500

    [twin] Further reduce weight

 src/cairo-font-face-twin.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5c201ef5cfdfdd4e19db7e0995b85fbb3f2e6090
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 26 00:05:19 2008 -0500

    [scaled-font] Make cairo_debug_reset_static_data() work again
    
    I broke it in a5983929f8f07f384f78e0b604e22037cf5ed716

 src/cairo-debug.c       |    2 ++
 src/cairo-scaled-font.c |    4 +---
 src/cairoint.h          |    3 +++
 3 files changed, 6 insertions(+), 3 deletions(-)

commit 730ed68ec1ac10dcb9c7c69759f72fcaa3ea82e5
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 25 23:29:02 2008 -0500

    [pattern] Fix comment typo

 src/cairo-pattern.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit a5f4a97aa4122d8c4b8f31053d421a52c356e270
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 25 02:48:26 2008 -0500

    [twin] Don't hint pen if hint-style is SLIGHT

 src/cairo-font-face-twin.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 0c7eaf6e0a2c2f0db634f8120fcbc03f7e8fd751
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 25 02:44:19 2008 -0500

    [twin] Improve glyph hints

 src/cairo-font-face-twin-data.c |  202 ++++++++++++++++++++++-----------------
 1 files changed, 116 insertions(+), 86 deletions(-)

commit e6205ea5a38c9de4c08b313a1beb70d4a38b0676
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 25 02:10:16 2008 -0500

    [twin] Improve hinting

 src/cairo-font-face-twin.c |   90 +++++++++++++++++--------------------------
 1 files changed, 36 insertions(+), 54 deletions(-)

commit da8658b67510daaefd542b80e6a997bbdfd82d44
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 25 01:35:36 2008 -0500

    [twin] Hint dots

 src/cairo-font-face-twin-data.c |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)

commit f4c81e18f85c6a68d682301abfd75e7c208c1e1a
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 25 01:29:41 2008 -0500

    [twin] Disable pen hinting if hinting is off

 src/cairo-font-face-twin.c |   27 +++++++++++++++++++--------
 1 files changed, 19 insertions(+), 8 deletions(-)

commit af91fc1974ce2dfbaab187e22769cdfb9e6279d9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 25 01:24:46 2008 -0500

    [twin] Optimize hinting

 src/cairo-font-face-twin.c |    7 +------
 1 files changed, 1 insertions(+), 6 deletions(-)

commit 439959d1af1f6c4ce174a3fee524eacfc18a00bd
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 25 01:06:47 2008 -0500

    [twin] Implement hinting

 src/cairo-font-face-twin.c |  148 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 129 insertions(+), 19 deletions(-)

commit 9f9f5317dca6a9988a0a62aaa60393570157af63
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 22:29:59 2008 -0500

    [util] Fix pangram

 util/cairo-view |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 8296bc74c8687a2f52e06174e9dc70d32d1181c8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 18:00:04 2008 -0500

    [twin] Reduce the weight just a bit, such that bold doesn't look as bad

 src/cairo-font-face-twin.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit b2f89625453e2a15da175ea5b4ca5af6c2201d96
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 17:29:21 2008 -0500

    [twin] Adjust baseline

 src/cairo-font-face-twin.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

commit f980d017d2360634f391eb1129317446bfe42cc9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 17:00:43 2008 -0500

    [twin] Remove serif setting
    
    I don't think I'm going to implement serif-drawing soon, so, remove the
    infrastructure.  Can always be added back later.

 src/cairo-font-face-twin.c |   21 ++-------------------
 1 files changed, 2 insertions(+), 19 deletions(-)

commit 1116febb40cb5e5f7eafe97999d1143347819b3f
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 16:32:25 2008 -0500

    [twin] Implement small-caps

 src/cairo-font-face-twin.c |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

commit 6767673961401c7ab7b92eb8dfbb345efb560741
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 16:13:12 2008 -0500

    [twin] Implement stretch

 src/cairo-font-face-twin.c |   27 +++++++++++++++++++++------
 1 files changed, 21 insertions(+), 6 deletions(-)

commit 0656e947f11356877014df93bd083123c7313dc3
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 15:43:17 2008 -0500

    [twin] Implement slant

 src/cairo-font-face-twin.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

commit 9d493fcd16fb770f21fa732b08834f3a435fe1f2
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 15:36:57 2008 -0500

    [twin] Disable the serif mode

 src/cairo-font-face-twin.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 6c1d21bf8947f5b11702626ddfd9bac18073188d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 03:47:21 2008 -0500

    [twin] Implement monospace

 src/cairo-font-face-twin.c |   30 +++++++++++++++++++++++-------
 1 files changed, 23 insertions(+), 7 deletions(-)

commit 5def8c587b2b897bfebc6d77a6a3e13355cae2f2
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 24 03:45:06 2008 -0500

    [twin] Fix dots

 src/cairo-font-face-twin-data.c |   54 +++++++++++++++++++++++---------------
 1 files changed, 33 insertions(+), 21 deletions(-)

commit a303bbaea332df20b81f068366d701d66913c043
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Dec 23 16:12:56 2008 -0500

    [font-face-get-type] Fix test to cleanup the surface and context properly
    
    Destroy the context and the surface even when the test fails.
    
    I ran into this because cairo_debug_reset_static_data() is called between the
    tests on the quartz backend (it doesn't fork) and isn't on other backends? This
    is perhaps a mistake...

 test/font-face-get-type.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

commit 52cc31a7fa6570e538762631359a92e7b717710e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Dec 23 13:48:52 2008 -0500

    [util] Add cairo-view

 util/Makefile.am |    3 +-
 util/cairo-view  |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 115 insertions(+), 1 deletions(-)

commit 418c7ef133840c10eb0be7e75c7dd11533fbe897
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Dec 23 02:39:17 2008 -0500

    [twin] Adjust font extents

 src/cairo-font-face-twin.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 96e41c28e980f313c51a0eed81681e7e48752797
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Dec 20 23:30:59 2008 -0500

    [twin] Minor cleanup

 src/cairo-font-face-twin.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

commit 556f6ce364d81f9309162d21deb86a3d5b8b9a6e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Dec 20 23:16:53 2008 -0500

    [twin] close_path the Q

 src/cairo-font-face-twin-data.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 6929ed800d19f359af7436636e8adc6203083a10
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Dec 20 20:25:01 2008 -0500

    [twin] Fix serif option parsing.  Also make serif and weight do something

 src/cairo-font-face-twin.c |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

commit d423339fcef3c41225196c4371fb2c133ca61144
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Dec 20 19:39:58 2008 -0500

    [twin] Add face properties
    
    Just parse them now.  We don't use them yet.

 src/cairo-font-face-twin.c |  191 ++++++++++++++++++++++++++++++++++++++++++--
 src/cairo-user-font.c      |    4 +-
 src/cairoint.h             |    6 +-
 3 files changed, 189 insertions(+), 12 deletions(-)

commit 93672d842f2b2c840bb9e73901faa4ce5df9c792
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 23 15:00:47 2008 +0000

    [test] Fix reference handling in user-font-rescale
    
    user-font-rescale stored the current font on the context in order to
    create a rescaling proxy font. As we failed to take a reference to the
    font, it caught us by surprise when the font disappeared as we modified
    the context before creating our proxy. Ho hum.

 test/user-font-rescale.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 5ad65dc4be5964265946de59a951f2304d64159e
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Dec 23 14:56:48 2008 +1030

    Document PDF restrict_to_version API

 doc/public/cairo-sections.txt  |    4 ++++
 doc/public/tmpl/cairo-pdf.sgml |   35 +++++++++++++++++++++++++++++++++++
 src/cairo-pdf.h                |    2 ++
 3 files changed, 41 insertions(+), 0 deletions(-)

commit 1869e0240bcc93c93e8abd1c8f930cf08ca8ee24
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Dec 23 14:37:30 2008 +1030

    Document cairo_surface_(set|get)_mime_data() and mime types

 doc/public/cairo-sections.txt      |    5 +++
 doc/public/tmpl/cairo-surface.sgml |   50 ++++++++++++++++++++++++++++++++++-
 2 files changed, 53 insertions(+), 2 deletions(-)

commit 1f894033f077731485e1228f7e071e75c37a9947
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Dec 23 03:14:38 2008 +0200

    [spans] Close open subpaths when filling with a scan converter.
    
    As reported by Christian Persch, open subpaths weren't being
    closed when rendering to an image surface:
    
    http://bugs.freedesktop.org/show_bug.cgi?id=19240

 src/cairo-spans.c |   53 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 31 insertions(+), 22 deletions(-)

commit 0aa34c6435eaa260292cf10d270ebbf3314c7924
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Dec 23 02:18:14 2008 +0200

    [svg] Fix build when building only the svg vector surface.
    
    The SVG vector surface pulls in font subsetting and that in turns
    uses the PDF operators in cairo-type3-glyph-surface.c.

 src/cairoint.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 38ec6e302cdd703447f169d95121d434c7495501
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Dec 23 02:05:32 2008 +0200

    [test] Fix any2ppm build when building without the full complement of surfaces.
    
    It was complaining about g_init_type () being used without the proper includes
    which would have been pulled in by the svg or poppler includes.

 test/any2ppm.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 6ce97907edfa8a7b09abfc090a9c03d235de2ada
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Dec 22 11:09:27 2008 +1030

    win32-font: truncate instead of fail if toy font name too long
    
    http://lists.cairographics.org/archives/cairo/2008-December/016109.html

 src/cairo-win32-font.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

commit d99583bae680fea852e957afdf674e2031aa7928
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Dec 21 17:03:17 2008 +1030

    Fix win32 font breakage
    
    as a result of the toy font face changes in f7ab65e9b0c0f08be8d294e90131baa2decf1f1d

 src/cairo-win32-font.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

commit a5983929f8f07f384f78e0b604e22037cf5ed716
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Dec 20 01:18:12 2008 -0500

    [toy-font-face] Move toy font face code in a file of its own

 src/Makefile.sources           |    1 +
 src/cairo-debug.c              |    2 +-
 src/cairo-font-face.c          |  449 ------------------------------------
 src/cairo-mutex-list-private.h |    2 +-
 src/cairo-os2-surface.c        |    9 +-
 src/cairo-scaled-font.c        |    4 +-
 src/cairo-toy-font-face.c      |  489 ++++++++++++++++++++++++++++++++++++++++
 src/cairoint.h                 |    5 +-
 8 files changed, 497 insertions(+), 464 deletions(-)

commit 8bf49b27aeea8179b5862a424fb3ef1934be6e0e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Dec 19 20:46:36 2008 -0500

    [font-face] Use cairo_font_face_t instead of toy, for nil objects
    
    And with a NULL backend.  We are not supposed to read the nil objects
    afterall.
    
    If this causes crashes, the crash site should be fixed.

 src/cairo-font-face.c |   55 +++++++++----------------------------------------
 src/cairoint.h        |    2 +-
 2 files changed, 11 insertions(+), 46 deletions(-)

commit e3675f8ac0acb285b2d669c0a44322623dac5fe9
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Fri Dec 19 08:50:26 2008 -0500

    Fix definition of _cairo_quartz_font_face_backend
    
    Removes the NULL so that _cairo_quartz_font_face_scaled_font_create
    is in the correct location.

 src/cairo-quartz-font.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit fa7d96e1236cdfa0016f96e5c7b6bd209c405cba
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Fri Dec 19 08:47:07 2008 -0500

    Fix compilation of quartz surface.
    
    Declares _cairo_quartz_scaled_font_backend ahead of time and makes it static.
    Also, removes the 'static' from the _cairo_quartz_font_backend definition.

 src/cairo-quartz-font.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit f8886ad1b30ec9c29ec5ac3e9cd5519dbc9e7b65
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 18 20:50:20 2008 -0500

    [scaled-font-zero-matrix] Destrory scaled font and font options
    
    Oops.

 test/scaled-font-zero-matrix.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 4567692326daf592ab432670c6d33b49f940dd35
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 18 18:03:40 2008 -0500

    Add test creating a scaled font with a zero ctm matrix

 test/Makefile.am               |    1 +
 test/scaled-font-zero-matrix.c |   59 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)

commit 18054ef00c69f62804e08734fd2c3286373b451f
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 18 18:01:52 2008 -0500

    [test] Quartz doesn't like being forked
    
    When the cairo-test-suite forks CoreFoundation complains with:
    "The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
    When forked so avoid doing it in the test suite for now. In the future we should investigate
    the possibility of a work around.

 test/cairo-test-runner.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

commit b4e0d489bb0317fdd935ad2d29830e48b5ce4f6c
Merge: 813cbf1 f60da9a
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 18 17:25:17 2008 -0500

    Merge branch '1.8'
    
    Conflicts:
    	NEWS
    	build/Makefile.am.changelog
    	cairo-version.h
    	src/cairo-gstate.c

commit f60da9a379890a3a4cd74cdad48e73c22cb74160
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 18 17:07:25 2008 -0500

    Fix _compute_transform to check for nearly degenerate matrices
    
    If a matrix was something like [0 .000001 0, .000001 0 0] the old code would
    assume that xx and yy were greater than 0 and turn the nearly degenerate matrix
    into an actual degenerate one. This caused things to blow up later on. Now we
    check that our nearly rectangular matrices are not nearly degenerate, and let
    the nearly degenerate ones fall through to the non-rectangular path.
    
    Note: I'm not sure why NEARLY_ZERO(d) is fabs(d) < 1/65536 instead of some
    other value.  Hopefully, it's a useful definition.
    
    This problem was found by a test case attached to:
    https://bugzilla.mozilla.org/show_bug.cgi?id=467423

 src/cairo-win32-font.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit 813cbf13ddbd3d4b708b3b362dd6c108966f44d5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 14:52:03 2008 +0000

    [path] Separate the approx. bounds into 3 distinct functions
    
    Based on feedback from Jeff Muizelaar, there is a case for a very quick
    and dirty extents approximation based solely on the curve control points
    (for example when computing the clip intersect rectangle of a path) and
    by moving the stroke extension into a core function we can clean up the
    interface for all users, and centralise the logic of approximating the
    stroke extents.

 src/cairo-analysis-surface.c |   32 ++++++-------
 src/cairo-clip.c             |   14 +++---
 src/cairo-path-bounds.c      |  101 +++++++++++++++++++++++++++++++++++++++--
 src/cairo-rectangle.c        |   10 ----
 src/cairo-surface-fallback.c |   10 ++--
 src/cairoint.h               |   19 +++++---
 6 files changed, 134 insertions(+), 52 deletions(-)

commit dea40e61babe608315b6d365094cf518814b134e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 11:50:00 2008 +0000

    [path] Return the fixed-point bounds of the path
    
    When analysing the stroke extents, we need the original fixed-point
    extents so that we do not incur an OBO when we round-to-integer a second
    time. We also need a more accurate estimate than simply using the control
    points of the curve, so pass in tolerance and decompose until someone
    discovers a cheaper algorithm to determine the precise aligned bounding
    box of a bezier curve.

 src/cairo-analysis-surface.c |   30 ++++++-------
 src/cairo-clip.c             |   25 ++++++-----
 src/cairo-path-bounds.c      |   95 +++++++++++++++++++++---------------------
 src/cairo-rectangle.c        |   10 ++++
 src/cairo-surface-fallback.c |    9 +++-
 src/cairoint.h               |    9 +++-
 6 files changed, 98 insertions(+), 80 deletions(-)

commit 3a53e0261b1b5af21bf37e2a211eefd501bd5358
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 11:10:17 2008 +0000

    [test] Update twin reference images.
    
    Closing the 'o' in twin has removed a slight artefact - update the reference
    images to match.

 test/twin.pdf.ref.png |  Bin 1673 -> 1669 bytes
 test/twin.ref.png     |  Bin 1718 -> 1712 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

commit c2478de26cc1781b8f8604191a9f75ad29eac746
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 10:50:45 2008 +0000

    [twin] Switch internal users to the new name.
    
    s/<cairo>/@cairo:/

 doc/tutorial/src/twin.c |    2 +-
 test/twin.c             |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 3424b5f8c8cb1f2ef16b9e8429e64f720106f4d8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 10:47:44 2008 +0000

    [scaled-font] Make check-doc happy
    
    Replace a structure marker '#' with a macro marker '%'.

 src/cairo-scaled-font.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 449bf0bb7bff38da1c5d0286cb4f22c858bcc3a9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 10:45:22 2008 +0000

    [script] Silence incorrect compiler warnings
    
    Bah, the compiler failed to do its IPA correctly and wrongly complained
    about potential use of uninitialised out-params guarded by the return
    value. Silence them!

 util/cairo-script/cairo-script-operators.c |   38 ++++++++++++++--------------
 1 files changed, 19 insertions(+), 19 deletions(-)

commit ce0b136a441382b25d0932cd66a906a30a693365
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 17 20:34:45 2008 +0000

    Query the backend to see if we can repaint the solid pattern.
    
    If we are dithering on the Xlib backend we can not simply repaint the
    surface used for a solid pattern and must recreate it from scratch.
    However, for ordinary XRender usage we do not want to have to pay that
    price - so query the backend to see if we can reuse the surface.

 src/cairo-analysis-surface.c  |    2 ++
 src/cairo-meta-surface.c      |    1 +
 src/cairo-paginated-surface.c |    1 +
 src/cairo-pdf-surface.c       |    1 +
 src/cairo-script-surface.c    |    1 +
 src/cairo-surface.c           |   41 ++++++++++++++++++++++++-----------------
 src/cairo-xlib-surface.c      |   12 +++++++++++-
 src/cairoint.h                |    5 +++++
 src/test-meta-surface.c       |    1 +
 src/test-paginated-surface.c  |    1 +
 10 files changed, 48 insertions(+), 18 deletions(-)

commit 0df43251d4b4641d16c0a2e2c49d18dd2a9c832e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 17 23:45:39 2008 +0000

    [replay] Take advantage of unresolved fonts
    
    As Behdad has changed the underlying ft-font to accept unresolved patterns,
    take advantage of that to simplify the replay code.

 util/cairo-script/cairo-script-operators.c |   16 ++--------------
 1 files changed, 2 insertions(+), 14 deletions(-)

commit 97a00bdd4eefade8d0808b5572bcdbba26c9c8f3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 17 17:32:07 2008 +0000

    [cairoint.h] Wrap macro in parenthesis
    
    Ensure that the stride calculation macro is not influenced by surrounding
    precedence issues by enclosing it in a pair of parenthesis.

 src/cairoint.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit aa65e756d496f4c3a8b43d2100e17dc39c2c26b7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 5 11:21:11 2008 +0000

    [script] Avoid creating 0x0 windows
    
    XCreateWindow dies if asked to create a 0x0 window, so don't and use a 1x1
    pixel window for a zero-sized surface.

 util/cairo-script/csi-replay.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit 6458903c95c2bba3f1b9ceaaafb6979d180ab039
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 17 10:07:32 2008 +0000

    [image] Eliminate the short-lived context used for coercing.
    
    When coercing from one image format to another we performed a paint
    operation using a temporary context - this is overkill as we can just call
    _cairo_surface_paint() directly.

 src/cairo-image-surface.c       |   42 ++++++++++++++++++++++----------------
 src/cairo-scaled-font.c         |   40 +++++++++++++++++++-----------------
 src/cairo-svg-surface.c         |   18 +++++++---------
 src/cairo-type3-glyph-surface.c |   20 +++--------------
 src/cairoint.h                  |    4 +-
 5 files changed, 59 insertions(+), 65 deletions(-)

commit 9b46d13b6cd58c711010df89a41b216c5cc8c881
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 17 23:52:32 2008 +0000

    [trace] Runtime version check.
    
    Check that the application is using cairo >= 1.9 before attempting to
    query the mime-data.

 util/cairo-trace/trace.c |   47 ++++++++++++++++++++++++---------------------
 1 files changed, 25 insertions(+), 22 deletions(-)

commit 2d790daa957471670f4ae0d3b22da89e4ee7111f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 18 00:47:08 2008 +0000

    [pattern] Use a solid pattern for a uniform gradient.
    
    If each color stop in a gradient is identical, replace the gradient
    surface with a simple solid surface. As seen in the wild.

 src/cairo-pattern.c |   54 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 39 insertions(+), 15 deletions(-)

commit 25a4677200ea6689be0dca9d533842dc7da54837
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 17 09:29:35 2008 +0000

    [analysis] Use approximate extents.
    
    Use the approximate path based extents to avoid tessellation.

 src/cairo-analysis-surface.c |   54 +++++++++++++----------------------------
 1 files changed, 17 insertions(+), 37 deletions(-)

commit 18bca91411e9ba6e1e58dbc945a0567d2661568f
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Dec 18 02:12:14 2008 -0500

    [twin] close_path the 'o'

 src/cairo-font-face-twin-data.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5ee6aad471d460f960a5e7a5a8e35aca0f0af60e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 17 18:05:51 2008 -0500

    [toy] Use twin font if font backend returns UNSUPPORTED

 src/cairo-font-face.c |   19 ++++++++-----------
 1 files changed, 8 insertions(+), 11 deletions(-)

commit eb069094ea4471b3e63881fe0f8b958ad8924c7d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 17 17:30:34 2008 -0500

    Treat any toy family starting with "@cairo:" as request for twin

 src/cairo-font-face.c |    3 ++-
 src/cairoint.h        |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 32c66109059398e88f50335bef75fa8c0e51c4c8
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Dec 17 17:43:37 2008 -0500

    Call _cairo_error when propagating error status from the font_face.

 src/cairo-gstate.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 1d72e53c3e99f93aa59967c76f1b1b4c035b9130
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Dec 17 17:42:18 2008 -0500

    Add a missing _cairo_error() to a bunch of status returns.

 src/cairo-misc.c        |    4 ++--
 src/cairo-scaled-font.c |   14 +++++++-------
 src/cairo.c             |    2 +-
 3 files changed, 10 insertions(+), 10 deletions(-)

commit af3a892c3ef6a7c1d28d523944bbb67e59edc1de
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 17 16:45:28 2008 -0500

    [ft] Remove stale comment

 src/cairo-ft-font.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

commit 0137b9bd320783264d865a397392b0ee14fd69b3
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Wed Dec 17 16:40:12 2008 -0500

    [ft] Don't call FT_Done_Face() on faces we did not create

 src/cairo-ft-font.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit e4d7c87b5e449a743a68dd256faaa3242f191a44
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Wed Dec 17 16:40:12 2008 -0500

    [ft] Don't call FT_Done_Face() on faces we did not create

 src/cairo-ft-font.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 6778a5f67ae2e35e809cf4464530e2bb05870378
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 17 16:19:45 2008 -0500

    [.gitignore] Update

 build/.gitignore |    2 ++
 src/.gitignore   |    1 +
 2 files changed, 3 insertions(+), 0 deletions(-)

commit 26f471999973c538e45db0ae9f0227fbe5dedf24
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 17 16:08:32 2008 -0500

    [scaled-font] Improve docs

 src/cairo-scaled-font.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

commit f7ab65e9b0c0f08be8d294e90131baa2decf1f1d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Dec 17 06:25:50 2008 -0500

    Clean up toy font face handling
    
    This commit moves the toy-to-real mapping from the scaled font creation
    time to font face creation.  A toy font face will keep an internal ref
    to an implementation face.  Then cairo_scaled_font_create() will simply
    substitute the implementation face before creating anything.
    
    This also modifies the cairo-ft toy creation in that we now create a
    non-resolved pattern and store it in a cairo-ft font-face.  We then
    do the resolving and unscaled font creation at scaled-font creation
    time.  This also means that cairo_ft_font_face_create_for_pattern()
    now accepts non-resolved patterns too, and does the right thing about
    them.  As much as that can be called right.
    
    Some testing of toy font creation performance is in order, as is testing
    win32 and quartz font backends.

 src/cairo-font-face.c   |  143 +++++++++---------
 src/cairo-ft-font.c     |  371 ++++++++++++++++++++++++++++-------------------
 src/cairo-quartz-font.c |  208 ++++++++++-----------------
 src/cairo-scaled-font.c |   19 +--
 src/cairo-user-font.c   |   62 +-------
 src/cairo-win32-font.c  |   20 +--
 src/cairoint.h          |   40 ++---
 7 files changed, 412 insertions(+), 451 deletions(-)

commit 43edb4dd7b8d0614a6c2be15dfa72f980dd55f1d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 12 18:10:58 2008 +0000

    Fix compilation with gcov
    
    We need to add --coverage to LDFLAGS, so create CAIRO_LDFLAGS and use that
    to populate AM_LDFLAGS.

 boilerplate/Makefile.am     |    1 +
 build/configure.ac.analysis |    6 +++++-
 build/configure.ac.features |    1 +
 src/Makefile.am             |    3 ++-
 test/Makefile.am            |   17 +++++++++--------
 5 files changed, 18 insertions(+), 10 deletions(-)

commit bcea3151d66495f03d67ce71274203d0515caf4c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 12 14:08:11 2008 +0000

    [test] Add missing joins.ref.png
    
    Missed this file when adding the reference images for joins.

 test/joins.ref.png |  Bin 0 -> 5879 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit 8cec548854d86dac8f0c99e99461421c8ad653b1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 14:06:07 2008 +0000

    [NEWS] Add notes for 1.8.6
    
    Add the historical blurb for 1.8.6.

 NEWS |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

commit 0a1d194ad85398c8711268fd9ba679f8609206a1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 14:53:27 2008 +0000

    [perf] Fix for git-1.6
    
    git-1.6 moved all the subcommands out of the PATH so update our usage.

 perf/cairo-perf-graph |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 1c2eba92c16207a48f9c8f52065fbf9a65d16fcd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 13:05:01 2008 +0000

    [RELEASING] Update Makefile for git-1.6
    
    Git moved all the subcommands out of the PATH, so we need to update our
    usage.

 build/Makefile.am.changelog |    4 ++--
 build/Makefile.am.releasing |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 2fa6b6353740b7941e90e50bf6b0eb5f06aa11b5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 11:40:12 2008 +0000

    [RELEASING] Correct a few minor typos.
    
    As I was reading through the instructions, take the opportunity to fix a
    few spelling mistakes.

 RELEASING |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 1950abd14c28d58913c085d3829eb99a078cf2d1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 11:26:56 2008 +0000

    [doc] Fix erroneous doc comment.
    
    A normal comment was marked as a gtk-doc entry and thus causing gtk-doc to
    complain.

 src/cairo-path-fixed.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9485cd947f982ecd1e4f8d948786af3265d6eb74
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 16:35:14 2008 +0000

    Increment version to 1.8.7 after the 1.8.6 release.

 cairo-version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2b7c6f361a3cfe309ff0bcb606b808acbf36aa0f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 12:33:12 2008 +0000

    [skiplist] Allocate elements in chunks.
    
    Use a pool allocator to preallocate a chunk from which to allocate the
    skiplist elements (if we failed to reallocate from the freelists).

 src/cairo-bentley-ottmann.c  |   33 ++++++++++++----
 src/cairo-skiplist-private.h |    3 +-
 src/cairo-skiplist.c         |   85 +++++++++++++++++++++++++++++++++--------
 3 files changed, 94 insertions(+), 27 deletions(-)

commit 903b39c30448d62e2cbf9d075c5256a333bd5d8f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 4 15:22:01 2008 +0000

    [test] Make the xlib-fallback use the image refs.
    
    The xlib-fallback is closer to the image than the xlib backend, so prefer
    not to use the xlib.ref.png.

 boilerplate/cairo-boilerplate.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 792057539bf814cc00447a0a53978e0af3efe270
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 3 10:52:59 2008 +0000

    [test] Only delete output images beneath output.
    
    We were using an overly-liberal find that also deleted copied output for
    use in CAIRO_REF_DIR if that directory was below test/. So only delete
    files below output/ (which should only be used by cairo-test).

 test/Makefile.am |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

commit 913cbad25e08a07c05b8c2e6ddd3c343ca2462b2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 2 13:06:50 2008 +0000

    [test] Add a simple joins test case
    
    Exercise joins between short (<LINE_WIDTH) lines - used in debugging
    stroke-to-path.

 test/Makefile.am      |    3 +
 test/joins.c          |  109 +++++++++++++++++++++++++++++++++++++++++++++++++
 test/joins.ps.ref.png |  Bin 0 -> 5496 bytes
 3 files changed, 112 insertions(+), 0 deletions(-)

commit 9f4f41de7d20ee46ee8ca06716cbc18e55cfcf86
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 2 13:05:30 2008 +0000

    [tutorial] Correct twin font name
    
    We changed the name for the builtin font  from "cairo" to "<cairo>" to
    reduce possible naming conflicts - update the tutorial to match.

 doc/tutorial/src/twin.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 4ff884fe4df64234a7da4635d78ffafabe00f18c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 30 19:18:15 2008 +0000

    [test] Check idempotency of append_path() -> copy_path()
    
    The API should preserve the precision across the public interface so that
    the user is able to retrieve the co-ordinates that he used to construct
    the path. However since we transform the path to a 24.8 fixed-point
    internal represent we currently incur a precision-loss - the affects of
    which can be seen in the miter-precision test case for example. It is
    planned to move to keeping the path as doubles until the backend
    explicitly requests the fixed-point coodinates (and some backends, e.g.
    pdf, might only ever use the doubles). Then, barring rounding errors
    during path transformations, we should be able to return the exact path
    the user set (under an identity CTM, of course ;-).

 test/Makefile.am      |    1 +
 test/path-precision.c |  108 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 109 insertions(+), 0 deletions(-)

commit fe4af195a7880336894a5fbae86740ef55c14cbf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 30 13:48:11 2008 +0000

    [test] Add a rectilinear-dash test case.
    
    Exercise dashing on pixel-aligned boundaries to test extending the
    rectilinear stroker to handle dashes.

 test/Makefile.am              |    2 +
 test/rectilinear-dash.c       |  176 +++++++++++++++++++++++++++++++++++++++++
 test/rectilinear-dash.ref.png |  Bin 0 -> 291 bytes
 3 files changed, 178 insertions(+), 0 deletions(-)

commit 1d68ee73f8d406671d25a1ab6c3cfb096a7a6ce7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 23 08:59:56 2008 +0000

    [pattern] Compute the combined color content.
    
    When multiplying two colors together, the combined content is simply the
    or of the their contents.

 src/cairo-pattern.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 30cef3116ed960a94323477154896a03c4fb30bb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 11 01:45:31 2008 +0000

    [spans] Add a sentinel cell to the cell_list.
    
    By terminating the list with a cell for INT_MAX, we remove a few
    conditionals from the hot-paths.

 src/cairo-tor-scan-converter.c |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

commit 3b2bb95249afdc3a705d0ce5205019e7d9d31020
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 11 01:22:37 2008 +0000

    [spans] Embed 64 edge buckets into polygon
    
    Frequently we only need a few y-buckets, so embed 64 into the parent
    structure.

 src/cairo-tor-scan-converter.c |   40 ++++++++++++----------------------------
 1 files changed, 12 insertions(+), 28 deletions(-)

commit 70235df72e3f33482527090d7039d8cab7ef6ff9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 11 00:32:13 2008 +0000

    [spans] Pool capacity is in bytes not elements.
    
    Set the polygon capacity to a shade under 8k, not 200 bytes, reducing the
    number of malloc calls made by the scan convertor by a factor of 40!

 src/cairo-tor-scan-converter.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 6f284587a4ef829a1666fe730e590b59e4eedd5e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 13:50:23 2008 +0000

    [script] Add examples
    
    Add some simple examples to demonstrate CairoScript, courtesy of M Joonas
    Philaja.

 configure.ac                                       |    1 +
 util/cairo-script/Makefile.am                      |    2 +
 util/cairo-script/examples/Makefile.am             |   10 +
 util/cairo-script/examples/dragon.cs               |   48 +
 util/cairo-script/examples/hilbert.cs              |   51 +
 util/cairo-script/examples/infinichess.cs          |   29 +
 util/cairo-script/examples/interference.cs         |   46 +
 util/cairo-script/examples/pythagoras-tree.cs      |   53 +
 util/cairo-script/examples/sierpinski.cs           |   37 +
 .../examples/wedgeAnnulus_crop_ybRings.cs          |   30 +
 util/cairo-script/examples/world-map.cs            |  209 +++
 util/cairo-script/examples/zrusin.cs               | 1333 ++++++++++++++++++++
 12 files changed, 1849 insertions(+), 0 deletions(-)

commit 463dc2891312e3658875d6964a91e7e875de4b38
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 21:09:14 2008 +0000

    [script] Allocate the interned strings from a permanent pool
    
    Reduce memory fragmentation by allocating the permanent strings from a
    single pool.

 util/cairo-script/cairo-script-interpreter.c |   52 ++++++++++++++++++++-----
 util/cairo-script/cairo-script-private.h     |    4 ++
 2 files changed, 45 insertions(+), 11 deletions(-)

commit adc9c90d79cf4bf5e3789ceadab6a49da746274a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 21:00:11 2008 +0000

    [script] Freed object cache.
    
    Cache the last freed object to reduce malloc pressure.

 util/cairo-script/cairo-script-hash.c        |    3 -
 util/cairo-script/cairo-script-interpreter.c |   16 ++--
 util/cairo-script/cairo-script-objects.c     |  118 +++++++++++++++++--------
 util/cairo-script/cairo-script-private.h     |    5 +-
 4 files changed, 91 insertions(+), 51 deletions(-)

commit 1042909796295234d8aadf674824d306d7bcc9b5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 17:56:19 2008 +0000

    [script] Replay multiple files.
    
    Iterate over the argument vector and replay each file on the command line.

 util/cairo-script/csi-replay.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit c5c04528b51b9025f48fb0f3b1c4a8dc98acb214
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 17:30:21 2008 +0000

    [script] Slab allocator
    
    Allocate small objects from a pool and maintain a per-size free-list.

 util/cairo-script/cairo-script-interpreter.c |   65 +++++++++++++++++++++++++-
 util/cairo-script/cairo-script-private.h     |   22 +++++++++
 2 files changed, 85 insertions(+), 2 deletions(-)

commit 83f0e6cf6245c0b3fd7a9b572e5dcea9b633a644
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 16:46:05 2008 +0000

    [script] Inline the stack push
    
    Frequently to push an object onto the stack all we need is to simply
    perform the struct copy - so inline it and only call the out-of-line
    function if we need to enlarge the stack.

 util/cairo-script/cairo-script-interpreter.c |   20 ++++++------
 util/cairo-script/cairo-script-operators.c   |   43 ++++++--------------------
 util/cairo-script/cairo-script-private.h     |   14 ++++++++-
 util/cairo-script/cairo-script-stack.c       |   13 +++----
 4 files changed, 39 insertions(+), 51 deletions(-)

commit 565b3d6ad64fe9d35ebddb4f6b46e492740ee59f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 15:16:02 2008 +0000

    [script] Switch to hyphens.
    
    Using hyphen in the operators is easier to read than underscores.

 src/cairo-script-surface.c                 |   60 +++++-----
 util/cairo-script/cairo-script-operators.c |  189 ++++++++++++++++++----------
 util/cairo-trace/trace.c                   |  114 +++++++++---------
 3 files changed, 211 insertions(+), 152 deletions(-)

commit 3abfd836a021a2950b7eea97f3b30011d58efcc8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 14:34:41 2008 +0000

    [script] Null constructor
    
    Expose 'null', principally for comparison purposes.

 util/cairo-script/cairo-script-operators.c |    8 +++++++-
 util/cairo-script/cairo-script-private.h   |    7 +++++++
 2 files changed, 14 insertions(+), 1 deletions(-)

commit 7540ac7f23db47ee3f58a557ce91aaf1c0bc72d5
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Dec 9 07:52:21 2008 +0200

    [script] Reverse direction of bitshift.
    
    Positive shift counts should shift left according to PostScript.

 util/cairo-script/cairo-script-operators.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 4be479cc63a783da18652528f33bd08427a74fe7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 13:20:06 2008 +0000

    [script] Add simple to integer converter
    
    Simple operator to coerce the type of the object on top of the stack to
    integer.

 util/cairo-script/cairo-script-operators.c |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

commit 6711b591b9efd8f116f2683f17d52e9a9ddfbaba
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 12:34:30 2008 +0000

    [script] Simple replay.
    
    Basic script executer.

 util/cairo-script/.gitignore  |    1 +
 util/cairo-script/Makefile.am |    5 ++++-
 util/cairo-script/csi-exec.c  |   29 +++++++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 1 deletions(-)

commit 177a68ef3ecd1717b81c93c53f8c7ae27838e2e5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 13:21:19 2008 +0000

    [script] Add a few mathematical constants
    
    Just pi and the sqrt(2) for the moment, more to come on demand.

 util/cairo-script/cairo-script-interpreter.c |   26 ++++++++++++++++++++++++++
 util/cairo-script/cairo-script-operators.c   |   17 +++++++++++++++++
 util/cairo-script/cairo-script-private.h     |    8 ++++++++
 3 files changed, 51 insertions(+), 0 deletions(-)

commit 5dfaa22a578ff6561e8d15a8c08546c840476313
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 12:26:09 2008 +0000

    [script] Add repeat operator.
    
    Simple operator to repeat procedure n times.

 util/cairo-script/cairo-script-operators.c |   37 +++++++++++++++++++++++++++-
 1 files changed, 36 insertions(+), 1 deletions(-)

commit 738cb327450821db2d3689e514376c0d9bc55e87
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Dec 9 05:59:19 2008 +0200

    [script] Fix \t escapes in string literals.
    
    Typo \r -> \t.

 util/cairo-script/cairo-script-scanner.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 265ebd372a4fd510bc29c749a46393ee7caace41
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Dec 8 10:14:33 2008 +0200

    [script] Flesh out the relational comparison operators to be more PostScript-like.
    
    The relational comparison operators can now compare strings vs names
    by content as well as performing automatic type promotions on the
    numeric types.  For other types relational comparisons succeeed
    only if the values compare equal according to the eq operator, and
    put the interpreter into a type-error state otherwise.

 util/cairo-script/cairo-script-objects.c   |  103 ++++++++++++++++++++
 util/cairo-script/cairo-script-operators.c |  144 +++++-----------------------
 util/cairo-script/cairo-script-private.h   |    5 +
 3 files changed, 132 insertions(+), 120 deletions(-)

commit 05afec7a8ac590d0d53a254895796f36a8b0eaf3
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Dec 8 10:06:53 2008 +0200

    [script] Implement the ne operator.

 util/cairo-script/cairo-script-operators.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

commit 1aeb96dc287b516955db1909995e45fe26d4f87a
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Dec 8 10:03:57 2008 +0200

    [script] Implement PostScript-like semantics for the eq operator.
    
    The eq operator would only work for some types and put the
    interpreter in an error state if passed objects it didn't
    know how to compare.  It would also not compare strings
    by value nor allow strings to be compared to names.
    This patch makes any two objects comparable.

 util/cairo-script/cairo-script-objects.c   |   92 ++++++++++++++++++++++++++++
 util/cairo-script/cairo-script-operators.c |   64 +-------------------
 util/cairo-script/cairo-script-private.h   |    4 +
 3 files changed, 97 insertions(+), 63 deletions(-)

commit 620028fd19b091f525964b689ebd3a70e1636da2
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Dec 8 09:23:37 2008 +0200

    [script] Don't segfault when hashing empty strings.
    
    Check for the empty string.

 util/cairo-script/cairo-script-interpreter.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

commit 4ba77f776509caad030edf818a076ea9b071ad23
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Dec 8 07:16:14 2008 +0200

    [script] Fix dictionary construction to access the right stack slots.
    
    It bound values to themselves and ignored keys.

 util/cairo-script/cairo-script-operators.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit af53297a97eec505ac2a90768badda72056c6e3b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 11 00:35:20 2008 +0000

    [cairo] Use a stack buffer for text path.
    
    First try to allocate glyphs from the stack, similar to cairo_show_text().

 src/cairo.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

commit 09589e20e14476df609581027d14628f52091e71
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 23:45:44 2008 +0000

    [clip] Intersect to region extents.
    
    When querying the intersection of a rectangle with the clip region, the
    result only depends upon the region extents so we do not need to perform
    an expensive region-region intersection computation.

 src/cairo-clip.c             |   18 +++++-------------
 src/cairo-surface-fallback.c |    1 -
 2 files changed, 5 insertions(+), 14 deletions(-)

commit c5acb125e9509570c407a069f7e89acfbadda57b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 23:06:22 2008 +0000

    [surface] Avoid a short-lived context during fallback_clone_similar()
    
    We can paint to the surface directly without need of a temporary context,
    so do so.

 src/cairo-surface-fallback.c |   41 +++++++++++++++++++----------------------
 1 files changed, 19 insertions(+), 22 deletions(-)

commit 888f62feaa73be326d41a485c0bcf81a3e466ee1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 17:42:16 2008 +0000

    [test] Propagate error from path
    
    If the path is in error, just append it to the context so that the error
    is propagated correctly.

 test/copy-path.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit f13f63e3d85d28a17a3cb60b7d1a7b552f2b6872
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 08:54:03 2008 +0000

    [test/clip-nesting] Propagate status from sub-context.
    
    Use cairo_path_append() to propagate an error status from a child context
    to it parent so that it is properly reported under memfault.

 test/clip-nesting.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

commit e6e33b036f9de5087a72cf1de9c0a4ce97c75812
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 10 08:50:57 2008 +0000

    [test/solid-pattern-cache-stress] Propagate status from sub-contexts.
    
    Use a cairo_append_path() to set an arbitrary error status on the parent
    context, in order to propagate errors from a child.

 test/solid-pattern-cache-stress.c |   32 +++++++++++++++++++++++++-------
 1 files changed, 25 insertions(+), 7 deletions(-)

commit bcb2724920aa1bca1a9a82b5017d3180f5f9523e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 9 20:44:25 2008 +0000

    [path] Mark points as const during _cairo_path_fixed_interpret()
    
    Use const to document the read-only nature of the arguments passed to the
    callbacks.

 src/cairo-path-bounds.c            |   33 +++--------
 src/cairo-path-fill.c              |   33 ++---------
 src/cairo-path-fixed.c             |   86 +++++++++++++---------------
 src/cairo-path-in-fill.c           |   12 ++--
 src/cairo-path-stroke.c            |  108 ++++++++++++------------------------
 src/cairo-path.c                   |   26 +++++----
 src/cairo-pdf-operators.c          |   12 ++--
 src/cairo-pen.c                    |    4 +-
 src/cairo-quartz-surface.c         |   11 +++-
 src/cairo-rectangle.c              |    6 +-
 src/cairo-scaled-font.c            |   12 ++--
 src/cairo-script-surface.c         |   12 ++--
 src/cairo-spans.c                  |   18 ++----
 src/cairo-svg-surface.c            |   15 +++--
 src/cairo-type1-fallback.c         |   16 +++---
 src/cairo-types-private.h          |    3 +-
 src/cairo-win32-printing-surface.c |   12 ++--
 src/cairoint.h                     |   12 ++--
 18 files changed, 186 insertions(+), 245 deletions(-)

commit 68b29cafa597128e7cae86608e04ecae6070dad9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 9 20:15:34 2008 +0000

    [spline] Propagate errors during add point.
    
    Yikes! The callback could fail so we need to propagate the error status.

 src/cairo-path-fill.c     |   11 +++--------
 src/cairo-path-fixed.c    |    7 ++-----
 src/cairo-path-in-fill.c  |    7 ++-----
 src/cairo-path-stroke.c   |   14 ++++++--------
 src/cairo-pen.c           |   23 ++++++++++++-----------
 src/cairo-spline.c        |   40 ++++++++++++++++++++--------------------
 src/cairo-types-private.h |    6 +++++-
 src/cairoint.h            |    9 ++-------
 8 files changed, 52 insertions(+), 65 deletions(-)

commit 2f3905dec38a710234aba30e1983b80ea3066a50
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 9 19:21:35 2008 +0000

    [image] Set status on error path.
    
    We failed to set the status after cairo_image_surface_create() returned an
    error.

 src/cairo-image-surface.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit dfc49a67e62bea359b33413e9b882e92952431de
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 9 14:44:51 2008 +0000

    [test] Trim the number of fallback resolutions tested.
    
    Simplify the test matrix to only include testing the fallback-resolution
    of a uniform scale in one or both axes.

 test/Makefile.am                              |   20 ---
 test/fallback-resolution.c                    |  222 ++++++++++++++-----------
 test/fallback-resolution.ppi150x150.ref.png   |  Bin 8043 -> 8058 bytes
 test/fallback-resolution.ppi150x300.ref.png   |  Bin 6848 -> 0 bytes
 test/fallback-resolution.ppi150x37.5.ref.png  |  Bin 13176 -> 0 bytes
 test/fallback-resolution.ppi150x600.ref.png   |  Bin 6338 -> 0 bytes
 test/fallback-resolution.ppi150x72.ref.png    |  Bin 8370 -> 8303 bytes
 test/fallback-resolution.ppi150x75.ref.png    |  Bin 10445 -> 0 bytes
 test/fallback-resolution.ppi300x150.ref.png   |  Bin 6851 -> 0 bytes
 test/fallback-resolution.ppi300x300.ref.png   |  Bin 5637 -> 5639 bytes
 test/fallback-resolution.ppi300x37.5.ref.png  |  Bin 12870 -> 0 bytes
 test/fallback-resolution.ppi300x600.ref.png   |  Bin 4848 -> 0 bytes
 test/fallback-resolution.ppi300x72.ref.png    |  Bin 7053 -> 7014 bytes
 test/fallback-resolution.ppi300x75.ref.png    |  Bin 9617 -> 0 bytes
 test/fallback-resolution.ppi37.5x150.ref.png  |  Bin 12728 -> 0 bytes
 test/fallback-resolution.ppi37.5x300.ref.png  |  Bin 11981 -> 0 bytes
 test/fallback-resolution.ppi37.5x37.5.ref.png |  Bin 14098 -> 14092 bytes
 test/fallback-resolution.ppi37.5x600.ref.png  |  Bin 11654 -> 0 bytes
 test/fallback-resolution.ppi37.5x72.ref.png   |  Bin 12990 -> 12906 bytes
 test/fallback-resolution.ppi37.5x75.ref.png   |  Bin 13787 -> 0 bytes
 test/fallback-resolution.ppi600x150.ref.png   |  Bin 6096 -> 0 bytes
 test/fallback-resolution.ppi600x300.ref.png   |  Bin 4812 -> 0 bytes
 test/fallback-resolution.ppi600x37.5.ref.png  |  Bin 12401 -> 0 bytes
 test/fallback-resolution.ppi600x600.ref.png   |  Bin 4104 -> 4090 bytes
 test/fallback-resolution.ppi600x72.ref.png    |  Bin 6398 -> 6326 bytes
 test/fallback-resolution.ppi600x75.ref.png    |  Bin 8974 -> 0 bytes
 test/fallback-resolution.ppi72x150.ref.png    |  Bin 8069 -> 8061 bytes
 test/fallback-resolution.ppi72x300.ref.png    |  Bin 6803 -> 6911 bytes
 test/fallback-resolution.ppi72x37.5.ref.png   |  Bin 13147 -> 13167 bytes
 test/fallback-resolution.ppi72x600.ref.png    |  Bin 6245 -> 6214 bytes
 test/fallback-resolution.ppi72x72.ref.png     |  Bin 8409 -> 8416 bytes
 test/fallback-resolution.ppi72x75.ref.png     |  Bin 10628 -> 10620 bytes
 test/fallback-resolution.ppi75x150.ref.png    |  Bin 9940 -> 0 bytes
 test/fallback-resolution.ppi75x300.ref.png    |  Bin 9003 -> 0 bytes
 test/fallback-resolution.ppi75x37.5.ref.png   |  Bin 14020 -> 0 bytes
 test/fallback-resolution.ppi75x600.ref.png    |  Bin 8455 -> 0 bytes
 test/fallback-resolution.ppi75x72.ref.png     |  Bin 10202 -> 10119 bytes
 test/fallback-resolution.ppi75x75.ref.png     |  Bin 12101 -> 12127 bytes
 38 files changed, 121 insertions(+), 121 deletions(-)

commit 0ebbcd671c362d98a60214872fa48aee1e42dde1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 9 14:30:58 2008 +0000

    [test] Fix memleak from fallback-resolution.
    
    The test-name was being recreated for every pass, but was never freed.

 test/fallback-resolution.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit a9697e5fb04d045fe7aaf0cee80c41eb9d09e1c1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 12 11:08:13 2008 +0000

    [test] Exercise glyph culling.
    
    Sascha Steinbiss reported an issue with glyph culling,
    http://lists.cairographics.org/archives/cairo/2008-December/015976.html,
    whereby we failed to update the text clusters upon culling the glyphs in
    the gstate and proceeded to read beyond the end of the glyph array in the
    PDF backend. This test case setups a similar condition as reported, by
    trying to write a wide string into a small box.

 test/Makefile.am              |    3 ++
 test/culled-glyphs.c          |   62 +++++++++++++++++++++++++++++++++++++++++
 test/culled-glyphs.ps.ref.png |  Bin 0 -> 372 bytes
 test/culled-glyphs.ref.png    |  Bin 0 -> 434 bytes
 4 files changed, 65 insertions(+), 0 deletions(-)

commit 095a1fd7860bd1f6d4116766ade0ec9a382bb957
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 5 21:14:45 2008 +0000

    [gstate] Remove culled glyphs from clusters.
    
    Sascha Steinbiss reported a bug where the PDF backend was reading beyond
    the end of the glyph array:
    http://lists.cairographics.org/archives/cairo/2008-December/015976.html.
    
    It transpires that in the early glyph culling in the gstate we were
    not updating the clusters to skip culled glyphs.

 src/cairo-gstate.c |  223 +++++++++++++++++++++++++++++++++++++++++-----------
 src/cairo.c        |    9 ++-
 2 files changed, 183 insertions(+), 49 deletions(-)

commit 834f1d7b7097dcc3a32f6c65d21e87fd272d924a
Author: Julien Danjou <julien@danjou.info>
Date:   Tue Nov 18 10:01:49 2008 +0100

    [xcb] check for render extension presence
    
    Otherwise this may leads to an invalid memory access to r.
    
    Fixes: Bug 18588 - XCB backend fails with missing render.
    https://bugs.freedesktop.org/show_bug.cgi?id=18588
    
    Signed-off-by: Julien Danjou <julien@danjou.info>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

 AUTHORS                 |    1 +
 src/cairo-xcb-surface.c |    8 ++++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

commit e184bf0d3592c8703b1193d37553cdcdee313139
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 12 10:12:43 2008 +0000

    Fix compilation with --enable-png=no
    
    Adrian Johnson spotted that the build was broken if the PNG functions were
    disabled. Fix.

 src/cairoint.h                             |    1 -
 util/cairo-script/cairo-script-operators.c |    8 ++++++++
 util/cairo-trace/trace.c                   |    4 ++++
 3 files changed, 12 insertions(+), 1 deletions(-)

commit 391c6026402dee09bb34816637114cea990cd93a
Merge: 2f1b581 d93bf10
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 11 14:41:01 2008 -0500

    Merge branch '1.8'

commit 2f1b581f54713c899f3b03af1e0ac8c38c36c385
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 11 10:34:37 2008 -0500

    [quartz] Create a copy instead of increasing the reference
    
    The pattern could be stack allocated so we can't take a reference to it.
    
    Some testing of quartz shows that it doesn't deal with malloc failure particularily
    well. In the best case CGFunctionCreate returns NULL, in the worst case it just crashes.
    Quartz does seem to be able to handle a NULL CGFunctionRef, so returning NULL if
    we fail to copy the pattern avoids complicating the code to deal with
    propagating the failure and shouldn't cause any additional crashes.
    
    Based on a patch by Paolo Bonzini.

 src/cairo-quartz-surface.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

commit f7b3f1b7d70a271575d3bb233b7ee51a21861c05
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Dec 10 17:54:59 2008 -0500

    [quartz] Propagate const patterns through the casts
    
    As part of this avoid using cairo_pattern_get_matrix() because it requires a
    'cairo_pattern_t *' instead of 'const cairo_pattern *'
    
    Also, make a copy of the pattern before pasing it in to cairo_set_source()

 src/cairo-quartz-surface.c |   39 +++++++++++++++++++++++----------------
 1 files changed, 23 insertions(+), 16 deletions(-)

commit db4c427e8460b0e326691bd6d3784178a713eb33
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Dec 9 12:03:11 2008 -0500

    [quartz] Change some pattern casts to access to the base class
    
    Avoiding casts gives us some more type safety.

 src/cairo-quartz-surface.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 5f60e2e00455f2894c7ce3805a029c806f21514a
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Dec 9 11:41:10 2008 -0500

    Reorganize the (set|get)_antialias prototypes
    
    Move _cairo_gstate_set_antialias() and _cairo_gstate_get_antialias() into the
    gstate section of cairoint.h

 src/cairoint.h |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

commit 5e06085b483dcaaa7b1b29b13cd2813c7e51e02a
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Aug 1 23:28:15 2008 +0300

    [cairo-spans] Render clip mask surfaces with spans if we can.
    
    Generating surface masks for clipping can also benefit from span
    rendering sometimes.

 src/cairo-clip.c                                   |  140 ++++++++++++++++++++
 test/clip-fill-rule.pdf.argb32.ref.png             |  Bin 0 -> 509 bytes
 test/clip-fill-rule.rgb24.ref.png                  |  Bin 380 -> 390 bytes
 test/clip-fill-rule.test-paginated.rgb24.ref.png   |  Bin 0 -> 361 bytes
 test/clip-fill-rule.xlib.rgb24.ref.png             |  Bin 0 -> 380 bytes
 test/clip-nesting.pdf.argb32.ref.png               |  Bin 0 -> 850 bytes
 test/clip-nesting.rgb24.ref.png                    |  Bin 955 -> 963 bytes
 test/clip-nesting.test-fallback.rgb24.ref.png      |  Bin 0 -> 936 bytes
 test/clip-nesting.test-paginated.rgb24.ref.png     |  Bin 0 -> 936 bytes
 test/clip-nesting.xlib.rgb24.ref.png               |  Bin 0 -> 955 bytes
 test/clip-operator.pdf.argb32.ref.png              |  Bin 11600 -> 11604 bytes
 test/clip-operator.ps3.argb32.ref.png              |  Bin 7574 -> 7576 bytes
 test/clip-operator.ref.png                         |  Bin 8247 -> 8210 bytes
 test/clip-operator.test-paginated.argb32.ref.png   |  Bin 0 -> 8247 bytes
 test/clip-twice.pdf.argb32.ref.png                 |  Bin 1458 -> 1498 bytes
 test/clip-twice.ref.png                            |  Bin 1362 -> 1342 bytes
 test/clip-twice.rgb24.ref.png                      |  Bin 1198 -> 1203 bytes
 test/clip-twice.test-fallback.argb32.ref.png       |  Bin 0 -> 1343 bytes
 test/clip-twice.test-fallback.rgb24.ref.png        |  Bin 0 -> 1179 bytes
 test/clip-twice.test-paginated.argb32.ref.png      |  Bin 0 -> 1361 bytes
 test/clip-twice.test-paginated.rgb24.ref.png       |  Bin 0 -> 1199 bytes
 test/clip-twice.xlib.ref.png                       |  Bin 0 -> 1362 bytes
 test/clip-twice.xlib.rgb24.ref.png                 |  Bin 0 -> 1198 bytes
 test/device-offset-fractional.pdf.argb32.ref.png   |  Bin 0 -> 275 bytes
 test/device-offset-fractional.pdf.rgb24.ref.png    |  Bin 0 -> 275 bytes
 test/filter-nearest-offset.pdf.argb32.ref.png      |  Bin 0 -> 4295 bytes
 test/filter-nearest-offset.pdf.rgb24.ref.png       |  Bin 0 -> 4295 bytes
 test/filter-nearest-transformed.pdf.argb32.ref.png |  Bin 0 -> 488 bytes
 test/filter-nearest-transformed.pdf.rgb24.ref.png  |  Bin 0 -> 488 bytes
 test/linear-gradient.pdf.argb32.ref.png            |  Bin 1118 -> 1112 bytes
 test/linear-gradient.pdf.rgb24.ref.png             |  Bin 1118 -> 1112 bytes
 test/mask.pdf.argb32.ref.png                       |  Bin 9956 -> 9903 bytes
 test/mask.ref.png                                  |  Bin 8571 -> 8581 bytes
 test/mask.svg11.argb32.ref.png                     |  Bin 8625 -> 8682 bytes
 test/mask.svg12.argb32.ref.png                     |  Bin 8625 -> 8682 bytes
 test/meta-surface-pattern.pdf.argb32.ref.png       |  Bin 4017 -> 4011 bytes
 test/meta-surface-pattern.svg11.argb32.ref.png     |  Bin 3928 -> 3924 bytes
 test/meta-surface-pattern.svg12.argb32.ref.png     |  Bin 3928 -> 3924 bytes
 test/rotate-image-surface-paint.pdf.argb32.ref.png |  Bin 209 -> 215 bytes
 test/rotate-image-surface-paint.pdf.rgb24.ref.png  |  Bin 207 -> 215 bytes
 test/surface-pattern-scale-down.pdf.argb32.ref.png |  Bin 2386 -> 1532 bytes
 test/surface-pattern-scale-down.pdf.rgb24.ref.png  |  Bin 2386 -> 1532 bytes
 test/surface-pattern-scale-up.pdf.argb32.ref.png   |  Bin 4247 -> 3834 bytes
 test/surface-pattern-scale-up.pdf.rgb24.ref.png    |  Bin 4247 -> 3834 bytes
 test/surface-pattern.pdf.argb32.ref.png            |  Bin 0 -> 14808 bytes
 test/surface-pattern.pdf.rgb24.ref.png             |  Bin 0 -> 14808 bytes
 test/trap-clip.pdf.rgb24.ref.png                   |  Bin 6642 -> 6621 bytes
 test/trap-clip.ref.png                             |  Bin 5865 -> 5829 bytes
 test/trap-clip.test-paginated.argb32.ref.png       |  Bin 0 -> 5865 bytes
 49 files changed, 140 insertions(+), 0 deletions(-)

commit 18634c37026a2d6147443cb6d991576f62b07e6d
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Jul 24 20:47:14 2008 +0300

    [cairo-spans] Hook up filling paths with spans to cairo-surface-fallback.c.
    
    This speeds up the mask generation step in cairo_fill() for the image
    surface by up to 10x in especially favourable cases.
    
    image-rgba                              twin-800 7757.80 0.20% -> 749.41 0.29%: 10.36x speedup
    image-rgba spiral-diag-pixalign-nonzero-fill-512   15.16 0.44% ->   3.45 8.80%:  5.54x speedup
    
    More typical simple non-rectilinear geometries are sped up by 30-50%.
    This patch does not affect any stroking operations or any fill
    operations of pixel aligned rectilinear geometries; those are still
    rendered using trapezoids.

 src/cairo-surface-fallback.c                       |   86 +++++++++++++++++++-
 test/clip-fill-rule.test-fallback.rgb24.ref.png    |  Bin 0 -> 361 bytes
 test/clip-operator.pdf.argb32.ref.png              |  Bin 12125 -> 11600 bytes
 test/clip-operator.pdf.rgb24.ref.png               |  Bin 7367 -> 6882 bytes
 test/clip-operator.ps2.rgb24.ref.png               |  Bin 3624 -> 3736 bytes
 test/clip-operator.ps3.argb32.ref.png              |  Bin 0 -> 7574 bytes
 test/clip-operator.ps3.rgb24.ref.png               |  Bin 3624 -> 3736 bytes
 test/clip-operator.ref.png                         |  Bin 8271 -> 8247 bytes
 test/clip-operator.rgb24.ref.png                   |  Bin 3258 -> 3279 bytes
 test/clip-operator.test-fallback.argb32.ref.png    |  Bin 0 -> 8252 bytes
 test/clip-operator.test-fallback.rgb24.ref.png     |  Bin 0 -> 3241 bytes
 test/clip-operator.xlib-fallback.rgb24.ref.png     |  Bin 0 -> 3254 bytes
 test/clip-operator.xlib.ref.png                    |  Bin 0 -> 8271 bytes
 test/clip-operator.xlib.rgb24.ref.png              |  Bin 0 -> 3258 bytes
 test/clip-twice.pdf.argb32.ref.png                 |  Bin 0 -> 1458 bytes
 test/clipped-group.pdf.argb32.ref.png              |  Bin 0 -> 298 bytes
 test/clipped-group.pdf.rgb24.ref.png               |  Bin 0 -> 298 bytes
 test/degenerate-arc.ref.png                        |  Bin 616 -> 544 bytes
 test/degenerate-arc.test-fallback.argb32.ref.png   |  Bin 0 -> 547 bytes
 test/degenerate-arc.test-fallback.rgb24.ref.png    |  Bin 0 -> 547 bytes
 test/degenerate-arc.xlib.ref.png                   |  Bin 0 -> 616 bytes
 test/fill-alpha-pattern.pdf.argb32.ref.png         |  Bin 3887 -> 3750 bytes
 test/fill-alpha-pattern.pdf.rgb24.ref.png          |  Bin 3840 -> 3758 bytes
 test/fill-alpha-pattern.ps3.argb32.ref.png         |  Bin 0 -> 4070 bytes
 test/fill-alpha-pattern.ps3.rgb24.ref.png          |  Bin 0 -> 4473 bytes
 test/fill-alpha-pattern.ref.png                    |  Bin 3653 -> 3374 bytes
 ...fill-alpha-pattern.test-fallback.argb32.ref.png |  Bin 0 -> 3379 bytes
 .../fill-alpha-pattern.test-fallback.rgb24.ref.png |  Bin 0 -> 3379 bytes
 test/fill-alpha-pattern.xlib.ref.png               |  Bin 0 -> 3653 bytes
 test/fill-alpha.ref.png                            |  Bin 2989 -> 2728 bytes
 test/fill-alpha.test-fallback.argb32.ref.png       |  Bin 0 -> 2824 bytes
 test/fill-alpha.test-fallback.rgb24.ref.png        |  Bin 0 -> 2824 bytes
 test/fill-alpha.xlib.ref.png                       |  Bin 0 -> 2989 bytes
 test/fill-degenerate-sort-order.ref.png            |  Bin 2397 -> 2406 bytes
 test/fill-degenerate-sort-order.rgb24.ref.png      |  Bin 2060 -> 2052 bytes
 ...enerate-sort-order.test-fallback.argb32.ref.png |  Bin 0 -> 2378 bytes
 ...generate-sort-order.test-fallback.rgb24.ref.png |  Bin 0 -> 2041 bytes
 test/fill-degenerate-sort-order.xlib.ref.png       |  Bin 0 -> 2397 bytes
 test/fill-degenerate-sort-order.xlib.rgb24.ref.png |  Bin 0 -> 2060 bytes
 test/fill-missed-stop.pdf.argb32.ref.png           |  Bin 0 -> 452 bytes
 test/fill-rule.ref.png                             |  Bin 1979 -> 2061 bytes
 test/fill-rule.rgb24.ref.png                       |  Bin 1722 -> 1780 bytes
 test/fill-rule.test-fallback.argb32.ref.png        |  Bin 0 -> 1979 bytes
 test/fill-rule.test-fallback.rgb24.ref.png         |  Bin 0 -> 1703 bytes
 test/fill-rule.xlib.ref.png                        |  Bin 0 -> 1979 bytes
 test/fill-rule.xlib.rgb24.ref.png                  |  Bin 0 -> 1722 bytes
 test/finer-grained-fallbacks.ps2.argb32.ref.png    |  Bin 0 -> 1173 bytes
 test/finer-grained-fallbacks.ps2.rgb24.ref.png     |  Bin 1096 -> 1154 bytes
 test/finer-grained-fallbacks.ps3.argb32.ref.png    |  Bin 0 -> 1173 bytes
 test/finer-grained-fallbacks.ps3.rgb24.ref.png     |  Bin 1096 -> 1154 bytes
 test/finer-grained-fallbacks.ref.png               |  Bin 1111 -> 1069 bytes
 test/finer-grained-fallbacks.rgb24.ref.png         |  Bin 1114 -> 839 bytes
 ...-grained-fallbacks.test-fallback.argb32.ref.png |  Bin 0 -> 1111 bytes
 ...r-grained-fallbacks.test-fallback.rgb24.ref.png |  Bin 0 -> 854 bytes
 test/finer-grained-fallbacks.xlib.ref.png          |  Bin 0 -> 1111 bytes
 test/finer-grained-fallbacks.xlib.rgb24.ref.png    |  Bin 0 -> 1114 bytes
 test/font-matrix-translation.svg11.argb32.ref.png  |  Bin 0 -> 857 bytes
 test/font-matrix-translation.svg11.rgb24.ref.png   |  Bin 0 -> 857 bytes
 test/font-matrix-translation.svg12.argb32.ref.png  |  Bin 0 -> 857 bytes
 test/font-matrix-translation.svg12.rgb24.ref.png   |  Bin 0 -> 857 bytes
 test/ft-show-glyphs-table.svg11.argb32.ref.png     |  Bin 0 -> 9953 bytes
 test/ft-show-glyphs-table.svg11.rgb24.ref.png      |  Bin 0 -> 9953 bytes
 test/ft-show-glyphs-table.svg12.argb32.ref.png     |  Bin 0 -> 9953 bytes
 test/ft-show-glyphs-table.svg12.rgb24.ref.png      |  Bin 0 -> 9953 bytes
 ...t-text-vertical-layout-type1.pdf.argb32.ref.png |  Bin 0 -> 3632 bytes
 ...ft-text-vertical-layout-type1.pdf.rgb24.ref.png |  Bin 0 -> 3632 bytes
 test/ft-text-vertical-layout-type1.ref.png         |  Bin 3980 -> 3643 bytes
 ...text-vertical-layout-type1.svg11.argb32.ref.png |  Bin 0 -> 3614 bytes
 ...-text-vertical-layout-type1.svg11.rgb24.ref.png |  Bin 0 -> 3614 bytes
 ...text-vertical-layout-type1.svg12.argb32.ref.png |  Bin 0 -> 3614 bytes
 ...-text-vertical-layout-type1.svg12.rgb24.ref.png |  Bin 0 -> 3614 bytes
 ...tical-layout-type1.test-fallback.argb32.ref.png |  Bin 0 -> 3639 bytes
 ...rtical-layout-type1.test-fallback.rgb24.ref.png |  Bin 0 -> 3639 bytes
 test/ft-text-vertical-layout-type1.xlib.ref.png    |  Bin 0 -> 3980 bytes
 ...t-text-vertical-layout-type3.pdf.argb32.ref.png |  Bin 0 -> 3642 bytes
 ...ft-text-vertical-layout-type3.pdf.rgb24.ref.png |  Bin 0 -> 3642 bytes
 test/ft-text-vertical-layout-type3.ref.png         |  Bin 3934 -> 3609 bytes
 ...text-vertical-layout-type3.svg11.argb32.ref.png |  Bin 0 -> 3640 bytes
 ...-text-vertical-layout-type3.svg11.rgb24.ref.png |  Bin 0 -> 3640 bytes
 ...text-vertical-layout-type3.svg12.argb32.ref.png |  Bin 0 -> 3640 bytes
 ...-text-vertical-layout-type3.svg12.rgb24.ref.png |  Bin 0 -> 3640 bytes
 ...tical-layout-type3.test-fallback.argb32.ref.png |  Bin 0 -> 3605 bytes
 ...rtical-layout-type3.test-fallback.rgb24.ref.png |  Bin 0 -> 3605 bytes
 test/ft-text-vertical-layout-type3.xlib.ref.png    |  Bin 0 -> 3934 bytes
 test/huge-pattern.pdf.argb32.ref.png               |  Bin 0 -> 2430 bytes
 test/linear-gradient.pdf.argb32.ref.png            |  Bin 0 -> 1118 bytes
 test/linear-gradient.pdf.rgb24.ref.png             |  Bin 0 -> 1118 bytes
 test/linear-gradient.ref.png                       |  Bin 1021 -> 983 bytes
 test/linear-gradient.svg11.argb32.ref.png          |  Bin 0 -> 988 bytes
 test/linear-gradient.svg11.rgb24.ref.png           |  Bin 0 -> 988 bytes
 test/linear-gradient.svg12.argb32.ref.png          |  Bin 0 -> 988 bytes
 test/linear-gradient.svg12.rgb24.ref.png           |  Bin 0 -> 988 bytes
 test/linear-gradient.test-fallback.argb32.ref.png  |  Bin 0 -> 923 bytes
 test/linear-gradient.test-fallback.rgb24.ref.png   |  Bin 0 -> 923 bytes
 test/linear-gradient.xlib.ref.png                  |  Bin 0 -> 1021 bytes
 test/mask-alpha.ref.png                            |  Bin 640 -> 643 bytes
 test/mask-alpha.svg11.argb32.ref.png               |  Bin 615 -> 642 bytes
 test/mask-alpha.svg11.rgb24.ref.png                |  Bin 0 -> 592 bytes
 test/mask-alpha.svg12.argb32.ref.png               |  Bin 615 -> 642 bytes
 test/mask-alpha.svg12.rgb24.ref.png                |  Bin 0 -> 592 bytes
 test/mask-alpha.test-fallback.argb32.ref.png       |  Bin 0 -> 627 bytes
 test/mask-alpha.xlib.ref.png                       |  Bin 0 -> 640 bytes
 test/mask-alpha.xlib.rgb24.ref.png                 |  Bin 0 -> 599 bytes
 test/mask.pdf.argb32.ref.png                       |  Bin 8881 -> 9956 bytes
 test/mask.pdf.rgb24.ref.png                        |  Bin 8267 -> 8735 bytes
 test/mask.ref.png                                  |  Bin 8476 -> 8571 bytes
 test/mask.rgb24.ref.png                            |  Bin 7041 -> 7216 bytes
 test/mask.svg11.argb32.ref.png                     |  Bin 8527 -> 8625 bytes
 test/mask.svg11.rgb24.ref.png                      |  Bin 7935 -> 7203 bytes
 test/mask.svg12.argb32.ref.png                     |  Bin 8527 -> 8625 bytes
 test/mask.svg12.rgb24.ref.png                      |  Bin 7935 -> 7203 bytes
 test/mask.test-fallback.argb32.ref.png             |  Bin 0 -> 8457 bytes
 test/mask.test-fallback.rgb24.ref.png              |  Bin 0 -> 7058 bytes
 test/mask.xlib-fallback.rgb24.ref.png              |  Bin 0 -> 7216 bytes
 test/mask.xlib.ref.png                             |  Bin 0 -> 8476 bytes
 test/mask.xlib.rgb24.ref.png                       |  Bin 0 -> 7041 bytes
 test/meta-surface-pattern.pdf.argb32.ref.png       |  Bin 0 -> 4017 bytes
 test/meta-surface-pattern.pdf.rgb24.ref.png        |  Bin 4009 -> 3910 bytes
 test/meta-surface-pattern.svg11.argb32.ref.png     |  Bin 3924 -> 3928 bytes
 test/meta-surface-pattern.svg11.rgb24.ref.png      |  Bin 4593 -> 3914 bytes
 test/meta-surface-pattern.svg12.argb32.ref.png     |  Bin 3924 -> 3928 bytes
 test/meta-surface-pattern.svg12.rgb24.ref.png      |  Bin 4593 -> 3914 bytes
 test/operator-clear.pdf.argb32.ref.png             |  Bin 1614 -> 1607 bytes
 test/operator-clear.ps2.argb32.ref.png             |  Bin 0 -> 1156 bytes
 test/operator-clear.ps3.argb32.ref.png             |  Bin 0 -> 1156 bytes
 test/operator-source.pdf.argb32.ref.png            |  Bin 5149 -> 5112 bytes
 test/operator-source.pdf.rgb24.ref.png             |  Bin 4354 -> 4186 bytes
 test/operator-source.ref.png                       |  Bin 4420 -> 4425 bytes
 test/operator-source.rgb24.ref.png                 |  Bin 3201 -> 3231 bytes
 test/operator-source.test-fallback.argb32.ref.png  |  Bin 0 -> 4401 bytes
 test/operator-source.test-fallback.rgb24.ref.png   |  Bin 0 -> 3200 bytes
 test/operator-source.xlib-fallback.rgb24.ref.png   |  Bin 0 -> 3193 bytes
 test/operator-source.xlib.ref.png                  |  Bin 0 -> 4420 bytes
 test/operator-source.xlib.rgb24.ref.png            |  Bin 0 -> 3201 bytes
 test/over-above-source.ps2.argb32.ref.png          |  Bin 636 -> 558 bytes
 test/over-above-source.ps3.argb32.ref.png          |  Bin 636 -> 558 bytes
 test/over-above-source.ref.png                     |  Bin 538 -> 560 bytes
 test/over-above-source.rgb24.ref.png               |  Bin 461 -> 466 bytes
 .../over-above-source.test-fallback.argb32.ref.png |  Bin 0 -> 533 bytes
 test/over-above-source.test-fallback.rgb24.ref.png |  Bin 0 -> 450 bytes
 test/over-above-source.xlib.ref.png                |  Bin 0 -> 538 bytes
 test/over-above-source.xlib.rgb24.ref.png          |  Bin 0 -> 461 bytes
 test/over-around-source.pdf.argb32.ref.png         |  Bin 0 -> 585 bytes
 test/over-around-source.ps2.argb32.ref.png         |  Bin 632 -> 522 bytes
 test/over-around-source.ps3.argb32.ref.png         |  Bin 632 -> 522 bytes
 test/over-around-source.ref.png                    |  Bin 614 -> 645 bytes
 ...over-around-source.test-fallback.argb32.ref.png |  Bin 0 -> 610 bytes
 test/over-around-source.xlib.ref.png               |  Bin 0 -> 614 bytes
 test/over-around-source.xlib.rgb24.ref.png         |  Bin 0 -> 503 bytes
 test/over-below-source.pdf.argb32.ref.png          |  Bin 0 -> 464 bytes
 test/over-between-source.ps2.argb32.ref.png        |  Bin 678 -> 551 bytes
 test/over-between-source.ps3.argb32.ref.png        |  Bin 678 -> 551 bytes
 test/over-between-source.ref.png                   |  Bin 575 -> 612 bytes
 ...ver-between-source.test-fallback.argb32.ref.png |  Bin 0 -> 578 bytes
 test/over-between-source.xlib.ref.png              |  Bin 0 -> 575 bytes
 test/over-between-source.xlib.rgb24.ref.png        |  Bin 0 -> 473 bytes
 test/push-group.pdf.argb32.ref.png                 |  Bin 0 -> 2722 bytes
 test/push-group.pdf.rgb24.ref.png                  |  Bin 2714 -> 2740 bytes
 test/push-group.ref.png                            |  Bin 3126 -> 3060 bytes
 test/push-group.rgb24.ref.png                      |  Bin 2961 -> 2912 bytes
 test/push-group.svg11.argb32.ref.png               |  Bin 2935 -> 3034 bytes
 test/push-group.svg12.argb32.ref.png               |  Bin 2935 -> 3034 bytes
 test/push-group.test-fallback.argb32.ref.png       |  Bin 0 -> 3107 bytes
 test/push-group.test-fallback.rgb24.ref.png        |  Bin 0 -> 2942 bytes
 test/push-group.xlib-fallback.rgb24.ref.png        |  Bin 0 -> 2912 bytes
 test/push-group.xlib.ref.png                       |  Bin 0 -> 3126 bytes
 test/push-group.xlib.rgb24.ref.png                 |  Bin 0 -> 2961 bytes
 test/radial-gradient.pdf.argb32.ref.png            |  Bin 0 -> 79601 bytes
 test/radial-gradient.pdf.rgb24.ref.png             |  Bin 0 -> 79601 bytes
 test/random-intersections.ref.png                  |  Bin 148722 -> 133462 bytes
 ...ndom-intersections.test-fallback.argb32.ref.png |  Bin 0 -> 132312 bytes
 ...andom-intersections.test-fallback.rgb24.ref.png |  Bin 0 -> 132312 bytes
 test/random-intersections.xlib.ref.png             |  Bin 0 -> 148722 bytes
 test/smask-fill.pdf.argb32.ref.png                 |  Bin 0 -> 1909 bytes
 test/smask-fill.pdf.rgb24.ref.png                  |  Bin 0 -> 1909 bytes
 test/smask-fill.ref.png                            |  Bin 1223 -> 1156 bytes
 test/smask-fill.svg11.argb32.ref.png               |  Bin 0 -> 1128 bytes
 test/smask-fill.svg11.rgb24.ref.png                |  Bin 0 -> 1128 bytes
 test/smask-fill.svg12.argb32.ref.png               |  Bin 0 -> 1128 bytes
 test/smask-fill.svg12.rgb24.ref.png                |  Bin 0 -> 1128 bytes
 test/smask-fill.test-fallback.argb32.ref.png       |  Bin 0 -> 1148 bytes
 test/smask-fill.test-fallback.rgb24.ref.png        |  Bin 0 -> 1148 bytes
 test/smask-fill.xlib-fallback.ref.png              |  Bin 0 -> 1156 bytes
 test/smask-fill.xlib.ref.png                       |  Bin 0 -> 1223 bytes
 test/smask-image-mask.pdf.argb32.ref.png           |  Bin 0 -> 1651 bytes
 test/smask-image-mask.pdf.rgb24.ref.png            |  Bin 0 -> 1651 bytes
 test/smask-mask.pdf.argb32.ref.png                 |  Bin 0 -> 4398 bytes
 test/smask-mask.pdf.rgb24.ref.png                  |  Bin 0 -> 4398 bytes
 test/smask-paint.pdf.argb32.ref.png                |  Bin 0 -> 4496 bytes
 test/smask-paint.pdf.rgb24.ref.png                 |  Bin 0 -> 4496 bytes
 test/smask-stroke.pdf.argb32.ref.png               |  Bin 0 -> 1417 bytes
 test/smask-stroke.pdf.rgb24.ref.png                |  Bin 0 -> 1417 bytes
 test/smask-text.svg11.argb32.ref.png               |  Bin 0 -> 1791 bytes
 test/smask-text.svg11.rgb24.ref.png                |  Bin 0 -> 1791 bytes
 test/smask-text.svg12.argb32.ref.png               |  Bin 0 -> 1791 bytes
 test/smask-text.svg12.rgb24.ref.png                |  Bin 0 -> 1791 bytes
 test/smask.pdf.argb32.ref.png                      |  Bin 0 -> 4496 bytes
 test/smask.pdf.rgb24.ref.png                       |  Bin 0 -> 4496 bytes
 test/text-pattern.pdf.argb32.ref.png               |  Bin 1823 -> 2151 bytes
 test/text-pattern.svg11.argb32.ref.png             |  Bin 1733 -> 1743 bytes
 test/text-pattern.svg12.argb32.ref.png             |  Bin 1733 -> 1743 bytes
 test/text-rotate.svg11.argb32.ref.png              |  Bin 0 -> 16942 bytes
 test/text-rotate.svg11.rgb24.ref.png               |  Bin 0 -> 16942 bytes
 test/text-rotate.svg12.argb32.ref.png              |  Bin 0 -> 16942 bytes
 test/text-rotate.svg12.rgb24.ref.png               |  Bin 0 -> 16942 bytes
 test/text-transform.svg11.argb32.ref.png           |  Bin 0 -> 5677 bytes
 test/text-transform.svg11.rgb24.ref.png            |  Bin 0 -> 5677 bytes
 test/text-transform.svg12.argb32.ref.png           |  Bin 0 -> 5677 bytes
 test/text-transform.svg12.rgb24.ref.png            |  Bin 0 -> 5677 bytes
 test/trap-clip.pdf.argb32.ref.png                  |  Bin 5809 -> 6720 bytes
 test/trap-clip.pdf.rgb24.ref.png                   |  Bin 5768 -> 6642 bytes
 test/trap-clip.ps2.argb32.ref.png                  |  Bin 5690 -> 4849 bytes
 test/trap-clip.ref.png                             |  Bin 5772 -> 5865 bytes
 test/trap-clip.rgb24.ref.png                       |  Bin 5365 -> 5457 bytes
 test/trap-clip.test-fallback.argb32.ref.png        |  Bin 0 -> 5753 bytes
 test/trap-clip.test-fallback.rgb24.ref.png         |  Bin 0 -> 5379 bytes
 test/trap-clip.xlib.ref.png                        |  Bin 0 -> 5772 bytes
 test/trap-clip.xlib.rgb24.ref.png                  |  Bin 0 -> 5365 bytes
 test/twin.svg11.argb32.ref.png                     |  Bin 0 -> 1797 bytes
 test/twin.svg11.rgb24.ref.png                      |  Bin 0 -> 1797 bytes
 test/twin.svg12.argb32.ref.png                     |  Bin 0 -> 1797 bytes
 test/twin.svg12.rgb24.ref.png                      |  Bin 0 -> 1797 bytes
 test/unbounded-operator.pdf.argb32.ref.png         |  Bin 0 -> 2713 bytes
 test/unbounded-operator.ps2.argb32.ref.png         |  Bin 0 -> 2713 bytes
 test/unbounded-operator.ps3.argb32.ref.png         |  Bin 0 -> 2713 bytes
 test/unbounded-operator.rgb24.ref.png              |  Bin 1315 -> 1341 bytes
 .../unbounded-operator.test-fallback.rgb24.ref.png |  Bin 0 -> 1306 bytes
 test/unbounded-operator.xlib.rgb24.ref.png         |  Bin 0 -> 1315 bytes
 test/user-font-proxy.pdf.argb32.ref.png            |  Bin 0 -> 16937 bytes
 test/user-font-proxy.pdf.rgb24.ref.png             |  Bin 0 -> 16937 bytes
 test/user-font-proxy.ref.png                       |  Bin 18121 -> 16937 bytes
 test/user-font-proxy.svg11.argb32.ref.png          |  Bin 0 -> 16836 bytes
 test/user-font-proxy.svg11.rgb24.ref.png           |  Bin 0 -> 16836 bytes
 test/user-font-proxy.svg12.argb32.ref.png          |  Bin 0 -> 16836 bytes
 test/user-font-proxy.svg12.rgb24.ref.png           |  Bin 0 -> 16836 bytes
 test/user-font-proxy.test-fallback.argb32.ref.png  |  Bin 0 -> 16835 bytes
 test/user-font-proxy.test-fallback.rgb24.ref.png   |  Bin 0 -> 16835 bytes
 test/user-font-proxy.xlib.ref.png                  |  Bin 0 -> 18121 bytes
 test/user-font.ref.png                             |  Bin 6183 -> 6082 bytes
 test/user-font.svg11.argb32.ref.png                |  Bin 0 -> 6411 bytes
 test/user-font.svg11.rgb24.ref.png                 |  Bin 0 -> 6411 bytes
 test/user-font.svg12.argb32.ref.png                |  Bin 0 -> 6411 bytes
 test/user-font.svg12.rgb24.ref.png                 |  Bin 0 -> 6411 bytes
 test/user-font.test-fallback.argb32.ref.png        |  Bin 0 -> 5601 bytes
 test/user-font.test-fallback.rgb24.ref.png         |  Bin 0 -> 5601 bytes
 test/user-font.xlib.ref.png                        |  Bin 0 -> 6183 bytes
 246 files changed, 85 insertions(+), 1 deletions(-)

commit 85b81a3e59401e2fc68209634f7622694e7d30e1
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jul 11 13:10:20 2008 +0300

    [cairo-spans] Implement a span renderer for cairo_image_surface_t.
    
    This implementation first produces an A8 alpha mask and then
    pixman_image_composites the result to the destination with the source.
    Clipping is handled by pixman when it is region clipping or by
    cairo-surface-fallback when it is something more complex.

 src/cairo-image-surface.c |  273 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 233 insertions(+), 40 deletions(-)

commit 7994fc06ad66e31fcbc16f6e8cd9ad226022ec8c
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Aug 28 22:16:07 2008 +0300

    [cairo-spans] New cairo_tor_scan_converter_t.
    
    Imports a new polygon scan converter implementation from the
    repository at
    
    http://cgit.freedesktop.org/~joonas/glitter-paths/
    
    Glitter paths is a stand alone polygon rasteriser derived from David
    Turner's reimplementation of Tor Anderssons's 15x17 supersampling
    rasteriser from the Apparition graphics library.  The main new feature
    in this implementation is cheaply choosing per-scan line between doing
    fully analytical coverage computation for an entire row at a time
    vs. using a supersampling approach.

 src/Makefile.sources           |    1 +
 src/cairo-spans-private.h      |   10 +
 src/cairo-spans.c              |   18 +-
 src/cairo-tor-scan-converter.c | 2003 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 2027 insertions(+), 5 deletions(-)

commit 2078e5b20fdff76ada6e13b29b2775b7dcd35439
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Jul 31 01:58:08 2008 +0300

    [cairo-spans] New _cairo_path_fixed_fill_using_spans().
    
    Adds a helper function for backends to use for filling a path using
    spans.

 src/cairo-spans-private.h |   10 +++
 src/cairo-spans.c         |  145 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 155 insertions(+), 0 deletions(-)

commit 4a9b274eebe674bbc5c66dc3e33256723cdf9829
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jul 11 00:59:47 2008 +0300

    [cairo-spans] Add a check/create_span_renderer backend methods.
    
    A surface will have the chance to use span rendering at cairo_fill()
    time by creating a renderer for a specific combination of
    pattern/dst/op before the path is scan converted.  The protocol is to
    first call check_span_renderer() to see if the surface wants to render
    with spans and then later call create_span_renderer() to create the
    renderer for real once the extents of the path are known.
    
    No backends have an implementation yet.

 src/cairo-analysis-surface.c       |    4 +++
 src/cairo-beos-surface.cpp         |    2 +
 src/cairo-directfb-surface.c       |    2 +
 src/cairo-glitz-surface.c          |    2 +
 src/cairo-image-surface.c          |    2 +
 src/cairo-meta-surface.c           |    2 +
 src/cairo-os2-surface.c            |    2 +
 src/cairo-paginated-surface.c      |    2 +
 src/cairo-pdf-surface.c            |    2 +
 src/cairo-ps-surface.c             |    2 +
 src/cairo-quartz-image-surface.c   |    2 +
 src/cairo-quartz-surface.c         |    2 +
 src/cairo-script-surface.c         |    2 +
 src/cairo-sdl-surface.c            |    2 +
 src/cairo-surface.c                |   53 ++++++++++++++++++++++++++++++++++++
 src/cairo-svg-surface.c            |    2 +
 src/cairo-type3-glyph-surface.c    |    2 +
 src/cairo-win32-printing-surface.c |    2 +
 src/cairo-win32-surface.c          |    2 +
 src/cairo-xcb-surface.c            |    2 +
 src/cairo-xlib-surface.c           |    2 +
 src/cairoint.h                     |   30 ++++++++++++++++++++
 src/test-fallback-surface.c        |    2 +
 src/test-meta-surface.c            |    2 +
 src/test-paginated-surface.c       |    2 +
 25 files changed, 131 insertions(+), 0 deletions(-)

commit 948c3526dcdbc440395fff4ce9bf4b7553930d92
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Oct 24 17:37:30 2008 +0300

    [cairo-spans] New abstract types for scan converting polygons.
    
    A cairo_span_renderer_t implementation can be provided by a surface if
    it wants to render paths as horizontal spans of the alpha component of
    a mask.  Its job is to composite a source pattern to the destination
    surface when given spans of alpha coverage for a row while taking care
    of backend specific clipping.
    
    A cairo_scan_converter_t takes edges of a flattened path and generates
    spans for a span renderer to render.

 src/Makefile.sources      |    2 +
 src/cairo-spans-private.h |  124 +++++++++++++++++++++++
 src/cairo-spans.c         |  242 +++++++++++++++++++++++++++++++++++++++++++++
 src/cairoint.h            |    1 +
 4 files changed, 369 insertions(+), 0 deletions(-)

commit 4b227143b3daab75148cd54c9e7580d509864e0d
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Jul 31 01:54:53 2008 +0300

    [cairo-spans] Introduce a type to track which pixels combine in a compositing op.
    
    A cairo_composite_rectangles_t contains the coordinates of rectangular
    windows into each of the source pattern, mask, clip and destination
    surface containing the pixels that will combine in a compositing
    operation.  The idea is to have a uniform way to represent all the
    translations involved rather than overloading parameters like src_x/y,
    dst_x/y, etc., sometimes with different incompatible meanings across
    functions.

 src/cairo-rectangle.c     |   21 +++++++++++++++++++++
 src/cairo-types-private.h |   24 ++++++++++++++++++++++++
 src/cairoint.h            |    7 +++++++
 3 files changed, 52 insertions(+), 0 deletions(-)

commit a370d077bc697588b6dac2556afa0b95ff83a77d
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jul 25 16:35:14 2008 +0300

    [path-fixed] New _cairo_path_fixed_is_region().
    
    We want to hit the current fast paths for rendering axis aligned
    rectilinear paths rather than spans, and for that we need to be able
    to identify regional paths.

 src/cairo-path-fixed.c |   96 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/cairoint.h         |    3 +
 2 files changed, 99 insertions(+), 0 deletions(-)

commit 6acb8223930081f70b422ef93a49ea645c2cc12d
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Sep 12 19:32:12 2008 +0300

    [path-fixed] Avoid extra indirection when iterating already flat paths.
    
    Perform a plain iteration rather than a flattening one if the path
    knows it doesn't have any curves.

 src/cairo-path-fixed.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

commit 0c0f4862c52d68776024f125b003ade455044b27
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 6 13:32:37 2008 +0200

    [perf-diff] Fix cairo-perf-diff for git 1.6
    
    Since git 1.6 the plumbing commands aren't installed in the user's
    path by default.  This patch fixes cairo-perf-diff to find the
    git-sh-setup command from git's lib dir.

 perf/cairo-perf-diff |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit afba0c312958852586b846ec615cff1bd3e5cde7
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Sep 12 17:41:45 2008 +0300

    [perf] Add perf tests to hit rectilinear code paths.
    
    These tests look at the differences in code paths
    hit by filling paths that are rectilinear (or not) and
    pixel aligned (or not) with the even-odd and non-zero
    fill rules.  The paths are not simple, so they don't
    hit the special case quad/triangle tessellator.

 perf/Makefile.am  |    3 +-
 perf/cairo-perf.c |    1 +
 perf/cairo-perf.h |    1 +
 perf/spiral.c     |  200 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 204 insertions(+), 1 deletions(-)

commit 8ec58113df417e1ec1d331ab65267c34e6d32096
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Sep 12 17:32:40 2008 +0300

    [perf] Explicitly test rendering a path with lots of intersections.
    
    We don't have one just for this purpose.  The only other
    path with many intersections that gets actually rendered is zrusin-another,
    but that might be sped up in the future (say by identifying
    collinearities up front or something like that.)

 perf/Makefile.am     |    3 +-
 perf/cairo-perf.c    |    1 +
 perf/cairo-perf.h    |    1 +
 perf/intersections.c |   97 ++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 101 insertions(+), 1 deletions(-)

commit 08b486c9aa1d6ad01f1b17a16dcb4d695e8cbf7d
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 4 17:53:06 2008 -0500

    [win32] Use MOD instead of the '%' operator
    
    Repeat should be handled using MOD instead of '%' so that negative numbers
    are handled as expected. E.g. -1 mod 600 = 599, not 495 as the '%' operator
    gives. This was causing https://bugzilla.mozilla.org/show_bug.cgi?id=466258
    
    Patch from Robert O'Callahan

 src/cairo-win32-surface.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

commit aff32019a70600fec5040a5a73c4f0b688826064
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sun Nov 30 23:28:59 2008 -0500

    [Makefile.am] Use top_srcdir instead of srcdir
    
    Doesn't make much difference here, but makes our intention clear.

 build/Makefile.am.changelog |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 51a75ad932af4a3c3da96ef98de79328afa200c3
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Sun Nov 30 20:42:49 2008 +0800

    glitz: Replace specified color with an opaque one if dst surface don't have an alpha channel.
    
    Otherwise if underlying glitz drawable has an alpha channel, glitz_set_rectangles
    will set its alpha channel to specified value instead of opaque one and effects following
    composite operations since glitz draws to attached drawable then copies its content to
    the dst surface. With this commit, three test cases such as operator, operator-alpha and
    unbounded-operator passes now.

 src/cairo-glitz-surface.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

commit 7247017cf5e6b497a5836d9081ee153d27c6b15e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Nov 29 11:47:25 2008 +0000

    Fix up a couple of likely(malloc==NULL)
    
    Adrian Johnson spotted that I marked a few malloc failures as likely,
    whoops.

 src/cairo-cff-subset.c |    4 ++--
 src/cairo-clip.c       |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 1659db2c1f4cc72e51fb43d119822ec7aaa77ac0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Nov 29 10:37:58 2008 +0000

    [test] Fix surface leak from device-offset-positive.
    
    A forgotten cairo_surface_destroy() caused the similar surface to be
    leaked during the test.

 test/device-offset-positive.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 0d757a793d7fe2860c6a522124a123864fc97f0a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Nov 29 10:36:34 2008 +0000

    [png] Fix leak of original png data on error path.
    
    The error path was missing a _cairo_output_stream_destroy() to cleanup a
    copy of the incoming PNG data.

 src/cairo-png.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

commit e6963a5bfebda69a1ef0a986cede84bcd955b6d4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 18 17:26:55 2008 +0000

    Mark allocation failures as unlikely.
    
    Use the gcc likelihood annotation to indicate that allocation failures are
    extremely unlikely.

 src/cairo-analysis-surface.c    |    4 +-
 src/cairo-array.c               |    4 +-
 src/cairo-base85-stream.c       |    2 +-
 src/cairo-bentley-ottmann.c     |   13 +++----
 src/cairo-cache.c               |    6 ++--
 src/cairo-cff-subset.c          |   66 +++++++++++++++++++-------------------
 src/cairo-clip.c                |    8 ++--
 src/cairo-deflate-stream.c      |    2 +-
 src/cairo-directfb-surface.c    |    2 +-
 src/cairo-font-face.c           |    6 ++--
 src/cairo-ft-font.c             |   25 ++++++++-------
 src/cairo-gstate.c              |   17 +++++-----
 src/cairo-hash.c                |    6 ++--
 src/cairo-hull.c                |    2 +-
 src/cairo-image-surface.c       |   12 +++---
 src/cairo-lzw.c                 |    4 +-
 src/cairo-meta-surface.c        |   24 +++++++-------
 src/cairo-misc.c                |   24 +++++++++-----
 src/cairo-output-stream.c       |   14 ++++----
 src/cairo-paginated-surface.c   |    2 +-
 src/cairo-path-fixed.c          |    4 +-
 src/cairo-path-stroke.c         |    4 +-
 src/cairo-path.c                |    8 ++--
 src/cairo-pattern.c             |   36 ++++++++++----------
 src/cairo-pdf-operators.c       |    6 ++--
 src/cairo-pdf-surface.c         |   34 ++++++++++----------
 src/cairo-pen.c                 |    8 ++--
 src/cairo-png.c                 |   14 ++++----
 src/cairo-polygon.c             |    2 +-
 src/cairo-ps-surface.c          |   16 +++++-----
 src/cairo-region.c              |    2 +-
 src/cairo-scaled-font-subsets.c |   28 ++++++++--------
 src/cairo-scaled-font.c         |   29 ++++++++---------
 src/cairo-script-surface.c      |   14 ++++----
 src/cairo-sdl-surface.c         |    2 +-
 src/cairo-skiplist.c            |    2 +-
 src/cairo-stroke-style.c        |    2 +-
 src/cairo-surface-fallback.c    |    2 +-
 src/cairo-surface.c             |    4 +-
 src/cairo-svg-surface.c         |   16 +++++-----
 src/cairo-traps.c               |    4 +-
 src/cairo-truetype-subset.c     |   30 +++++++++---------
 src/cairo-type1-fallback.c      |   15 ++++-----
 src/cairo-type1-subset.c        |   22 ++++++------
 src/cairo-type3-glyph-surface.c |    2 +-
 src/cairo-user-font.c           |    2 +-
 src/cairo-xlib-display.c        |    4 +-
 src/cairo-xlib-screen.c         |    2 +-
 src/cairo-xlib-surface.c        |   25 +++++++--------
 src/cairo-xlib-visual.c         |    2 +-
 src/cairo.c                     |    4 +-
 src/test-fallback-surface.c     |    2 +-
 src/test-meta-surface.c         |    2 +-
 src/test-paginated-surface.c    |    2 +-
 54 files changed, 300 insertions(+), 294 deletions(-)

commit d1801c23fae3777c7c59e084894a3410f7a1f932
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 18 15:38:37 2008 +0000

    Mark if(status) as being unlikely.
    
    The error paths should be hit very rarely during normal operation, so mark
    them as being unlikely so gcc may emit better code.

 src/cairo-analysis-surface.c    |   24 ++--
 src/cairo-array.c               |    6 +-
 src/cairo-cache.c               |    4 +-
 src/cairo-cff-subset.c          |  208 ++++++++++++------------
 src/cairo-clip.c                |   23 ++--
 src/cairo-font-face.c           |   14 +-
 src/cairo-ft-font.c             |   44 +++---
 src/cairo-gstate.c              |   66 ++++----
 src/cairo-image-surface.c       |   16 +-
 src/cairo-lzw.c                 |    4 +-
 src/cairo-meta-surface.c        |   42 +++---
 src/cairo-misc.c                |    6 +-
 src/cairo-output-stream.c       |    2 +-
 src/cairo-paginated-surface.c   |   38 +++---
 src/cairo-path-fill.c           |    6 +-
 src/cairo-path-fixed.c          |   14 +-
 src/cairo-path-stroke.c         |   56 ++++----
 src/cairo-path.c                |    6 +-
 src/cairo-pattern.c             |   34 ++--
 src/cairo-pdf-operators.c       |   60 ++++----
 src/cairo-pdf-surface.c         |  334 +++++++++++++++++++-------------------
 src/cairo-pen.c                 |    6 +-
 src/cairo-png.c                 |   14 +-
 src/cairo-ps-surface.c          |  122 +++++++-------
 src/cairo-scaled-font-subsets.c |   30 ++--
 src/cairo-scaled-font.c         |   72 ++++----
 src/cairo-script-surface.c      |  160 ++++++++++----------
 src/cairo-sdl-surface.c         |    4 +-
 src/cairo-surface-fallback.c    |   82 +++++-----
 src/cairo-surface.c             |   60 ++++----
 src/cairo-svg-surface.c         |   84 +++++-----
 src/cairo-traps.c               |   12 +-
 src/cairo-truetype-subset.c     |   98 ++++++------
 src/cairo-type1-fallback.c      |   44 +++---
 src/cairo-type1-subset.c        |   46 +++---
 src/cairo-type3-glyph-surface.c |   10 +-
 src/cairo-user-font.c           |   18 +-
 src/cairo-xlib-screen.c         |    4 +-
 src/cairo-xlib-surface.c        |   92 ++++++------
 src/cairo.c                     |  138 ++++++++--------
 40 files changed, 1053 insertions(+), 1050 deletions(-)

commit f0804d4856496a46d0b2270d5815856bf63b4cf8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 28 23:58:55 2008 +0000

    [test] Exercise caps and joins under reflection.
    
    The nature of the joins depends critically upon whether the joint is
    clockwise or counter-clockwise, so extend the basic caps-joins test to
    exercise both conditions i.e. repeat the test under a reflection.

 test/Makefile.am                 |    6 ++-
 test/caps-joins-curve.c          |  111 ++++++++++++++++++++++++++++++++++++++
 test/caps-joins-curve.ps.ref.png |  Bin 0 -> 3728 bytes
 test/caps-joins-curve.ref.png    |  Bin 0 -> 5132 bytes
 test/caps-joins.c                |   40 ++++++++++----
 test/caps-joins.ps.ref.png       |  Bin 0 -> 2282 bytes
 test/caps-joins.ps2.ref.png      |  Bin 1459 -> 0 bytes
 test/caps-joins.ps3.ref.png      |  Bin 1459 -> 0 bytes
 test/caps-joins.ref.png          |  Bin 1488 -> 2380 bytes
 test/dash-curve.ref.png          |  Bin 39642 -> 39696 bytes
 10 files changed, 143 insertions(+), 14 deletions(-)

commit f39dd86e292e9af3438acb041a3a7330fb4a3b22
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 27 00:23:11 2008 +0000

    [test] Add simple cap test.
    
    Add a test case that only exercises capping, useful for developing
    new strokers.

 test/Makefile.am     |    3 ++
 test/caps.c          |   87 ++++++++++++++++++++++++++++++++++++++++++++++++++
 test/caps.ps.ref.png |  Bin 0 -> 1466 bytes
 test/caps.ref.png    |  Bin 0 -> 1601 bytes
 4 files changed, 90 insertions(+), 0 deletions(-)

commit f2982e103c27cad1edf648dadcfffe1a15763efd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 25 17:23:33 2008 +0000

    [fill] Allow rectangles to be implicitly closed.
    
    Also scan for appendages of simple rectangles.

 src/cairo-path-fill.c          |    2 +-
 src/cairo-path-fixed-private.h |    4 ++--
 src/cairo-path-fixed.c         |   14 +++++++++-----
 3 files changed, 12 insertions(+), 8 deletions(-)

commit d2bcf1d76defda861e1a7f2271046851083ad694
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 28 17:12:03 2008 +0000

    [path] Carefully check for no more points.
    
    As the empty path points to an embedded buf, we cannot rely on the buf
    pointer being NULL to mark end-of-path.

 src/cairo-path-fixed-private.h |   10 +++++-----
 src/cairo-path-fixed.c         |   15 ++++++++++++---
 2 files changed, 17 insertions(+), 8 deletions(-)

commit 424aba9be558e89b4d42554ca6a5042574e3df75
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 20:38:24 2008 +0000

    [check] Search for the word NOTE
    
    Add word boundary markers around the regexp so that we only match for the
    word NOTE and not on substrings like GL_NOTEQUAL.

 src/check-doc-syntax.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 36147140ce56d8d3492b971a9b6ceff97e212e01
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 28 18:54:02 2008 +0000

    [perf] Fix build
    
    If automake detects the use of cairo_perf_LDADD in an unused conditional
    that overrides the default - so we need to manually set cairo_perf_LDADD.

 perf/Makefile.am |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit ed6bd4766cb47e97b1a6ecb81eff5bf4673d549b
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Fri Nov 28 07:54:41 2008 +0800

    image: Use unsigned long to compute color masks.
    
    Use unsigned long in the first place to prevent compiler from
    expanding signed bit to all upper bits. e.g, a alpha mask 0xff0000
    will expand to 0xffffffffff00000 on 64 bit platform which is not
    what we expected.

 src/cairo-image-surface.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 41cb91d417e7c0dc1cc767ea0fb38a1f8b3f4e43
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Wed Nov 26 23:49:12 2008 +0200

    [script] Use the in-tree libcairo for csi-replay.
    
    csi-replay was missing the in-tree libcairo.la so the build was
    failing while looking for new symbols from the system libcairo.

 util/cairo-script/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5591cb58fd94483ec3dc7c169ae8cf0a6b7841bd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 17:43:22 2008 +0000

    [script] Only use zlib if available.
    
    Conditionally link against zlib - replaying a script will fail if the
    trace uses a compressed format.

 configure.ac                               |    5 ++++-
 util/cairo-script/Makefile.am              |    2 +-
 util/cairo-script/cairo-script-file.c      |    5 ++++-
 util/cairo-script/cairo-script-operators.c |    2 ++
 4 files changed, 11 insertions(+), 3 deletions(-)

commit 9432c0c9b89ed6b3d369b377cf884918cd6180db
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 17:33:35 2008 +0000

    [script] Link the interpreter against the built library.
    
    Ensure we correctly link against the version of cairo just built.

 util/cairo-script/Makefile.am |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 815e5b962ef8477c344da0f0b52c1f85c9854777
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 17:30:29 2008 +0000

    [script] Add a fallback image surface for replay
    
    If we do not have a native windowing surface compiled into the library,
    just replay the script to an image surface.

 util/cairo-script/csi-replay.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit 5e376523628d5e2078e395ea7263a04bacd37c47
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 17:26:57 2008 +0000

    [skiplist] Check for ffs()
    
    Wine at least does not provide ffs(), so check at configure time and
    open-code a replacement.

 build/configure.ac.system |    2 +-
 src/cairo-skiplist.c      |   11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletions(-)

commit 60282b866aab359840b4bcaa6aaccaca2eccd3d2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 16:58:29 2008 +0000

    [glitz] Fix clone_similar().
    
    Clone similar open-coded various image surface functions and failed to
    clone a sub-region resulting in failures for mask-transformed-* and
    large-source.

 src/cairo-glitz-surface.c |  458 ++++++++++++++-------------------------------
 1 files changed, 137 insertions(+), 321 deletions(-)

commit 47275c7ece06c0d02f2d7c9aa81d87a7144392b0
Author: Paolo Bonzini <bonzini@gnu.org>
Date:   Wed Nov 26 15:56:48 2008 +0100

    [test] Fix glitz-surface-source test
    
    The recent changes to separate glitz/agl broke the compilation of the
    glitz-surface-source test.

 test/glitz-surface-source.c           |   96 ++++++++++++++++++++++++++++++++-
 test/glitz-surface-source.ps2.ref.png |  Bin 0 -> 376 bytes
 test/glitz-surface-source.ps3.ref.png |  Bin 0 -> 376 bytes
 3 files changed, 94 insertions(+), 2 deletions(-)

commit a84ea7829065b7e1d33d6fed6bcf0c7c8abd383a
Author: Paolo Bonzini <bonzini@gnu.org>
Date:   Wed Nov 26 15:49:00 2008 +0100

    [test] Add quartz-surface-source test
    
    Add a simple test to exercise using a Quartz surface as a source.

 test/Makefile.am                       |    6 ++++-
 test/quartz-surface-source.c           |   42 ++++++++++++++++++++++++++++++++
 test/quartz-surface-source.ps2.ref.png |  Bin 0 -> 376 bytes
 test/quartz-surface-source.ps3.ref.png |  Bin 0 -> 376 bytes
 test/quartz-surface-source.ref.png     |  Bin 0 -> 332 bytes
 5 files changed, 47 insertions(+), 1 deletions(-)

commit 993941cfd701eb222b81cdddeabf6f7ff2daa150
Author: Paolo Bonzini <bonzini@gnu.org>
Date:   Wed Nov 26 13:32:11 2008 +0000

    [perf] Fix SDL compilation for MacOS X
    
    The attached patch makes the SDL tests compile under Mac OS X.  The
    problem is:
    
    1) that <SDL_main.h> should be included in files that define the main
    function for SDL Mac OS X programs (this is not true with the upcoming
    SDL 1.3 release).
    
    2) that -lSDLmain, because it is statically linked, needs the Cocoa
    framework in the LDADD of the main program.  Again, 1.3 will not require
    this.

 perf/Makefile.am         |    4 ++++
 perf/cairo-perf.c        |    4 ++++
 test/Makefile.am         |    4 ++++
 test/cairo-test-runner.c |    4 ++++
 4 files changed, 16 insertions(+), 0 deletions(-)

commit 8a5b55ca6c69671a138f65ab15bcf93163f24a37
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 13:26:40 2008 +0000

    [matrix] Impose a maximum number of refinement iterations
    
    Ensure we do not loop forever trying to minimise the error between the
    pixman and cairo matrices - for instance when the FPU is not running at
    full precision.

 src/cairo-matrix.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 4218699642c621eb3098a5251ef88d8c7d8a96d2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 11:54:29 2008 +0000

    [skiplist] Use ffs()
    
    Use ffs() [find-first-set-bit] instead of open-coding, which is about 25%
    faster on my test machine.

 src/cairo-skiplist.c |   11 +----------
 1 files changed, 1 insertions(+), 10 deletions(-)

commit 039437c9cfaeed7a2cc1977623ab8bda9854b58a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 26 10:31:09 2008 +0000

    [png] Use FILE* instead of void*.
    
    Adrian Johnson reported that cygwin complained about the use of the void *
    within feof() as it was using a macro and attempted a to deference the
    void*...

 src/cairo-png.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit 8fa3cd95641e9138406d651b0734ee84f1da60d2
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Nov 26 06:40:47 2008 +1030

    Change uint to uint32_t

 src/cairo-image-info.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit e828f7330633cd839f094bf8409de0bcff17c95c
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Wed Nov 26 00:09:11 2008 +0800

    glitz: Apply fixup to unbounded operators to clear area outside of mask

 src/cairo-glitz-surface.c |   79 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 66 insertions(+), 13 deletions(-)

commit 449e7518bee5d0238138176b3b71d137c6fc01e7
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Tue Nov 25 22:55:24 2008 +0800

    glitz: set correct parameters for linear and radial pattern.
    
    Glitz expects 16.16 fixed point, but we use 24.8 fixed point by default.

 src/cairo-glitz-surface.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

commit 3bde440e00ba19e968b854c1505dc4d1ace83504
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Tue Nov 25 22:36:53 2008 +0800

    glitz: fixup another stupid bug in fill_rectangles.
    
    Wny I doesn't notice them before. Without fixes it fills n_rect times of
    the first one in the rectangle list.

 src/cairo-glitz-surface.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

commit 4ac38f7c2bde67cab37805cab8a2effb2a8617e4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 25 11:52:01 2008 +0000

    [fill] Emit rectangles for GdkRegion
    
    Scan the path for a series of consistently wound rectangles.

 src/cairo-path-fill.c          |   85 ++++++++++++++++++++++------
 src/cairo-path-fixed-private.h |   17 ++++++
 src/cairo-path-fixed.c         |  124 +++++++++++++++++++++++++++++++++++++---
 3 files changed, 201 insertions(+), 25 deletions(-)

commit 23df74e5ffd6be876f3c19ee9d71683f5a0ed6f4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 25 11:45:30 2008 +0000

    [xlib] Cosmetic tweak.
    
    Tightly scope the local rects.

 src/cairo-xlib-surface.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit 06fabd6cbd0ad187f5f9f155d6b7962f76ec5dda
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 25 12:05:26 2008 +0000

    [path] Fix up extents.
    
    Forgot to round the box to the integer rectangle and missed why only
    testing on image. Very naughty.

 src/cairo-analysis-surface.c |    2 +-
 src/cairo-path-bounds.c      |   20 +++++++++++---------
 2 files changed, 12 insertions(+), 10 deletions(-)

commit 1f44fb97f3973aa90c4f27bcf9341149370c825d
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Tue Nov 25 20:45:03 2008 +0800

    cairo-script: add $(top_builddir)/src to CPPPATH.
    
    $(top_builddir)/src is needed to find cairo-features.h while
    building out of tree.

 util/cairo-script/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 487c708b3b6727eb2f8d3714edeae356a7cbbd40
Author: Paolo Bonzini <bonzini@gnu.org>
Date:   Tue Nov 25 20:40:37 2008 +0800

    [boilerplate] fix compilation for glitz-agl
    
    As suggested on the list, this splits the cairo-boilerplate-glitz.c
    file in three separate files, one for each backend.  Furthermore,
    it fixes a few problems in compilation of the AGL backend test harness.

 boilerplate/Makefile.sources                  |    6 +-
 boilerplate/cairo-boilerplate-glitz-agl.c     |  166 ++++++++
 boilerplate/cairo-boilerplate-glitz-glx.c     |  244 ++++++++++++
 boilerplate/cairo-boilerplate-glitz-private.h |    6 +
 boilerplate/cairo-boilerplate-glitz-wgl.c     |  164 ++++++++
 boilerplate/cairo-boilerplate-glitz.c         |  517 -------------------------
 6 files changed, 585 insertions(+), 518 deletions(-)

commit ca80b8c652dde4449216da9d11691202eef97bbd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 25 10:25:24 2008 +0000

    [pdf] Add a default case to silence the compiler.
    
    The foolish compiler was emitting a warning about a potential
    uninitialized variable even though the switch was fully populated.

 src/cairo-pdf-surface.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit b8991a1c69ae5d8fb630296a3c689aa8d1546671
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 25 10:11:59 2008 +0000

    [in-fill] Add the implicit close-path during move-to.
    
    When interpreting a fixed-path for a fill operation, any move-to
    implicitly closes the current path.

 src/cairo-gstate.c       |   12 ++++++------
 src/cairo-path-in-fill.c |   23 +++++++++++++----------
 src/cairo.c              |   11 ++++-------
 src/cairoint.h           |    4 ++--
 4 files changed, 25 insertions(+), 25 deletions(-)

commit 59de6fb89e80ee6aeeb2984b545ceb9bb9f0f7bb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 25 10:04:50 2008 +0000

    [path] Compute approximate extents.
    
    When computing the bounds of the clip path, we care more for a fast result
    than absolute precision as the extents are only used as a guide to trim
    the future operations. So computing the extents of the path suffices.

 src/cairo-analysis-surface.c |   16 ++--------
 src/cairo-clip.c             |   29 +++----------------
 src/cairo-gstate.c           |   13 ++------
 src/cairo-path-bounds.c      |   63 ++++++++++++++++++++++++++++++++++++++---
 src/cairo-surface.c          |    8 +++--
 src/cairo.c                  |   10 ++----
 src/cairoint.h               |    8 ++++-
 7 files changed, 84 insertions(+), 63 deletions(-)

commit b6bf047494fc308fff00d818b2920d8ba4aa7aed
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 21 15:27:31 2008 +0000

    [clip] Check for error surface
    
    The update to use a NULL backend with an error surface broke creating a
    context from an error surface.

 src/cairo-clip.c |    2 +-
 src/cairo.c      |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 721cad9b24c2ad049320950d231ed84046c5b8ab
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Nov 24 22:41:03 2008 +1030

    Fix typo

 src/cairo-misc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 70e4c532722bbcad1eca50438e6ab2cdd0ea9b53
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Nov 24 22:38:30 2008 +1030

    Document location of image format specifications

 src/cairo-image-info.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

commit 4ca644af274bda4603e7d02dbeca8641bbb3ff79
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Nov 24 00:29:54 2008 +1030

    Win32-print: Add PNG embedding support

 src/cairo-win32-printing-surface.c |  106 +++++++++++++++++++++++++++---------
 src/cairo-win32-private.h          |    3 +
 2 files changed, 82 insertions(+), 27 deletions(-)

commit f59a3e03fc91dc4a1769b07bda77a364cc570bc8
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 23 22:27:49 2008 +1030

    Add PNG get info function

 src/cairo-image-info-private.h |    5 ++++
 src/cairo-image-info.c         |   46 ++++++++++++++++++++++++++++++++++-----
 2 files changed, 45 insertions(+), 6 deletions(-)

commit 1892907e24d9f9f31942c6962aaa6d2ff9553ce7
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 23 21:36:40 2008 +1030

    PDF: Disable PDF 1.5 features when version 1.4 is selected
    
    JPEG 2000 image embedding and ActualText marked content are
    PDF 1.5 features.

 src/cairo-pdf-operators-private.h |    5 +++++
 src/cairo-pdf-operators.c         |    8 ++++++++
 src/cairo-pdf-surface.c           |    7 +++++++
 3 files changed, 20 insertions(+), 0 deletions(-)

commit c4a57385fa2e69020f43519bea21b98182bf5fd7
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 23 21:12:08 2008 +1030

    PDF: Add cairo_pdf_surface_restrict_to_version API
    
    Now that we are using PDF 1.5 features, add an api to select between
    version 1.4 or 1.5.

 src/cairo-pdf-surface-private.h |    2 +
 src/cairo-pdf-surface.c         |  116 +++++++++++++++++++++++++++++++++++++--
 src/cairo-pdf.h                 |   24 ++++++++
 3 files changed, 136 insertions(+), 6 deletions(-)

commit d85e836911d661275c29f2348a047e5d911f9004
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 23 21:03:22 2008 +1030

    PDF: Add newline to end of binary streams
    
    PDF requires white space before the "endstream"

 src/cairo-pdf-surface.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit b87d81ef0bb52570385a3c9e331651cbeb87b2bb
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 23 19:29:26 2008 +1030

    Add image/jp2 to mime-data test

 test/jp2.jp2               |  Bin 0 -> 2999 bytes
 test/mime-data.c           |    7 ++++++-
 test/mime-data.pdf.ref.png |  Bin 4466 -> 6482 bytes
 test/mime-data.ps.ref.png  |  Bin 4466 -> 4554 bytes
 test/mime-data.ref.png     |  Bin 155 -> 185 bytes
 test/mime-data.svg.ref.png |  Bin 6153 -> 6264 bytes
 6 files changed, 6 insertions(+), 1 deletions(-)

commit 7fdb712cbaadc95c02f607a9f6c995f8beb01342
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 23 18:56:12 2008 +1030

    PDF: Add JPEG2000 image embedding
    
    Requires increasing the PDF version to 1.5.

 src/cairo-pdf-surface.c |   52 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 51 insertions(+), 1 deletions(-)

commit 0746efbf0718095920d9258942d32a7023d22131
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 23 18:47:13 2008 +1030

    Add JPEG2000 mimetype and image info function

 src/cairo-image-info-private.h |    4 ++
 src/cairo-image-info.c         |  100 ++++++++++++++++++++++++++++++++++++++++
 src/cairo-surface-fallback.c   |    1 +
 src/cairo.h                    |    1 +
 4 files changed, 106 insertions(+), 0 deletions(-)

commit 5de1e4de938d03406ce3364c6c1baa958f210410
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 23 18:33:58 2008 +1030

    Move cairo-jpeg-info.c to cairo-image-info.c
    
    Other image formats will be added to the same file.

 src/Makefile.sources               |    4 +-
 src/cairo-image-info-private.h     |   54 ++++++++++++++
 src/cairo-image-info.c             |  141 ++++++++++++++++++++++++++++++++++++
 src/cairo-jpeg-info-private.h      |   54 --------------
 src/cairo-jpeg-info.c              |  141 ------------------------------------
 src/cairo-pdf-surface.c            |    6 +-
 src/cairo-ps-surface.c             |    6 +-
 src/cairo-svg-surface.c            |    6 +-
 src/cairo-win32-printing-surface.c |    6 +-
 9 files changed, 209 insertions(+), 209 deletions(-)

commit 63180edf6f7cc81beda626190ca1055efa330fda
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Sun Nov 23 11:42:26 2008 +0800

    glitz: set clone_offset_{x, y} on success in clone_similar.
    
    With this fix, glitz backend passes 135 test cases and fails 66 test cases.

 src/cairo-glitz-surface.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 36c1b3e5919f119a054e425ca03f7ce810d3e7ec
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Sun Nov 23 10:27:49 2008 +0800

    glitz: fixup a stupid bug in get_image.
    
    _pixman_format_from_masks returns a boolean instead of cairo status code.
    Without this fix, get_image bails out over and over again even operations
    was completed successfully. :-(

 src/cairo-glitz-surface.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

commit c8b70aacc6b5523e2f73bebf4f61e876de1c3b3f
Author: Nicolas Bruguier <gandalfn@club-internet.fr>
Date:   Sat Nov 22 18:16:17 2008 +0800

    glitz: bring glitz backend to more or less working state.
    
    Thanks Nicolas Bruguier for writing the original patch and
    thanks Paolo Bonzini for pointing out. This patch converts 24.8
    fixed point values into 16.16 ones before passing them down to glitz.
    And I fixed a use-after-free issue in _cairo_glitz_surface_set_clip_region.
    glitz_surface_set_clip_region takes the pointer and doesn't copy the
    clip boxes, the original code frees the clip boxes immediately after
    setting clip region. Keeping the box around with the life time of clip
    region fixes the bug.

 src/cairo-glitz-surface.c |  329 ++++++++++++++++++++++-----------------------
 1 files changed, 163 insertions(+), 166 deletions(-)

commit f15b1f26becf28457e9ccf8903257a0dec25d547
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 20 23:19:19 2008 +0000

    [region] Use the caller supplied array for extracting boxes.
    
    Allow the user to pass in a pre-allocated array and use it if the number
    of boxes permits. This eliminates the frequent allocations during clipping
    by toolkits.

 src/cairo-directfb-surface.c     |    6 ++++--
 src/cairo-glitz-surface.c        |    1 +
 src/cairo-paginated-surface.c    |    3 +++
 src/cairo-region.c               |   11 ++++++-----
 src/cairo-sdl-surface.c          |    1 +
 src/cairo-surface.c              |   15 ++++++++-------
 src/cairo-win32-surface.c        |    3 ++-
 src/cairo-xcb-surface.c          |    1 +
 src/cairo-xlib-surface-private.h |    2 +-
 src/cairo-xlib-surface.c         |   13 ++++++++-----
 10 files changed, 35 insertions(+), 21 deletions(-)

commit 9d2c55c661885c06eed44e810004c2ebe07038d3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 20 21:53:34 2008 +0000

    [traps] Embed sufficient traps to accommodate a stroke rectangle
    
    Small numbers of traps are frequently generated from either a path of a
    single line, or that of a rectangle. Therefore should embed sufficient
    storage with cairo_traps_t to accommodate the stroke of a single rectangle
    (e.g. a pango unknown glyph hexbox) to avoid frequent allocations.

 src/cairoint.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit a11442154d958d5c9694eb944a715a6c689fda85
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 20 18:00:40 2008 +0000

    [cairo] Allocate glyphs on the stack for show_text().
    
    First try to use a stack buffer for the glyphs and clusters if the user
    calls cairo_show_text() - for example, as pango does to draw the unknown hex
    box.

 src/cairo.c |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

commit 9556266ffcb1c34187730af90bb847950d6db66e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 20 09:40:25 2008 +0000

    [surface] Make the error surfaces have a NULL backend.
    
    By using a NULL backend for the error surfaces, instead of a pointer to
    the image surface backend end, we save a few lookup/redirections during
    dynamic linking.

 src/cairo-surface.c |   22 ++++++----------------
 1 files changed, 6 insertions(+), 16 deletions(-)

commit cfd2c73826f5bf20624fbdf5b16fd08fbe18a914
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 20 09:36:02 2008 +0000

    [image] Trim image surface size by a few bytes
    
    Convert an infrequently accessed series of cairo_bool_t and short enums
    to a common bitfield.

 src/cairo-image-surface.c |   11 ++++++-----
 src/cairoint.h            |    7 ++++---
 2 files changed, 10 insertions(+), 8 deletions(-)

commit 1f48b36933b5ff082edf3e221563c15c3bf16b75
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 20 12:41:18 2008 +0000

    [script] Build fix for ! HAS_FT_FONT
    
    Correct the macro definition used when compiling without FreeType.

 util/cairo-script/cairo-script-operators.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

commit 0d5e533b6cc43c4ebc030140933247cf160d47cd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 17:03:13 2008 +0000

    [trace] Correctly push font-face onto the operand stack.
    
    We tried to push a reference to an undefined font-face, now we just copy
    from the operand stack.

 util/cairo-trace/trace.c |   61 +++++++++++++++++++++++++++-------------------
 1 files changed, 36 insertions(+), 25 deletions(-)

commit b426346b482e2687081433213ae107cb7b2ebe58
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 16:04:57 2008 +0000

    [trace] Construct matrices directly
    
    Avoid building a temporary array by constructing the matrix directly.

 util/cairo-trace/trace.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 727ff2bd7260f26c9390079258c43e6890ef2284
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 14:25:20 2008 +0000

    [xlib] Explicitly track whether the GC has clip_rects.
    
    Simplify the logic and remove some pessimism from the code by explicitly
    tracking when we set clip rectangles on the GC.

 src/cairo-xlib-surface-private.h |    1 +
 src/cairo-xlib-surface.c         |    6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

commit 63a86a470fb88ee876414164e7e26789c1065b82
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 14:04:01 2008 +0000

    [surface] Replay meta surfaces to a similar surface.
    
    When cloning a meta-surface, first attempt to replay it to a similar
    surface rather than a full-sized image buffer.

 src/cairo-surface.c |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

commit 7657bda0172f823fba61db4f66e0166c7619fbd2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 18 11:23:33 2007 +0000

    [perf/pythagoras_tree] Another fractal.
    
    Test lots of rectangles and recursion path construction.

 perf/Makefile.am       |    3 +-
 perf/cairo-perf.c      |    1 +
 perf/cairo-perf.h      |    1 +
 perf/pythagoras-tree.c |   86 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 90 insertions(+), 1 deletions(-)

commit abd0a2627d198eddb628bbc1f2974435a74655a2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 18 10:49:23 2007 +0000

    [perf/dragon] Add a dragon curve perf case.
    
    Inspired by http://labs.trolltech.com/blogs/2007/08/31/rasterizing-dragons/
    and http://en.wikipedia.org/wiki/Dragon_curve, add a performance test case
    to measure drawing this space-filling fractal curve.

 perf/Makefile.am  |    3 +-
 perf/cairo-perf.c |    1 +
 perf/cairo-perf.h |    1 +
 perf/dragon.c     |  166 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 170 insertions(+), 1 deletions(-)

commit 81ef772aa0bf512ec5ad8752da160117498bdb30
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 11:00:35 2008 +0000

    [xlib] Mark GC as dirty if we have an outstanding clip.
    
    Ginn Chen reported a regression with Firefox where "the whole area of web
    page is transparent until it redraws", and bisected it to the change to
    lazily clear the clip.
    
    The bug would appears to be when we have an inconsistent GC clip - i.e.
    the clip on the surface has been cleared, but we have not yet used and
    thus cleared the GC, so that we did not mark the GC as having a clip set
    when we freed it.

 src/cairo-xlib-surface.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit c41b99268dd2424d09ab12ca560d5db30b6b6faf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 11:49:04 2008 +0000

    Conditionally include byteswap.h
    
    Fixup compilation by copying the checks from cairo-wideint-private.h to
    conditionally include byteswap.h and provide fallback implementations.

 util/cairo-script/cairo-script-interpreter.c |    1 -
 util/cairo-script/cairo-script-operators.c   |    1 -
 util/cairo-script/cairo-script-private.h     |   17 +++++++++++++++++
 util/cairo-script/cairo-script-scanner.c     |    1 -
 util/cairo-trace/trace.c                     |   17 ++++++++++++++++-
 5 files changed, 33 insertions(+), 4 deletions(-)

commit 8345fedbe4d4d003c1f26a78ac7c512c04d04173
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 11:44:42 2008 +0000

    [spline] Fix compile.
    
    Do not return the result of a void function. gcc chose to not warn about
    this when removing the return parameter...

 src/cairo-spline.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit b6c371a47f33ec10d4d6130cc15677761df2bdfd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 08:44:24 2008 +0000

    [pattern] Cosmetic.
    
    surface is equal to pattern->surface at this point.

 src/cairo-pattern.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7894abbe6d43b10ab2a92d99bdd6a08878e9022c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 19 08:37:26 2008 +0000

    [test] Support foreground only execution.
    
    Add an option to prevent forking - which makes it difficult to
    valgrind/gdb individual tests.

 test/Makefile.am         |    1 +
 test/cairo-test-runner.c |  120 +++++++++++++++++++++++++---------------------
 2 files changed, 67 insertions(+), 54 deletions(-)

commit 645df0c6d2a3d9999bb18ddb8bb9995b3d597554
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 18 16:37:59 2008 +0000

    [scaled-font] Clean-up compiler warning.
    
    gcc warns that the status may be used uninitialized, so fix it.

 src/cairo-scaled-font-subsets.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

commit 2fdee490745a6c3a75691907aadf8ae38c57234c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 17 12:22:39 2008 +0000

    [compiler] likelihood macros
    
    Behdad prefers these to be upper-case to be consistent with G_UNLIKELY and
    friends. However, as I intend to use these for nearly all instances of
    if(status), I suggest that we keep to the short and not so loud:
        if (unlikely (status))
           return status;

 src/cairo-compiler-private.h |    8 ++++----
 src/cairo-hash.c             |    2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 97edc680c189205ac2f4e150009f1f1cbe55ba1a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 18 10:49:27 2008 +0000

    [twin] Reduce tolerance.
    
    As the glyphs are rendered to cache, ensure that they are rendered at the
    highest quality settings.

 src/cairo-font-face-twin.c |    1 +
 src/cairo.c                |    1 +
 src/cairoint.h             |    1 +
 test/Makefile.am           |    1 +
 test/twin.pdf.ref.png      |  Bin 0 -> 1673 bytes
 test/twin.ref.png          |  Bin 1673 -> 1718 bytes
 6 files changed, 4 insertions(+), 0 deletions(-)

commit e50538863a2c063eba61b36cc08eff6eeb712956
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 18 10:45:19 2008 +0000

    [twin] Tweak line width.
    
    Slightly increase line width to eliminate internal holes in the characters
    where the strokes were not quite overlapping.

 src/cairo-font-face-twin.c |    2 +-
 test/twin.c                |    2 +-
 test/twin.ps2.ref.png      |  Bin 1167 -> 1095 bytes
 test/twin.ps3.ref.png      |  Bin 1167 -> 1095 bytes
 test/twin.ref.png          |  Bin 1836 -> 1673 bytes
 test/twin.svg11.ref.png    |  Bin 1773 -> 1662 bytes
 test/twin.svg12.ref.png    |  Bin 1773 -> 1662 bytes
 7 files changed, 2 insertions(+), 2 deletions(-)

commit 91c17d33324b51a3876bc6ce778c684111139303
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 18 00:32:54 2008 +0000

    [trace] Simple unbounded cache for symbol lookups.
    
    Reparsing the dwarf info for every lookup is very slow, so cache the
    symbol lookups. This initial implementation is unbounded in the simple
    belief that the actual number of unique lookups during a program's
    lifetime should be fairly small. (Extending to a bounded MRU list is left
    as an exercise for the reader.)

 util/cairo-trace/lookup-symbol.c |   70 ++++++++++++++++++++++++++++++++-----
 util/cairo-trace/trace.c         |    9 +++--
 2 files changed, 65 insertions(+), 14 deletions(-)

commit 2839a0e800d6cc12b28da44f30a9e278ceac65aa
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 16 20:04:55 2008 +0000

    [script] Add a simple replay.
    
    A very simple replay program for trace replay.

 util/cairo-script/.gitignore   |    1 +
 util/cairo-script/Makefile.am  |    7 +++-
 util/cairo-script/csi-replay.c |   85 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 92 insertions(+), 1 deletions(-)

commit b091c5bfcad170fd563699a1c8b11e7d25d159a2
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Nov 18 00:20:38 2008 +0200

    BIBLIOGRAPHY: Cite Hars & Petruska's Pseudorandom Recursions paper.

 BIBLIOGRAPHY |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

commit 3a82f943988413e0d3fada9932bb385f4cbdb3c7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 16 18:21:52 2008 +0000

    [test] Add util/cairo-script to include path.
    
    any2ppm needs the include path for cairo-script-interpreter so that it can
    be built without an existing install.

 test/Makefile.am |    3 ++-
 test/any2ppm.c   |    3 ---
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 997fa6a7729b72b25d9275929bf190e71eed1b9d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 16 17:43:40 2008 +0000

    [configure] Remove old line for CairoScript testing.
    
    CairoScript testing should now be unconditional so remove the surplus
    message.

 build/configure.ac.features |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit a2eff7c7deb9b41c387472bb91b9a7b9c8f319f0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 16 16:19:25 2008 +0000

    [test] Add build rule for libcairo-script-interpreter.la
    
    Add a rule to build the cairo-script-interpreter on behalf of any2ppm.

 test/Makefile.am |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit bf309aab6072ee1004073e71bccdf3c8040a8ad6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Nov 15 11:36:41 2008 +0000

    [configure] Delete CAN_TEST_SCRIPT
    
    A CairoScript interpreter is built under utils and so is always available.

 configure.ac   |    3 ---
 test/any2ppm.c |    8 --------
 2 files changed, 0 insertions(+), 11 deletions(-)

commit d7873eecc598a558a2a862add8e9b056c4a23a4a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 14 17:18:47 2008 +0000

    [spline] Eliminate intermediate allocations during spline decomposition.
    
    The spline decomposition code allocates and stores points in a temporary
    buffer which is immediately consumed by the caller. If the caller supplies
    a callback that handles each point computed along the spline, then we can
    use the point immediately and avoid the allocation.

 src/cairo-bentley-ottmann.c |   12 +--
 src/cairo-path-fill.c       |   23 ++---
 src/cairo-path-fixed.c      |   27 ++---
 src/cairo-path-in-fill.c    |   21 ++--
 src/cairo-path-stroke.c     |  101 +++++++++--------
 src/cairo-pen.c             |  254 ++++++++++++++++++++++++++++---------------
 src/cairo-polygon.c         |   23 ++--
 src/cairo-spline.c          |  121 ++++-----------------
 src/cairo-types-private.h   |   13 +-
 src/cairoint.h              |   65 ++++++++---
 10 files changed, 331 insertions(+), 329 deletions(-)

commit 3bf8379408ce9b1e08d130bcd1076766e36f1bef
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 14 09:50:29 2008 +0000

    [type1] Propagate fatal NO_MEMORY erro from FreeType.
    
    If FreeType fails to load the glyph, check for a fatal error before
    falling back (and effectively masking the fatal condition).

 src/cairo-type1-subset.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

commit db9ed77d8aa4f4b4c8410e52e5bbd16ffa94ee24
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 13 20:36:14 2008 +0000

    [cairo] FLush surface on cairo_destroy()
    
    When discussing the implications of snapshot cow, one of the questions
    that we raised was what happens on cairo_destroy()? The lifetime of the
    context implicitly marks the extents of the drawing operations, typically
    the expose event (or perhaps one phase of it). Therefore at the end of the
    sequence we implicitly wish to flush the graphics events to the surface.

 src/cairo.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

commit 032be9849dfc32ec8802a4f086619755a3a397f5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 13 16:36:01 2008 +0000

    [skiplist] Inline testing.
    
    Add a loop to create a skip list to allow manual checking.

 src/Makefile.am      |    5 ++++-
 src/cairo-skiplist.c |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 1 deletions(-)

commit e44c1f26e48cfb2f74834b6a8ef8532b0bd28982
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sat Oct 18 01:15:44 2008 +0300

    Use a smaller and faster random number generator.
    
    The previous LFSR generator used a large table to be speedy.  The
    replacement generator is the single stage generator (1) from section
    5.4 of [HP2007], requires no tables or extra state.  I've run the
    generator through Rob Brown's extended Dieharder test suite and it
    passes all but one self-proclaimed buggy test (-d2) and the 2D sphere
    minimum distance test (-d12).
    
    [HP2007] Hars L. and Petruska G., ``Pseudorandom Recursions: Small and Fast Pseurodandom Number Generators for Embedded Applications'',
    Hindawi Publishing Corporation
    EURASIP Journal on Embedded Systems
    Volume 2007, Article ID 98417, 13 pages
    doi:10.1155/2007/98417
    http://www.hindawi.com/getarticle.aspx?doi=10.1155/2007/98417&e=cta

 src/cairo-skiplist.c |  200 +++-----------------------------------------------
 1 files changed, 11 insertions(+), 189 deletions(-)

commit a4c5371b5e6d0df71efc75fee6f6a8fe8c6d3488
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 13 14:56:38 2008 +0000

    [os2] Move include cairo.h before os2.h
    
    The defines need to come first, but we specify that cairo.h is the first
    header file to be included by files.

 src/cairo-os2.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 456252a1c2b00685bee18c01bf27738d6125b4f8
Merge: 3b11997 ab61544
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Nov 14 15:27:34 2008 +0100

    Merge branch '1.8'
    
    Conflicts:
    
    	NEWS
    	cairo-version.h

commit 3b11997a23baa9e38e87b584ee29f4888a5d92f7
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Nov 13 18:01:47 2008 +0200

    [cairo-script] Remove outdated #error to allow compilation to succeed.
    
    The interpreter doesn't depend on the script surface anymore.

 util/cairo-script/cairo-script-interpreter.h |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

commit cdfffc7420e005b2a7d1979feef8bd304183126c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 13 11:07:45 2008 +0000

    Add CairoScript interpreter
    
    Add a CairoScript interpreter library and use it to replay the test output
    for the CairoScript backend. The library is also used by the currently
    standalone Sphinx debugger [git://anongit.freedesktop.org/~ickle/sphinx].
    The syntax/operator semantics are not yet finalized, but are expected to
    mature before the next stable release.

 configure.ac                                 |   20 +-
 test/Makefile.am                             |    4 +-
 test/any2ppm.c                               |   43 +-
 util/Makefile.am                             |    2 +-
 util/cairo-script/COPYING                    |   17 +
 util/cairo-script/Makefile.am                |   21 +
 util/cairo-script/cairo-script-file.c        | 1018 +++++
 util/cairo-script/cairo-script-hash.c        |  448 ++
 util/cairo-script/cairo-script-interpreter.c |  473 +++
 util/cairo-script/cairo-script-interpreter.h |  104 +
 util/cairo-script/cairo-script-objects.c     |  666 +++
 util/cairo-script/cairo-script-operators.c   | 5791 ++++++++++++++++++++++++++
 util/cairo-script/cairo-script-private.h     |  853 ++++
 util/cairo-script/cairo-script-scanner.c     | 1180 ++++++
 util/cairo-script/cairo-script-stack.c       |  196 +
 15 files changed, 10802 insertions(+), 34 deletions(-)

commit a856371bef496da0e84226f4fd2fc3cb72e955ac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 10:45:34 2008 +0000

    Add CairoScript backend.
    
    A new meta-surface backend for serialising drawing operations to a
    CairoScript file. The principal use (as currently envisaged) is to provide
    a round-trip testing mechanism for CairoScript - i.e. we can generate
    script files for every test in the suite and check that we can replay them
    with perfect fidelity. (Obviously this does not provide complete coverage
    of CairoScript's syntax, but should give reasonable coverage over the
    operators.)

 boilerplate/Makefile.sources                   |    3 +
 boilerplate/cairo-boilerplate-script-private.h |   57 +
 boilerplate/cairo-boilerplate-script.c         |  125 ++
 boilerplate/cairo-boilerplate.c                |   16 +
 build/configure.ac.features                    |    2 +
 configure.ac                                   |   16 +
 doc/public/tmpl/cairo-surface.sgml             |    1 +
 src/Makefile.sources                           |    3 +
 src/cairo-base85-stream.c                      |    1 +
 src/cairo-cache-private.h                      |    2 +-
 src/cairo-cache.c                              |   41 +-
 src/cairo-deflate-stream.c                     |    1 +
 src/cairo-ft-font.c                            |   12 +
 src/cairo-ft-private.h                         |    3 +
 src/cairo-gstate.c                             |    3 +-
 src/cairo-output-stream-private.h              |   19 +-
 src/cairo-output-stream.c                      |   43 +-
 src/cairo-path-fixed-private.h                 |   11 +
 src/cairo-path-fixed.c                         |  164 ++
 src/cairo-pattern.c                            |  255 +++
 src/cairo-pdf-operators.c                      |    1 +
 src/cairo-ps-surface.c                         |    2 +
 src/cairo-scaled-font-private.h                |    9 +-
 src/cairo-scaled-font.c                        |    5 +
 src/cairo-script-surface.c                     | 2598 ++++++++++++++++++++++++
 src/cairo-script.h                             |   74 +
 src/cairo-types-private.h                      |    1 +
 src/cairo.h                                    |    4 +-
 src/cairoint.h                                 |   18 +
 test/Makefile.am                               |    4 +-
 test/any2ppm.c                                 |   87 +-
 test/mime-data.script.ref.png                  |  Bin 0 -> 1982 bytes
 32 files changed, 3540 insertions(+), 41 deletions(-)

commit 47a56e08501ec9375f75c15e35a68c77b313ada4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 10 16:51:52 2008 +0100

    [type1] Bind the RD procedure
    
    As the RD procedure may be called several hundred times for a full font,
    it is worth binding.

 src/cairo-type1-fallback.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 0769d39d0093ec3bff5b72ecbfcef1bae2f03be2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 13 11:13:22 2008 +0000

    Add predicate likelihood macros.
    
    Define the couple of standard macros that we can use to guide gcc
    optimisations of which code path will be most likely taken.

 src/cairo-compiler-private.h |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

commit b06c50cc54140a662adacde6336a3e7777f26ac3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 13 11:21:26 2008 +0000

    [cairoint.h] Remove unused PLT entries.
    
    Trim the slim_hidden_proto/def to match the currently used functions.

 src/cairo-pattern.c |    1 -
 src/cairo.c         |    3 ---
 src/cairoint.h      |   16 ++++++----------
 3 files changed, 6 insertions(+), 14 deletions(-)

commit 20fc2a2f92e27082a8806b9acb4b904dc84da672
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 11 11:35:14 2008 +0000

    [in-fill] Fixup boundary insideness testing
    
    Benjamin Otte noticed that the top-left vertex was now included within the
    fill extents. Having updated the test case to check the insideness
    conditions as defined by flash, fix the edge handling to match.

 src/cairo-path-in-fill.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9afad537301529a5a4b4ddf8b7e4425002ea39c7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 11 10:22:17 2008 +0000

    [test] Expand in-fill-trapezoid
    
    Test vertices and edges of a rectangle to probe 'corner-cases', using the
    insideness conditions from flash.

 test/in-fill-trapezoid.c |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

commit cebc84f367a81eedebf7ab0b6b082691923c3ef7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Nov 8 00:06:38 2008 +0000

    [hash] Separate out unique patterns of iterating over the table.
    
    Avoid unnecessary conditionals for the hotpaths by separating out the
    iteration over the elements into their distinct modes.

 src/cairo-font-face.c   |    2 +-
 src/cairo-hash.c        |  185 ++++++++++++++++++++++-------------------------
 src/cairo-scaled-font.c |   11 ++-
 3 files changed, 93 insertions(+), 105 deletions(-)

commit 5f0aa274459fa182d1f82d393224c46ce2b12785
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 13 10:45:15 2008 +0000

    [trace] Add caller line info.
    
    Use lookup_symbol() on the return address to identify the caller and emit
    useful debug info to the trace.

 util/cairo-trace/cairo-trace.in  |   27 +++++++-
 util/cairo-trace/lookup-symbol.c |   72 +++++++++-----------
 util/cairo-trace/trace.c         |  134 ++++++++++++++++++++++++++++++++++----
 3 files changed, 178 insertions(+), 55 deletions(-)

commit 4cd6b0c0b9862f398877cb23c294399b480ac8d0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 12 00:37:40 2008 +0000

    [trace] Check for an undefined pattern and use index instead.

 util/cairo-trace/trace.c |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

commit 76f249a49399744d6d936e36ca4d68ab4a1f3d3b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 11 09:12:50 2008 +0000

    [trace] Detect and report broken traces.
    
    We cannot trace the cairo-script-interpreter as that uses Cairo's private
    symbols.

 util/cairo-trace/trace.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

commit 01e2021b2b7b66e7cdb9c4b0326fd5793759848b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 10 16:15:28 2008 +0000

    [trace] Trace mark-dirty
    
    Capture the image data on mark dirty and record in the trace.

 util/cairo-trace/cairo-trace.in |    2 +-
 util/cairo-trace/trace.c        |  121 +++++++++++++++++++++++++++++++++-----
 2 files changed, 106 insertions(+), 17 deletions(-)

commit 8f3d0b55f50168f061a01eecfcb4ebecbff0e1c6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 11 09:25:24 2008 +0000

    [trace] Add unstable warning.
    
    Add warning that CairoScript is unfinished and I may radically alter the
    format/syntax/language before release.

 util/cairo-trace/trace.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 7ad2635ebe84ba7c050a7f00c5389cdc31ab1172
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 11 09:46:38 2008 +0000

    [trace] Disable stdout by default.
    
    Don't hog the terminal when we save to a trace file anyway.

 util/cairo-trace/cairo-trace.in |   48 +++++++++++++++++++++++---------------
 1 files changed, 29 insertions(+), 19 deletions(-)

commit efa9e1088cbf1b5331cc0bab3348520f3b91ae4b
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Nov 13 12:11:12 2008 +0200

    [clip] Fix uninitialised status return in _cairo_clip_intersect_mask() for empty extents.
    
    This fixes the clip-all test case crashing for me.

 src/cairo-clip.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 279a7cef349cf5aa87cdeacb9424413f51117fe8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 13 10:50:41 2008 +0100

    [os2] Fix includes
    
    Patch from Dave Yeo to make cairo-os2.h include os2.h directly so the
    header is standalone.

 src/cairo-os2-private.h |   11 -----------
 src/cairo-os2-surface.c |    5 -----
 src/cairo-os2.h         |    8 ++++++++
 3 files changed, 8 insertions(+), 16 deletions(-)

commit 0a682034a04fa7fc1407e7bc093ae01f4b385ad7
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Nov 11 13:26:09 2008 -0500

    Make the clipping implementation comment clearer
    
    When reviewing the spans changes, I reread this comment and it wasn't as clear
    as it could be.

 src/cairo-clip.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit 4fdd856569a67636aaf29bc1a76eed44418db484
Author: Peter Weilbacher <mozilla@weilbacher.org>
Date:   Tue Nov 11 15:37:09 2008 +0100

    README: adapt pixman version requirement to match configure.ac

 README |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9c0042840c70c14e3e608ac3849edf5f1ef99816
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Tue Nov 11 08:41:31 2008 -0500

    [quartz] Add the proper propagation of extents
    
    This fixes the problems introduced by d682d275b90f7326df76d2764c513c8b6d5b551b

 src/cairo-quartz-surface.c |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)

commit 57551a91168a68399add9e5c324fba03961b7747
Author: Jeff Muizelaar <jeff@infidigm.net>
Date:   Tue Nov 11 08:31:23 2008 -0500

    [quartz] Fix fallout caused by const cairo_pattern_t *
    
    794460186459981cd43ca38f3eba07e3f6bf8908 broke the quartz backend.
    Fix it by adding const to the appropriate parameters in the function
    declarations and copying the pattern when needed.

 src/cairo-quartz-surface.c |   41 ++++++++++++++++++++++++-----------------
 1 files changed, 24 insertions(+), 17 deletions(-)

commit 164069b339843837e04e2522a615f03a83b362c0
Author: Maarten Maathuis <madman2003@gmail.com>
Date:   Sat Nov 8 15:29:40 2008 +0100

    cairo-xcb: avoid leaking memory

 src/cairo-xcb-surface.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 5badcf6e370b9808374a1fa547383b236a9dcd21
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Nov 8 11:17:34 2008 +0000

    [trace] Use a string literal for the type.
    
    In order that the string is interned and so is only allocated the once.

 util/cairo-trace/trace.c |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)

commit 1d0faefbc8700833e9bde8a9c825b02b0f3cf910
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 7 22:48:21 2008 +0000

    [trace] Record the XID as a number
    
    Don't waste string constants (which get interned) for a simple number!

 util/cairo-trace/trace.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 899a159b133e22f71e2a176785c91e78838c3fee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Nov 8 11:16:03 2008 +0000

    [trace] Remove stray /source
    
    An accidental /source was pushing pushed onto the operand stack and never
    used.

 util/cairo-trace/trace.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit f1cae5c52a5ee71b7933fca702bb525d98936838
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 7 20:52:08 2008 +0000

    [ps] Trivial compile warning clenaup.
    
    Add a missing const to silence the compiler.

 src/cairo-ps-surface.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2b32c8b9e572c96ce8ba5c7d43b568f18f6da295
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 7 20:30:33 2008 +0000

    [hash] Return lookup entry.
    
    Use the return value to return the result from _cairo_hash_table_lookup()
    (as opposed to filling an output parameter on the stack) as this (a)
    results in cleaner code (no strict-alias breaking pointer casts), (b)
    produces a smaller binary and (c) is measurably faster.

 src/cairo-cache-private.h       |    5 +--
 src/cairo-cache.c               |    8 ++----
 src/cairo-cff-subset.c          |   24 ++++++++-----------
 src/cairo-font-face.c           |    9 +++----
 src/cairo-ft-font.c             |    6 ++--
 src/cairo-hash-private.h        |    7 ++---
 src/cairo-hash.c                |   24 ++++++-------------
 src/cairo-misc.c                |    7 ++---
 src/cairo-scaled-font-subsets.c |   47 +++++++++++++++++++--------------------
 src/cairo-scaled-font.c         |   18 ++++++--------
 10 files changed, 67 insertions(+), 88 deletions(-)

commit d15fb9344bf86dd52cda0b43d3dfc49397fd84ec
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Fri Nov 7 20:06:35 2008 +0000

    [hash] Set is_unique when finding an available for inserts
    
    As we obey the rule in Cairo that we only insert if we know that there is
    no existing entry in the hash table, we can therefore perform a much quicker
    search knowing that the key is unique.

 src/cairo-hash.c |   16 +++++++---------
 1 files changed, 7 insertions(+), 9 deletions(-)

commit cd2e18ddc65959a736fc7b7f6bbd3e76af0495a9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 7 18:35:39 2008 +0000

    [test] Fix-up rgb byte packing
    
    Another embarrassing, but thankfully, trivial bug.

 boilerplate/cairo-boilerplate.c |    2 ++
 test/any2ppm.c                  |   14 +++++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)

commit 2554d1759835a174b89107808d81d044c3e2e098
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 7 13:26:46 2008 +0000

    [surface] Pass a separate closure for the mime-type destroy notifier.
    
    A limitation of the current API was that the destroy notifier was called
    on the mime-data block. This prevents the user from passing in a pointer
    to a managed block, for example a mime-data block belonging to a
    ref-counted object. We can overcome this by allowing the user to specify
    the closure to be used with the destroy notifier.

 src/cairo-png.c           |    3 ++-
 src/cairo-surface.c       |    9 ++++++---
 src/cairo-types-private.h |    1 +
 src/cairo.h               |   11 ++++++-----
 test/mime-data.c          |    3 ++-
 test/pdf-mime-data.c      |    4 +++-
 util/cairo-trace/trace.c  |    6 ++++--
 7 files changed, 24 insertions(+), 13 deletions(-)

commit ff0bd64e9436026f11e85eafcd74e9a0131c8b9f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 6 01:22:39 2008 +0000

    [NEWS] Add a few notes.
    
    Help Carl with a speedy snapshot by writing a few notes about what has been
    added so far to 1.9.

 NEWS |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

commit 13627b46209f9239d10a155f2de7e53c0585e4c2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 6 01:04:52 2008 +0000

    [in-fill] Fix transposed arguments.
    
    Silly typo that escaped the test suite.

 src/cairo-path-in-fill.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9dee7af41f4f5a4c1285e9d7951148e78659c064
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 6 01:02:23 2008 +0000

    [test] Add off-centre tests to in-fill-trapezoid.
    
    Reading through the previous commit spotted that the arguments to
    edge_compare_for_y_against_x were transposed, but the test-suite had
    failed to catch detect it. This is due that in order to actually
    solve the equation we need to have a diagonal edge passing near an
    off-centre point of interest, which was not among the test cases. So add
    some off-centre tests to fully exercise the code.

 test/in-fill-trapezoid.c |   66 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 0 deletions(-)

commit f5965cb7d6559e051c2581fe446d0b9f40427eb2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 23:48:52 2008 +0000

    [in-fill] Avoid tessellation by counting number of edge crossing to -∞
    
    Benjamin Otte reports that in one particular benchmark cairo_in_fill() is
    a hotspot in the profile. Currently we tessellate the entire path and then
    search for a containing trapezoid. This is very expensive compared to the
    simple method of counting the number of edge crossing between the point of
    interest and x=-∞. For example, this speeds tessellate-256 up by almost 3
    orders of magnitude.

 src/Makefile.sources     |    1 +
 src/cairo-gstate.c       |   30 +-----
 src/cairo-path-in-fill.c |  264 ++++++++++++++++++++++++++++++++++++++++++++++
 src/cairoint.h           |    9 ++
 4 files changed, 279 insertions(+), 25 deletions(-)

commit 0ac98461597420d3dfe52e405c6b3322d32f4854
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 6 00:04:11 2008 +0000

    [test] Add WINDING variants to in-fill test
    
    Check cairo_in_fill() with some WINDING tests as well as the current
    EVEN_ODD.

 test/in-fill-trapezoid.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

commit 476d5daa9bfc5e9014d1b6572853d1d78ce6a6d9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 19:29:04 2008 +0000

    [trace] Only build if we have zlib.
    
    Use the configure check for libz and do not attempt to build the trace
    unless we have zlib.

 configure.ac |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 34564aa84a4642dceba75efdeef438be6c6896c8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 19:27:49 2008 +0000

    [test/pdf2png] Remove dependency on GdkPixbuf
    
    It's appears to be dropped from the current poppler trunk, so just use our
    own venerable cairo_surface_write_ton_png().

 configure.ac   |    2 +-
 test/pdf2png.c |   32 +++++++++++++++++++-------------
 2 files changed, 20 insertions(+), 14 deletions(-)

commit 564d64a1323c5cbcde2dd9365ac790fe8aa1c5a6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 18:47:34 2008 +0000

    [png] Complete the idempotent read_png() -> write_png()
    
    Write out the original PNG mime-data if attached to the surface during
    cairo_surface_write_to_png(). Similar to how the compressed alternate
    representations are handled by the other backends.
    
    Note: by automatically attaching and using the mime-data in preference to
    the image data, we break the read_from_png(); draw(); write_to_png()
    cycle.

 src/cairo-png.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

commit ec559822cfe6df0006ca2db2aa3a11699326865c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 18:11:36 2008 +0000

    [trace] Use the mime-type image representation
    
    When emitting image data, first check to see if we have a pre-compressed
    alternate representation.

 util/cairo-trace/trace.c |  303 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 214 insertions(+), 89 deletions(-)

commit d63267e4e7e148836dcfc4c8e2a8396ddaab70d8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 17:18:51 2008 +0000

    [test] Update mime-data to check image/png
    
    Add a "image/png" mime-type test.

 test/Makefile.am           |    1 +
 test/mime-data.c           |   67 +++++++++++++++++++++++++++++---------------
 test/mime-data.pdf.ref.png |  Bin 4345 -> 4466 bytes
 test/mime-data.ps.ref.png  |  Bin 4345 -> 4466 bytes
 test/mime-data.ref.png     |  Bin 127 -> 155 bytes
 test/mime-data.svg.ref.png |  Bin 0 -> 6153 bytes
 test/png.png               |  Bin 0 -> 2096 bytes
 7 files changed, 45 insertions(+), 23 deletions(-)

commit e4ec5c762f6d01cc5af28dc0a256e268a04101aa
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 16:44:49 2008 +0000

    [svg] Embed original PNG data.
    
    Embed the attached PNG representation of a surface in preference to
    re-encoding the surface.

 src/cairo-svg-surface.c |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

commit e40d62a0fe96b8b937017a3bc2f18766c411ec41
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 16:38:34 2008 +0000

    [png] Attach the png representation to cairo_surface_create_from_png().
    
    Attach the original png data as an alternate representation for image
    surfaces created by cairo_surface_create_from_png().

 src/cairo-output-stream-private.h |    5 ++
 src/cairo-output-stream.c         |   28 ++++++++-
 src/cairo-png.c                   |  127 +++++++++++++++++++++++--------------
 src/cairo-surface-fallback.c      |   20 +++---
 src/cairo.h                       |    1 +
 5 files changed, 122 insertions(+), 59 deletions(-)

commit 89616dee8f11c6a7de3fa476b13661420648786f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 16:41:13 2008 +0000

    [surface] Don't allocate a structure for mime_data == NULL.
    
    If the user attempts to clear the attached mime data representation, just
    clear the user data slot and do not allocate an empty structure.

 src/cairo-surface.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

commit 43cfaec39cc742ddfbf566b36391d620400e10be
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 5 11:50:20 2008 -0500

    Define RepeatNone, etc if the available Render version doesn't (#18385)

 src/cairo-xlib-xrender-private.h |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

commit 199c0e71139fe9baf83e74ea69c01629ace5f9a2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 15:12:19 2008 +0000

    [svg] Embed jpeg data.
    
    Support jpeg embedding for svg output.

 src/cairo-svg-surface.c |   50 +++++++++++++++++++++++++++++++++++++++++++---
 test/Makefile.am        |    1 +
 2 files changed, 47 insertions(+), 4 deletions(-)

commit 2261590875b4be7aa258c51e766f68974750e9e7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 15:11:32 2008 +0000

    [trace] Trim a few bytes from glyph arrays
    
    Remove some redundant whitespace from the glyph arrays to improve
    readability and shrink the output file size.

 util/cairo-trace/trace.c |   65 +++++++++++++++++++++++++++-------------------
 1 files changed, 38 insertions(+), 27 deletions(-)

commit 248dd97075b50cd91619022098ed5dd35a66b5df
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Thu Nov 6 00:17:53 2008 +1030

    win32-printing: Implement JPEG support

 src/cairo-win32-printing-surface.c |   91 ++++++++++++++++++++++++++++++++----
 src/cairo-win32-private.h          |    3 +
 2 files changed, 85 insertions(+), 9 deletions(-)

commit 29621bd3995c5269fd6f73ab501383433bd29768
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 12:16:47 2008 +0000

    [matrix] Remove stray offset from previous commit.
    
    I moved the pixel centre to xc,yc but forgot to remove it during
    compensation - as caught by the test suite.
    
    Refresh a couple of reference images that depend upon exact pixel-centre
    rounding conditions.

 src/cairo-matrix.c                      |    8 ++++----
 test/rotate-image-surface-paint.ref.png |  Bin 232 -> 190 bytes
 test/surface-pattern.pdf.ref.png        |  Bin 14776 -> 14791 bytes
 test/surface-pattern.ref.png            |  Bin 11044 -> 11100 bytes
 test/surface-pattern.svg.ref.png        |  Bin 16151 -> 16069 bytes
 5 files changed, 4 insertions(+), 4 deletions(-)

commit e811173311ebe76d47eebcf5c6c5c798f9d3ea72
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 10:59:15 2008 +0000

    [matrix] Compensate pixman_matrix in device space.
    
    We wish to reduce the visible error when converting to a pixman matrix, so
    perform the compensation in device space instead of pattern space.

 src/cairo-image-surface.c |    4 +-
 src/cairo-matrix.c        |   53 +++++++++++++++++++++++++++-----------------
 2 files changed, 34 insertions(+), 23 deletions(-)

commit c95eebc92316ad50840fab1cec6c14b6c3e50fa5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 09:56:02 2008 +0000

    [pattern] Split the translation between the matrix and [xy]_offset
    
    pixman limits the src] co-ordinates (and thus [xy]_offset] to 16bits,
    so we need to be careful how much of the translation vector to push into
    [xy]_offset. Since the range is the same for both, split the integer
    component between the matrix and the offset.
    
    test/scale-offset* now at least shows the source image, even if it is
    misplaced.

 src/cairo-pattern.c                  |    7 +++++--
 test/scale-offset-image.ps.ref.png   |  Bin 7445 -> 7289 bytes
 test/scale-offset-image.ref.png      |  Bin 10005 -> 9953 bytes
 test/scale-offset-similar.ps.ref.png |  Bin 7819 -> 7860 bytes
 test/scale-offset-similar.ref.png    |  Bin 10005 -> 9953 bytes
 5 files changed, 5 insertions(+), 2 deletions(-)

commit d1b8186fd75922e73e62ef8f2ebb011e334ebe36
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 01:16:25 2008 +0000

    [trace] Correct emission of set_font_face and set_source
    
    set_font_face was not consuming it's operand but blithely placing an
    undefined font_face onto the operand stack, whereas set_source was
    performing invalid exchanges on the stack.

 util/cairo-trace/trace.c |   36 +++++++++++++++++++++++++++---------
 1 files changed, 27 insertions(+), 9 deletions(-)

commit 4a4b10271a614ee9bf982994b8f9ec6b6102ee10
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 00:02:09 2008 +0000

    [trace] Capture foreign drawables.
    
    If we attempt to use a surface as a source before we write to it, record
    the surface contents.

 util/cairo-trace/trace.c |  102 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 93 insertions(+), 9 deletions(-)

commit 432fe1ec2792153ec2559ef52aece3fcdc9c5df4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 15:30:23 2008 +0000

    [trace] Mark filter mode as immediate.
    
    Be consistent and use "//" for the filter mode to indicate a constant.

 util/cairo-trace/trace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 68309481aa9295026e3e7e6407c793f899b5e600
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 5 08:03:01 2008 +0000

    [test] Mark targets with is_meta?
    
    Allow tests to skip targets based on whether they are a meta surface or
    not.

 boilerplate/cairo-boilerplate.c |   40 +++++++++++++++++++++++---------------
 boilerplate/cairo-boilerplate.h |    1 +
 test/cairo-test.c               |   13 +++++++++++-
 3 files changed, 37 insertions(+), 17 deletions(-)

commit 8855f9583e84ae2e6d981e21133f590bff2065ab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 20:04:02 2008 +0000

    [test] Add scale-offset-(similar|image)
    
    Add a test case for the scaling bug reported by Michel Iwaniec:
    http://lists.cairographics.org/archives/cairo/2008-November/015660.html

 test/Makefile.am                     |    6 ++
 test/scale-offset-image.c            |  142 +++++++++++++++++++++++++++++++++
 test/scale-offset-image.ps.ref.png   |  Bin 0 -> 7445 bytes
 test/scale-offset-image.ref.png      |  Bin 0 -> 10005 bytes
 test/scale-offset-similar.c          |  143 ++++++++++++++++++++++++++++++++++
 test/scale-offset-similar.ps.ref.png |  Bin 0 -> 7819 bytes
 test/scale-offset-similar.ref.png    |  Bin 0 -> 10005 bytes
 7 files changed, 291 insertions(+), 0 deletions(-)

commit aad980900314bd032468f41a3216769c66e62097
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 19:11:55 2008 +0000

    [test] Only depend on any2ppm if we build it.
    
    Do not add a dependency to any2ppm if it has been deconfigured.

 test/Makefile.am |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit 59bdeba9abd7bef15c6855d707c4cf92b623cb00
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 18:42:05 2008 +0000

    [matrix] Minimise pixman conversion error.
    
    Minimise the error of the pixman matrix about the centre of the displayed
    area rather than the origin.

 src/cairo-image-surface.c          |   25 +++++++++++++++++--------
 src/cairo-matrix.c                 |   24 ++++++++++++++----------
 src/cairo-pattern.c                |    3 ++-
 src/cairo-xlib-surface.c           |   33 +++++++++++++++++++++++----------
 src/cairoint.h                     |    4 +++-
 test/Makefile.am                   |    3 +--
 test/surface-pattern.pdf.ref.png   |  Bin 15996 -> 14776 bytes
 test/surface-pattern.ref.png       |  Bin 11439 -> 11044 bytes
 test/surface-pattern.svg.ref.png   |  Bin 0 -> 16151 bytes
 test/surface-pattern.svg11.ref.png |  Bin 17663 -> 0 bytes
 test/surface-pattern.svg12.ref.png |  Bin 17663 -> 0 bytes
 11 files changed, 60 insertions(+), 32 deletions(-)

commit 068d465bb3541cc0ffc3cb9daa0848365c0a6a24
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 14:57:21 2008 +0000

    [trace] Fix emission of cairo_scaled_font_create()
    
    In the case where the font face was no longer on the operand stack, the
    font face would not have been passed to cairo_scaled_font_create().

 util/cairo-trace/trace.c |   27 +++++++++++++--------------
 1 files changed, 13 insertions(+), 14 deletions(-)

commit a3d56c60e85176526d6cce139441b6921acc9218
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 14:06:02 2008 +0000

    [trace] Use a common directory by default.
    
    If called directly (e.g. via /etc/ld.so.preload) put the output trace into
    a central directory, and not the pwd.

 util/cairo-trace/Makefile.am |   10 ++++++++--
 util/cairo-trace/trace.c     |    8 ++++++--
 2 files changed, 14 insertions(+), 4 deletions(-)

commit 3f7a21c5c93d8648ded097757852df44fc9fcaeb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 13:46:10 2008 +0000

    [test] Add jpeg.jpg to EXTRA_DIST
    
    Forgot to add the new file to the distribution with the previous commit.

 test/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 9900a2adf3e43e752bd421f00e81873b41db4c30
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 13:41:02 2008 +0000

    [test] Update mime-data jpeg reference data.
    
    <adrianj> ickle_: If we are going to use a different image for jpeg in
    mime-data maybe we could create a jpg that contains the text "jpeg". That
    way when support for the other image formats is added the mime-data test
    could have one image for each type with each image and it is easy to see
    that each image is the correct one.

 test/jpeg.jpg              |  Bin 0 -> 2316 bytes
 test/mime-data.c           |    6 +++---
 test/mime-data.pdf.ref.png |  Bin 96 -> 4345 bytes
 test/mime-data.ps.ref.png  |  Bin 368 -> 4345 bytes
 test/mime-data.ref.png     |  Bin 263 -> 127 bytes
 5 files changed, 3 insertions(+), 3 deletions(-)

commit c13a09ddb411287224c15728b14f23fef472f7d0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 13:00:36 2008 +0000

    [test] Use a different jpeg image for mime-data
    
    Detect when we successfully encode the JPEG data from the mime-type by
    using a completely image.

 test/Makefile.am           |    3 +++
 test/mime-data.c           |    6 +++++-
 test/mime-data.pdf.ref.png |  Bin 0 -> 96 bytes
 test/mime-data.ps.ref.png  |  Bin 0 -> 368 bytes
 test/scarab.jpg            |  Bin 0 -> 9650 bytes
 5 files changed, 8 insertions(+), 1 deletions(-)

commit 8407470409ad9cb93263a1c2da7dd7446d3f897e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 12:45:47 2008 +0000

    [test] Adapt pdf-mime-data for non-srcdir build.
    
    Need to look for reference/input images from srcdir as well.

 test/Makefile.am     |    2 +-
 test/pdf-mime-data.c |   44 ++++++++++++++++++++++++++++++++------------
 2 files changed, 33 insertions(+), 13 deletions(-)

commit 8007618837c0292b6ebc6a4f954c5049d4e99d8a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 12:31:10 2008 +0000

    [test] Fix compilation of imagediff.
    
    imagediff broke once again.

 test/Makefile.am |    3 ++-
 test/imagediff.c |   17 +++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletions(-)

commit 282d7744275f623ce550638df953ef279d2209f0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 12:53:15 2008 +0000

    [mime-type] Request the mime-data for the source surface, not ourselves!
    
    Fixup a typo I introduced that caused us to request the jpeg data for the
    destination surface and not the source.

 src/cairo-pdf-surface.c |    2 +-
 src/cairo-ps-surface.c  |    5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)

commit aa616abc9ab02e333cf0cad4f524b15c710bf449
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 11:18:22 2008 +0000

    [png] Use RGB for opaque images.
    
    If the ARGB32 is opaque, discard the alpha channel - so we should generate
    byte identical output to the reference images.

 src/cairo-png.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

commit 30976635d7072c06d00e39b106e41be7b08c6c49
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Nov 4 22:52:45 2008 +1030

    PS: Implement JPEG embedding

 src/cairo-ps-surface.c |  104 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 101 insertions(+), 3 deletions(-)

commit 73bc278c7a4630cd9299c974771ffd6e9245d0ac
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Nov 4 22:25:26 2008 +1030

    Add pdf mime data test
    
    To test that images in PDF files correctly embedded the mime data.

 test/Makefile.am     |    2 +
 test/pdf-mime-data.c |  151 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 153 insertions(+), 0 deletions(-)

commit 3f18d38fbdc661d34e0fd951e0fd3aa1aa2cbcc9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 10:31:48 2008 +0000

    [win32] Compile fix for extend-pad extents.
    
    Update the show_glyphs() prototype to include the extents argument.

 src/cairo-win32-printing-surface.c |    3 ++-
 src/cairo-win32-private.h          |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 5ba95b7e1287ade0b8a1acf2f5cb73fa1f44c451
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 09:22:28 2008 +0000

    [trace] Convert [1 0 0 1 0 0] to identity
    
    Simplify the trace/replay by replacing the identity array with the
    identity operator.

 util/cairo-trace/trace.c |   34 +++++++++++++++++++++++++---------
 1 files changed, 25 insertions(+), 9 deletions(-)

commit 3664b32195b101ebab9a5f9087095306f8969c80
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 10:38:41 2008 +0000

    [trace] Remove more @..@ from Makefile.am
    
    Use $(..) for make variable substitution as opposed to incorrectly using
    @..@ for substitution by configure.

 util/cairo-trace/Makefile.am |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 310026ab42c2078e2749c886c74c5b38cab41671
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 4 01:51:06 2008 -0500

    [aclocal.dolt.m4] Fix build with bash versions <= 3.0 (bug #18363)

 build/aclocal.dolt.m4 |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 90217550120f129004bc555b59ced28b4b25a4d4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 23:45:12 2008 +0000

    [mime-data] Copy a reference to the mime-data on snapshotting.
    
    Instead of doing a full-copy of the mime data (which can be 10K-100K,
    or even larger) just copy a reference to the original mime to the
    snapshot surface (as suggested by Behdad).

 src/cairo-surface-fallback.c |   29 +++-------------
 src/cairo-surface.c          |   79 +++++++++++++++++++++++++++++-------------
 src/cairo-types-private.h    |    2 +
 src/cairoint.h               |    5 +++
 4 files changed, 67 insertions(+), 48 deletions(-)

commit 4f032ca35a7086b76775e4b53c6b99ba4e1eb3cb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 23:23:09 2008 +0000

    [trace] Install cairo-trace.so into $(libdir)/cairo
    
    Install the auxiliary library into the cairo subdirectory within the
    lib path, so that it doesn't clutter $(libdir) and sets a precedent for
    future auxiliary libraries.

 util/cairo-trace/Makefile.am    |    7 ++++---
 util/cairo-trace/cairo-trace.in |   13 ++++++++++---
 2 files changed, 14 insertions(+), 6 deletions(-)

commit c80a1c68c19f876c9f55b7c6d62b18ae110b11d0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 23:16:09 2008 +0000

    [configure] Make trace consistent.
    
    Remove the debianism from the comments for HAVE_BFD and comply with
    Behdad's guidelines on using  $(...) within Makefile.am.

 configure.ac                 |    5 ++---
 util/cairo-trace/Makefile.am |    6 +++---
 2 files changed, 5 insertions(+), 6 deletions(-)

commit 43e2370b024f66d995c514fd53414d3d8588a481
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 14:20:35 2008 +0000

    [test] Update extend-pad.
    
    extend-pad was not a clear demonstration of the EXTEND_PAD mode, so revamp
    it to show the filter extending a 4 pixel surface to cover the entire
    output. However, this hides a discrepancy with the vector surfaces that we
    cannot prevent the external renders from applying an interpolation to the
    border pixels, so we copy the original test to extend-pad-border to check
    the desired behaviour on boundary pixels.

 test/Makefile.am                |    4 ++
 test/extend-pad-border.c        |   95 +++++++++++++++++++++++++++++++++++++++
 test/extend-pad-border.ref.png  |  Bin 0 -> 616 bytes
 test/extend-pad-similar.c       |   82 +++++++++++++++++++++++++++++++++
 test/extend-pad-similar.ref.png |  Bin 0 -> 315 bytes
 test/extend-pad.c               |   50 ++++++++-------------
 test/extend-pad.ref.png         |  Bin 616 -> 315 bytes
 7 files changed, 200 insertions(+), 31 deletions(-)

commit b3462c5616ae24fd391ad0872d2fbb98c6cd0c92
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 13:10:42 2008 +0000

    [test] Convert a few residual '-out.*'
    
    Catch a few -out.* hiding in boilerplate.

 boilerplate/cairo-boilerplate-pdf.c            |    2 +-
 boilerplate/cairo-boilerplate-ps.c             |    2 +-
 boilerplate/cairo-boilerplate-svg.c            |    2 +-
 boilerplate/cairo-boilerplate-win32-printing.c |    2 +-
 test/Makefile.am                               |    6 +++---
 5 files changed, 7 insertions(+), 7 deletions(-)

commit 34586860ef08e6aab988ba227997dfe376f9d319
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 12:11:14 2008 +0000

    [trace] Big-endian compile fixes.
    
    A few typos.

 util/cairo-trace/trace.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit ca83df55a63eab1821dbc009f65b3b09d61f5b62
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 11:46:31 2008 +0000

    [trace] Wrap test surfaces.
    
    Wrap the test surfaces to avoid crashes whilst tracing the test suite.

 util/cairo-trace/trace.c |  116 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 108 insertions(+), 8 deletions(-)

commit 2c08f3f83b1acd168cd74b300272970658179a0f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 11:30:38 2008 +0000

    [trace] Autodetect -lbfd during configure
    
    Stop being lazy and detect libbfd during configure.

 configure.ac                     |   10 ++++++++++
 util/cairo-trace/Makefile.am     |    2 +-
 util/cairo-trace/lookup-symbol.c |    6 +++---
 3 files changed, 14 insertions(+), 4 deletions(-)

commit 8fc3d0ffebea5622332327cdef9222486cc85581
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 11:01:22 2008 +0000

    [mime-data] Allow embedding of arbitrary mime-types.
    
    Use the surface user-data array allow to store an arbitrary set of
    alternate image representations keyed by an interned string (which
    ensures that it has a unique key in the user-visible namespace).
    
    Update the API to mirror that of cairo_surface_set_user_data() [i.e.
    return a status indicator] and switch internal users of the mime-data to
    the public functions.

 src/cairo-debug.c              |    2 +
 src/cairo-jpeg-info-private.h  |    6 +-
 src/cairo-jpeg-info.c          |   19 +++----
 src/cairo-misc.c               |   98 +++++++++++++++++++++++++++++++++++
 src/cairo-mutex-list-private.h |    1 +
 src/cairo-pdf-surface.c        |   16 +++---
 src/cairo-surface-fallback.c   |   37 +++++++++----
 src/cairo-surface-private.h    |    4 --
 src/cairo-surface.c            |   91 ++++++++++++++++++++++++++-------
 src/cairo-types-private.h      |    7 +++
 src/cairo.h                    |    4 +-
 src/cairoint.h                 |    8 +++
 test/Makefile.am               |    3 +
 test/mime-data.c               |  111 ++++++++++++++++++++++++++++++++++++++++
 test/mime-data.ref.png         |  Bin 0 -> 263 bytes
 test/romedalen.jpg             |  Bin 0 -> 11400 bytes
 util/cairo-trace/trace.c       |    2 +-
 17 files changed, 351 insertions(+), 58 deletions(-)

commit afef83a1fae028b45cefd6b4698e7b32ad4d6fc7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 3 09:40:35 2008 +0000

    Compile tidy.
    
    Fix a few minor compiler warnings.

 src/cairo-pdf-surface.c |    2 +-
 src/cairo-ps-surface.c  |    2 +-
 src/cairo-surface.c     |    6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

commit f77723fc88c12ebf6f5bff5a1797649d134ecc5d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 2 19:59:53 2008 +0000

    [pdf] Missing status check.
    
    Check that stream was successfully opened before attempting to write to
    it.

 src/cairo-pdf-surface.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 04e3bb932eeac4f403b512087b96a164d082d52c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 2 21:51:37 2008 +0000

    [trace] Emit set_mime_data().
    
    Wrap the new cairo_surface_set_mime_data() function.

 util/cairo-trace/trace.c |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

commit 350fa7b98e5045a4fa05f64a1ad7d8167036be34
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Nov 1 13:12:43 2008 +0000

    [trace] Fix boundary terminations
    
    Don't increment the terminator!

 util/cairo-trace/trace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f3cbc5cf4580da83b7edacfd381afee3d571c659
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 23:47:16 2008 +0000

    [trace] Use utf8 len in show_text_glyphs().
    
    Honour the parameter specifying the length of the utf8 string when
    emitting show_text_glyphs.

 util/cairo-trace/trace.c |   36 ++++++++++++++++++++----------------
 1 files changed, 20 insertions(+), 16 deletions(-)

commit 1685bbee1bf1ebc015ada94f77756d8d10c7818d
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 2 19:50:59 2008 +1030

    test/README: fix typo

 test/README |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 540ac11113015f0fd6856d016cb38fec5282b6ce
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 2 11:42:33 2008 +1030

    type1-subset: return unsupported on FT errors
    
    and let type1-fallback handle it. This fixes the bug reported by
    Peter Weilbacher in
    http://lists.cairographics.org/archives/cairo/2008-October/015569.html

 src/cairo-type1-subset.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

commit 3707178fa48e23b85c5640f3cee72e19f49c700b
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Sep 8 10:26:58 2008 +0930

    PDF: Implement JPEG image embedding

 src/Makefile.sources          |    2 +
 src/cairo-jpeg-info-private.h |   54 ++++++++++++++++
 src/cairo-jpeg-info.c         |  142 +++++++++++++++++++++++++++++++++++++++++
 src/cairo-pdf-surface.c       |   55 ++++++++++++++++
 4 files changed, 253 insertions(+), 0 deletions(-)

commit 3c684347f49a581bfba35202ec61a5f6334acd4a
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Sep 7 20:46:20 2008 +0930

    Add cairo_surface_set_mime_data()
    
    Currently only handles jpeg data.

 src/cairo-surface-fallback.c |   15 +++++++++
 src/cairo-surface-private.h  |    4 ++
 src/cairo-surface.c          |   67 ++++++++++++++++++++++++++++++++++++++++++
 src/cairo.h                  |   15 +++++++++
 4 files changed, 101 insertions(+), 0 deletions(-)

commit a39a4f52ac4a057f579e881a9a929029bcc514d1
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Oct 1 21:02:26 2008 +0930

    PS: meta-surface patterns with EXTEND_PAD are unsupported
    
    We have to use fallback images for this.

 src/cairo-ps-surface.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

commit 19ee13ca2b5b1e08a7fc965516be514d2fe40232
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Oct 1 21:01:17 2008 +0930

    PS: Implement EXTEND_PAD for image patterns
    
    Images with EXTEND_PAD are painted into a new image the size of the
    operation extents. The new image is then embedded in the PS file with
    the pattern matrix adjusted to ensure the image origin is in the
    correct location.

 src/cairo-ps-surface-private.h |    1 +
 src/cairo-ps-surface.c         |   99 +++++++++++++++++++++++++++++++++-------
 2 files changed, 83 insertions(+), 17 deletions(-)

commit e639b536711c07bc09355205f476ab3f73012268
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Oct 1 21:00:30 2008 +0930

    PDF: meta-surface patterns with EXTEND_PAD are unsupported
    
    We have to use fallback images for this.

 src/cairo-pdf-surface.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

commit 6c92edd9a3b0c79857cfa8dee482efa56f40c714
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Oct 1 20:56:49 2008 +0930

    PDF: Implement EXTEND_PAD for image patterns
    
    Images with EXTEND_PAD are painted into a new image the size of the
    operation extents. The new image is then embedded in the PDF file with
    the pattern matrix adjusted to ensure the image origin is in the
    correct location.

 src/cairo-pdf-surface.c |   70 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 62 insertions(+), 8 deletions(-)

commit d146cb4056ab54cf85454a6fe9d36282ca7a3f2e
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Oct 1 20:56:01 2008 +0930

    PDF: Store the operation extents in each pattern
    
    The extents will be used by EXTEND_PAD patterns as well as any other
    pattern that can benefit from knowing the extents of the operation it
    will be used with.

 src/cairo-pdf-surface-private.h |    1 +
 src/cairo-pdf-surface.c         |   30 ++++++++++++++++++++++++------
 2 files changed, 25 insertions(+), 6 deletions(-)

commit fb7cfdd94d4e436e066d884f6dc294efd896b344
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Oct 1 20:52:08 2008 +0930

    Make meta-surface store and replay extents of each operation
    
    To be able to provide the extents of each operation to the backend
    during the render phase the meta-surface needs to store the extents
    computed by the analysis surface during the analysis phase.
    
    The extents argument is either a pointer to the extents of the operation
    stored in the meta-surface or NULL. During analysis the analysis surface
    writes the extents to the meta-surface. During the render phase the extents
    is made available to paginated surface backends.

 src/cairo-analysis-surface.c     |   12 ++++++++++++
 src/cairo-meta-surface-private.h |    1 +
 src/cairo-meta-surface.c         |   33 +++++++++++++++++++++++++++------
 3 files changed, 40 insertions(+), 6 deletions(-)

commit d682d275b90f7326df76d2764c513c8b6d5b551b
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Oct 1 20:50:53 2008 +0930

    Add an extents argument to the high level surface backend functions
    
    Add a "cairo_rectangle_int_t *extents" argument to to the following
    backend functions:
      paint
      mask,
      stroke
      fill
      show_glyphs
      show_text_glyphs
    
    This will be used to pass the extents of each operation computed by
    the analysis surface to the backend. This is required for implementing
    EXTEND_PAD.

 src/cairo-analysis-surface.c       |   49 ++++++++++++++++++++++--------------
 src/cairo-directfb-surface.c       |    3 +-
 src/cairo-gstate.c                 |   12 ++++----
 src/cairo-meta-surface.c           |   27 +++++++++++--------
 src/cairo-paginated-surface.c      |   27 +++++++++++--------
 src/cairo-pdf-surface.c            |   18 +++++++++----
 src/cairo-ps-surface.c             |   12 ++++++---
 src/cairo-quartz-surface.c         |   15 +++++++---
 src/cairo-surface.c                |   45 +++++++++++++++++++--------------
 src/cairo-svg-surface.c            |   24 +++++++++++------
 src/cairo-type3-glyph-surface.c    |   17 ++++++++----
 src/cairo-win32-printing-surface.c |   12 ++++++---
 src/cairo-win32-surface.c          |    3 +-
 src/cairo-xlib-surface.c           |    8 +++--
 src/cairoint.h                     |   39 +++++++++++++++++++---------
 src/test-meta-surface.c            |   25 +++++++++++-------
 src/test-paginated-surface.c       |   25 +++++++++++-------
 17 files changed, 223 insertions(+), 138 deletions(-)

commit ed2081d97401741db10b0244eaba7ff31ae63346
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 2 15:05:07 2008 +1030

    Specify a background color for XFAIL text
    
    To improve readability on terminals with a white background.

 test/cairo-test.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 81c3009c077ddab40df052bffaa646526e2b8dfc
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Oct 31 16:45:58 2008 -0400

    [boilerplate/Makefile.win32] Only build source files, not headers

 boilerplate/Makefile.win32 |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit d5f88c28021907ad761a1bf1c311bfd206db617e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Oct 31 13:43:37 2008 -0400

    [.gitignore] Add

 util/cairo-trace/.gitignore |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 49bd253fd36dc93219a5414c6e7a6daeaa9c63b9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 16:40:49 2008 +0000

    [tessellator] Refine the math comments.
    
    First of a simple substitution for -?-, as they are very confusing in
    context with other minus signs floating around.
    
    Carl has promised to go over these docs with me at the HackFest in order
    to improve them (and verify them).

 src/cairo-bentley-ottmann.c |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

commit ab8a0bfd82f8f474714d7aae4ceff4e7848c9b4b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 16:09:13 2008 +0000

    Add a COPYING file to each aux. source directory
    
    Include a COPYING inside perf/, test/, util/ to clarify the licensing
    conditions beneath the respective directories. This is because cairo
    itself (libcairo.so) is LGPL-2.1/MPL-1.1 but that only relates to src/.
    The auxiliary source files are under a mix of free licenses and we wish to
    be clear just what license applies to each file.
    
    In particular, cairo-trace needs to include the GPL terms and conditions.

 COPYING                        |   17 +-
 perf/COPYING                   |    5 +
 perf/Makefile.am               |    2 +-
 test/COPYING                   |    5 +
 test/Makefile.am               |    2 +-
 util/COPYING                   |    4 +
 util/Makefile.am               |    1 +
 util/cairo-trace/COPYING       |    5 +
 util/cairo-trace/COPYING-GPL-3 |  674 ++++++++++++++++++++++++++++++++++++++++
 util/cairo-trace/Makefile.am   |    5 +-
 10 files changed, 709 insertions(+), 11 deletions(-)

commit c554f18d78fff71aff2d79309b19155de407363d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 15:37:58 2008 +0000

    [util] Add cairo-trace.
    
    This tool can be used to trace all the cairo function calls made by an
    applications.  This is useful for either extracting a test case triggering
    a bug from an application, or simply to get a general idea of how an
    application is using cairo.
    
    After make install, cairo-trace program arguments, will print out all the
    cairo calls to the terminal and also capture theme in ./program.$pid.trace
    
    The format of the output is CairoScript, watch this space for more
    cairo-script tools!

 build/configure.ac.system        |    2 +
 configure.ac                     |   17 +
 util/Makefile.am                 |    6 +
 util/README                      |    8 -
 util/cairo-trace/Makefile.am     |   21 +
 util/cairo-trace/cairo-trace.in  |   58 +
 util/cairo-trace/lookup-symbol.c |  290 ++++
 util/cairo-trace/lookup-symbol.h |   24 +
 util/cairo-trace/trace.c         | 3345 ++++++++++++++++++++++++++++++++++++++
 9 files changed, 3763 insertions(+), 8 deletions(-)

commit 992f74d884c9ea83f7b51c6959dd93718027b99a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 13:50:55 2008 +0000

    [test] Use '.' as the field separator in the names
    
    We frequently use '-' within the test name or format name and so we
    encounter confusion as '-' is also used as the field separator. At times
    this has caused a new test to break an old test because the new test would
    match one of the old test's target specific reference images. So switch
    everything over to use '.' between fields (test name, target, format,
    subtest, etc.).

 test/.gitignore                                    |    8 +-
 test/Makefile.am                                   | 1402 ++++++++++----------
 test/a1-image-sample-ref.png                       |  Bin 148 -> 0 bytes
 test/a1-image-sample.ref.png                       |  Bin 0 -> 148 bytes
 test/a1-mask-ref.png                               |  Bin 131 -> 0 bytes
 test/a1-mask.ref.png                               |  Bin 0 -> 131 bytes
 test/a1-traps-sample-ref.png                       |  Bin 148 -> 0 bytes
 test/a1-traps-sample.ref.png                       |  Bin 0 -> 148 bytes
 test/a8-mask-ref.png                               |  Bin 128 -> 0 bytes
 test/a8-mask.ref.png                               |  Bin 0 -> 128 bytes
 test/alpha-similar-ref.png                         |  Bin 99 -> 0 bytes
 test/alpha-similar-rgb24-ref.png                   |  Bin 99 -> 0 bytes
 test/alpha-similar.ref.png                         |  Bin 0 -> 99 bytes
 test/alpha-similar.rgb24.ref.png                   |  Bin 0 -> 99 bytes
 test/big-line-ps2-ref.png                          |  Bin 1148 -> 0 bytes
 test/big-line-ps2-rgb24-ref.png                    |  Bin 830 -> 0 bytes
 test/big-line-ps3-ref.png                          |  Bin 1148 -> 0 bytes
 test/big-line-ps3-rgb24-ref.png                    |  Bin 830 -> 0 bytes
 test/big-line-quartz-ref.png                       |  Bin 1075 -> 0 bytes
 test/big-line-quartz-rgb24-ref.png                 |  Bin 941 -> 0 bytes
 test/big-line-ref.png                              |  Bin 1486 -> 0 bytes
 test/big-line-rgb24-ref.png                        |  Bin 1308 -> 0 bytes
 test/big-line.ps2.ref.png                          |  Bin 0 -> 1148 bytes
 test/big-line.ps2.rgb24.ref.png                    |  Bin 0 -> 830 bytes
 test/big-line.ps3.ref.png                          |  Bin 0 -> 1148 bytes
 test/big-line.ps3.rgb24.ref.png                    |  Bin 0 -> 830 bytes
 test/big-line.quartz.ref.png                       |  Bin 0 -> 1075 bytes
 test/big-line.quartz.rgb24.ref.png                 |  Bin 0 -> 941 bytes
 test/big-line.ref.png                              |  Bin 0 -> 1486 bytes
 test/big-line.rgb24.ref.png                        |  Bin 0 -> 1308 bytes
 test/bilevel-image-ref.png                         |  Bin 131 -> 0 bytes
 test/bilevel-image.ref.png                         |  Bin 0 -> 131 bytes
 test/bitmap-font-ref.png                           |  Bin 950 -> 0 bytes
 test/bitmap-font-rgb24-ref.png                     |  Bin 890 -> 0 bytes
 test/bitmap-font.ref.png                           |  Bin 0 -> 950 bytes
 test/bitmap-font.rgb24.ref.png                     |  Bin 0 -> 890 bytes
 test/cairo-test.c                                  |   68 +-
 test/cairo-test.h                                  |    1 +
 test/caps-joins-alpha-quartz-ref.png               |  Bin 2466 -> 0 bytes
 test/caps-joins-alpha-ref.png                      |  Bin 2463 -> 0 bytes
 test/caps-joins-alpha-svg11-ref.png                |  Bin 2454 -> 0 bytes
 test/caps-joins-alpha-svg12-ref.png                |  Bin 2454 -> 0 bytes
 test/caps-joins-alpha.quartz.ref.png               |  Bin 0 -> 2466 bytes
 test/caps-joins-alpha.ref.png                      |  Bin 0 -> 2463 bytes
 test/caps-joins-alpha.svg11.ref.png                |  Bin 0 -> 2454 bytes
 test/caps-joins-alpha.svg12.ref.png                |  Bin 0 -> 2454 bytes
 test/caps-joins-ps2-ref.png                        |  Bin 1459 -> 0 bytes
 test/caps-joins-ps3-ref.png                        |  Bin 1459 -> 0 bytes
 test/caps-joins-ref.png                            |  Bin 1488 -> 0 bytes
 test/caps-joins.ps2.ref.png                        |  Bin 0 -> 1459 bytes
 test/caps-joins.ps3.ref.png                        |  Bin 0 -> 1459 bytes
 test/caps-joins.ref.png                            |  Bin 0 -> 1488 bytes
 test/caps-sub-paths-ref.png                        |  Bin 197 -> 0 bytes
 test/caps-sub-paths.ref.png                        |  Bin 0 -> 197 bytes
 test/clip-all-ref.png                              |  Bin 118 -> 0 bytes
 test/clip-all.ref.png                              |  Bin 0 -> 118 bytes
 test/clip-empty-ref.png                            |  Bin 118 -> 0 bytes
 test/clip-empty.ref.png                            |  Bin 0 -> 118 bytes
 test/clip-fill-rule-pixel-aligned-ref.png          |  Bin 195 -> 0 bytes
 test/clip-fill-rule-pixel-aligned-rgb24-ref.png    |  Bin 184 -> 0 bytes
 test/clip-fill-rule-pixel-aligned.ref.png          |  Bin 0 -> 195 bytes
 test/clip-fill-rule-pixel-aligned.rgb24.ref.png    |  Bin 0 -> 184 bytes
 test/clip-fill-rule-ps2-argb32-ref.png             |  Bin 310 -> 0 bytes
 test/clip-fill-rule-ps2-rgb24-ref.png              |  Bin 302 -> 0 bytes
 test/clip-fill-rule-ps3-argb32-ref.png             |  Bin 310 -> 0 bytes
 test/clip-fill-rule-ps3-rgb24-ref.png              |  Bin 302 -> 0 bytes
 test/clip-fill-rule-ref.png                        |  Bin 431 -> 0 bytes
 test/clip-fill-rule-rgb24-ref.png                  |  Bin 380 -> 0 bytes
 test/clip-fill-rule.ps2.argb32.ref.png             |  Bin 0 -> 310 bytes
 test/clip-fill-rule.ps2.rgb24.ref.png              |  Bin 0 -> 302 bytes
 test/clip-fill-rule.ps3.argb32.ref.png             |  Bin 0 -> 310 bytes
 test/clip-fill-rule.ps3.rgb24.ref.png              |  Bin 0 -> 302 bytes
 test/clip-fill-rule.ref.png                        |  Bin 0 -> 431 bytes
 test/clip-fill-rule.rgb24.ref.png                  |  Bin 0 -> 380 bytes
 test/clip-nesting-ps2-argb32-ref.png               |  Bin 651 -> 0 bytes
 test/clip-nesting-ps2-rgb24-ref.png                |  Bin 636 -> 0 bytes
 test/clip-nesting-ps3-argb32-ref.png               |  Bin 651 -> 0 bytes
 test/clip-nesting-ps3-rgb24-ref.png                |  Bin 636 -> 0 bytes
 test/clip-nesting-quartz-ref.png                   |  Bin 1067 -> 0 bytes
 test/clip-nesting-quartz-rgb24-ref.png             |  Bin 956 -> 0 bytes
 test/clip-nesting-ref.png                          |  Bin 1050 -> 0 bytes
 test/clip-nesting-rgb24-ref.png                    |  Bin 955 -> 0 bytes
 test/clip-nesting.ps2.argb32.ref.png               |  Bin 0 -> 651 bytes
 test/clip-nesting.ps2.rgb24.ref.png                |  Bin 0 -> 636 bytes
 test/clip-nesting.ps3.argb32.ref.png               |  Bin 0 -> 651 bytes
 test/clip-nesting.ps3.rgb24.ref.png                |  Bin 0 -> 636 bytes
 test/clip-nesting.quartz.ref.png                   |  Bin 0 -> 1067 bytes
 test/clip-nesting.quartz.rgb24.ref.png             |  Bin 0 -> 956 bytes
 test/clip-nesting.ref.png                          |  Bin 0 -> 1050 bytes
 test/clip-nesting.rgb24.ref.png                    |  Bin 0 -> 955 bytes
 test/clip-operator-pdf-argb32-ref.png              |  Bin 12125 -> 0 bytes
 test/clip-operator-pdf-rgb24-ref.png               |  Bin 7367 -> 0 bytes
 test/clip-operator-ps2-rgb24-ref.png               |  Bin 3624 -> 0 bytes
 test/clip-operator-ps3-ref.png                     |  Bin 8188 -> 0 bytes
 test/clip-operator-ps3-rgb24-ref.png               |  Bin 3624 -> 0 bytes
 test/clip-operator-quartz-ref.png                  |  Bin 9539 -> 0 bytes
 test/clip-operator-quartz-rgb24-ref.png            |  Bin 4412 -> 0 bytes
 test/clip-operator-ref.png                         |  Bin 8271 -> 0 bytes
 test/clip-operator-rgb24-ref.png                   |  Bin 3258 -> 0 bytes
 test/clip-operator.pdf.argb32.ref.png              |  Bin 0 -> 12125 bytes
 test/clip-operator.pdf.rgb24.ref.png               |  Bin 0 -> 7367 bytes
 test/clip-operator.ps2.rgb24.ref.png               |  Bin 0 -> 3624 bytes
 test/clip-operator.ps3.ref.png                     |  Bin 0 -> 8188 bytes
 test/clip-operator.ps3.rgb24.ref.png               |  Bin 0 -> 3624 bytes
 test/clip-operator.quartz.ref.png                  |  Bin 0 -> 9539 bytes
 test/clip-operator.quartz.rgb24.ref.png            |  Bin 0 -> 4412 bytes
 test/clip-operator.ref.png                         |  Bin 0 -> 8271 bytes
 test/clip-operator.rgb24.ref.png                   |  Bin 0 -> 3258 bytes
 test/clip-push-group-ps2-argb32-ref.png            |  Bin 179 -> 0 bytes
 test/clip-push-group-ps2-rgb24-ref.png             |  Bin 179 -> 0 bytes
 test/clip-push-group-ps3-argb32-ref.png            |  Bin 179 -> 0 bytes
 test/clip-push-group-ps3-rgb24-ref.png             |  Bin 179 -> 0 bytes
 test/clip-push-group-quartz-ref.png                |  Bin 203 -> 0 bytes
 test/clip-push-group-ref.png                       |  Bin 199 -> 0 bytes
 test/clip-push-group.ps2.argb32.ref.png            |  Bin 0 -> 179 bytes
 test/clip-push-group.ps2.rgb24.ref.png             |  Bin 0 -> 179 bytes
 test/clip-push-group.ps3.argb32.ref.png            |  Bin 0 -> 179 bytes
 test/clip-push-group.ps3.rgb24.ref.png             |  Bin 0 -> 179 bytes
 test/clip-push-group.quartz.ref.png                |  Bin 0 -> 203 bytes
 test/clip-push-group.ref.png                       |  Bin 0 -> 199 bytes
 test/clip-twice-ps2-argb32-ref.png                 |  Bin 575 -> 0 bytes
 test/clip-twice-ps2-rgb24-ref.png                  |  Bin 541 -> 0 bytes
 test/clip-twice-ps3-argb32-ref.png                 |  Bin 575 -> 0 bytes
 test/clip-twice-ps3-rgb24-ref.png                  |  Bin 541 -> 0 bytes
 test/clip-twice-quartz-ref.png                     |  Bin 1171 -> 0 bytes
 test/clip-twice-quartz-rgb24-ref.png               |  Bin 1111 -> 0 bytes
 test/clip-twice-ref.png                            |  Bin 1362 -> 0 bytes
 test/clip-twice-rgb24-ref.png                      |  Bin 1198 -> 0 bytes
 test/clip-twice.ps2.argb32.ref.png                 |  Bin 0 -> 575 bytes
 test/clip-twice.ps2.rgb24.ref.png                  |  Bin 0 -> 541 bytes
 test/clip-twice.ps3.argb32.ref.png                 |  Bin 0 -> 575 bytes
 test/clip-twice.ps3.rgb24.ref.png                  |  Bin 0 -> 541 bytes
 test/clip-twice.quartz.ref.png                     |  Bin 0 -> 1171 bytes
 test/clip-twice.quartz.rgb24.ref.png               |  Bin 0 -> 1111 bytes
 test/clip-twice.ref.png                            |  Bin 0 -> 1362 bytes
 test/clip-twice.rgb24.ref.png                      |  Bin 0 -> 1198 bytes
 test/clipped-group-ps2-ref.png                     |  Bin 343 -> 0 bytes
 test/clipped-group-ps3-ref.png                     |  Bin 343 -> 0 bytes
 test/clipped-group-ref.png                         |  Bin 350 -> 0 bytes
 test/clipped-group.ps2.ref.png                     |  Bin 0 -> 343 bytes
 test/clipped-group.ps3.ref.png                     |  Bin 0 -> 343 bytes
 test/clipped-group.ref.png                         |  Bin 0 -> 350 bytes
 test/clipped-surface-ref.png                       |  Bin 401 -> 0 bytes
 test/clipped-surface.ref.png                       |  Bin 0 -> 401 bytes
 test/close-path-ps2-ref.png                        |  Bin 309 -> 0 bytes
 test/close-path-ps3-ref.png                        |  Bin 309 -> 0 bytes
 test/close-path-ref.png                            |  Bin 312 -> 0 bytes
 test/close-path.ps2.ref.png                        |  Bin 0 -> 309 bytes
 test/close-path.ps3.ref.png                        |  Bin 0 -> 309 bytes
 test/close-path.ref.png                            |  Bin 0 -> 312 bytes
 test/composite-integer-translate-over-ps2-ref.png  |  Bin 15783 -> 0 bytes
 test/composite-integer-translate-over-ps3-ref.png  |  Bin 15783 -> 0 bytes
 test/composite-integer-translate-over-ref.png      |  Bin 16385 -> 0 bytes
 ...osite-integer-translate-over-repeat-ps2-ref.png |  Bin 448 -> 0 bytes
 ...osite-integer-translate-over-repeat-ps3-ref.png |  Bin 448 -> 0 bytes
 ...composite-integer-translate-over-repeat-ref.png |  Bin 401 -> 0 bytes
 ...osite-integer-translate-over-repeat.ps2.ref.png |  Bin 0 -> 448 bytes
 ...osite-integer-translate-over-repeat.ps3.ref.png |  Bin 0 -> 448 bytes
 ...composite-integer-translate-over-repeat.ref.png |  Bin 0 -> 401 bytes
 test/composite-integer-translate-over.ps2.ref.png  |  Bin 0 -> 15783 bytes
 test/composite-integer-translate-over.ps3.ref.png  |  Bin 0 -> 15783 bytes
 test/composite-integer-translate-over.ref.png      |  Bin 0 -> 16385 bytes
 .../composite-integer-translate-source-ps2-ref.png |  Bin 15783 -> 0 bytes
 .../composite-integer-translate-source-ps3-ref.png |  Bin 15783 -> 0 bytes
 test/composite-integer-translate-source-ref.png    |  Bin 16385 -> 0 bytes
 .../composite-integer-translate-source.ps2.ref.png |  Bin 0 -> 15783 bytes
 .../composite-integer-translate-source.ps3.ref.png |  Bin 0 -> 15783 bytes
 test/composite-integer-translate-source.ref.png    |  Bin 0 -> 16385 bytes
 test/copy-path-ps2-ref.png                         |  Bin 474 -> 0 bytes
 test/copy-path-ps3-ref.png                         |  Bin 474 -> 0 bytes
 test/copy-path-ref.png                             |  Bin 579 -> 0 bytes
 test/copy-path.ps2.ref.png                         |  Bin 0 -> 474 bytes
 test/copy-path.ps3.ref.png                         |  Bin 0 -> 474 bytes
 test/copy-path.ref.png                             |  Bin 0 -> 579 bytes
 test/create-for-stream.c                           |    2 +-
 test/create-from-png-alpha-ref.png                 |  Bin 150 -> 0 bytes
 test/create-from-png-gray-alpha-ref.png            |  Bin 142 -> 0 bytes
 test/create-from-png-gray-ref.png                  |  Bin 124 -> 0 bytes
 test/create-from-png-indexed-alpha-ref.png         |  Bin 172 -> 0 bytes
 test/create-from-png-indexed-ref.png               |  Bin 159 -> 0 bytes
 test/create-from-png-ref.png                       |  Bin 131 -> 0 bytes
 test/create-from-png-stream-ref.png                |  Bin 100 -> 0 bytes
 test/create-from-png-stream.c                      |    2 +-
 test/create-from-png-stream.ref.png                |  Bin 0 -> 100 bytes
 test/create-from-png.alpha.ref.png                 |  Bin 0 -> 150 bytes
 test/create-from-png.c                             |   16 +-
 test/create-from-png.gray-alpha.ref.png            |  Bin 0 -> 142 bytes
 test/create-from-png.gray.ref.png                  |  Bin 0 -> 124 bytes
 test/create-from-png.indexed-alpha.ref.png         |  Bin 0 -> 172 bytes
 test/create-from-png.indexed.ref.png               |  Bin 0 -> 159 bytes
 test/create-from-png.ref.png                       |  Bin 0 -> 131 bytes
 test/dash-caps-joins-ps2-argb32-ref.png            |  Bin 3870 -> 0 bytes
 test/dash-caps-joins-ps2-rgb24-ref.png             |  Bin 3870 -> 0 bytes
 test/dash-caps-joins-ps3-argb32-ref.png            |  Bin 3870 -> 0 bytes
 test/dash-caps-joins-ps3-rgb24-ref.png             |  Bin 3870 -> 0 bytes
 test/dash-caps-joins-quartz-ref.png                |  Bin 4727 -> 0 bytes
 test/dash-caps-joins-ref.png                       |  Bin 4718 -> 0 bytes
 test/dash-caps-joins.ps2.argb32.ref.png            |  Bin 0 -> 3870 bytes
 test/dash-caps-joins.ps2.rgb24.ref.png             |  Bin 0 -> 3870 bytes
 test/dash-caps-joins.ps3.argb32.ref.png            |  Bin 0 -> 3870 bytes
 test/dash-caps-joins.ps3.rgb24.ref.png             |  Bin 0 -> 3870 bytes
 test/dash-caps-joins.quartz.ref.png                |  Bin 0 -> 4727 bytes
 test/dash-caps-joins.ref.png                       |  Bin 0 -> 4718 bytes
 test/dash-curve-ps2-ref.png                        |  Bin 27293 -> 0 bytes
 test/dash-curve-ps3-ref.png                        |  Bin 27293 -> 0 bytes
 test/dash-curve-quartz-ref.png                     |  Bin 47965 -> 0 bytes
 test/dash-curve-ref.png                            |  Bin 39642 -> 0 bytes
 test/dash-curve.ps2.ref.png                        |  Bin 0 -> 27293 bytes
 test/dash-curve.ps3.ref.png                        |  Bin 0 -> 27293 bytes
 test/dash-curve.quartz.ref.png                     |  Bin 0 -> 47965 bytes
 test/dash-curve.ref.png                            |  Bin 0 -> 39642 bytes
 test/dash-no-dash-ref.png                          |  Bin 152 -> 0 bytes
 test/dash-no-dash.ref.png                          |  Bin 0 -> 152 bytes
 test/dash-offset-negative-ref.png                  |  Bin 171 -> 0 bytes
 test/dash-offset-negative.ref.png                  |  Bin 0 -> 171 bytes
 test/dash-scale-ps2-argb32-ref.png                 |  Bin 6318 -> 0 bytes
 test/dash-scale-ps2-rgb24-ref.png                  |  Bin 6316 -> 0 bytes
 test/dash-scale-ps3-argb32-ref.png                 |  Bin 6318 -> 0 bytes
 test/dash-scale-ps3-rgb24-ref.png                  |  Bin 6316 -> 0 bytes
 test/dash-scale-quartz-ref.png                     |  Bin 8079 -> 0 bytes
 test/dash-scale-ref.png                            |  Bin 8058 -> 0 bytes
 test/dash-scale.ps2.argb32.ref.png                 |  Bin 0 -> 6318 bytes
 test/dash-scale.ps2.rgb24.ref.png                  |  Bin 0 -> 6316 bytes
 test/dash-scale.ps3.argb32.ref.png                 |  Bin 0 -> 6318 bytes
 test/dash-scale.ps3.rgb24.ref.png                  |  Bin 0 -> 6316 bytes
 test/dash-scale.quartz.ref.png                     |  Bin 0 -> 8079 bytes
 test/dash-scale.ref.png                            |  Bin 0 -> 8058 bytes
 test/dash-state-ps2-ref.png                        |  Bin 10219 -> 0 bytes
 test/dash-state-ps3-ref.png                        |  Bin 10219 -> 0 bytes
 test/dash-state-quartz-ref.png                     |  Bin 8698 -> 0 bytes
 test/dash-state-ref.png                            |  Bin 9389 -> 0 bytes
 test/dash-state.ps2.ref.png                        |  Bin 0 -> 10219 bytes
 test/dash-state.ps3.ref.png                        |  Bin 0 -> 10219 bytes
 test/dash-state.quartz.ref.png                     |  Bin 0 -> 8698 bytes
 test/dash-state.ref.png                            |  Bin 0 -> 9389 bytes
 test/dash-zero-length-ps2-ref.png                  |  Bin 319 -> 0 bytes
 test/dash-zero-length-ps2-rgb24-ref.png            |  Bin 304 -> 0 bytes
 test/dash-zero-length-ps3-ref.png                  |  Bin 319 -> 0 bytes
 test/dash-zero-length-ps3-rgb24-ref.png            |  Bin 304 -> 0 bytes
 test/dash-zero-length-ref.png                      |  Bin 238 -> 0 bytes
 test/dash-zero-length-rgb24-ref.png                |  Bin 218 -> 0 bytes
 test/dash-zero-length.ps2.ref.png                  |  Bin 0 -> 319 bytes
 test/dash-zero-length.ps2.rgb24.ref.png            |  Bin 0 -> 304 bytes
 test/dash-zero-length.ps3.ref.png                  |  Bin 0 -> 319 bytes
 test/dash-zero-length.ps3.rgb24.ref.png            |  Bin 0 -> 304 bytes
 test/dash-zero-length.ref.png                      |  Bin 0 -> 238 bytes
 test/dash-zero-length.rgb24.ref.png                |  Bin 0 -> 218 bytes
 test/degenerate-arc-ps2-ref.png                    |  Bin 585 -> 0 bytes
 test/degenerate-arc-ps3-ref.png                    |  Bin 585 -> 0 bytes
 test/degenerate-arc-ref.png                        |  Bin 616 -> 0 bytes
 test/degenerate-arc.ps2.ref.png                    |  Bin 0 -> 585 bytes
 test/degenerate-arc.ps3.ref.png                    |  Bin 0 -> 585 bytes
 test/degenerate-arc.ref.png                        |  Bin 0 -> 616 bytes
 test/degenerate-dash-ref.png                       |  Bin 2005 -> 0 bytes
 test/degenerate-dash.ref.png                       |  Bin 0 -> 2005 bytes
 test/degenerate-path-ps2-argb32-ref.png            |  Bin 390 -> 0 bytes
 test/degenerate-path-ps2-rgb24-ref.png             |  Bin 358 -> 0 bytes
 test/degenerate-path-ps3-argb32-ref.png            |  Bin 390 -> 0 bytes
 test/degenerate-path-ps3-rgb24-ref.png             |  Bin 358 -> 0 bytes
 test/degenerate-path-quartz-ref.png                |  Bin 232 -> 0 bytes
 test/degenerate-path-quartz-rgb24-ref.png          |  Bin 198 -> 0 bytes
 test/degenerate-path-ref.png                       |  Bin 257 -> 0 bytes
 test/degenerate-path-rgb24-ref.png                 |  Bin 224 -> 0 bytes
 test/degenerate-path.ps2.argb32.ref.png            |  Bin 0 -> 390 bytes
 test/degenerate-path.ps2.rgb24.ref.png             |  Bin 0 -> 358 bytes
 test/degenerate-path.ps3.argb32.ref.png            |  Bin 0 -> 390 bytes
 test/degenerate-path.ps3.rgb24.ref.png             |  Bin 0 -> 358 bytes
 test/degenerate-path.quartz.ref.png                |  Bin 0 -> 232 bytes
 test/degenerate-path.quartz.rgb24.ref.png          |  Bin 0 -> 198 bytes
 test/degenerate-path.ref.png                       |  Bin 0 -> 257 bytes
 test/degenerate-path.rgb24.ref.png                 |  Bin 0 -> 224 bytes
 test/degenerate-pen-ps2-ref.png                    |  Bin 865 -> 0 bytes
 test/degenerate-pen-ps3-ref.png                    |  Bin 865 -> 0 bytes
 test/degenerate-pen-quartz-ref.png                 |  Bin 1144 -> 0 bytes
 test/degenerate-pen-ref.png                        |  Bin 1139 -> 0 bytes
 test/degenerate-pen.ps2.ref.png                    |  Bin 0 -> 865 bytes
 test/degenerate-pen.ps3.ref.png                    |  Bin 0 -> 865 bytes
 test/degenerate-pen.quartz.ref.png                 |  Bin 0 -> 1144 bytes
 test/degenerate-pen.ref.png                        |  Bin 0 -> 1139 bytes
 test/device-offset-fractional-pdf-ref.png          |  Bin 277 -> 0 bytes
 test/device-offset-fractional-ps2-ref.png          |  Bin 200 -> 0 bytes
 test/device-offset-fractional-ps3-ref.png          |  Bin 200 -> 0 bytes
 test/device-offset-fractional-ref.png              |  Bin 269 -> 0 bytes
 test/device-offset-fractional.pdf.ref.png          |  Bin 0 -> 277 bytes
 test/device-offset-fractional.ps2.ref.png          |  Bin 0 -> 200 bytes
 test/device-offset-fractional.ps3.ref.png          |  Bin 0 -> 200 bytes
 test/device-offset-fractional.ref.png              |  Bin 0 -> 269 bytes
 test/device-offset-positive-ref.png                |  Bin 139 -> 0 bytes
 test/device-offset-positive-rgb24-ref.png          |  Bin 130 -> 0 bytes
 test/device-offset-positive.ref.png                |  Bin 0 -> 139 bytes
 test/device-offset-positive.rgb24.ref.png          |  Bin 0 -> 130 bytes
 test/device-offset-ref.png                         |  Bin 137 -> 0 bytes
 test/device-offset-rgb24-ref.png                   |  Bin 130 -> 0 bytes
 test/device-offset-scale-ref.png                   |  Bin 145 -> 0 bytes
 test/device-offset-scale.ref.png                   |  Bin 0 -> 145 bytes
 test/device-offset.ref.png                         |  Bin 0 -> 137 bytes
 test/device-offset.rgb24.ref.png                   |  Bin 0 -> 130 bytes
 test/extend-pad-ref.png                            |  Bin 616 -> 0 bytes
 test/extend-pad.ref.png                            |  Bin 0 -> 616 bytes
 test/extend-reflect-ps2-ref.png                    |  Bin 146990 -> 0 bytes
 test/extend-reflect-ps3-ref.png                    |  Bin 146990 -> 0 bytes
 test/extend-reflect-ref.png                        |  Bin 153571 -> 0 bytes
 test/extend-reflect-similar-ps2-ref.png            |  Bin 146990 -> 0 bytes
 test/extend-reflect-similar-ps3-ref.png            |  Bin 146990 -> 0 bytes
 test/extend-reflect-similar-ref.png                |  Bin 153571 -> 0 bytes
 test/extend-reflect-similar.ps2.ref.png            |  Bin 0 -> 146990 bytes
 test/extend-reflect-similar.ps3.ref.png            |  Bin 0 -> 146990 bytes
 test/extend-reflect-similar.ref.png                |  Bin 0 -> 153571 bytes
 test/extend-reflect.ps2.ref.png                    |  Bin 0 -> 146990 bytes
 test/extend-reflect.ps3.ref.png                    |  Bin 0 -> 146990 bytes
 test/extend-reflect.ref.png                        |  Bin 0 -> 153571 bytes
 test/extend-repeat-ps2-ref.png                     |  Bin 119246 -> 0 bytes
 test/extend-repeat-ps3-ref.png                     |  Bin 119246 -> 0 bytes
 test/extend-repeat-ref.png                         |  Bin 108622 -> 0 bytes
 test/extend-repeat-similar-ps2-ref.png             |  Bin 119246 -> 0 bytes
 test/extend-repeat-similar-ps3-ref.png             |  Bin 119246 -> 0 bytes
 test/extend-repeat-similar-ref.png                 |  Bin 108622 -> 0 bytes
 test/extend-repeat-similar.ps2.ref.png             |  Bin 0 -> 119246 bytes
 test/extend-repeat-similar.ps3.ref.png             |  Bin 0 -> 119246 bytes
 test/extend-repeat-similar.ref.png                 |  Bin 0 -> 108622 bytes
 test/extend-repeat.ps2.ref.png                     |  Bin 0 -> 119246 bytes
 test/extend-repeat.ps3.ref.png                     |  Bin 0 -> 119246 bytes
 test/extend-repeat.ref.png                         |  Bin 0 -> 108622 bytes
 test/fallback-resolution-ppi150x150-ref.png        |  Bin 8043 -> 0 bytes
 test/fallback-resolution-ppi150x300-ref.png        |  Bin 6848 -> 0 bytes
 test/fallback-resolution-ppi150x37.5-ref.png       |  Bin 13176 -> 0 bytes
 test/fallback-resolution-ppi150x600-ref.png        |  Bin 6338 -> 0 bytes
 test/fallback-resolution-ppi150x72-ref.png         |  Bin 8370 -> 0 bytes
 test/fallback-resolution-ppi150x75-ref.png         |  Bin 10445 -> 0 bytes
 test/fallback-resolution-ppi300x150-ref.png        |  Bin 6851 -> 0 bytes
 test/fallback-resolution-ppi300x300-ref.png        |  Bin 5637 -> 0 bytes
 test/fallback-resolution-ppi300x37.5-ref.png       |  Bin 12870 -> 0 bytes
 test/fallback-resolution-ppi300x600-ref.png        |  Bin 4848 -> 0 bytes
 test/fallback-resolution-ppi300x72-ref.png         |  Bin 7053 -> 0 bytes
 test/fallback-resolution-ppi300x75-ref.png         |  Bin 9617 -> 0 bytes
 test/fallback-resolution-ppi37.5x150-ref.png       |  Bin 12728 -> 0 bytes
 test/fallback-resolution-ppi37.5x300-ref.png       |  Bin 11981 -> 0 bytes
 test/fallback-resolution-ppi37.5x37.5-ref.png      |  Bin 14098 -> 0 bytes
 test/fallback-resolution-ppi37.5x600-ref.png       |  Bin 11654 -> 0 bytes
 test/fallback-resolution-ppi37.5x72-ref.png        |  Bin 12990 -> 0 bytes
 test/fallback-resolution-ppi37.5x75-ref.png        |  Bin 13787 -> 0 bytes
 test/fallback-resolution-ppi600x150-ref.png        |  Bin 6096 -> 0 bytes
 test/fallback-resolution-ppi600x300-ref.png        |  Bin 4812 -> 0 bytes
 test/fallback-resolution-ppi600x37.5-ref.png       |  Bin 12401 -> 0 bytes
 test/fallback-resolution-ppi600x600-ref.png        |  Bin 4104 -> 0 bytes
 test/fallback-resolution-ppi600x72-ref.png         |  Bin 6398 -> 0 bytes
 test/fallback-resolution-ppi600x75-ref.png         |  Bin 8974 -> 0 bytes
 test/fallback-resolution-ppi72x150-ref.png         |  Bin 8069 -> 0 bytes
 test/fallback-resolution-ppi72x300-ref.png         |  Bin 6803 -> 0 bytes
 test/fallback-resolution-ppi72x37.5-ref.png        |  Bin 13147 -> 0 bytes
 test/fallback-resolution-ppi72x600-ref.png         |  Bin 6245 -> 0 bytes
 test/fallback-resolution-ppi72x72-ref.png          |  Bin 8409 -> 0 bytes
 test/fallback-resolution-ppi72x75-ref.png          |  Bin 10628 -> 0 bytes
 test/fallback-resolution-ppi75x150-ref.png         |  Bin 9940 -> 0 bytes
 test/fallback-resolution-ppi75x300-ref.png         |  Bin 9003 -> 0 bytes
 test/fallback-resolution-ppi75x37.5-ref.png        |  Bin 14020 -> 0 bytes
 test/fallback-resolution-ppi75x600-ref.png         |  Bin 8455 -> 0 bytes
 test/fallback-resolution-ppi75x72-ref.png          |  Bin 10202 -> 0 bytes
 test/fallback-resolution-ppi75x75-ref.png          |  Bin 12101 -> 0 bytes
 test/fallback-resolution.c                         |   11 +-
 test/fallback-resolution.ppi150x150.ref.png        |  Bin 0 -> 8043 bytes
 test/fallback-resolution.ppi150x300.ref.png        |  Bin 0 -> 6848 bytes
 test/fallback-resolution.ppi150x37.5.ref.png       |  Bin 0 -> 13176 bytes
 test/fallback-resolution.ppi150x600.ref.png        |  Bin 0 -> 6338 bytes
 test/fallback-resolution.ppi150x72.ref.png         |  Bin 0 -> 8370 bytes
 test/fallback-resolution.ppi150x75.ref.png         |  Bin 0 -> 10445 bytes
 test/fallback-resolution.ppi300x150.ref.png        |  Bin 0 -> 6851 bytes
 test/fallback-resolution.ppi300x300.ref.png        |  Bin 0 -> 5637 bytes
 test/fallback-resolution.ppi300x37.5.ref.png       |  Bin 0 -> 12870 bytes
 test/fallback-resolution.ppi300x600.ref.png        |  Bin 0 -> 4848 bytes
 test/fallback-resolution.ppi300x72.ref.png         |  Bin 0 -> 7053 bytes
 test/fallback-resolution.ppi300x75.ref.png         |  Bin 0 -> 9617 bytes
 test/fallback-resolution.ppi37.5x150.ref.png       |  Bin 0 -> 12728 bytes
 test/fallback-resolution.ppi37.5x300.ref.png       |  Bin 0 -> 11981 bytes
 test/fallback-resolution.ppi37.5x37.5.ref.png      |  Bin 0 -> 14098 bytes
 test/fallback-resolution.ppi37.5x600.ref.png       |  Bin 0 -> 11654 bytes
 test/fallback-resolution.ppi37.5x72.ref.png        |  Bin 0 -> 12990 bytes
 test/fallback-resolution.ppi37.5x75.ref.png        |  Bin 0 -> 13787 bytes
 test/fallback-resolution.ppi600x150.ref.png        |  Bin 0 -> 6096 bytes
 test/fallback-resolution.ppi600x300.ref.png        |  Bin 0 -> 4812 bytes
 test/fallback-resolution.ppi600x37.5.ref.png       |  Bin 0 -> 12401 bytes
 test/fallback-resolution.ppi600x600.ref.png        |  Bin 0 -> 4104 bytes
 test/fallback-resolution.ppi600x72.ref.png         |  Bin 0 -> 6398 bytes
 test/fallback-resolution.ppi600x75.ref.png         |  Bin 0 -> 8974 bytes
 test/fallback-resolution.ppi72x150.ref.png         |  Bin 0 -> 8069 bytes
 test/fallback-resolution.ppi72x300.ref.png         |  Bin 0 -> 6803 bytes
 test/fallback-resolution.ppi72x37.5.ref.png        |  Bin 0 -> 13147 bytes
 test/fallback-resolution.ppi72x600.ref.png         |  Bin 0 -> 6245 bytes
 test/fallback-resolution.ppi72x72.ref.png          |  Bin 0 -> 8409 bytes
 test/fallback-resolution.ppi72x75.ref.png          |  Bin 0 -> 10628 bytes
 test/fallback-resolution.ppi75x150.ref.png         |  Bin 0 -> 9940 bytes
 test/fallback-resolution.ppi75x300.ref.png         |  Bin 0 -> 9003 bytes
 test/fallback-resolution.ppi75x37.5.ref.png        |  Bin 0 -> 14020 bytes
 test/fallback-resolution.ppi75x600.ref.png         |  Bin 0 -> 8455 bytes
 test/fallback-resolution.ppi75x72.ref.png          |  Bin 0 -> 10202 bytes
 test/fallback-resolution.ppi75x75.ref.png          |  Bin 0 -> 12101 bytes
 test/fill-alpha-pattern-pdf-argb32-ref.png         |  Bin 3887 -> 0 bytes
 test/fill-alpha-pattern-pdf-rgb24-ref.png          |  Bin 3840 -> 0 bytes
 test/fill-alpha-pattern-ps3-ref.png                |  Bin 4380 -> 0 bytes
 test/fill-alpha-pattern-ref.png                    |  Bin 3653 -> 0 bytes
 test/fill-alpha-pattern.pdf.argb32.ref.png         |  Bin 0 -> 3887 bytes
 test/fill-alpha-pattern.pdf.rgb24.ref.png          |  Bin 0 -> 3840 bytes
 test/fill-alpha-pattern.ps3.ref.png                |  Bin 0 -> 4380 bytes
 test/fill-alpha-pattern.ref.png                    |  Bin 0 -> 3653 bytes
 test/fill-alpha-ref.png                            |  Bin 2989 -> 0 bytes
 test/fill-alpha.ref.png                            |  Bin 0 -> 2989 bytes
 test/fill-and-stroke-alpha-add-quartz-ref.png      |  Bin 603 -> 0 bytes
 test/fill-and-stroke-alpha-add-ref.png             |  Bin 591 -> 0 bytes
 test/fill-and-stroke-alpha-add.quartz.ref.png      |  Bin 0 -> 603 bytes
 test/fill-and-stroke-alpha-add.ref.png             |  Bin 0 -> 591 bytes
 test/fill-and-stroke-alpha-quartz-ref.png          |  Bin 550 -> 0 bytes
 test/fill-and-stroke-alpha-ref.png                 |  Bin 519 -> 0 bytes
 test/fill-and-stroke-alpha.quartz.ref.png          |  Bin 0 -> 550 bytes
 test/fill-and-stroke-alpha.ref.png                 |  Bin 0 -> 519 bytes
 test/fill-and-stroke-ps2-argb32-ref.png            |  Bin 310 -> 0 bytes
 test/fill-and-stroke-ps2-rgb24-ref.png             |  Bin 319 -> 0 bytes
 test/fill-and-stroke-ps3-argb32-ref.png            |  Bin 310 -> 0 bytes
 test/fill-and-stroke-ps3-rgb24-ref.png             |  Bin 319 -> 0 bytes
 test/fill-and-stroke-quartz-ref.png                |  Bin 286 -> 0 bytes
 test/fill-and-stroke-quartz-rgb24-ref.png          |  Bin 264 -> 0 bytes
 test/fill-and-stroke-ref.png                       |  Bin 279 -> 0 bytes
 test/fill-and-stroke-rgb24-ref.png                 |  Bin 257 -> 0 bytes
 test/fill-and-stroke.ps2.argb32.ref.png            |  Bin 0 -> 310 bytes
 test/fill-and-stroke.ps2.rgb24.ref.png             |  Bin 0 -> 319 bytes
 test/fill-and-stroke.ps3.argb32.ref.png            |  Bin 0 -> 310 bytes
 test/fill-and-stroke.ps3.rgb24.ref.png             |  Bin 0 -> 319 bytes
 test/fill-and-stroke.quartz.ref.png                |  Bin 0 -> 286 bytes
 test/fill-and-stroke.quartz.rgb24.ref.png          |  Bin 0 -> 264 bytes
 test/fill-and-stroke.ref.png                       |  Bin 0 -> 279 bytes
 test/fill-and-stroke.rgb24.ref.png                 |  Bin 0 -> 257 bytes
 test/fill-degenerate-sort-order-quartz-ref.png     |  Bin 2470 -> 0 bytes
 ...fill-degenerate-sort-order-quartz-rgb24-ref.png |  Bin 2098 -> 0 bytes
 test/fill-degenerate-sort-order-ref.png            |  Bin 2397 -> 0 bytes
 test/fill-degenerate-sort-order-rgb24-ref.png      |  Bin 2060 -> 0 bytes
 test/fill-degenerate-sort-order.quartz.ref.png     |  Bin 0 -> 2470 bytes
 ...fill-degenerate-sort-order.quartz.rgb24.ref.png |  Bin 0 -> 2098 bytes
 test/fill-degenerate-sort-order.ref.png            |  Bin 0 -> 2397 bytes
 test/fill-degenerate-sort-order.rgb24.ref.png      |  Bin 0 -> 2060 bytes
 test/fill-missed-stop-ps2-argb32-ref.png           |  Bin 564 -> 0 bytes
 test/fill-missed-stop-ps2-rgb24-ref.png            |  Bin 531 -> 0 bytes
 test/fill-missed-stop-ps3-argb32-ref.png           |  Bin 564 -> 0 bytes
 test/fill-missed-stop-ps3-rgb24-ref.png            |  Bin 531 -> 0 bytes
 test/fill-missed-stop-ref.png                      |  Bin 466 -> 0 bytes
 test/fill-missed-stop-rgb24-ref.png                |  Bin 394 -> 0 bytes
 test/fill-missed-stop.ps2.argb32.ref.png           |  Bin 0 -> 564 bytes
 test/fill-missed-stop.ps2.rgb24.ref.png            |  Bin 0 -> 531 bytes
 test/fill-missed-stop.ps3.argb32.ref.png           |  Bin 0 -> 564 bytes
 test/fill-missed-stop.ps3.rgb24.ref.png            |  Bin 0 -> 531 bytes
 test/fill-missed-stop.ref.png                      |  Bin 0 -> 466 bytes
 test/fill-missed-stop.rgb24.ref.png                |  Bin 0 -> 394 bytes
 test/fill-rule-ps2-argb32-ref.png                  |  Bin 2253 -> 0 bytes
 test/fill-rule-ps2-rgb24-ref.png                   |  Bin 2031 -> 0 bytes
 test/fill-rule-ps3-argb32-ref.png                  |  Bin 2253 -> 0 bytes
 test/fill-rule-ps3-rgb24-ref.png                   |  Bin 2031 -> 0 bytes
 test/fill-rule-quartz-ref.png                      |  Bin 2079 -> 0 bytes
 test/fill-rule-quartz-rgb24-ref.png                |  Bin 1790 -> 0 bytes
 test/fill-rule-ref.png                             |  Bin 1979 -> 0 bytes
 test/fill-rule-rgb24-ref.png                       |  Bin 1722 -> 0 bytes
 test/fill-rule.ps2.argb32.ref.png                  |  Bin 0 -> 2253 bytes
 test/fill-rule.ps2.rgb24.ref.png                   |  Bin 0 -> 2031 bytes
 test/fill-rule.ps3.argb32.ref.png                  |  Bin 0 -> 2253 bytes
 test/fill-rule.ps3.rgb24.ref.png                   |  Bin 0 -> 2031 bytes
 test/fill-rule.quartz.ref.png                      |  Bin 0 -> 2079 bytes
 test/fill-rule.quartz.rgb24.ref.png                |  Bin 0 -> 1790 bytes
 test/fill-rule.ref.png                             |  Bin 0 -> 1979 bytes
 test/fill-rule.rgb24.ref.png                       |  Bin 0 -> 1722 bytes
 test/filter-bilinear-extents-pdf-ref.png           |  Bin 798 -> 0 bytes
 test/filter-bilinear-extents-ps2-ref.png           |  Bin 556 -> 0 bytes
 test/filter-bilinear-extents-ps3-ref.png           |  Bin 556 -> 0 bytes
 test/filter-bilinear-extents-ref.png               |  Bin 1340 -> 0 bytes
 test/filter-bilinear-extents.pdf.ref.png           |  Bin 0 -> 798 bytes
 test/filter-bilinear-extents.ps2.ref.png           |  Bin 0 -> 556 bytes
 test/filter-bilinear-extents.ps3.ref.png           |  Bin 0 -> 556 bytes
 test/filter-bilinear-extents.ref.png               |  Bin 0 -> 1340 bytes
 test/filter-nearest-offset-pdf-ref.png             |  Bin 4537 -> 0 bytes
 test/filter-nearest-offset-ps2-ref.png             |  Bin 255 -> 0 bytes
 test/filter-nearest-offset-ps3-ref.png             |  Bin 255 -> 0 bytes
 test/filter-nearest-offset-ref.png                 |  Bin 248 -> 0 bytes
 test/filter-nearest-offset-svg11-ref.png           |  Bin 4739 -> 0 bytes
 test/filter-nearest-offset-svg12-ref.png           |  Bin 4739 -> 0 bytes
 test/filter-nearest-offset.pdf.ref.png             |  Bin 0 -> 4537 bytes
 test/filter-nearest-offset.ps2.ref.png             |  Bin 0 -> 255 bytes
 test/filter-nearest-offset.ps3.ref.png             |  Bin 0 -> 255 bytes
 test/filter-nearest-offset.ref.png                 |  Bin 0 -> 248 bytes
 test/filter-nearest-offset.svg11.ref.png           |  Bin 0 -> 4739 bytes
 test/filter-nearest-offset.svg12.ref.png           |  Bin 0 -> 4739 bytes
 test/filter-nearest-transformed-pdf-ref.png        |  Bin 548 -> 0 bytes
 test/filter-nearest-transformed-ref.png            |  Bin 570 -> 0 bytes
 test/filter-nearest-transformed-svg11-ref.png      |  Bin 559 -> 0 bytes
 test/filter-nearest-transformed-svg12-ref.png      |  Bin 559 -> 0 bytes
 test/filter-nearest-transformed.pdf.ref.png        |  Bin 0 -> 548 bytes
 test/filter-nearest-transformed.ref.png            |  Bin 0 -> 570 bytes
 test/filter-nearest-transformed.svg11.ref.png      |  Bin 0 -> 559 bytes
 test/filter-nearest-transformed.svg12.ref.png      |  Bin 0 -> 559 bytes
 test/finer-grained-fallbacks-ps2-ref.png           |  Bin 1356 -> 0 bytes
 test/finer-grained-fallbacks-ps2-rgb24-ref.png     |  Bin 1096 -> 0 bytes
 test/finer-grained-fallbacks-ps3-ref.png           |  Bin 1356 -> 0 bytes
 test/finer-grained-fallbacks-ps3-rgb24-ref.png     |  Bin 1096 -> 0 bytes
 test/finer-grained-fallbacks-ref.png               |  Bin 1111 -> 0 bytes
 test/finer-grained-fallbacks-rgb24-ref.png         |  Bin 1114 -> 0 bytes
 test/finer-grained-fallbacks.ps2.ref.png           |  Bin 0 -> 1356 bytes
 test/finer-grained-fallbacks.ps2.rgb24.ref.png     |  Bin 0 -> 1096 bytes
 test/finer-grained-fallbacks.ps3.ref.png           |  Bin 0 -> 1356 bytes
 test/finer-grained-fallbacks.ps3.rgb24.ref.png     |  Bin 0 -> 1096 bytes
 test/finer-grained-fallbacks.ref.png               |  Bin 0 -> 1111 bytes
 test/finer-grained-fallbacks.rgb24.ref.png         |  Bin 0 -> 1114 bytes
 test/font-matrix-translation-ps2-argb32-ref.png    |  Bin 748 -> 0 bytes
 test/font-matrix-translation-ps2-rgb24-ref.png     |  Bin 748 -> 0 bytes
 test/font-matrix-translation-ps3-argb32-ref.png    |  Bin 748 -> 0 bytes
 test/font-matrix-translation-ps3-rgb24-ref.png     |  Bin 748 -> 0 bytes
 test/font-matrix-translation-quartz-ref.png        |  Bin 1090 -> 0 bytes
 test/font-matrix-translation-ref.png               |  Bin 1006 -> 0 bytes
 test/font-matrix-translation-svg11-ref.png         |  Bin 970 -> 0 bytes
 test/font-matrix-translation-svg12-ref.png         |  Bin 970 -> 0 bytes
 test/font-matrix-translation.ps2.argb32.ref.png    |  Bin 0 -> 748 bytes
 test/font-matrix-translation.ps2.rgb24.ref.png     |  Bin 0 -> 748 bytes
 test/font-matrix-translation.ps3.argb32.ref.png    |  Bin 0 -> 748 bytes
 test/font-matrix-translation.ps3.rgb24.ref.png     |  Bin 0 -> 748 bytes
 test/font-matrix-translation.quartz.ref.png        |  Bin 0 -> 1090 bytes
 test/font-matrix-translation.ref.png               |  Bin 0 -> 1006 bytes
 test/font-matrix-translation.svg11.ref.png         |  Bin 0 -> 970 bytes
 test/font-matrix-translation.svg12.ref.png         |  Bin 0 -> 970 bytes
 test/ft-show-glyphs-positioning-pdf-ref.png        |  Bin 3133 -> 0 bytes
 test/ft-show-glyphs-positioning-ps2-ref.png        |  Bin 2269 -> 0 bytes
 test/ft-show-glyphs-positioning-ps3-ref.png        |  Bin 2269 -> 0 bytes
 test/ft-show-glyphs-positioning-ref.png            |  Bin 3444 -> 0 bytes
 test/ft-show-glyphs-positioning-svg11-ref.png      |  Bin 6590 -> 0 bytes
 test/ft-show-glyphs-positioning-svg12-ref.png      |  Bin 6590 -> 0 bytes
 test/ft-show-glyphs-positioning.pdf.ref.png        |  Bin 0 -> 3133 bytes
 test/ft-show-glyphs-positioning.ps2.ref.png        |  Bin 0 -> 2269 bytes
 test/ft-show-glyphs-positioning.ps3.ref.png        |  Bin 0 -> 2269 bytes
 test/ft-show-glyphs-positioning.ref.png            |  Bin 0 -> 3444 bytes
 test/ft-show-glyphs-positioning.svg11.ref.png      |  Bin 0 -> 6590 bytes
 test/ft-show-glyphs-positioning.svg12.ref.png      |  Bin 0 -> 6590 bytes
 test/ft-show-glyphs-table-ps2-ref.png              |  Bin 5687 -> 0 bytes
 test/ft-show-glyphs-table-ps3-ref.png              |  Bin 5687 -> 0 bytes
 test/ft-show-glyphs-table-ref.png                  |  Bin 11439 -> 0 bytes
 test/ft-show-glyphs-table.ps2.ref.png              |  Bin 0 -> 5687 bytes
 test/ft-show-glyphs-table.ps3.ref.png              |  Bin 0 -> 5687 bytes
 test/ft-show-glyphs-table.ref.png                  |  Bin 0 -> 11439 bytes
 test/ft-text-antialias-none-ps2-argb32-ref.png     |  Bin 335 -> 0 bytes
 test/ft-text-antialias-none-ps3-argb32-ref.png     |  Bin 335 -> 0 bytes
 test/ft-text-antialias-none-ref.png                |  Bin 336 -> 0 bytes
 test/ft-text-antialias-none.ps2.argb32.ref.png     |  Bin 0 -> 335 bytes
 test/ft-text-antialias-none.ps3.argb32.ref.png     |  Bin 0 -> 335 bytes
 test/ft-text-antialias-none.ref.png                |  Bin 0 -> 336 bytes
 test/ft-text-vertical-layout-type1-pdf-ref.png     |  Bin 3968 -> 0 bytes
 test/ft-text-vertical-layout-type1-ps2-ref.png     |  Bin 1846 -> 0 bytes
 test/ft-text-vertical-layout-type1-ps3-ref.png     |  Bin 1846 -> 0 bytes
 test/ft-text-vertical-layout-type1-ref.png         |  Bin 3980 -> 0 bytes
 test/ft-text-vertical-layout-type1-svg11-ref.png   |  Bin 3973 -> 0 bytes
 test/ft-text-vertical-layout-type1-svg12-ref.png   |  Bin 3973 -> 0 bytes
 test/ft-text-vertical-layout-type1.pdf.ref.png     |  Bin 0 -> 3968 bytes
 test/ft-text-vertical-layout-type1.ps2.ref.png     |  Bin 0 -> 1846 bytes
 test/ft-text-vertical-layout-type1.ps3.ref.png     |  Bin 0 -> 1846 bytes
 test/ft-text-vertical-layout-type1.ref.png         |  Bin 0 -> 3980 bytes
 test/ft-text-vertical-layout-type1.svg11.ref.png   |  Bin 0 -> 3973 bytes
 test/ft-text-vertical-layout-type1.svg12.ref.png   |  Bin 0 -> 3973 bytes
 test/ft-text-vertical-layout-type3-pdf-ref.png     |  Bin 3634 -> 0 bytes
 test/ft-text-vertical-layout-type3-ps2-ref.png     |  Bin 1804 -> 0 bytes
 test/ft-text-vertical-layout-type3-ps3-ref.png     |  Bin 1804 -> 0 bytes
 test/ft-text-vertical-layout-type3-ref.png         |  Bin 3934 -> 0 bytes
 test/ft-text-vertical-layout-type3-svg11-ref.png   |  Bin 3957 -> 0 bytes
 test/ft-text-vertical-layout-type3-svg12-ref.png   |  Bin 3957 -> 0 bytes
 test/ft-text-vertical-layout-type3.pdf.ref.png     |  Bin 0 -> 3634 bytes
 test/ft-text-vertical-layout-type3.ps2.ref.png     |  Bin 0 -> 1804 bytes
 test/ft-text-vertical-layout-type3.ps3.ref.png     |  Bin 0 -> 1804 bytes
 test/ft-text-vertical-layout-type3.ref.png         |  Bin 0 -> 3934 bytes
 test/ft-text-vertical-layout-type3.svg11.ref.png   |  Bin 0 -> 3957 bytes
 test/ft-text-vertical-layout-type3.svg12.ref.png   |  Bin 0 -> 3957 bytes
 test/get-group-target-ref.png                      |  Bin 134 -> 0 bytes
 test/get-group-target.ref.png                      |  Bin 0 -> 134 bytes
 test/glitz-surface-source-ref.png                  |  Bin 268 -> 0 bytes
 test/glitz-surface-source.ref.png                  |  Bin 0 -> 268 bytes
 test/glyph-cache-pressure-ps2-ref.png              |  Bin 1454 -> 0 bytes
 test/glyph-cache-pressure-ps3-ref.png              |  Bin 1454 -> 0 bytes
 test/glyph-cache-pressure-quartz-ref.png           |  Bin 3654 -> 0 bytes
 test/glyph-cache-pressure-ref.png                  |  Bin 3223 -> 0 bytes
 test/glyph-cache-pressure.ps2.ref.png              |  Bin 0 -> 1454 bytes
 test/glyph-cache-pressure.ps3.ref.png              |  Bin 0 -> 1454 bytes
 test/glyph-cache-pressure.quartz.ref.png           |  Bin 0 -> 3654 bytes
 test/glyph-cache-pressure.ref.png                  |  Bin 0 -> 3223 bytes
 test/gradient-alpha-pdf-argb32-ref.png             |  Bin 126 -> 0 bytes
 test/gradient-alpha-pdf-rgb24-ref.png              |  Bin 121 -> 0 bytes
 test/gradient-alpha-ps2-argb32-ref.png             |  Bin 134 -> 0 bytes
 test/gradient-alpha-ps2-rgb24-ref.png              |  Bin 130 -> 0 bytes
 test/gradient-alpha-ps3-argb32-ref.png             |  Bin 134 -> 0 bytes
 test/gradient-alpha-ps3-rgb24-ref.png              |  Bin 130 -> 0 bytes
 test/gradient-alpha-ref.png                        |  Bin 147 -> 0 bytes
 test/gradient-alpha-rgb24-ref.png                  |  Bin 142 -> 0 bytes
 test/gradient-alpha.pdf.argb32.ref.png             |  Bin 0 -> 126 bytes
 test/gradient-alpha.pdf.rgb24.ref.png              |  Bin 0 -> 121 bytes
 test/gradient-alpha.ps2.argb32.ref.png             |  Bin 0 -> 134 bytes
 test/gradient-alpha.ps2.rgb24.ref.png              |  Bin 0 -> 130 bytes
 test/gradient-alpha.ps3.argb32.ref.png             |  Bin 0 -> 134 bytes
 test/gradient-alpha.ps3.rgb24.ref.png              |  Bin 0 -> 130 bytes
 test/gradient-alpha.ref.png                        |  Bin 0 -> 147 bytes
 test/gradient-alpha.rgb24.ref.png                  |  Bin 0 -> 142 bytes
 test/gradient-constant-alpha-pdf-argb32-ref.png    |  Bin 116 -> 0 bytes
 test/gradient-constant-alpha-pdf-rgb24-ref.png     |  Bin 115 -> 0 bytes
 test/gradient-constant-alpha-ps3-ref.png           |  Bin 124 -> 0 bytes
 test/gradient-constant-alpha-ps3-rgb24-ref.png     |  Bin 124 -> 0 bytes
 test/gradient-constant-alpha-ref.png               |  Bin 117 -> 0 bytes
 test/gradient-constant-alpha-rgb24-ref.png         |  Bin 116 -> 0 bytes
 test/gradient-constant-alpha.pdf.argb32.ref.png    |  Bin 0 -> 116 bytes
 test/gradient-constant-alpha.pdf.rgb24.ref.png     |  Bin 0 -> 115 bytes
 test/gradient-constant-alpha.ps3.ref.png           |  Bin 0 -> 124 bytes
 test/gradient-constant-alpha.ps3.rgb24.ref.png     |  Bin 0 -> 124 bytes
 test/gradient-constant-alpha.ref.png               |  Bin 0 -> 117 bytes
 test/gradient-constant-alpha.rgb24.ref.png         |  Bin 0 -> 116 bytes
 test/gradient-zero-stops-ref.png                   |  Bin 105 -> 0 bytes
 test/gradient-zero-stops-rgb24-ref.png             |  Bin 105 -> 0 bytes
 test/gradient-zero-stops.ref.png                   |  Bin 0 -> 105 bytes
 test/gradient-zero-stops.rgb24.ref.png             |  Bin 0 -> 105 bytes
 test/group-paint-ref.png                           |  Bin 118 -> 0 bytes
 test/group-paint.ref.png                           |  Bin 0 -> 118 bytes
 test/huge-pattern-pdf-ref.png                      |  Bin 2716 -> 0 bytes
 test/huge-pattern-pdf-rgb24-ref.png                |  Bin 2817 -> 0 bytes
 test/huge-pattern-ps3-ref.png                      |  Bin 1786 -> 0 bytes
 test/huge-pattern-ref.png                          |  Bin 1619 -> 0 bytes
 test/huge-pattern.pdf.ref.png                      |  Bin 0 -> 2716 bytes
 test/huge-pattern.pdf.rgb24.ref.png                |  Bin 0 -> 2817 bytes
 test/huge-pattern.ps3.ref.png                      |  Bin 0 -> 1786 bytes
 test/huge-pattern.ref.png                          |  Bin 0 -> 1619 bytes
 test/image-surface-source-ps2-ref.png              |  Bin 376 -> 0 bytes
 test/image-surface-source-ps3-ref.png              |  Bin 376 -> 0 bytes
 test/image-surface-source-ref.png                  |  Bin 332 -> 0 bytes
 test/image-surface-source.ps2.ref.png              |  Bin 0 -> 376 bytes
 test/image-surface-source.ps3.ref.png              |  Bin 0 -> 376 bytes
 test/image-surface-source.ref.png                  |  Bin 0 -> 332 bytes
 test/infinite-join-ps2-ref.png                     |  Bin 218 -> 0 bytes
 test/infinite-join-ps3-ref.png                     |  Bin 218 -> 0 bytes
 test/infinite-join-ref.png                         |  Bin 194 -> 0 bytes
 test/infinite-join.ps2.ref.png                     |  Bin 0 -> 218 bytes
 test/infinite-join.ps3.ref.png                     |  Bin 0 -> 218 bytes
 test/infinite-join.ref.png                         |  Bin 0 -> 194 bytes
 test/large-clip-ref.png                            |  Bin 350 -> 0 bytes
 test/large-clip.ref.png                            |  Bin 0 -> 350 bytes
 test/large-font-ref.png                            |  Bin 6936 -> 0 bytes
 test/large-font.ref.png                            |  Bin 0 -> 6936 bytes
 test/large-source-ref.png                          |  Bin 137 -> 0 bytes
 test/large-source.ref.png                          |  Bin 0 -> 137 bytes
 test/leaky-dash-ps2-argb32-ref.png                 |  Bin 286 -> 0 bytes
 test/leaky-dash-ps2-rgb24-ref.png                  |  Bin 284 -> 0 bytes
 test/leaky-dash-ps3-argb32-ref.png                 |  Bin 286 -> 0 bytes
 test/leaky-dash-ps3-rgb24-ref.png                  |  Bin 284 -> 0 bytes
 test/leaky-dash-quartz-ref.png                     |  Bin 241 -> 0 bytes
 test/leaky-dash-ref.png                            |  Bin 243 -> 0 bytes
 test/leaky-dash.ps2.argb32.ref.png                 |  Bin 0 -> 286 bytes
 test/leaky-dash.ps2.rgb24.ref.png                  |  Bin 0 -> 284 bytes
 test/leaky-dash.ps3.argb32.ref.png                 |  Bin 0 -> 286 bytes
 test/leaky-dash.ps3.rgb24.ref.png                  |  Bin 0 -> 284 bytes
 test/leaky-dash.quartz.ref.png                     |  Bin 0 -> 241 bytes
 test/leaky-dash.ref.png                            |  Bin 0 -> 243 bytes
 test/leaky-dashed-rectangle-ps2-ref.png            |  Bin 444 -> 0 bytes
 test/leaky-dashed-rectangle-ps3-ref.png            |  Bin 444 -> 0 bytes
 test/leaky-dashed-rectangle-ref.png                |  Bin 366 -> 0 bytes
 test/leaky-dashed-rectangle.ps2.ref.png            |  Bin 0 -> 444 bytes
 test/leaky-dashed-rectangle.ps3.ref.png            |  Bin 0 -> 444 bytes
 test/leaky-dashed-rectangle.ref.png                |  Bin 0 -> 366 bytes
 test/leaky-dashed-stroke-ps2-ref.png               |  Bin 5511 -> 0 bytes
 test/leaky-dashed-stroke-ps3-ref.png               |  Bin 5511 -> 0 bytes
 test/leaky-dashed-stroke-ref.png                   |  Bin 9214 -> 0 bytes
 test/leaky-dashed-stroke.ps2.ref.png               |  Bin 0 -> 5511 bytes
 test/leaky-dashed-stroke.ps3.ref.png               |  Bin 0 -> 5511 bytes
 test/leaky-dashed-stroke.ref.png                   |  Bin 0 -> 9214 bytes
 test/leaky-polygon-ps2-ref.png                     |  Bin 354 -> 0 bytes
 test/leaky-polygon-ps3-ref.png                     |  Bin 354 -> 0 bytes
 test/leaky-polygon-ref.png                         |  Bin 368 -> 0 bytes
 test/leaky-polygon.ps2.ref.png                     |  Bin 0 -> 354 bytes
 test/leaky-polygon.ps3.ref.png                     |  Bin 0 -> 354 bytes
 test/leaky-polygon.ref.png                         |  Bin 0 -> 368 bytes
 test/line-width-ref.png                            |  Bin 201 -> 0 bytes
 test/line-width-scale-ps2-ref.png                  |  Bin 3911 -> 0 bytes
 test/line-width-scale-ps3-ref.png                  |  Bin 3911 -> 0 bytes
 test/line-width-scale-quartz-ref.png               |  Bin 6434 -> 0 bytes
 test/line-width-scale-ref.png                      |  Bin 6445 -> 0 bytes
 test/line-width-scale.ps2.ref.png                  |  Bin 0 -> 3911 bytes
 test/line-width-scale.ps3.ref.png                  |  Bin 0 -> 3911 bytes
 test/line-width-scale.quartz.ref.png               |  Bin 0 -> 6434 bytes
 test/line-width-scale.ref.png                      |  Bin 0 -> 6445 bytes
 test/line-width.ref.png                            |  Bin 0 -> 201 bytes
 test/linear-gradient-pdf-ref.png                   |  Bin 935 -> 0 bytes
 test/linear-gradient-ps3-ref.png                   |  Bin 779 -> 0 bytes
 test/linear-gradient-quartz-ref.png                |  Bin 1164 -> 0 bytes
 test/linear-gradient-ref.png                       |  Bin 1021 -> 0 bytes
 test/linear-gradient-reflect-pdf-argb32-ref.png    |  Bin 248 -> 0 bytes
 test/linear-gradient-reflect-pdf-rgb24-ref.png     |  Bin 248 -> 0 bytes
 test/linear-gradient-reflect-ps3-ref.png           |  Bin 314 -> 0 bytes
 test/linear-gradient-reflect-quartz-ref.png        |  Bin 878 -> 0 bytes
 test/linear-gradient-reflect-ref.png               |  Bin 216 -> 0 bytes
 test/linear-gradient-reflect.pdf.argb32.ref.png    |  Bin 0 -> 248 bytes
 test/linear-gradient-reflect.pdf.rgb24.ref.png     |  Bin 0 -> 248 bytes
 test/linear-gradient-reflect.ps3.ref.png           |  Bin 0 -> 314 bytes
 test/linear-gradient-reflect.quartz.ref.png        |  Bin 0 -> 878 bytes
 test/linear-gradient-reflect.ref.png               |  Bin 0 -> 216 bytes
 test/linear-gradient-svg11-ref.png                 |  Bin 1000 -> 0 bytes
 test/linear-gradient-svg12-ref.png                 |  Bin 1000 -> 0 bytes
 test/linear-gradient.pdf.ref.png                   |  Bin 0 -> 935 bytes
 test/linear-gradient.ps3.ref.png                   |  Bin 0 -> 779 bytes
 test/linear-gradient.quartz.ref.png                |  Bin 0 -> 1164 bytes
 test/linear-gradient.ref.png                       |  Bin 0 -> 1021 bytes
 test/linear-gradient.svg11.ref.png                 |  Bin 0 -> 1000 bytes
 test/linear-gradient.svg12.ref.png                 |  Bin 0 -> 1000 bytes
 test/long-dashed-lines-ps2-ref.png                 |  Bin 1516 -> 0 bytes
 test/long-dashed-lines-ps3-ref.png                 |  Bin 1516 -> 0 bytes
 test/long-dashed-lines-quartz-ref.png              |  Bin 2313 -> 0 bytes
 test/long-dashed-lines-ref.png                     |  Bin 2116 -> 0 bytes
 test/long-dashed-lines.ps2.ref.png                 |  Bin 0 -> 1516 bytes
 test/long-dashed-lines.ps3.ref.png                 |  Bin 0 -> 1516 bytes
 test/long-dashed-lines.quartz.ref.png              |  Bin 0 -> 2313 bytes
 test/long-dashed-lines.ref.png                     |  Bin 0 -> 2116 bytes
 test/long-lines-ref.png                            |  Bin 247 -> 0 bytes
 test/long-lines.ref.png                            |  Bin 0 -> 247 bytes
 test/mask-alpha-quartz-argb32-ref.png              |  Bin 641 -> 0 bytes
 test/mask-alpha-ref.png                            |  Bin 640 -> 0 bytes
 test/mask-alpha-rgb24-ref.png                      |  Bin 599 -> 0 bytes
 test/mask-alpha-svg11-argb32-ref.png               |  Bin 615 -> 0 bytes
 test/mask-alpha-svg12-argb32-ref.png               |  Bin 615 -> 0 bytes
 test/mask-alpha.quartz.argb32.ref.png              |  Bin 0 -> 641 bytes
 test/mask-alpha.ref.png                            |  Bin 0 -> 640 bytes
 test/mask-alpha.rgb24.ref.png                      |  Bin 0 -> 599 bytes
 test/mask-alpha.svg11.argb32.ref.png               |  Bin 0 -> 615 bytes
 test/mask-alpha.svg12.argb32.ref.png               |  Bin 0 -> 615 bytes
 test/mask-ctm-ref.png                              |  Bin 129 -> 0 bytes
 test/mask-ctm-rgb24-ref.png                        |  Bin 124 -> 0 bytes
 test/mask-ctm-svg11-argb32-ref.png                 |  Bin 108 -> 0 bytes
 test/mask-ctm-svg12-argb32-ref.png                 |  Bin 108 -> 0 bytes
 test/mask-ctm.ref.png                              |  Bin 0 -> 129 bytes
 test/mask-ctm.rgb24.ref.png                        |  Bin 0 -> 124 bytes
 test/mask-ctm.svg11.argb32.ref.png                 |  Bin 0 -> 108 bytes
 test/mask-ctm.svg12.argb32.ref.png                 |  Bin 0 -> 108 bytes
 test/mask-pdf-argb32-ref.png                       |  Bin 8881 -> 0 bytes
 test/mask-pdf-rgb24-ref.png                        |  Bin 8267 -> 0 bytes
 test/mask-quartz-ref.png                           |  Bin 10682 -> 0 bytes
 test/mask-quartz-rgb24-ref.png                     |  Bin 8418 -> 0 bytes
 test/mask-ref.png                                  |  Bin 8476 -> 0 bytes
 test/mask-rgb24-ref.png                            |  Bin 7041 -> 0 bytes
 test/mask-surface-ctm-ref.png                      |  Bin 129 -> 0 bytes
 test/mask-surface-ctm-rgb24-ref.png                |  Bin 124 -> 0 bytes
 test/mask-surface-ctm-svg11-argb32-ref.png         |  Bin 108 -> 0 bytes
 test/mask-surface-ctm-svg12-argb32-ref.png         |  Bin 108 -> 0 bytes
 test/mask-surface-ctm.ref.png                      |  Bin 0 -> 129 bytes
 test/mask-surface-ctm.rgb24.ref.png                |  Bin 0 -> 124 bytes
 test/mask-surface-ctm.svg11.argb32.ref.png         |  Bin 0 -> 108 bytes
 test/mask-surface-ctm.svg12.argb32.ref.png         |  Bin 0 -> 108 bytes
 test/mask-svg11-argb32-ref.png                     |  Bin 8527 -> 0 bytes
 test/mask-svg11-rgb24-ref.png                      |  Bin 7935 -> 0 bytes
 test/mask-svg12-argb32-ref.png                     |  Bin 8527 -> 0 bytes
 test/mask-svg12-rgb24-ref.png                      |  Bin 7935 -> 0 bytes
 test/mask-transformed-image-ref.png                |  Bin 4516 -> 0 bytes
 test/mask-transformed-image.ref.png                |  Bin 0 -> 4516 bytes
 test/mask-transformed-similar-pdf-ref.png          |  Bin 4213 -> 0 bytes
 test/mask-transformed-similar-ref.png              |  Bin 4516 -> 0 bytes
 test/mask-transformed-similar-svg11-ref.png        |  Bin 4051 -> 0 bytes
 test/mask-transformed-similar-svg12-ref.png        |  Bin 4051 -> 0 bytes
 test/mask-transformed-similar.pdf.ref.png          |  Bin 0 -> 4213 bytes
 test/mask-transformed-similar.ref.png              |  Bin 0 -> 4516 bytes
 test/mask-transformed-similar.svg11.ref.png        |  Bin 0 -> 4051 bytes
 test/mask-transformed-similar.svg12.ref.png        |  Bin 0 -> 4051 bytes
 test/mask.pdf.argb32.ref.png                       |  Bin 0 -> 8881 bytes
 test/mask.pdf.rgb24.ref.png                        |  Bin 0 -> 8267 bytes
 test/mask.quartz.ref.png                           |  Bin 0 -> 10682 bytes
 test/mask.quartz.rgb24.ref.png                     |  Bin 0 -> 8418 bytes
 test/mask.ref.png                                  |  Bin 0 -> 8476 bytes
 test/mask.rgb24.ref.png                            |  Bin 0 -> 7041 bytes
 test/mask.svg11.argb32.ref.png                     |  Bin 0 -> 8527 bytes
 test/mask.svg11.rgb24.ref.png                      |  Bin 0 -> 7935 bytes
 test/mask.svg12.argb32.ref.png                     |  Bin 0 -> 8527 bytes
 test/mask.svg12.rgb24.ref.png                      |  Bin 0 -> 7935 bytes
 test/meta-surface-pattern-pdf-ref.png              |  Bin 4111 -> 0 bytes
 test/meta-surface-pattern-pdf-rgb24-ref.png        |  Bin 4009 -> 0 bytes
 test/meta-surface-pattern-ps2-argb32-ref.png       |  Bin 3257 -> 0 bytes
 test/meta-surface-pattern-ps2-rgb24-ref.png        |  Bin 3873 -> 0 bytes
 test/meta-surface-pattern-ps3-argb32-ref.png       |  Bin 3257 -> 0 bytes
 test/meta-surface-pattern-ps3-rgb24-ref.png        |  Bin 3873 -> 0 bytes
 test/meta-surface-pattern-quartz-ref.png           |  Bin 4572 -> 0 bytes
 test/meta-surface-pattern-quartz-rgb24-ref.png     |  Bin 4063 -> 0 bytes
 test/meta-surface-pattern-ref.png                  |  Bin 3072 -> 0 bytes
 test/meta-surface-pattern-rgb24-ref.png            |  Bin 3162 -> 0 bytes
 test/meta-surface-pattern-svg11-argb32-ref.png     |  Bin 3924 -> 0 bytes
 test/meta-surface-pattern-svg11-rgb24-ref.png      |  Bin 4593 -> 0 bytes
 test/meta-surface-pattern-svg12-argb32-ref.png     |  Bin 3924 -> 0 bytes
 test/meta-surface-pattern-svg12-rgb24-ref.png      |  Bin 4593 -> 0 bytes
 test/meta-surface-pattern.pdf.ref.png              |  Bin 0 -> 4111 bytes
 test/meta-surface-pattern.pdf.rgb24.ref.png        |  Bin 0 -> 4009 bytes
 test/meta-surface-pattern.ps2.argb32.ref.png       |  Bin 0 -> 3257 bytes
 test/meta-surface-pattern.ps2.rgb24.ref.png        |  Bin 0 -> 3873 bytes
 test/meta-surface-pattern.ps3.argb32.ref.png       |  Bin 0 -> 3257 bytes
 test/meta-surface-pattern.ps3.rgb24.ref.png        |  Bin 0 -> 3873 bytes
 test/meta-surface-pattern.quartz.ref.png           |  Bin 0 -> 4572 bytes
 test/meta-surface-pattern.quartz.rgb24.ref.png     |  Bin 0 -> 4063 bytes
 test/meta-surface-pattern.ref.png                  |  Bin 0 -> 3072 bytes
 test/meta-surface-pattern.rgb24.ref.png            |  Bin 0 -> 3162 bytes
 test/meta-surface-pattern.svg11.argb32.ref.png     |  Bin 0 -> 3924 bytes
 test/meta-surface-pattern.svg11.rgb24.ref.png      |  Bin 0 -> 4593 bytes
 test/meta-surface-pattern.svg12.argb32.ref.png     |  Bin 0 -> 3924 bytes
 test/meta-surface-pattern.svg12.rgb24.ref.png      |  Bin 0 -> 4593 bytes
 test/miter-precision-ps2-ref.png                   |  Bin 865 -> 0 bytes
 test/miter-precision-ps3-ref.png                   |  Bin 865 -> 0 bytes
 test/miter-precision-ref.png                       |  Bin 931 -> 0 bytes
 test/miter-precision.ps2.ref.png                   |  Bin 0 -> 865 bytes
 test/miter-precision.ps3.ref.png                   |  Bin 0 -> 865 bytes
 test/miter-precision.ref.png                       |  Bin 0 -> 931 bytes
 test/move-to-show-surface-ref.png                  |  Bin 100 -> 0 bytes
 test/move-to-show-surface.ref.png                  |  Bin 0 -> 100 bytes
 test/multi-page.c                                  |    4 +-
 test/new-sub-path-ps2-argb32-ref.png               |  Bin 556 -> 0 bytes
 test/new-sub-path-ps2-rgb24-ref.png                |  Bin 423 -> 0 bytes
 test/new-sub-path-ps3-argb32-ref.png               |  Bin 556 -> 0 bytes
 test/new-sub-path-ps3-rgb24-ref.png                |  Bin 423 -> 0 bytes
 test/new-sub-path-quartz-ref.png                   |  Bin 383 -> 0 bytes
 test/new-sub-path-quartz-rgb24-ref.png             |  Bin 357 -> 0 bytes
 test/new-sub-path-ref.png                          |  Bin 386 -> 0 bytes
 test/new-sub-path-rgb24-ref.png                    |  Bin 355 -> 0 bytes
 test/new-sub-path.ps2.argb32.ref.png               |  Bin 0 -> 556 bytes
 test/new-sub-path.ps2.rgb24.ref.png                |  Bin 0 -> 423 bytes
 test/new-sub-path.ps3.argb32.ref.png               |  Bin 0 -> 556 bytes
 test/new-sub-path.ps3.rgb24.ref.png                |  Bin 0 -> 423 bytes
 test/new-sub-path.quartz.ref.png                   |  Bin 0 -> 383 bytes
 test/new-sub-path.quartz.rgb24.ref.png             |  Bin 0 -> 357 bytes
 test/new-sub-path.ref.png                          |  Bin 0 -> 386 bytes
 test/new-sub-path.rgb24.ref.png                    |  Bin 0 -> 355 bytes
 test/nil-surface-ref.png                           |  Bin 107 -> 0 bytes
 test/nil-surface-rgb24-ref.png                     |  Bin 106 -> 0 bytes
 test/nil-surface.ref.png                           |  Bin 0 -> 107 bytes
 test/nil-surface.rgb24.ref.png                     |  Bin 0 -> 106 bytes
 test/operator-alpha-ref.png                        |  Bin 280 -> 0 bytes
 test/operator-alpha-rgb24-ref.png                  |  Bin 229 -> 0 bytes
 test/operator-alpha.ref.png                        |  Bin 0 -> 280 bytes
 test/operator-alpha.rgb24.ref.png                  |  Bin 0 -> 229 bytes
 test/operator-clear-pdf-argb32-ref.png             |  Bin 1614 -> 0 bytes
 test/operator-clear-pdf-rgb24-ref.png              |  Bin 1402 -> 0 bytes
 test/operator-clear-quartz-ref.png                 |  Bin 1459 -> 0 bytes
 test/operator-clear-quartz-rgb24-ref.png           |  Bin 1293 -> 0 bytes
 test/operator-clear-ref.png                        |  Bin 1084 -> 0 bytes
 test/operator-clear-rgb24-ref.png                  |  Bin 965 -> 0 bytes
 test/operator-clear.pdf.argb32.ref.png             |  Bin 0 -> 1614 bytes
 test/operator-clear.pdf.rgb24.ref.png              |  Bin 0 -> 1402 bytes
 test/operator-clear.quartz.ref.png                 |  Bin 0 -> 1459 bytes
 test/operator-clear.quartz.rgb24.ref.png           |  Bin 0 -> 1293 bytes
 test/operator-clear.ref.png                        |  Bin 0 -> 1084 bytes
 test/operator-clear.rgb24.ref.png                  |  Bin 0 -> 965 bytes
 test/operator-ref.png                              |  Bin 238 -> 0 bytes
 test/operator-rgb24-ref.png                        |  Bin 217 -> 0 bytes
 test/operator-source-pdf-argb32-ref.png            |  Bin 5149 -> 0 bytes
 test/operator-source-pdf-rgb24-ref.png             |  Bin 4354 -> 0 bytes
 test/operator-source-quartz-ref.png                |  Bin 4637 -> 0 bytes
 test/operator-source-quartz-rgb24-ref.png          |  Bin 3533 -> 0 bytes
 test/operator-source-ref.png                       |  Bin 4420 -> 0 bytes
 test/operator-source-rgb24-ref.png                 |  Bin 3201 -> 0 bytes
 test/operator-source.pdf.argb32.ref.png            |  Bin 0 -> 5149 bytes
 test/operator-source.pdf.rgb24.ref.png             |  Bin 0 -> 4354 bytes
 test/operator-source.quartz.ref.png                |  Bin 0 -> 4637 bytes
 test/operator-source.quartz.rgb24.ref.png          |  Bin 0 -> 3533 bytes
 test/operator-source.ref.png                       |  Bin 0 -> 4420 bytes
 test/operator-source.rgb24.ref.png                 |  Bin 0 -> 3201 bytes
 test/operator.ref.png                              |  Bin 0 -> 238 bytes
 test/operator.rgb24.ref.png                        |  Bin 0 -> 217 bytes
 test/over-above-source-ps2-argb32-ref.png          |  Bin 636 -> 0 bytes
 test/over-above-source-ps3-argb32-ref.png          |  Bin 636 -> 0 bytes
 test/over-above-source-quartz-ref.png              |  Bin 530 -> 0 bytes
 test/over-above-source-quartz-rgb24-ref.png        |  Bin 456 -> 0 bytes
 test/over-above-source-ref.png                     |  Bin 538 -> 0 bytes
 test/over-above-source-rgb24-ref.png               |  Bin 461 -> 0 bytes
 test/over-above-source.ps2.argb32.ref.png          |  Bin 0 -> 636 bytes
 test/over-above-source.ps3.argb32.ref.png          |  Bin 0 -> 636 bytes
 test/over-above-source.quartz.ref.png              |  Bin 0 -> 530 bytes
 test/over-above-source.quartz.rgb24.ref.png        |  Bin 0 -> 456 bytes
 test/over-above-source.ref.png                     |  Bin 0 -> 538 bytes
 test/over-above-source.rgb24.ref.png               |  Bin 0 -> 461 bytes
 test/over-around-source-ps2-argb32-ref.png         |  Bin 632 -> 0 bytes
 test/over-around-source-ps2-rgb24-ref.png          |  Bin 538 -> 0 bytes
 test/over-around-source-ps3-argb32-ref.png         |  Bin 632 -> 0 bytes
 test/over-around-source-ps3-rgb24-ref.png          |  Bin 538 -> 0 bytes
 test/over-around-source-quartz-ref.png             |  Bin 612 -> 0 bytes
 test/over-around-source-quartz-rgb24-ref.png       |  Bin 491 -> 0 bytes
 test/over-around-source-ref.png                    |  Bin 614 -> 0 bytes
 test/over-around-source-rgb24-ref.png              |  Bin 503 -> 0 bytes
 test/over-around-source.ps2.argb32.ref.png         |  Bin 0 -> 632 bytes
 test/over-around-source.ps2.rgb24.ref.png          |  Bin 0 -> 538 bytes
 test/over-around-source.ps3.argb32.ref.png         |  Bin 0 -> 632 bytes
 test/over-around-source.ps3.rgb24.ref.png          |  Bin 0 -> 538 bytes
 test/over-around-source.quartz.ref.png             |  Bin 0 -> 612 bytes
 test/over-around-source.quartz.rgb24.ref.png       |  Bin 0 -> 491 bytes
 test/over-around-source.ref.png                    |  Bin 0 -> 614 bytes
 test/over-around-source.rgb24.ref.png              |  Bin 0 -> 503 bytes
 test/over-below-source-ps2-argb32-ref.png          |  Bin 503 -> 0 bytes
 test/over-below-source-ps3-argb32-ref.png          |  Bin 503 -> 0 bytes
 test/over-below-source-ref.png                     |  Bin 434 -> 0 bytes
 test/over-below-source-rgb24-ref.png               |  Bin 392 -> 0 bytes
 test/over-below-source.ps2.argb32.ref.png          |  Bin 0 -> 503 bytes
 test/over-below-source.ps3.argb32.ref.png          |  Bin 0 -> 503 bytes
 test/over-below-source.ref.png                     |  Bin 0 -> 434 bytes
 test/over-below-source.rgb24.ref.png               |  Bin 0 -> 392 bytes
 test/over-between-source-ps2-argb32-ref.png        |  Bin 678 -> 0 bytes
 test/over-between-source-ps3-argb32-ref.png        |  Bin 678 -> 0 bytes
 test/over-between-source-quartz-ref.png            |  Bin 570 -> 0 bytes
 test/over-between-source-quartz-rgb24-ref.png      |  Bin 467 -> 0 bytes
 test/over-between-source-ref.png                   |  Bin 575 -> 0 bytes
 test/over-between-source-rgb24-ref.png             |  Bin 473 -> 0 bytes
 test/over-between-source.ps2.argb32.ref.png        |  Bin 0 -> 678 bytes
 test/over-between-source.ps3.argb32.ref.png        |  Bin 0 -> 678 bytes
 test/over-between-source.quartz.ref.png            |  Bin 0 -> 570 bytes
 test/over-between-source.quartz.rgb24.ref.png      |  Bin 0 -> 467 bytes
 test/over-between-source.ref.png                   |  Bin 0 -> 575 bytes
 test/over-between-source.rgb24.ref.png             |  Bin 0 -> 473 bytes
 test/paint-ref.png                                 |  Bin 116 -> 0 bytes
 test/paint-repeat-ref.png                          |  Bin 145 -> 0 bytes
 test/paint-repeat.ref.png                          |  Bin 0 -> 145 bytes
 test/paint-source-alpha-pdf-argb32-ref.png         |  Bin 471 -> 0 bytes
 test/paint-source-alpha-pdf-ref.png                |  Bin 473 -> 0 bytes
 test/paint-source-alpha-ref.png                    |  Bin 256 -> 0 bytes
 test/paint-source-alpha-svg11-ref.png              |  Bin 756 -> 0 bytes
 test/paint-source-alpha-svg12-ref.png              |  Bin 505 -> 0 bytes
 test/paint-source-alpha.pdf.argb32.ref.png         |  Bin 0 -> 471 bytes
 test/paint-source-alpha.pdf.ref.png                |  Bin 0 -> 473 bytes
 test/paint-source-alpha.ref.png                    |  Bin 0 -> 256 bytes
 test/paint-source-alpha.svg11.ref.png              |  Bin 0 -> 756 bytes
 test/paint-source-alpha.svg12.ref.png              |  Bin 0 -> 505 bytes
 test/paint-with-alpha-pdf-ref.png                  |  Bin 466 -> 0 bytes
 test/paint-with-alpha-ref.png                      |  Bin 256 -> 0 bytes
 test/paint-with-alpha-svg11-ref.png                |  Bin 516 -> 0 bytes
 test/paint-with-alpha-svg12-ref.png                |  Bin 516 -> 0 bytes
 test/paint-with-alpha.pdf.ref.png                  |  Bin 0 -> 466 bytes
 test/paint-with-alpha.ref.png                      |  Bin 0 -> 256 bytes
 test/paint-with-alpha.svg11.ref.png                |  Bin 0 -> 516 bytes
 test/paint-with-alpha.svg12.ref.png                |  Bin 0 -> 516 bytes
 test/paint.ref.png                                 |  Bin 0 -> 116 bytes
 test/pass-through-ref.png                          |  Bin 221 -> 0 bytes
 test/pass-through-rgb24-ref.png                    |  Bin 179 -> 0 bytes
 test/pass-through.ref.png                          |  Bin 0 -> 221 bytes
 test/pass-through.rgb24.ref.png                    |  Bin 0 -> 179 bytes
 test/pattern-getters-ref.png                       |  Bin 107 -> 0 bytes
 test/pattern-getters.ref.png                       |  Bin 0 -> 107 bytes
 test/pdf-features.c                                |    2 +-
 test/pdf-surface-source-ref.png                    |  Bin 268 -> 0 bytes
 test/pdf-surface-source.c                          |    2 +-
 test/pdf-surface-source.ref.png                    |  Bin 0 -> 268 bytes
 test/pixman-rotate-ref.png                         |  Bin 260 -> 0 bytes
 test/pixman-rotate-rgb24-ref.png                   |  Bin 244 -> 0 bytes
 test/pixman-rotate.ref.png                         |  Bin 0 -> 260 bytes
 test/pixman-rotate.rgb24.ref.png                   |  Bin 0 -> 244 bytes
 test/png.c                                         |    2 +-
 test/ps-features.c                                 |    2 +-
 test/ps-surface-source-ref.png                     |  Bin 268 -> 0 bytes
 test/ps-surface-source.c                           |    2 +-
 test/ps-surface-source.ref.png                     |  Bin 0 -> 268 bytes
 test/push-group-pdf-ref.png                        |  Bin 2807 -> 0 bytes
 test/push-group-pdf-rgb24-ref.png                  |  Bin 2714 -> 0 bytes
 test/push-group-ref.png                            |  Bin 3126 -> 0 bytes
 test/push-group-rgb24-ref.png                      |  Bin 2961 -> 0 bytes
 test/push-group-svg11-argb32-ref.png               |  Bin 2935 -> 0 bytes
 test/push-group-svg12-argb32-ref.png               |  Bin 2935 -> 0 bytes
 test/push-group.pdf.ref.png                        |  Bin 0 -> 2807 bytes
 test/push-group.pdf.rgb24.ref.png                  |  Bin 0 -> 2714 bytes
 test/push-group.ref.png                            |  Bin 0 -> 3126 bytes
 test/push-group.rgb24.ref.png                      |  Bin 0 -> 2961 bytes
 test/push-group.svg11.argb32.ref.png               |  Bin 0 -> 2935 bytes
 test/push-group.svg12.argb32.ref.png               |  Bin 0 -> 2935 bytes
 test/radial-gradient-pdf-ref.png                   |  Bin 79490 -> 0 bytes
 test/radial-gradient-quartz-ref.png                |  Bin 92334 -> 0 bytes
 test/radial-gradient-ref.png                       |  Bin 91159 -> 0 bytes
 test/radial-gradient-svg11-ref.png                 |  Bin 91039 -> 0 bytes
 test/radial-gradient-svg12-ref.png                 |  Bin 91039 -> 0 bytes
 test/radial-gradient.pdf.ref.png                   |  Bin 0 -> 79490 bytes
 test/radial-gradient.quartz.ref.png                |  Bin 0 -> 92334 bytes
 test/radial-gradient.ref.png                       |  Bin 0 -> 91159 bytes
 test/radial-gradient.svg11.ref.png                 |  Bin 0 -> 91039 bytes
 test/radial-gradient.svg12.ref.png                 |  Bin 0 -> 91039 bytes
 test/random-intersections-ps2-ref.png              |  Bin 89253 -> 0 bytes
 test/random-intersections-ps3-ref.png              |  Bin 89253 -> 0 bytes
 test/random-intersections-quartz-ref.png           |  Bin 197778 -> 0 bytes
 test/random-intersections-ref.png                  |  Bin 148722 -> 0 bytes
 test/random-intersections.ps2.ref.png              |  Bin 0 -> 89253 bytes
 test/random-intersections.ps3.ref.png              |  Bin 0 -> 89253 bytes
 test/random-intersections.quartz.ref.png           |  Bin 0 -> 197778 bytes
 test/random-intersections.ref.png                  |  Bin 0 -> 148722 bytes
 test/rectangle-rounding-error-ref.png              |  Bin 231 -> 0 bytes
 test/rectangle-rounding-error.ref.png              |  Bin 0 -> 231 bytes
 test/rectilinear-fill-ref.png                      |  Bin 162 -> 0 bytes
 test/rectilinear-fill.ref.png                      |  Bin 0 -> 162 bytes
 test/rectilinear-miter-limit-ps2-ref.png           |  Bin 221 -> 0 bytes
 test/rectilinear-miter-limit-ps3-ref.png           |  Bin 221 -> 0 bytes
 test/rectilinear-miter-limit-ref.png               |  Bin 177 -> 0 bytes
 test/rectilinear-miter-limit.ps2.ref.png           |  Bin 0 -> 221 bytes
 test/rectilinear-miter-limit.ps3.ref.png           |  Bin 0 -> 221 bytes
 test/rectilinear-miter-limit.ref.png               |  Bin 0 -> 177 bytes
 test/rectilinear-stroke-ref.png                    |  Bin 213 -> 0 bytes
 test/rectilinear-stroke.ref.png                    |  Bin 0 -> 213 bytes
 test/reflected-stroke-ps2-ref.png                  |  Bin 3898 -> 0 bytes
 test/reflected-stroke-ps3-ref.png                  |  Bin 3898 -> 0 bytes
 test/reflected-stroke-quartz-ref.png               |  Bin 5293 -> 0 bytes
 test/reflected-stroke-ref.png                      |  Bin 5704 -> 0 bytes
 test/reflected-stroke.ps2.ref.png                  |  Bin 0 -> 3898 bytes
 test/reflected-stroke.ps3.ref.png                  |  Bin 0 -> 3898 bytes
 test/reflected-stroke.quartz.ref.png               |  Bin 0 -> 5293 bytes
 test/reflected-stroke.ref.png                      |  Bin 0 -> 5704 bytes
 test/rel-path-ps2-rgb24-ref.png                    |  Bin 243 -> 0 bytes
 test/rel-path-ps3-rgb24-ref.png                    |  Bin 243 -> 0 bytes
 test/rel-path-quartz-ref.png                       |  Bin 212 -> 0 bytes
 test/rel-path-quartz-rgb24-ref.png                 |  Bin 228 -> 0 bytes
 test/rel-path-ref.png                              |  Bin 212 -> 0 bytes
 test/rel-path-rgb24-ref.png                        |  Bin 228 -> 0 bytes
 test/rel-path.ps2.rgb24.ref.png                    |  Bin 0 -> 243 bytes
 test/rel-path.ps3.rgb24.ref.png                    |  Bin 0 -> 243 bytes
 test/rel-path.quartz.ref.png                       |  Bin 0 -> 212 bytes
 test/rel-path.quartz.rgb24.ref.png                 |  Bin 0 -> 228 bytes
 test/rel-path.ref.png                              |  Bin 0 -> 212 bytes
 test/rel-path.rgb24.ref.png                        |  Bin 0 -> 228 bytes
 test/rgb24-ignore-alpha-ref.png                    |  Bin 116 -> 0 bytes
 test/rgb24-ignore-alpha.ref.png                    |  Bin 0 -> 116 bytes
 test/rotate-image-surface-paint-pdf-argb32-ref.png |  Bin 209 -> 0 bytes
 test/rotate-image-surface-paint-pdf-rgb24-ref.png  |  Bin 207 -> 0 bytes
 test/rotate-image-surface-paint-ps2-ref.png        |  Bin 212 -> 0 bytes
 test/rotate-image-surface-paint-ps3-ref.png        |  Bin 212 -> 0 bytes
 test/rotate-image-surface-paint-quartz-ref.png     |  Bin 257 -> 0 bytes
 test/rotate-image-surface-paint-ref.png            |  Bin 232 -> 0 bytes
 test/rotate-image-surface-paint-svg11-ref.png      |  Bin 248 -> 0 bytes
 test/rotate-image-surface-paint-svg12-ref.png      |  Bin 248 -> 0 bytes
 test/rotate-image-surface-paint.pdf.argb32.ref.png |  Bin 0 -> 209 bytes
 test/rotate-image-surface-paint.pdf.rgb24.ref.png  |  Bin 0 -> 207 bytes
 test/rotate-image-surface-paint.ps2.ref.png        |  Bin 0 -> 212 bytes
 test/rotate-image-surface-paint.ps3.ref.png        |  Bin 0 -> 212 bytes
 test/rotate-image-surface-paint.quartz.ref.png     |  Bin 0 -> 257 bytes
 test/rotate-image-surface-paint.ref.png            |  Bin 0 -> 232 bytes
 test/rotate-image-surface-paint.svg11.ref.png      |  Bin 0 -> 248 bytes
 test/rotate-image-surface-paint.svg12.ref.png      |  Bin 0 -> 248 bytes
 test/scale-down-source-surface-paint-ref.png       |  Bin 133 -> 0 bytes
 test/scale-down-source-surface-paint.ref.png       |  Bin 0 -> 133 bytes
 test/scale-source-surface-paint-pdf-argb32-ref.png |  Bin 182 -> 0 bytes
 test/scale-source-surface-paint-pdf-rgb24-ref.png  |  Bin 198 -> 0 bytes
 test/scale-source-surface-paint-ref.png            |  Bin 147 -> 0 bytes
 test/scale-source-surface-paint-rgb24-ref.png      |  Bin 136 -> 0 bytes
 ...scale-source-surface-paint-svg11-argb32-ref.png |  Bin 229 -> 0 bytes
 .../scale-source-surface-paint-svg11-rgb24-ref.png |  Bin 243 -> 0 bytes
 ...scale-source-surface-paint-svg12-argb32-ref.png |  Bin 229 -> 0 bytes
 .../scale-source-surface-paint-svg12-rgb24-ref.png |  Bin 243 -> 0 bytes
 test/scale-source-surface-paint.pdf.argb32.ref.png |  Bin 0 -> 182 bytes
 test/scale-source-surface-paint.pdf.rgb24.ref.png  |  Bin 0 -> 198 bytes
 test/scale-source-surface-paint.ref.png            |  Bin 0 -> 147 bytes
 test/scale-source-surface-paint.rgb24.ref.png      |  Bin 0 -> 136 bytes
 ...scale-source-surface-paint.svg11.argb32.ref.png |  Bin 0 -> 229 bytes
 .../scale-source-surface-paint.svg11.rgb24.ref.png |  Bin 0 -> 243 bytes
 ...scale-source-surface-paint.svg12.argb32.ref.png |  Bin 0 -> 229 bytes
 .../scale-source-surface-paint.svg12.rgb24.ref.png |  Bin 0 -> 243 bytes
 test/select-font-face-ps2-ref.png                  |  Bin 959 -> 0 bytes
 test/select-font-face-ps3-ref.png                  |  Bin 959 -> 0 bytes
 test/select-font-face-quartz-ref.png               |  Bin 2970 -> 0 bytes
 test/select-font-face-ref.png                      |  Bin 2473 -> 0 bytes
 test/select-font-face.ps2.ref.png                  |  Bin 0 -> 959 bytes
 test/select-font-face.ps3.ref.png                  |  Bin 0 -> 959 bytes
 test/select-font-face.quartz.ref.png               |  Bin 0 -> 2970 bytes
 test/select-font-face.ref.png                      |  Bin 0 -> 2473 bytes
 test/self-copy-overlap-ref.png                     |  Bin 1140 -> 0 bytes
 test/self-copy-overlap-rgb24-ref.png               |  Bin 608 -> 0 bytes
 test/self-copy-overlap.ref.png                     |  Bin 0 -> 1140 bytes
 test/self-copy-overlap.rgb24.ref.png               |  Bin 0 -> 608 bytes
 test/self-copy-ps2-ref.png                         |  Bin 335 -> 0 bytes
 test/self-copy-ps3-ref.png                         |  Bin 335 -> 0 bytes
 test/self-copy-ref.png                             |  Bin 291 -> 0 bytes
 test/self-copy.ps2.ref.png                         |  Bin 0 -> 335 bytes
 test/self-copy.ps3.ref.png                         |  Bin 0 -> 335 bytes
 test/self-copy.ref.png                             |  Bin 0 -> 291 bytes
 test/self-intersecting-ref.png                     |  Bin 242 -> 0 bytes
 test/self-intersecting-rgb24-ref.png               |  Bin 304 -> 0 bytes
 test/self-intersecting.ref.png                     |  Bin 0 -> 242 bytes
 test/self-intersecting.rgb24.ref.png               |  Bin 0 -> 304 bytes
 test/set-source-ref.png                            |  Bin 120 -> 0 bytes
 test/set-source-rgb24-ref.png                      |  Bin 120 -> 0 bytes
 test/set-source-svg11-argb32-ref.png               |  Bin 104 -> 0 bytes
 test/set-source-svg12-argb32-ref.png               |  Bin 104 -> 0 bytes
 test/set-source.ref.png                            |  Bin 0 -> 120 bytes
 test/set-source.rgb24.ref.png                      |  Bin 0 -> 120 bytes
 test/set-source.svg11.argb32.ref.png               |  Bin 0 -> 104 bytes
 test/set-source.svg12.argb32.ref.png               |  Bin 0 -> 104 bytes
 test/show-glyphs-many-ref.png                      |  Bin 118 -> 0 bytes
 test/show-glyphs-many.ref.png                      |  Bin 0 -> 118 bytes
 test/show-text-current-point-ps2-ref.png           |  Bin 1356 -> 0 bytes
 test/show-text-current-point-ps3-ref.png           |  Bin 1356 -> 0 bytes
 test/show-text-current-point-quartz-ref.png        |  Bin 3093 -> 0 bytes
 test/show-text-current-point-ref.png               |  Bin 2411 -> 0 bytes
 test/show-text-current-point.ps2.ref.png           |  Bin 0 -> 1356 bytes
 test/show-text-current-point.ps3.ref.png           |  Bin 0 -> 1356 bytes
 test/show-text-current-point.quartz.ref.png        |  Bin 0 -> 3093 bytes
 test/show-text-current-point.ref.png               |  Bin 0 -> 2411 bytes
 test/skew-extreme-ps2-ref.png                      |  Bin 1048 -> 0 bytes
 test/skew-extreme-ps3-ref.png                      |  Bin 1048 -> 0 bytes
 test/skew-extreme-ref.png                          |  Bin 1012 -> 0 bytes
 test/skew-extreme.ps2.ref.png                      |  Bin 0 -> 1048 bytes
 test/skew-extreme.ps3.ref.png                      |  Bin 0 -> 1048 bytes
 test/skew-extreme.ref.png                          |  Bin 0 -> 1012 bytes
 test/smask-fill-pdf-ref.png                        |  Bin 1075 -> 0 bytes
 test/smask-fill-ref.png                            |  Bin 1223 -> 0 bytes
 test/smask-fill-svg11-ref.png                      |  Bin 1166 -> 0 bytes
 test/smask-fill-svg12-ref.png                      |  Bin 1166 -> 0 bytes
 test/smask-fill.pdf.ref.png                        |  Bin 0 -> 1075 bytes
 test/smask-fill.ref.png                            |  Bin 0 -> 1223 bytes
 test/smask-fill.svg11.ref.png                      |  Bin 0 -> 1166 bytes
 test/smask-fill.svg12.ref.png                      |  Bin 0 -> 1166 bytes
 test/smask-image-mask-pdf-ref.png                  |  Bin 421 -> 0 bytes
 test/smask-image-mask-ref.png                      |  Bin 643 -> 0 bytes
 test/smask-image-mask.pdf.ref.png                  |  Bin 0 -> 421 bytes
 test/smask-image-mask.ref.png                      |  Bin 0 -> 643 bytes
 test/smask-mask-pdf-ref.png                        |  Bin 3731 -> 0 bytes
 test/smask-mask-ref.png                            |  Bin 2523 -> 0 bytes
 test/smask-mask-svg11-ref.png                      |  Bin 2529 -> 0 bytes
 test/smask-mask-svg12-ref.png                      |  Bin 2529 -> 0 bytes
 test/smask-mask.pdf.ref.png                        |  Bin 0 -> 3731 bytes
 test/smask-mask.ref.png                            |  Bin 0 -> 2523 bytes
 test/smask-mask.svg11.ref.png                      |  Bin 0 -> 2529 bytes
 test/smask-mask.svg12.ref.png                      |  Bin 0 -> 2529 bytes
 test/smask-paint-pdf-ref.png                       |  Bin 3800 -> 0 bytes
 test/smask-paint-ref.png                           |  Bin 2639 -> 0 bytes
 test/smask-paint-svg11-ref.png                     |  Bin 2612 -> 0 bytes
 test/smask-paint-svg12-ref.png                     |  Bin 2612 -> 0 bytes
 test/smask-paint.pdf.ref.png                       |  Bin 0 -> 3800 bytes
 test/smask-paint.ref.png                           |  Bin 0 -> 2639 bytes
 test/smask-paint.svg11.ref.png                     |  Bin 0 -> 2612 bytes
 test/smask-paint.svg12.ref.png                     |  Bin 0 -> 2612 bytes
 test/smask-pdf-ref.png                             |  Bin 3800 -> 0 bytes
 test/smask-ps2-ref.png                             |  Bin 3669 -> 0 bytes
 test/smask-ps3-ref.png                             |  Bin 3669 -> 0 bytes
 test/smask-ref.png                                 |  Bin 3587 -> 0 bytes
 test/smask-stroke-pdf-ref.png                      |  Bin 449 -> 0 bytes
 test/smask-stroke-ref.png                          |  Bin 1845 -> 0 bytes
 test/smask-stroke.pdf.ref.png                      |  Bin 0 -> 449 bytes
 test/smask-stroke.ref.png                          |  Bin 0 -> 1845 bytes
 test/smask-svg11-ref.png                           |  Bin 3634 -> 0 bytes
 test/smask-svg12-ref.png                           |  Bin 3634 -> 0 bytes
 test/smask-text-pdf-ref.png                        |  Bin 1806 -> 0 bytes
 test/smask-text-ps2-ref.png                        |  Bin 2023 -> 0 bytes
 test/smask-text-ps3-ref.png                        |  Bin 2023 -> 0 bytes
 test/smask-text-ref.png                            |  Bin 1777 -> 0 bytes
 test/smask-text-svg11-ref.png                      |  Bin 1886 -> 0 bytes
 test/smask-text-svg12-ref.png                      |  Bin 1886 -> 0 bytes
 test/smask-text.pdf.ref.png                        |  Bin 0 -> 1806 bytes
 test/smask-text.ps2.ref.png                        |  Bin 0 -> 2023 bytes
 test/smask-text.ps3.ref.png                        |  Bin 0 -> 2023 bytes
 test/smask-text.ref.png                            |  Bin 0 -> 1777 bytes
 test/smask-text.svg11.ref.png                      |  Bin 0 -> 1886 bytes
 test/smask-text.svg12.ref.png                      |  Bin 0 -> 1886 bytes
 test/smask.pdf.ref.png                             |  Bin 0 -> 3800 bytes
 test/smask.ps2.ref.png                             |  Bin 0 -> 3669 bytes
 test/smask.ps3.ref.png                             |  Bin 0 -> 3669 bytes
 test/smask.ref.png                                 |  Bin 0 -> 3587 bytes
 test/smask.svg11.ref.png                           |  Bin 0 -> 3634 bytes
 test/smask.svg12.ref.png                           |  Bin 0 -> 3634 bytes
 test/solid-pattern-cache-stress-ref.png            |  Bin 107 -> 0 bytes
 test/solid-pattern-cache-stress.ref.png            |  Bin 0 -> 107 bytes
 test/source-clip-ref.png                           |  Bin 133 -> 0 bytes
 test/source-clip-scale-pdf-ref.png                 |  Bin 113 -> 0 bytes
 test/source-clip-scale-ps2-argb32-ref.png          |  Bin 183 -> 0 bytes
 test/source-clip-scale-ps2-rgb24-ref.png           |  Bin 183 -> 0 bytes
 test/source-clip-scale-ps3-argb32-ref.png          |  Bin 183 -> 0 bytes
 test/source-clip-scale-ps3-rgb24-ref.png           |  Bin 183 -> 0 bytes
 test/source-clip-scale-quartz-ref.png              |  Bin 148 -> 0 bytes
 test/source-clip-scale-ref.png                     |  Bin 161 -> 0 bytes
 test/source-clip-scale-svg11-ref.png               |  Bin 119 -> 0 bytes
 test/source-clip-scale-svg12-ref.png               |  Bin 119 -> 0 bytes
 test/source-clip-scale.pdf.ref.png                 |  Bin 0 -> 113 bytes
 test/source-clip-scale.ps2.argb32.ref.png          |  Bin 0 -> 183 bytes
 test/source-clip-scale.ps2.rgb24.ref.png           |  Bin 0 -> 183 bytes
 test/source-clip-scale.ps3.argb32.ref.png          |  Bin 0 -> 183 bytes
 test/source-clip-scale.ps3.rgb24.ref.png           |  Bin 0 -> 183 bytes
 test/source-clip-scale.quartz.ref.png              |  Bin 0 -> 148 bytes
 test/source-clip-scale.ref.png                     |  Bin 0 -> 161 bytes
 test/source-clip-scale.svg11.ref.png               |  Bin 0 -> 119 bytes
 test/source-clip-scale.svg12.ref.png               |  Bin 0 -> 119 bytes
 test/source-clip.ref.png                           |  Bin 0 -> 133 bytes
 test/source-surface-scale-paint-ref.png            |  Bin 139 -> 0 bytes
 test/source-surface-scale-paint-rgb24-ref.png      |  Bin 133 -> 0 bytes
 test/source-surface-scale-paint.ref.png            |  Bin 0 -> 139 bytes
 test/source-surface-scale-paint.rgb24.ref.png      |  Bin 0 -> 133 bytes
 test/spline-decomposition-pdf-ref.png              |  Bin 20404 -> 0 bytes
 test/spline-decomposition-ps2-ref.png              |  Bin 8957 -> 0 bytes
 test/spline-decomposition-ps3-ref.png              |  Bin 8957 -> 0 bytes
 test/spline-decomposition-ref.png                  |  Bin 20402 -> 0 bytes
 test/spline-decomposition-svg11-ref.png            |  Bin 20404 -> 0 bytes
 test/spline-decomposition-svg12-ref.png            |  Bin 20404 -> 0 bytes
 test/spline-decomposition.pdf.ref.png              |  Bin 0 -> 20404 bytes
 test/spline-decomposition.ps2.ref.png              |  Bin 0 -> 8957 bytes
 test/spline-decomposition.ps3.ref.png              |  Bin 0 -> 8957 bytes
 test/spline-decomposition.ref.png                  |  Bin 0 -> 20402 bytes
 test/spline-decomposition.svg11.ref.png            |  Bin 0 -> 20404 bytes
 test/spline-decomposition.svg12.ref.png            |  Bin 0 -> 20404 bytes
 test/stroke-ctm-caps-ps2-ref.png                   |  Bin 1079 -> 0 bytes
 test/stroke-ctm-caps-ps3-ref.png                   |  Bin 1079 -> 0 bytes
 test/stroke-ctm-caps-quartz-ref.png                |  Bin 1109 -> 0 bytes
 test/stroke-ctm-caps-ref.png                       |  Bin 1057 -> 0 bytes
 test/stroke-ctm-caps.ps2.ref.png                   |  Bin 0 -> 1079 bytes
 test/stroke-ctm-caps.ps3.ref.png                   |  Bin 0 -> 1079 bytes
 test/stroke-ctm-caps.quartz.ref.png                |  Bin 0 -> 1109 bytes
 test/stroke-ctm-caps.ref.png                       |  Bin 0 -> 1057 bytes
 test/stroke-image-pdf-ref.png                      |  Bin 1554 -> 0 bytes
 test/stroke-image-ps2-ref.png                      |  Bin 2121 -> 0 bytes
 test/stroke-image-ps3-ref.png                      |  Bin 2121 -> 0 bytes
 test/stroke-image-quartz-ref.png                   |  Bin 1802 -> 0 bytes
 test/stroke-image-ref.png                          |  Bin 1866 -> 0 bytes
 test/stroke-image.pdf.ref.png                      |  Bin 0 -> 1554 bytes
 test/stroke-image.ps2.ref.png                      |  Bin 0 -> 2121 bytes
 test/stroke-image.ps3.ref.png                      |  Bin 0 -> 2121 bytes
 test/stroke-image.quartz.ref.png                   |  Bin 0 -> 1802 bytes
 test/stroke-image.ref.png                          |  Bin 0 -> 1866 bytes
 test/surface-pattern-big-scale-down-ref.png        |  Bin 226 -> 0 bytes
 test/surface-pattern-big-scale-down.ref.png        |  Bin 0 -> 226 bytes
 test/surface-pattern-pdf-ref.png                   |  Bin 15996 -> 0 bytes
 test/surface-pattern-ps2-ref.png                   |  Bin 2364 -> 0 bytes
 test/surface-pattern-ps3-ref.png                   |  Bin 2364 -> 0 bytes
 test/surface-pattern-ref.png                       |  Bin 11439 -> 0 bytes
 test/surface-pattern-scale-down-pdf-argb32-ref.png |  Bin 2386 -> 0 bytes
 test/surface-pattern-scale-down-pdf-rgb24-ref.png  |  Bin 2386 -> 0 bytes
 test/surface-pattern-scale-down-ps2-ref.png        |  Bin 1324 -> 0 bytes
 test/surface-pattern-scale-down-ps3-ref.png        |  Bin 1324 -> 0 bytes
 test/surface-pattern-scale-down-quartz-ref.png     |  Bin 3188 -> 0 bytes
 test/surface-pattern-scale-down-ref.png            |  Bin 1784 -> 0 bytes
 test/surface-pattern-scale-down.pdf.argb32.ref.png |  Bin 0 -> 2386 bytes
 test/surface-pattern-scale-down.pdf.rgb24.ref.png  |  Bin 0 -> 2386 bytes
 test/surface-pattern-scale-down.ps2.ref.png        |  Bin 0 -> 1324 bytes
 test/surface-pattern-scale-down.ps3.ref.png        |  Bin 0 -> 1324 bytes
 test/surface-pattern-scale-down.quartz.ref.png     |  Bin 0 -> 3188 bytes
 test/surface-pattern-scale-down.ref.png            |  Bin 0 -> 1784 bytes
 test/surface-pattern-scale-up-pdf-argb32-ref.png   |  Bin 4247 -> 0 bytes
 test/surface-pattern-scale-up-pdf-rgb24-ref.png    |  Bin 4247 -> 0 bytes
 test/surface-pattern-scale-up-ps2-ref.png          |  Bin 943 -> 0 bytes
 test/surface-pattern-scale-up-ps3-ref.png          |  Bin 943 -> 0 bytes
 test/surface-pattern-scale-up-ref.png              |  Bin 4061 -> 0 bytes
 test/surface-pattern-scale-up.pdf.argb32.ref.png   |  Bin 0 -> 4247 bytes
 test/surface-pattern-scale-up.pdf.rgb24.ref.png    |  Bin 0 -> 4247 bytes
 test/surface-pattern-scale-up.ps2.ref.png          |  Bin 0 -> 943 bytes
 test/surface-pattern-scale-up.ps3.ref.png          |  Bin 0 -> 943 bytes
 test/surface-pattern-scale-up.ref.png              |  Bin 0 -> 4061 bytes
 test/surface-pattern-svg11-ref.png                 |  Bin 17663 -> 0 bytes
 test/surface-pattern-svg12-ref.png                 |  Bin 17663 -> 0 bytes
 test/surface-pattern.pdf.ref.png                   |  Bin 0 -> 15996 bytes
 test/surface-pattern.ps2.ref.png                   |  Bin 0 -> 2364 bytes
 test/surface-pattern.ps3.ref.png                   |  Bin 0 -> 2364 bytes
 test/surface-pattern.ref.png                       |  Bin 0 -> 11439 bytes
 test/surface-pattern.svg11.ref.png                 |  Bin 0 -> 17663 bytes
 test/surface-pattern.svg12.ref.png                 |  Bin 0 -> 17663 bytes
 test/svg-clip.c                                    |    2 +-
 test/svg-surface-source-ref.png                    |  Bin 268 -> 0 bytes
 test/svg-surface-source.c                          |    2 +-
 test/svg-surface-source.ref.png                    |  Bin 0 -> 268 bytes
 test/svg-surface.c                                 |    2 +-
 test/text-antialias-gray-quartz-ref.png            |  Bin 1041 -> 0 bytes
 test/text-antialias-gray-ref.png                   |  Bin 1084 -> 0 bytes
 test/text-antialias-gray.quartz.ref.png            |  Bin 0 -> 1041 bytes
 test/text-antialias-gray.ref.png                   |  Bin 0 -> 1084 bytes
 test/text-antialias-none-quartz-ref.png            |  Bin 300 -> 0 bytes
 test/text-antialias-none-ref.png                   |  Bin 298 -> 0 bytes
 test/text-antialias-none.quartz.ref.png            |  Bin 0 -> 300 bytes
 test/text-antialias-none.ref.png                   |  Bin 0 -> 298 bytes
 test/text-antialias-subpixel-quartz-ref.png        |  Bin 1065 -> 0 bytes
 test/text-antialias-subpixel-ref.png               |  Bin 1102 -> 0 bytes
 test/text-antialias-subpixel.quartz.ref.png        |  Bin 0 -> 1065 bytes
 test/text-antialias-subpixel.ref.png               |  Bin 0 -> 1102 bytes
 test/text-glyph-range-ps2-ref.png                  |  Bin 1389 -> 0 bytes
 test/text-glyph-range-ps3-ref.png                  |  Bin 1389 -> 0 bytes
 test/text-glyph-range-ref.png                      |  Bin 2211 -> 0 bytes
 test/text-glyph-range.ps2.ref.png                  |  Bin 0 -> 1389 bytes
 test/text-glyph-range.ps3.ref.png                  |  Bin 0 -> 1389 bytes
 test/text-glyph-range.ref.png                      |  Bin 0 -> 2211 bytes
 test/text-pattern-pdf-argb32-ref.png               |  Bin 1823 -> 0 bytes
 test/text-pattern-pdf-rgb24-ref.png                |  Bin 508 -> 0 bytes
 test/text-pattern-ps3-argb32-ref.png               |  Bin 966 -> 0 bytes
 test/text-pattern-ps3-rgb24-ref.png                |  Bin 924 -> 0 bytes
 test/text-pattern-quartz-ref.png                   |  Bin 2158 -> 0 bytes
 test/text-pattern-quartz-rgb24-ref.png             |  Bin 1874 -> 0 bytes
 test/text-pattern-ref.png                          |  Bin 1717 -> 0 bytes
 test/text-pattern-rgb24-ref.png                    |  Bin 1414 -> 0 bytes
 test/text-pattern-svg11-argb32-ref.png             |  Bin 1733 -> 0 bytes
 test/text-pattern-svg11-rgb24-ref.png              |  Bin 1563 -> 0 bytes
 test/text-pattern-svg12-argb32-ref.png             |  Bin 1733 -> 0 bytes
 test/text-pattern-svg12-rgb24-ref.png              |  Bin 1563 -> 0 bytes
 test/text-pattern.pdf.argb32.ref.png               |  Bin 0 -> 1823 bytes
 test/text-pattern.pdf.rgb24.ref.png                |  Bin 0 -> 508 bytes
 test/text-pattern.ps3.argb32.ref.png               |  Bin 0 -> 966 bytes
 test/text-pattern.ps3.rgb24.ref.png                |  Bin 0 -> 924 bytes
 test/text-pattern.quartz.ref.png                   |  Bin 0 -> 2158 bytes
 test/text-pattern.quartz.rgb24.ref.png             |  Bin 0 -> 1874 bytes
 test/text-pattern.ref.png                          |  Bin 0 -> 1717 bytes
 test/text-pattern.rgb24.ref.png                    |  Bin 0 -> 1414 bytes
 test/text-pattern.svg11.argb32.ref.png             |  Bin 0 -> 1733 bytes
 test/text-pattern.svg11.rgb24.ref.png              |  Bin 0 -> 1563 bytes
 test/text-pattern.svg12.argb32.ref.png             |  Bin 0 -> 1733 bytes
 test/text-pattern.svg12.rgb24.ref.png              |  Bin 0 -> 1563 bytes
 test/text-rotate-pdf-ref.png                       |  Bin 16639 -> 0 bytes
 test/text-rotate-ps2-ref.png                       |  Bin 6851 -> 0 bytes
 test/text-rotate-ps3-ref.png                       |  Bin 6851 -> 0 bytes
 test/text-rotate-quartz-ref.png                    |  Bin 17820 -> 0 bytes
 test/text-rotate-ref.png                           |  Bin 17775 -> 0 bytes
 test/text-rotate-svg11-ref.png                     |  Bin 18301 -> 0 bytes
 test/text-rotate-svg12-ref.png                     |  Bin 18301 -> 0 bytes
 test/text-rotate.pdf.ref.png                       |  Bin 0 -> 16639 bytes
 test/text-rotate.ps2.ref.png                       |  Bin 0 -> 6851 bytes
 test/text-rotate.ps3.ref.png                       |  Bin 0 -> 6851 bytes
 test/text-rotate.quartz.ref.png                    |  Bin 0 -> 17820 bytes
 test/text-rotate.ref.png                           |  Bin 0 -> 17775 bytes
 test/text-rotate.svg11.ref.png                     |  Bin 0 -> 18301 bytes
 test/text-rotate.svg12.ref.png                     |  Bin 0 -> 18301 bytes
 test/text-transform-pdf-ref.png                    |  Bin 3796 -> 0 bytes
 test/text-transform-ps2-ref.png                    |  Bin 4154 -> 0 bytes
 test/text-transform-ps3-ref.png                    |  Bin 4154 -> 0 bytes
 test/text-transform-ref.png                        |  Bin 6200 -> 0 bytes
 test/text-transform.pdf.ref.png                    |  Bin 0 -> 3796 bytes
 test/text-transform.ps2.ref.png                    |  Bin 0 -> 4154 bytes
 test/text-transform.ps3.ref.png                    |  Bin 0 -> 4154 bytes
 test/text-transform.ref.png                        |  Bin 0 -> 6200 bytes
 test/transforms-ps2-ref.png                        |  Bin 418 -> 0 bytes
 test/transforms-ps3-ref.png                        |  Bin 418 -> 0 bytes
 test/transforms-ref.png                            |  Bin 361 -> 0 bytes
 test/transforms.ps2.ref.png                        |  Bin 0 -> 418 bytes
 test/transforms.ps3.ref.png                        |  Bin 0 -> 418 bytes
 test/transforms.ref.png                            |  Bin 0 -> 361 bytes
 test/translate-show-surface-ref.png                |  Bin 100 -> 0 bytes
 test/translate-show-surface.ref.png                |  Bin 0 -> 100 bytes
 test/trap-clip-pdf-argb32-ref.png                  |  Bin 5809 -> 0 bytes
 test/trap-clip-pdf-rgb24-ref.png                   |  Bin 5768 -> 0 bytes
 test/trap-clip-ps2-argb32-ref.png                  |  Bin 5690 -> 0 bytes
 test/trap-clip-ps2-rgb24-ref.png                   |  Bin 5617 -> 0 bytes
 test/trap-clip-ps3-argb32-ref.png                  |  Bin 5591 -> 0 bytes
 test/trap-clip-ps3-rgb24-ref.png                   |  Bin 5512 -> 0 bytes
 test/trap-clip-quartz-ref.png                      |  Bin 6041 -> 0 bytes
 test/trap-clip-quartz-rgb24-ref.png                |  Bin 5385 -> 0 bytes
 test/trap-clip-ref.png                             |  Bin 5772 -> 0 bytes
 test/trap-clip-rgb24-ref.png                       |  Bin 5365 -> 0 bytes
 test/trap-clip.pdf.argb32.ref.png                  |  Bin 0 -> 5809 bytes
 test/trap-clip.pdf.rgb24.ref.png                   |  Bin 0 -> 5768 bytes
 test/trap-clip.ps2.argb32.ref.png                  |  Bin 0 -> 5690 bytes
 test/trap-clip.ps2.rgb24.ref.png                   |  Bin 0 -> 5617 bytes
 test/trap-clip.ps3.argb32.ref.png                  |  Bin 0 -> 5591 bytes
 test/trap-clip.ps3.rgb24.ref.png                   |  Bin 0 -> 5512 bytes
 test/trap-clip.quartz.ref.png                      |  Bin 0 -> 6041 bytes
 test/trap-clip.quartz.rgb24.ref.png                |  Bin 0 -> 5385 bytes
 test/trap-clip.ref.png                             |  Bin 0 -> 5772 bytes
 test/trap-clip.rgb24.ref.png                       |  Bin 0 -> 5365 bytes
 test/twin-ps2-ref.png                              |  Bin 1167 -> 0 bytes
 test/twin-ps3-ref.png                              |  Bin 1167 -> 0 bytes
 test/twin-ref.png                                  |  Bin 1836 -> 0 bytes
 test/twin-svg11-ref.png                            |  Bin 1773 -> 0 bytes
 test/twin-svg12-ref.png                            |  Bin 1773 -> 0 bytes
 test/twin.ps2.ref.png                              |  Bin 0 -> 1167 bytes
 test/twin.ps3.ref.png                              |  Bin 0 -> 1167 bytes
 test/twin.ref.png                                  |  Bin 0 -> 1836 bytes
 test/twin.svg11.ref.png                            |  Bin 0 -> 1773 bytes
 test/twin.svg12.ref.png                            |  Bin 0 -> 1773 bytes
 test/unantialiased-shapes-quartz-ref.png           |  Bin 4394 -> 0 bytes
 test/unantialiased-shapes-ref.png                  |  Bin 4459 -> 0 bytes
 test/unantialiased-shapes.quartz.ref.png           |  Bin 0 -> 4394 bytes
 test/unantialiased-shapes.ref.png                  |  Bin 0 -> 4459 bytes
 test/unbounded-operator-quartz-ref.png             |  Bin 4066 -> 0 bytes
 test/unbounded-operator-quartz-rgb24-ref.png       |  Bin 1918 -> 0 bytes
 test/unbounded-operator-ref.png                    |  Bin 2777 -> 0 bytes
 test/unbounded-operator-rgb24-ref.png              |  Bin 1315 -> 0 bytes
 test/unbounded-operator.quartz.ref.png             |  Bin 0 -> 4066 bytes
 test/unbounded-operator.quartz.rgb24.ref.png       |  Bin 0 -> 1918 bytes
 test/unbounded-operator.ref.png                    |  Bin 0 -> 2777 bytes
 test/unbounded-operator.rgb24.ref.png              |  Bin 0 -> 1315 bytes
 test/user-font-mask-pdf-ref.png                    |  Bin 1927 -> 0 bytes
 test/user-font-mask-ps2-ref.png                    |  Bin 1927 -> 0 bytes
 test/user-font-mask-ps3-ref.png                    |  Bin 1927 -> 0 bytes
 test/user-font-mask-ref.png                        |  Bin 6011 -> 0 bytes
 test/user-font-mask-svg11-ref.png                  |  Bin 2224 -> 0 bytes
 test/user-font-mask.pdf.ref.png                    |  Bin 0 -> 1927 bytes
 test/user-font-mask.ps2.ref.png                    |  Bin 0 -> 1927 bytes
 test/user-font-mask.ps3.ref.png                    |  Bin 0 -> 1927 bytes
 test/user-font-mask.ref.png                        |  Bin 0 -> 6011 bytes
 test/user-font-mask.svg11.ref.png                  |  Bin 0 -> 2224 bytes
 test/user-font-proxy-pdf-ref.png                   |  Bin 18111 -> 0 bytes
 test/user-font-proxy-ps2-ref.png                   |  Bin 8171 -> 0 bytes
 test/user-font-proxy-ps3-ref.png                   |  Bin 8171 -> 0 bytes
 test/user-font-proxy-ref.png                       |  Bin 18121 -> 0 bytes
 test/user-font-proxy-svg11-ref.png                 |  Bin 17902 -> 0 bytes
 test/user-font-proxy-svg12-ref.png                 |  Bin 17902 -> 0 bytes
 test/user-font-proxy.pdf.ref.png                   |  Bin 0 -> 18111 bytes
 test/user-font-proxy.ps2.ref.png                   |  Bin 0 -> 8171 bytes
 test/user-font-proxy.ps3.ref.png                   |  Bin 0 -> 8171 bytes
 test/user-font-proxy.ref.png                       |  Bin 0 -> 18121 bytes
 test/user-font-proxy.svg11.ref.png                 |  Bin 0 -> 17902 bytes
 test/user-font-proxy.svg12.ref.png                 |  Bin 0 -> 17902 bytes
 test/user-font-ps2-ref.png                         |  Bin 5043 -> 0 bytes
 test/user-font-ps3-ref.png                         |  Bin 5043 -> 0 bytes
 test/user-font-ref.png                             |  Bin 6183 -> 0 bytes
 test/user-font-rescale-ps2-ref.png                 |  Bin 8041 -> 0 bytes
 test/user-font-rescale-ps3-ref.png                 |  Bin 8041 -> 0 bytes
 test/user-font-rescale-ref.png                     |  Bin 15937 -> 0 bytes
 test/user-font-rescale-svg11-ref.png               |  Bin 15741 -> 0 bytes
 test/user-font-rescale-svg12-ref.png               |  Bin 15741 -> 0 bytes
 test/user-font-rescale.ps2.ref.png                 |  Bin 0 -> 8041 bytes
 test/user-font-rescale.ps3.ref.png                 |  Bin 0 -> 8041 bytes
 test/user-font-rescale.ref.png                     |  Bin 0 -> 15937 bytes
 test/user-font-rescale.svg11.ref.png               |  Bin 0 -> 15741 bytes
 test/user-font-rescale.svg12.ref.png               |  Bin 0 -> 15741 bytes
 test/user-font-svg11-ref.png                       |  Bin 6134 -> 0 bytes
 test/user-font-svg12-ref.png                       |  Bin 6134 -> 0 bytes
 test/user-font.ps2.ref.png                         |  Bin 0 -> 5043 bytes
 test/user-font.ps3.ref.png                         |  Bin 0 -> 5043 bytes
 test/user-font.ref.png                             |  Bin 0 -> 6183 bytes
 test/user-font.svg11.ref.png                       |  Bin 0 -> 6134 bytes
 test/user-font.svg12.ref.png                       |  Bin 0 -> 6134 bytes
 test/xlib-expose-event-ref.png                     |  Bin 40736 -> 0 bytes
 test/xlib-expose-event.c                           |    4 +-
 test/xlib-expose-event.ref.png                     |  Bin 0 -> 40736 bytes
 test/xlib-surface-source-ps2-ref.png               |  Bin 376 -> 0 bytes
 test/xlib-surface-source-ps3-ref.png               |  Bin 376 -> 0 bytes
 test/xlib-surface-source-ref.png                   |  Bin 268 -> 0 bytes
 test/xlib-surface-source.ps2.ref.png               |  Bin 0 -> 376 bytes
 test/xlib-surface-source.ps3.ref.png               |  Bin 0 -> 376 bytes
 test/xlib-surface-source.ref.png                   |  Bin 0 -> 268 bytes
 test/zero-alpha-ref.png                            |  Bin 115 -> 0 bytes
 test/zero-alpha.ref.png                            |  Bin 0 -> 115 bytes
 1412 files changed, 782 insertions(+), 752 deletions(-)

commit e90073f7ddc6f461a935bc360c409b04f1fe9f74
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 3 16:38:03 2008 +0100

    [test] Build test suite into single binary.
    
    Avoid calling libtool to link every single test case, by building just one
    binary from all the sources.
    
    This binary is then given the task of choosing tests to run (based on user
    selection and individual test requirement), forking each test into its own
    process and accumulating the results.

 Makefile.am                                       |    1 +
 boilerplate/cairo-boilerplate.c                   |  658 +++++++++------
 boilerplate/cairo-boilerplate.h                   |    1 +
 build/configure.ac.noversion                      |   12 +
 build/configure.ac.system                         |   57 ++
 build/configure.ac.version                        |    8 -
 configure.ac                                      |   16 +
 doc/public/tmpl/cairo-surface.sgml                |    1 +
 test/.gitignore                                   |  237 +------
 test/Makefile.am                                  |  572 +++++++-------
 test/README                                       |   28 +-
 test/a1-image-sample.c                            |   20 +-
 test/a1-mask.c                                    |   38 +-
 test/a1-traps-sample.c                            |   20 +-
 test/a8-mask.c                                    |   37 +-
 test/alpha-similar.c                              |   23 +-
 test/big-line.c                                   |   22 +-
 test/big-trap.c                                   |   22 +-
 test/bilevel-image.c                              |   20 +-
 test/bitmap-font.c                                |   22 +-
 test/cairo-test-private.h                         |   74 ++
 test/cairo-test-runner.c                          |  907 +++++++++++++++++++++
 test/cairo-test.c                                 |  594 ++++++++------
 test/cairo-test.h                                 |   99 ++-
 test/caps-joins-alpha.c                           |   26 +-
 test/caps-joins.c                                 |   27 +-
 test/caps-sub-paths.c                             |   21 +-
 test/clip-all.c                                   |   21 +-
 test/clip-empty.c                                 |   20 +-
 test/clip-fill-rule-pixel-aligned.c               |   22 +-
 test/clip-fill-rule.c                             |   20 +-
 test/clip-nesting.c                               |   20 +-
 test/clip-operator.c                              |   21 +-
 test/clip-push-group.c                            |   20 +-
 test/clip-twice.c                                 |   20 +-
 test/clip-zero.c                                  |   20 +-
 test/clipped-group.c                              |   20 +-
 test/clipped-surface.c                            |   19 +-
 test/close-path.c                                 |   18 +-
 test/composite-integer-translate-over-repeat.c    |   20 +-
 test/composite-integer-translate-over.c           |   22 +-
 test/composite-integer-translate-source.c         |   22 +-
 test/copy-path.c                                  |   33 +-
 test/create-for-stream.c                          |   53 +-
 test/create-from-png-stream.c                     |   20 +-
 test/create-from-png.c                            |   82 +-
 test/dash-caps-joins.c                            |   26 +-
 test/dash-curve.c                                 |   20 +-
 test/dash-no-dash.c                               |   20 +-
 test/dash-offset-negative.c                       |   20 +-
 test/dash-scale.c                                 |   26 +-
 test/dash-state.c                                 |   22 +-
 test/dash-zero-length.c                           |   20 +-
 test/degenerate-arc.c                             |   20 +-
 test/degenerate-dash.c                            |   20 +-
 test/degenerate-path.c                            |   21 +-
 test/degenerate-pen.c                             |   20 +-
 test/device-offset-fractional.c                   |   20 +-
 test/device-offset-positive.c                     |   20 +-
 test/device-offset-scale.c                        |   21 +-
 test/device-offset.c                              |   20 +-
 test/extend-pad.c                                 |   20 +-
 test/extend-reflect-similar.c                     |   22 +-
 test/extend-reflect.c                             |   22 +-
 test/extend-repeat-similar.c                      |   22 +-
 test/extend-repeat.c                              |   22 +-
 test/fallback-resolution.c                        |   28 +-
 test/fill-alpha-pattern.c                         |   20 +-
 test/fill-alpha.c                                 |   20 +-
 test/fill-and-stroke-alpha-add.c                  |   20 +-
 test/fill-and-stroke-alpha.c                      |   20 +-
 test/fill-and-stroke.c                            |   20 +-
 test/fill-degenerate-sort-order.c                 |   20 +-
 test/fill-missed-stop.c                           |   19 +-
 test/fill-rule.c                                  |   20 +-
 test/filter-bilinear-extents.c                    |   22 +-
 test/filter-nearest-offset.c                      |   21 +-
 test/filter-nearest-transformed.c                 |   19 +-
 test/finer-grained-fallbacks.c                    |   20 +-
 test/font-face-get-type.c                         |   28 +-
 test/font-matrix-translation.c                    |   20 +-
 test/font-options.c                               |   17 +-
 test/ft-font-create-for-ft-face.c                 |   21 +-
 test/ft-show-glyphs-positioning.c                 |   20 +-
 test/ft-show-glyphs-table.c                       |   21 +-
 test/ft-text-antialias-none.c                     |   20 +-
 test/ft-text-vertical-layout-type1.c              |   23 +-
 test/ft-text-vertical-layout-type3.c              |   20 +-
 test/get-and-set.c                                |   20 +-
 test/get-clip.c                                   |   21 +-
 test/get-group-target.c                           |   20 +-
 test/get-path-extents.c                           |   20 +-
 test/get-xrender-format.c                         |   35 +-
 test/glyph-cache-pressure.c                       |   20 +-
 test/gradient-alpha.c                             |   20 +-
 test/gradient-constant-alpha.c                    |   20 +-
 test/gradient-zero-stops.c                        |   22 +-
 test/group-paint.c                                |   20 +-
 test/huge-pattern.c                               |   21 +-
 test/image-surface-source.c                       |    8 +-
 test/in-fill-empty-trapezoid.c                    |   24 +-
 test/in-fill-trapezoid.c                          |   20 +-
 test/infinite-join.c                              |   22 +-
 test/invalid-matrix.c                             |   20 +-
 test/large-clip.c                                 |   22 +-
 test/large-font.c                                 |   22 +-
 test/large-source.c                               |   20 +-
 test/leaky-dash.c                                 |   22 +-
 test/leaky-dashed-rectangle.c                     |   20 +-
 test/leaky-dashed-stroke.c                        |   20 +-
 test/leaky-polygon.c                              |   20 +-
 test/line-width-scale.c                           |   20 +-
 test/line-width-zero.c                            |   20 +-
 test/line-width.c                                 |   20 +-
 test/linear-gradient-reflect.c                    |   21 +-
 test/linear-gradient.c                            |   20 +-
 test/long-dashed-lines.c                          |   20 +-
 test/long-lines.c                                 |   24 +-
 test/make-cairo-test-constructors.pl              |   18 +
 test/mask-alpha.c                                 |   20 +-
 test/mask-ctm.c                                   |   21 +-
 test/mask-surface-ctm.c                           |   20 +-
 test/mask-transformed-image.c                     |   19 +-
 test/mask-transformed-similar.c                   |   19 +-
 test/mask.c                                       |   23 +-
 test/meta-surface-pattern.c                       |   20 +-
 test/miter-precision.c                            |   22 +-
 test/move-to-show-surface.c                       |   20 +-
 test/multi-page.c                                 |   30 +-
 test/new-sub-path.c                               |   22 +-
 test/nil-surface.c                                |   20 +-
 test/operator-alpha.c                             |   21 +-
 test/operator-clear.c                             |   20 +-
 test/operator-source.c                            |   20 +-
 test/operator.c                                   |   21 +-
 test/over-above-source.c                          |   20 +-
 test/over-around-source.c                         |   20 +-
 test/over-below-source.c                          |   20 +-
 test/over-between-source.c                        |   20 +-
 test/paint-repeat.c                               |   20 +-
 test/paint-source-alpha.c                         |   20 +-
 test/paint-with-alpha.c                           |   20 +-
 test/paint.c                                      |   20 +-
 test/pattern-get-type.c                           |   21 +-
 test/pattern-getters.c                            |   20 +-
 test/pdf-features.c                               |   31 +-
 test/pdf-surface-source.c                         |   10 +-
 test/pixman-rotate.c                              |   20 +-
 test/png.c                                        |   56 +-
 test/ps-features.c                                |   29 +-
 test/ps-surface-source.c                          |   10 +-
 test/pthread-show-text.c                          |   41 +-
 test/push-group.c                                 |   20 +-
 test/radial-gradient.c                            |   22 +-
 test/random-intersections.c                       |   21 +-
 test/rectangle-rounding-error.c                   |   22 +-
 test/rectilinear-fill.c                           |   20 +-
 test/rectilinear-miter-limit.c                    |   20 +-
 test/rectilinear-stroke.c                         |   21 +-
 test/reflected-stroke.c                           |   21 +-
 test/rel-path.c                                   |   20 +-
 test/rgb24-ignore-alpha.c                         |   20 +-
 test/rotate-image-surface-paint.c                 |   22 +-
 test/scale-down-source-surface-paint.c            |   20 +-
 test/scale-source-surface-paint.c                 |   20 +-
 test/select-font-face.c                           |   28 +-
 test/select-font-no-show-text.c                   |   20 +-
 test/self-copy-overlap.c                          |   22 +-
 test/self-copy.c                                  |   20 +-
 test/self-intersecting.c                          |   22 +-
 test/set-source.c                                 |   20 +-
 test/show-glyphs-many.c                           |   20 +-
 test/show-text-current-point.c                    |   22 +-
 test/skew-extreme.c                               |   20 +-
 test/smask-fill.c                                 |   20 +-
 test/smask-image-mask.c                           |   20 +-
 test/smask-mask.c                                 |   20 +-
 test/smask-paint.c                                |   20 +-
 test/smask-stroke.c                               |   20 +-
 test/smask-text.c                                 |   20 +-
 test/smask.c                                      |   20 +-
 test/solid-pattern-cache-stress.c                 |   20 +-
 test/source-clip-scale.c                          |   20 +-
 test/source-clip.c                                |   20 +-
 test/source-surface-scale-paint.c                 |   20 +-
 test/spline-decomposition.c                       |   20 +-
 test/stroke-ctm-caps.c                            |   20 +-
 test/stroke-image.c                               |   20 +-
 test/surface-finish-twice.c                       |   20 +-
 test/surface-pattern-big-scale-down.c             |   20 +-
 test/surface-pattern-scale-down-pdf-rgb24-ref.png |  Bin 0 -> 2386 bytes
 test/surface-pattern-scale-down.c                 |   21 +-
 test/surface-pattern-scale-up.c                   |   21 +-
 test/surface-pattern.c                            |   24 +-
 test/surface-source.c                             |   15 +-
 test/svg-clip.c                                   |   26 +-
 test/svg-surface-source.c                         |   11 +-
 test/svg-surface.c                                |   26 +-
 test/text-antialias-gray.c                        |   20 +-
 test/text-antialias-none.c                        |   20 +-
 test/text-antialias-subpixel.c                    |   20 +-
 test/text-cache-crash.c                           |   40 +-
 test/text-glyph-range-ps2-ref.png                 |  Bin 0 -> 1389 bytes
 test/text-glyph-range-ps3-ref.png                 |  Bin 0 -> 1389 bytes
 test/text-glyph-range-ref.png                     |  Bin 1810 -> 2211 bytes
 test/text-glyph-range-rgb24-ref.png               |  Bin 1645 -> 0 bytes
 test/text-glyph-range.c                           |   62 +-
 test/text-pattern.c                               |   54 +-
 test/text-rotate.c                                |   22 +-
 test/text-transform.c                             |   22 +-
 test/text-zero-len.c                              |   20 +-
 test/toy-font-face.c                              |   16 +-
 test/transforms.c                                 |   20 +-
 test/translate-show-surface.c                     |   20 +-
 test/trap-clip.c                                  |   22 +-
 test/truetype-tables.c                            |   18 +-
 test/twin.c                                       |   20 +-
 test/unantialiased-shapes.c                       |   20 +-
 test/unbounded-operator.c                         |   20 +-
 test/user-data.c                                  |   17 +-
 test/user-font-mask.c                             |   28 +-
 test/user-font-proxy.c                            |   28 +-
 test/user-font-rescale.c                          |   20 +-
 test/user-font.c                                  |   28 +-
 test/xlib-expose-event.c                          |   28 +-
 test/xlib-surface-source.c                        |    8 +-
 test/xlib-surface.c                               |   36 +-
 test/zero-alpha.c                                 |   20 +-
 228 files changed, 3770 insertions(+), 4123 deletions(-)

commit 8457972d40088cda165f31fdd7bd9b4c19c6e095
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 02:16:54 2008 +0000

    [type3] Whitespace.
    
    Tightly scope the output stream.

 src/cairo-type3-glyph-surface.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 08f4d49a9464bc19bc2ca7f2356a6eb8d62f5daf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 02:03:41 2008 +0000

    [xlib] Intialise clip_dirty.
    
    Eeek, forgot to set the clip_dirty to 0 on construction.

 src/cairo-xlib-surface.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit b722d5b2b988d43931648d8377a9433d75f7d95f
Merge: 05fce5b 710f7d3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 02:24:25 2008 +0000

    Merge branch '1.8'

commit 05fce5bced9718ffa803f5a87df00f96809d1f53
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Apr 5 13:32:51 2008 +1030

    PS/PDF: Set image Interpolation flag
    
    If the filter mode is anything other than DEFAILT, FAST or NEAREST set the
    Interpolate flag in the image dictionary so that a smoothing filter is
    applied when rasterising the vector file.
    
    As we have no control over the implementation of the Interpolate filter
    (the PS/PDF specifications leave it undefined) we need to capture the
    output of poppler/GS and update our reference images. (For a couple of
    tests, the filtering is irrelevant so for those we set the filter to
    NEAREST.)
    
    Note that GhostScript's Interpolate filter does not work on rotated images
    (and a variety of other transformations) so several of the PS reference
    images have use nearest-neighbour sampling instead of a bilinear filter.

 src/cairo-pdf-surface.c                            |   28 ++++++++--
 src/cairo-ps-surface.c                             |   28 +++++++++-
 test/Makefile.am                                   |   54 ++++++++++++++------
 test/bilevel-image.c                               |    1 +
 test/composite-integer-translate-over-ps2-ref.png  |  Bin 0 -> 15783 bytes
 test/composite-integer-translate-over-ps3-ref.png  |  Bin 0 -> 15783 bytes
 ...osite-integer-translate-over-repeat-ps2-ref.png |  Bin 0 -> 448 bytes
 ...osite-integer-translate-over-repeat-ps3-ref.png |  Bin 0 -> 448 bytes
 .../composite-integer-translate-source-ps2-ref.png |  Bin 0 -> 15783 bytes
 .../composite-integer-translate-source-ps3-ref.png |  Bin 0 -> 15783 bytes
 test/create-from-png-stream.c                      |    1 +
 test/create-from-png.c                             |    1 +
 test/device-offset-fractional-ps2-ref.png          |  Bin 201 -> 200 bytes
 test/device-offset-fractional-ps3-ref.png          |  Bin 201 -> 200 bytes
 test/extend-reflect-ps2-ref.png                    |  Bin 153322 -> 146990 bytes
 test/extend-reflect-ps3-ref.png                    |  Bin 153322 -> 146990 bytes
 test/extend-reflect-similar-ps2-ref.png            |  Bin 153322 -> 146990 bytes
 test/extend-reflect-similar-ps3-ref.png            |  Bin 153322 -> 146990 bytes
 test/extend-repeat-ps2-ref.png                     |  Bin 0 -> 119246 bytes
 test/extend-repeat-ps3-ref.png                     |  Bin 0 -> 119246 bytes
 test/extend-repeat-similar-ps2-ref.png             |  Bin 0 -> 119246 bytes
 test/extend-repeat-similar-ps3-ref.png             |  Bin 0 -> 119246 bytes
 test/filter-bilinear-extents-ps2-ref.png           |  Bin 173 -> 556 bytes
 test/filter-bilinear-extents-ps3-ref.png           |  Bin 173 -> 556 bytes
 test/image-surface-source-ps2-ref.png              |  Bin 0 -> 376 bytes
 test/image-surface-source-ps3-ref.png              |  Bin 0 -> 376 bytes
 test/image-surface-source-ref.png                  |  Bin 268 -> 332 bytes
 test/stroke-image-ps2-ref.png                      |  Bin 1786 -> 2121 bytes
 test/stroke-image-ps3-ref.png                      |  Bin 1786 -> 2121 bytes
 test/surface-pattern-pdf-argb32-ref.png            |  Bin 14880 -> 0 bytes
 test/surface-pattern-pdf-ref.png                   |  Bin 0 -> 15996 bytes
 test/surface-pattern-ps2-argb32-ref.png            |  Bin 2520 -> 0 bytes
 test/surface-pattern-ps2-ref.png                   |  Bin 0 -> 2364 bytes
 test/surface-pattern-ps3-argb32-ref.png            |  Bin 2520 -> 0 bytes
 test/surface-pattern-ps3-ref.png                   |  Bin 0 -> 2364 bytes
 test/surface-pattern-scale-down-pdf-argb32-ref.png |  Bin 1565 -> 2386 bytes
 test/surface-pattern-scale-down-ps2-argb32-ref.png |  Bin 1400 -> 0 bytes
 test/surface-pattern-scale-down-ps2-ref.png        |  Bin 0 -> 1324 bytes
 test/surface-pattern-scale-down-ps3-argb32-ref.png |  Bin 1400 -> 0 bytes
 test/surface-pattern-scale-down-ps3-ref.png        |  Bin 0 -> 1324 bytes
 test/surface-pattern-scale-down.c                  |    3 +-
 test/surface-pattern-scale-up-pdf-argb32-ref.png   |  Bin 3886 -> 4247 bytes
 test/surface-pattern-scale-up-pdf-rgb24-ref.png    |  Bin 0 -> 4247 bytes
 test/surface-pattern-scale-up-ps2-argb32-ref.png   |  Bin 1011 -> 0 bytes
 test/surface-pattern-scale-up-ps2-ref.png          |  Bin 0 -> 943 bytes
 test/surface-pattern-scale-up-ps3-argb32-ref.png   |  Bin 1011 -> 0 bytes
 test/surface-pattern-scale-up-ps3-ref.png          |  Bin 0 -> 943 bytes
 test/surface-pattern-scale-up-ref.png              |  Bin 3825 -> 4061 bytes
 test/surface-pattern-scale-up.c                    |    6 ++-
 test/surface-pattern.c                             |    6 ++-
 test/xlib-surface-source-ps2-ref.png               |  Bin 0 -> 376 bytes
 test/xlib-surface-source-ps3-ref.png               |  Bin 0 -> 376 bytes
 52 files changed, 98 insertions(+), 30 deletions(-)

commit 2c53bdb82a955c672c8fee2b1b4c991af2654ae0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 21:12:53 2008 +0100

    [paginated] Emit fallback images using FILTER_NEAREST.
    
    Fallback images should (in theory) be emitted at native resolution, so
    disable filtering to avoid introducing potential artifacts into cairo's
    ideal output.

 src/cairo-paginated-surface.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

commit f03d3f9f7f923730cdc4c5f21364f752f705086a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 19:24:29 2008 +0000

    [boilerplate] Remove #if VERSION>1.9.0
    
    Remove the obsolete #if statement.

 boilerplate/cairo-boilerplate.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

commit ef98eb26f7484019b023cd4c93dce44f23e3a594
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 19:23:17 2008 +0000

    [test] Reenable device offset testing.
    
    Restore device offset testing that was temporarily disable in the run up
    to the 1.8 release.

 test/cairo-test.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 4f2f46ef1bd793a712df045178b3d00d027e3ba6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 19:14:07 2008 +0000

    Restore the ability to choose the internal font.
    
    Behdad wants to include the feature with 1.10, so we enable it as early as
    possible in 1.9 dev cycle to generate as much feedback as possible.
    
    The first change is to use "<cairo>" as being a name unlikely to clash
    with any real font names.
    
    This reverts commits:
      a824d284be23793a5c48b9ae833dcb7b2d5fff80,
      292233685534aed712dfd45e8ccf498b792ce496,
      e0046aaf417a61da008dc6374871fa3687ba94ab,
      f534bd549e1e2283735d1eabb60c015a5949a735.

 perf/Makefile.am        |    1 +
 perf/cairo-perf.c       |    1 +
 perf/cairo-perf.h       |    1 +
 perf/twin.c             |   50 +++++++++++++++++++++++++++++++++++++++
 src/cairo-font-face.c   |    6 +++-
 src/cairoint.h          |    1 +
 test/.gitignore         |    1 +
 test/Makefile.am        |    6 ++++
 test/twin-ps2-ref.png   |  Bin 0 -> 1167 bytes
 test/twin-ps3-ref.png   |  Bin 0 -> 1167 bytes
 test/twin-ref.png       |  Bin 0 -> 1836 bytes
 test/twin-svg11-ref.png |  Bin 0 -> 1773 bytes
 test/twin-svg12-ref.png |  Bin 0 -> 1773 bytes
 test/twin.c             |   60 +++++++++++++++++++++++++++++++++++++++++++++++
 14 files changed, 125 insertions(+), 2 deletions(-)

commit 52c3fc58b52c77282998f9ad75657a6bec5956f8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 8 13:04:37 2008 +0100

    [tessellator] Simplify dequeuing by using a sentinel value.
    
    Instead of maintaining an index and comparing it to the count, just mark
    the last startstop event with NULL and stop dequeuing events upon seeing
    that sentinel value. (Removes an unreadable line, and cachegrind hints
    that it may be a tiny bit faster.)

 src/cairo-bentley-ottmann.c |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)

commit ef9e0a5d1d74ac92a1fcde5a657c866a8e6509e6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 7 22:09:37 2008 +0100

    [tessellator] Use a combsort for sorting the event queue.
    
    In my experiments using cairo-perf, the inlined combsort is ~20% quicker
    than the library qsort.

 src/Makefile.sources         |    1 +
 src/cairo-bentley-ottmann.c  |   39 ++++++++++++-----------
 src/cairo-combsort-private.h |   71 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 92 insertions(+), 19 deletions(-)

commit b1461308416fa83d1de0016a9d4804b68a1f1d8f
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Oct 30 14:18:18 2008 -0400

    [Makefile.am.releasing] Symlink /manual and /cairo-manual.tar.gz only for releases
    
    And not for snapshots.  Also symlink /cairo-manual-X.Y.Z.tar.gz for all
    versions.

 build/Makefile.am.releasing |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

commit e3a7f522a6b96729b2a0122f8c430c24dc17fc5a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 7 23:33:32 2008 +0100

    [tessellator] Perform cheap checks before computing intersect.
    
    First check if we can reject the intersection without having to perform
    the full divides, based on analysing:
      t * (ady*bdx - bdy*adx) = bdy * (ax - bx) - bdx * (ay - by)
      s * (ady*bdx - bdy*adx) = ady * (ax - bx) - adx * (ay - by)
    and excluding the result if by inspection we know that
    (s, t) <= 0 || (s, t) => 1.
    
    Doing so virtually eliminates all division and speeds up the strokes (when
    performing self-intersection elimination using the tessellator) perf cases
    by about 5%.

 src/cairo-bentley-ottmann.c |   51 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

commit 553fde4bb3e913de7e26bf416166d69bae4d02e1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 4 13:15:08 2008 +0100

    [tessellator] Simplify special cases of edges to compare.
    
    Use our prior knowledge of the inputs and trivial conditions to simplify
    the edge equations and in many common conditions, such as vertical edges
    and common points, reduce the operations down to a just returning the
    non-degenerate 32 bit value.  This adds an overhead of a few conditionals,
    but on the fast paths we actually generate fewer branches and many fewer
    arithmetic operations such that it improves performance of the fill
    performance tests by around 10%.

 src/cairo-bentley-ottmann.c |  136 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 108 insertions(+), 28 deletions(-)

commit cc109df2a70e953d71e3e6fc4e6e54cce4ba0d47
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 15:50:20 2008 +0000

    [test] Update .gitignore
    
    Add a couple of new programs to gitignore.

 test/.gitignore |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 7d546bba213c3b89404bb3c58a5665343abfcd51
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 29 15:46:10 2008 +0000

    [xlib] Eliminate shadowed variable.
    
    Cleanup a minor -Wshadow warning.

 src/cairo-xlib-surface.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit e3388b8180e38f79e0d5b66cc640c3d5c37db2a8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 29 15:45:09 2008 +0000

    [cff-subset] Eliminate shadowed variable.
    
    Cleanup a minor -Wshadow warning.

 src/cairo-cff-subset.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 3e18114aff21acfa73a7d13a419719375ae9b5a6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 29 15:43:23 2008 +0000

    [user-font] Eliminate shadowed variable
    
    Cleanup a minor -Wshadow warning.

 src/cairo-user-font.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit d073537e82b57738068a7e1cf1d36ce452876804
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 29 15:41:44 2008 +0000

    [scaled-font] Eliminate shadowed variable.
    
    Cleanup a minor -Wshadow warning.

 src/cairo-scaled-font.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit 6429e3f39468ef4f865681b3b5988d35906deeb0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 28 17:38:09 2008 +0000

    [xlib] Only set Picture clip as necessary.
    
    Only set ClipRectangles on a new Picture, avoiding redundant calls to
    clear the non-existent ClipMask otherwise.

 src/cairo-xlib-surface.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit cd45258c5bf6a06f7bd3f2bfaf928e423a9b70e1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 28 16:54:10 2008 +0000

    [xlib] Only clear the GC clip mask as necessary.
    
    Avoid redundant calls to XSetClipMask() for clean GCs.

 src/cairo-xlib-private.h |   10 ++++++++--
 src/cairo-xlib-screen.c  |    8 ++++++--
 src/cairo-xlib-surface.c |    7 ++++---
 3 files changed, 18 insertions(+), 7 deletions(-)

commit d384f864992fbf7513446a70158135a08e704678
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 28 16:33:51 2008 +0000

    [xlib] Propagate real status from get_screen_info().
    
    Return the real error from _cairo_xlib_screen_info_get() in order to avoid
    having to create a fake NO_MEMORY error.

 src/cairo-xlib-private.h |    6 +++-
 src/cairo-xlib-screen.c  |   66 +++++++++++++++++++++++++--------------------
 src/cairo-xlib-surface.c |    6 ++--
 3 files changed, 44 insertions(+), 34 deletions(-)

commit e25b106e9c33e220fb104afb0929e766647b6de9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 28 16:27:58 2008 +0000

    [xlib] Propagate real status from get_display()
    
    Avoid throwing away the error and inventing a new NO_MEMORY error for
    _cairo_xlib_display_get().

 src/cairo-xlib-display.c |   13 ++++++++-----
 src/cairo-xlib-private.h |    4 ++--
 src/cairo-xlib-surface.c |   14 ++++++++------
 3 files changed, 18 insertions(+), 13 deletions(-)

commit 2555f83b11ee23829cfdeaae703420ca3e572fa1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 28 16:22:49 2008 +0000

    [xlib] Avoid repeated calls to XRenderQueryVersion
    
    Use the value determined during display initialisation in order to avoid
    redundant XRenderQueryFormats requests.

 src/cairo-xlib-display.c |    6 ++++--
 src/cairo-xlib-private.h |    2 ++
 src/cairo-xlib-surface.c |    7 ++-----
 3 files changed, 8 insertions(+), 7 deletions(-)

commit 0d0c6a199c5b631299c72dce80d66ac0f4936a64
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 26 12:53:29 2008 +0000

    [matrix] Optimise invert for simple scaling|translation matrices.
    
    The matrix is quite often just a simple scale and translate (or even
    identity!). For this class of matrix, we can skip the full adjoint
    rearrangement and determinant calculation and just compute the inverse
    directly.

 src/cairo-matrix.c |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

commit 74876b00cd969d5cfc209fa903dfad50bda59361
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 25 11:33:52 2008 +0100

    [xlib] Exploit compaction of XRenderFillRectangle()
    
    libXrender amalgamates sequences of XRenderFillRectangle() into a single
    XRenderFillRectangles request (when permissible). Since it is common for a
    cairo application to draw rectangles individually in order to exploit fast
    paths within cairo [rectilinear fills], it is a reasonably common pattern.

 src/cairo-xlib-surface.c |   50 +++++++++++++++++++++++++++++----------------
 1 files changed, 32 insertions(+), 18 deletions(-)

commit 64726ccfb99ba964420f3a840fd707998927e902
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 24 17:06:04 2008 +0100

    [traps] Whitespace.
    
    Fixup whitespace in line with CODING_STYLE and rest of file.

 src/cairo-region.c |    6 +++---
 src/cairo-traps.c  |   33 ++++++++++++++++++++-------------
 2 files changed, 23 insertions(+), 16 deletions(-)

commit d5543005e7b7cc08f97578f301182ef4807a05fe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 24 09:00:45 2008 +0100

    [surface] Only copy font options if the target surface has them.
    
    No need to copy font options if the similar surface is from the same
    backend and no special options have been applied by the user. Doing so
    breaks lazy initialisation of backend specific options.

 src/cairo-surface.c |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)

commit a0023758104b700751ba8d7a66d75db139eea6cb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 24 08:39:29 2008 +0100

    [xlib] Defer querying of font options until first use
    
    Constructing the font options cause the initialisation of Xlc and invoke
    several round-trips to the X server, significantly delaying the creation
    of the first surface. By deferring that operation until the first use of
    fonts then we avoid that overhead for very simple applications (like the
    test suite) and should improve start-up latency for larger application.

 src/cairo-xlib-private.h |    4 ++++
 src/cairo-xlib-screen.c  |   28 +++++++++++++++++++++++++---
 src/cairo-xlib-surface.c |    2 +-
 3 files changed, 30 insertions(+), 4 deletions(-)

commit 6706590d4e7ad19dae0b8e3efe6f573d5688e19a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 16:22:48 2008 +0100

    [pattern] Reduce likelihood of range overflow with large downscaling.
    
    Exploit the auxiliary offset vector in the attributes to reduce
    likelihood of range overflow in the translation components when converting
    the pattern matrix to fixed-point pixman_matrix_t.
    
    An example of this is bug 9148
      Bug 9148 - invalid rendering when painting large scaled-down surfaces
      (https://bugs.freedesktop.org/show_bug.cgi?id=9148)
    but the issue is perhaps even more likely with high resolution fallback
    images.

 src/cairo-pattern.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

commit c0af8c70635d641fc5770afc0cd6e9285122fd72
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 16:49:23 2008 +0100

    [pattern] Tweak REFLECT HACK
    
    In order to workaound a directfb bug, tweak the reflect->repeat pattern so
    that it covers the destination rectangle. Although the number of paint()
    increases, the number of read/written pixels remain the same so that
    performance should not deteriorate, but instead be improved by using a
    cloned source. The early return of the REFLECT surface is discarded so
    that the latter optimisations for surface sources can be applied. One side
    effect of this is that acquire_source_image() is removed due to its lax
    reference counting which thereby exposes the ROI optimisations for image
    destinations as well.

 src/cairo-pattern.c |  279 +++++++++++++++++++++++++--------------------------
 src/cairoint.h      |    1 -
 2 files changed, 136 insertions(+), 144 deletions(-)

commit 234623b3d5884b02a0619de8ddd57bbed36ef4fd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 23 14:55:26 2008 +0100

    [pattern] Support unbounded surfaces.
    
    An unbounded surface should just report an infinite pattern extent and not
    return UNSUPPORTED from _cairo_pattern_get_extents().

 src/cairo-pattern.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 2836be6f7565684e86b3cc8a3d2db4ba690b3718
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 23 14:42:47 2008 +0100

    Cleanup 'status && status != UNSUPPORTED'
    
    Replace instances of 'status && status != UNSUPPORTED' with the more
    readable _cairo_status_is_error().

 src/cairo-analysis-surface.c    |   14 +++++++-------
 src/cairo-clip.c                |    4 ++--
 src/cairo-pdf-surface.c         |    8 ++++----
 src/cairo-ps-surface.c          |    4 ++--
 src/cairo-scaled-font-subsets.c |    4 ++--
 5 files changed, 17 insertions(+), 17 deletions(-)

commit 13ba43eb8ffc3bb6c8881d91824102a8df86d928
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 23 12:28:25 2008 +0100

    [matrix] Optimize finding the bounding box under an orthogonal matrix.
    
    We frequently need to find the bounds of a pattern under an identity
    matrix, or a simple scale+translation. For these cases we do not need to
    transform each corner and search for the bounds as the matrix is x/y
    separable and so allows us to inspect the results for the extreme x/y
    points independently.

 src/cairo-matrix.c |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

commit 6ed957fc242d7890117f4dea121c03ec2523470c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 22:02:05 2008 +0100

    [gstate] Use _cairo_pattern_black for the default source.
    
    Avoid allocating a default source pattern by using the static black pattern
    object. The one complication is that we need to ensure that the static
    pattern does leak to the application, so we replace it with an allocated
    solid pattern within _cairo_gstate_get_source().

 src/cairo-gstate.c  |    9 +++++++--
 src/cairo-pattern.c |   12 +++++++-----
 src/cairo.c         |    6 +++---
 src/cairoint.h      |    2 +-
 4 files changed, 18 insertions(+), 11 deletions(-)

commit 794460186459981cd43ca38f3eba07e3f6bf8908
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 19:24:44 2008 +0100

    [pattern] Avoid needless copying of patterns.
    
    Only copy the pattern if we need to modify it, e.g. preserve a copy in a
    snapshot or a soft-mask, or to modify the matrix. Otherwise we can
    continue to use the original pattern and mark it as const in order to
    generate compiler warnings if we do attempt to write to it.

 src/cairo-analysis-surface.c         |   37 ++++----
 src/cairo-directfb-surface.c         |   33 +++----
 src/cairo-glitz-surface.c            |   42 ++++-----
 src/cairo-gstate.c                   |  117 ++++++++++++++--------
 src/cairo-image-surface.c            |    6 +-
 src/cairo-meta-surface.c             |   12 +-
 src/cairo-paginated-surface.c        |   12 +-
 src/cairo-pattern.c                  |   70 +++++--------
 src/cairo-pdf-surface.c              |   88 +++++++++++------
 src/cairo-ps-surface.c               |   39 ++++----
 src/cairo-quartz-surface.c           |   10 +--
 src/cairo-scaled-font.c              |    2 +-
 src/cairo-sdl-surface.c              |   22 ++--
 src/cairo-surface-fallback-private.h |   45 +++++----
 src/cairo-surface-fallback.c         |   65 ++++++------
 src/cairo-surface.c                  |  181 ++++++++++++++++++++-------------
 src/cairo-svg-surface.c              |   50 +++++-----
 src/cairo-type3-glyph-surface.c      |   18 ++--
 src/cairo-win32-font.c               |   26 +++---
 src/cairo-win32-printing-surface.c   |   51 +++++-----
 src/cairo-win32-private.h            |    2 +-
 src/cairo-win32-surface.c            |    6 +-
 src/cairo-xcb-surface.c              |   42 ++++----
 src/cairo-xlib-surface.c             |   14 ++--
 src/cairoint.h                       |   74 +++++++-------
 src/test-meta-surface.c              |   28 +++---
 src/test-paginated-surface.c         |   40 ++++----
 27 files changed, 605 insertions(+), 527 deletions(-)

commit 9d2189afbd2aa1413f620a4d35016ef3be3fc0e9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 18:29:02 2008 +0100

    [pattern] Do not recompute the inverse if setting an identical matrix.
    
    More micro-optimisation.

 src/cairo-pattern.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 2c277ddbea42222130b8b1c2a2b4934503b40188
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 18:17:49 2008 +0100

    [matrix] Avoid error correction overhead for translation matrices.
    
    We can only correct rounding errors between cairo and pixman matrices for
    scaled matrices - so skip the inversion and point transformation overhead
    for simple translation matrices.

 src/cairo-matrix.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

commit 57a1d932f3e9d79f3259a536ec2f45f020d46de5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 18:12:10 2008 +0100

    [array] Rearrange user_data_fini() to optimize common case.
    
    Micro-optimisation to avoid the _cairo_array_index() for the common case
    of 0 elements.

 src/cairo-array.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

commit 2852127c72fa6cfe246e6ece0433be6c3f2a93ab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 18:04:30 2008 +0100

    [cairoint] Add a few cairo_pure.
    
    Start marking up the prototypes with function attributes - first the
    obvious pure functions.

 src/cairoint.h |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit cf072c7203dfce989ee60e56352f548329d3d616
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 14:35:49 2008 +0000

    [sdl] Add new backend.
    
    Add a new backend to allow easy interoperability with the Simple
    DirectMedia Layer.

 boilerplate/Makefile.sources                |    3 +
 boilerplate/cairo-boilerplate-sdl-private.h |   56 ++++
 boilerplate/cairo-boilerplate-sdl.c         |   69 +++++
 boilerplate/cairo-boilerplate.c             |   13 +
 build/configure.ac.features                 |    1 +
 configure.ac                                |    8 +
 src/Makefile.sources                        |    3 +
 src/cairo-sdl-surface.c                     |  418 +++++++++++++++++++++++++++
 src/cairo-sdl.h                             |   54 ++++
 src/cairo.h                                 |    4 +-
 10 files changed, 628 insertions(+), 1 deletions(-)

commit 31ada1ea15d14c0a843728b105340c270e4e4613
Merge: 30f2df1 ab15d76
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 16:56:07 2008 +0000

    Merge branch '1.8'

commit 30f2df1dec419a10408b53ecd26cebfcf607bf27
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 30 08:40:35 2008 -0700

    Fix typo in bug URL.
    
    Thanks to AndrewR in IRC for pointing out the typo.

 NEWS |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit b598dcd1b1726184506de6a9d253f6091a000922
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 30 08:29:51 2008 -0700

    Fix release-publish to also update the current manual.
    
    That is, the vesion that appears as:
    
    	http://cairographics.org/manual
    and:
    	http://cairographics.org/cairo-manual.tar.gz
    
    It was silly that we previously required a manual step to
    upload the documentation (which we regularly forgot to do)
    and that it uploaded with a date in the name rather than a
    version. So we just drop the old doc-publish Makefile target
    now as it's just not useful anymore.

 RELEASING                   |    3 ++-
 build/Makefile.am.releasing |   18 ++++--------------
 2 files changed, 6 insertions(+), 15 deletions(-)

commit 91183a503e3b7bed11e0149783d3974e26daf623
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 30 08:26:55 2008 -0700

    RELEASING: Mention that a versioned manual is uploaded.

 RELEASING |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 5037fa238e820419824773fa2ea475c949e23a8c
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 30 08:23:06 2008 -0700

    Increment version to 1.9.1
    
    We're finalyl opening the 1.9 development series in order to land
    lots of exciting new features that people have been working on.

 cairo-version.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit e2a2eddcfb8fc73f3decdb91c00e8e6d5282e09c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 14:07:11 2008 +0000

    Increment version to 1.8.6
    
    In preparation for the next stable release.

 cairo-version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ef7c42a7d390064b2a5b08e14d5f65b8ea4628e3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 14:06:07 2008 +0000

    [NEWS] Add notes for 1.8.6
    
    Add the historical blurb for 1.8.6.

 NEWS |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

commit ce91e6ac360e1dbe57a4e729b68d84499603e9ae
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 14:53:27 2008 +0000

    [perf] Fix for git-1.6
    
    git-1.6 moved all the subcommands out of the PATH so update our usage.

 perf/cairo-perf-graph |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f8372509aff662e9cbabeb99560b01019395c15e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 13:05:01 2008 +0000

    [RELEASING] Update Makefile for git-1.6
    
    Git moved all the subcommands out of the PATH, so we need to update our
    usage.

 build/Makefile.am.changelog |    4 ++--
 build/Makefile.am.releasing |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 9faa9a214994fe27a0cb27a298881f23c2050bbe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 11:40:12 2008 +0000

    [RELEASING] Correct a few minor typos.
    
    As I was reading through the instructions, take the opportunity to fix a
    few spelling mistakes.

 RELEASING |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit b1be4196513263bdbf58944ea6ac87708a399c5f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Dec 14 11:26:56 2008 +0000

    [doc] Fix erroneous doc comment.
    
    A normal comment was marked as a gtk-doc entry and thus causing gtk-doc to
    complain.

 src/cairo-path-fixed.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 79bd32a6ccb1a882ddd2b1585ab155f568bf5ec7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 6 13:32:37 2008 +0200

    [perf-diff] Fix cairo-perf-diff for git 1.6
    
    Since git 1.6 the plumbing commands aren't installed in the user's
    path by default.  This patch fixes cairo-perf-diff to find the
    git-sh-setup command from git's lib dir.
    (cherry picked from commit 0c0f4862c52d68776024f125b003ade455044b27)

 perf/cairo-perf-diff |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 97b5240beeb9206f4dbda6ffce33b51aa16eec2f
Author: Julien Danjou <julien@danjou.info>
Date:   Tue Nov 18 10:01:49 2008 +0100

    [xcb] check for render extension presence
    
    Otherwise this may leads to an invalid memory access to r.
    
    Fixes: Bug 18588 - XCB backend fails with missing render.
    https://bugs.freedesktop.org/show_bug.cgi?id=18588
    
    Signed-off-by: Julien Danjou <julien@danjou.info>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    (cherry picked from commit 834f1d7b7097dcc3a32f6c65d21e87fd272d924a)

 AUTHORS                 |    1 +
 src/cairo-xcb-surface.c |    8 ++++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

commit 6fed98c0d3b0708ad5171654179a482fa7d88805
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 5 21:14:45 2008 +0000

    [gstate] Remove culled glyphs from clusters.
    
    Sascha Steinbiss reported a bug where the PDF backend was reading beyond
    the end of the glyph array:
    http://lists.cairographics.org/archives/cairo/2008-December/015976.html.
    
    It transpires that in the early glyph culling in the gstate we were
    not updating the clusters to skip culled glyphs.

 src/cairo-gstate.c |  223 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 176 insertions(+), 47 deletions(-)

commit d93bf10edc7e432349524221a3d1b0f0b2ec8090
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Dec 10 17:02:55 2008 -0500

    [quartz] Create a copy of the pattern so that the reference counts are balanced
    
    The pattern could be stack allocated so we can't take a reference to it;
    instead make a copy.
    
    Based on a patch by Paolo Bonzini.

 src/cairo-quartz-surface.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

commit 673640a3b3931995897b01d49c5dd8d82b50dac2
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu Dec 4 17:53:06 2008 -0500

    [win32] Use MOD instead of the '%' operator
    
    Repeat should be handled using MOD instead of '%' so that negative numbers
    are handled as expected. E.g. -1 mod 600 = 599, not 495 as the '%' operator
    gives. This was causing https://bugzilla.mozilla.org/show_bug.cgi?id=466258
    
    Patch from Robert O'Callahan

 src/cairo-win32-surface.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

commit 540de34453d16092acd2978b513831a02f01f59f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 26 12:53:29 2008 +0000

    [matrix] Optimise invert for simple scaling|translation matrices.
    
    Peter Hercek reported, and provided a very useful test case for, a bug
    that caused his applications to crash with Cairo detecting an
    non-invertible pattern matrix and thus asserting the impossible happened.
    Bisecting revealed that the bug first appeared with 3c18d95 and
    disappeared with 0d0c6a1. Since neither of these explain the crash,
    further investigation revealed a compiler bug (gcc 4.3.3 20081130,
    earlier versions have different bugs!) that caused the matrix inversion
    to be invalid iff _cairo_matrix_scalar_multiply() was inlined (i.e. -O0,
    or an explicit noinline atttribute on that function prevented the bug, as
    did -msse.) So we apply this workaround to hide the bug in the stable
    series...
    
    The matrix is quite often just a simple scale and translate (or even
    identity!). For this class of matrix, we can skip the full adjoint
    rearrangement and determinant calculation and just compute the inverse
    directly.
    (cherry picked from commit 0d0c6a199c5b631299c72dce80d66ac0f4936a64)

 src/cairo-matrix.c |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

commit f5634818f1e5cc0adaa326662c099a75f4e615eb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 13 14:56:38 2008 +0000

    [os2] Move include cairo.h before os2.h
    
    The defines need to come first, but we specify that cairo.h is the first
    header file to be included by files.

 src/cairo-os2.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 2f0f9a1a593db43dd04507c5989cd0af4b1486de
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 13 10:50:41 2008 +0100

    [os2] Fix includes
    
    Patch from Dave Yeo to make cairo-os2.h include os2.h directly so the
    header is standalone.

 src/cairo-os2-private.h |   11 -----------
 src/cairo-os2-surface.c |    5 -----
 src/cairo-os2.h         |    8 ++++++++
 3 files changed, 8 insertions(+), 16 deletions(-)

commit 77e60df32fa59328bd32095c77f8c360805b5db7
Author: Maarten Maathuis <madman2003@gmail.com>
Date:   Sat Nov 8 15:29:40 2008 +0100

    cairo-xcb: avoid leaking memory

 src/cairo-xcb-surface.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 361962b7fb4385f164673991670b6fce0839d32a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 08:42:30 2008 +0000

    [directfb] Compile fix with debug enabled.
    
    Fix a trivial compile failure reported here:
      Bug 18322 - bug in _cairo_directfb_surface_release_source_image function
      (http://bugs.freedesktop.org/show_bug.cgi?id=18322)

 src/cairo-directfb-surface.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit ab61544b30406a49abc1f559d81129edce6d41ec
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Nov 14 13:17:01 2008 +0100

    Increment version to 1.8.5 after the 1.8.4 release.

 cairo-version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 66e8f142e381501d114888c2d1fc1e7f6d6a9857
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Nov 14 11:08:40 2008 +0100

    Increment version to 1.8.4

 cairo-version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit b9c1344ad82d38bb86fa85fbb565b2de64aa0e35
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Nov 14 11:07:10 2008 +0100

    NEWS: Add notes for cairo 1.8.4
    
    Just a few bug fixes here.

 NEWS |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)

commit d654d528de16769932131da80f4b925151d50103
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Nov 13 16:45:15 2008 +0100

    Blacklist "X.Org" < 7.0 with the buggy_repeat workaround.
    
    This is in response to a report that a 6.9 server crashes with
    cairo's extend-reflect test:
    
    https://bugs.freedesktop.org/show_bug.cgi?id=15628#c2

 src/cairo-xlib-display.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

commit 35a1ba0ddc45f9cc785c6f8a37b6bb49c953e047
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Nov 13 16:36:20 2008 +0100

    Document the buggy_repeat workaround more carefully.
    
    It's a confusing condition, so let's be explicit about where
    the various numbers come from.

 src/cairo-xlib-display.c |   54 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 38 insertions(+), 16 deletions(-)

commit a1ab11df01962bea5752f5a5b53926a26a6f34ae
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 5 11:50:20 2008 -0500

    Define RepeatNone, etc if the available Render version doesn't (#18385)

 src/cairo-xlib-xrender-private.h |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

commit 1d8ad69abb88f6e0283b6ce2aadc5d801b8e3722
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 4 01:51:06 2008 -0500

    [aclocal.dolt.m4] Fix build with bash versions <= 3.0 (bug #18363)

 build/aclocal.dolt.m4 |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 6434cddb899d750b815d71f8f51ae3e4568dd3c0
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 2 11:42:33 2008 +1030

    type1-subset: return unsupported on FT errors
    
    and let type1-fallback handle it. This fixes the bug reported by
    Peter Weilbacher in
    http://lists.cairographics.org/archives/cairo/2008-October/015569.html

 src/cairo-type1-subset.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

commit 710f7d30d348517602293f123525aef7677d69cf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 31 02:14:53 2008 +0000

    [scaled-font] Fix typo that prevented meta_surface lookup.
    
    test/text-glyph-range was crashing since we requested the meta_surface but
    the glyph wrongly believed it already had the meta_surface but was
    checking for a path instead.

 src/cairo-scaled-font.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ab15d7627506a837fea7101661425bb923ef5b4f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 16:54:23 2008 +0000

    [test] Remove XFAIL from user-font-mask
    
    user-font-mask should PASS modulo the scaling anomalies in the external
    renderers, so remove it from the XFAIL list.

 test/Makefile.am                  |   15 ++++++---------
 test/user-font-mask-pdf-ref.png   |  Bin 0 -> 1927 bytes
 test/user-font-mask-ps2-ref.png   |  Bin 0 -> 1927 bytes
 test/user-font-mask-ps3-ref.png   |  Bin 0 -> 1927 bytes
 test/user-font-mask-svg11-ref.png |  Bin 0 -> 2224 bytes
 5 files changed, 6 insertions(+), 9 deletions(-)

commit 540f555840ba4076e3ab86669daf9bee5695afa2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 23 14:38:44 2008 +0100

    [analysis] Only limit to mask extends if bounded by mask.
    
    The extents of cairo_mask() is only limited to the mask if the operation
    is bounded by the mask.

 src/cairo-analysis-surface.c            |    8 ++++++--
 test/clip-operator-pdf-argb32-ref.png   |  Bin 11145 -> 12125 bytes
 test/clip-operator-pdf-rgb24-ref.png    |  Bin 6530 -> 7367 bytes
 test/operator-clear-pdf-argb32-ref.png  |  Bin 1438 -> 1614 bytes
 test/operator-clear-pdf-rgb24-ref.png   |  Bin 1170 -> 1402 bytes
 test/operator-source-pdf-argb32-ref.png |  Bin 4694 -> 5149 bytes
 test/operator-source-pdf-rgb24-ref.png  |  Bin 3848 -> 4354 bytes
 7 files changed, 6 insertions(+), 2 deletions(-)

commit 4b2998893930e4bab19646e6f0a0c8d2a47f12a2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 23 14:34:30 2008 +0100

    Review users of cairo_rectangle_int_t for incorrect unsigned promotion.
    
    Adrian Johnson discovered cases where we mistakenly compared the result
    of unsigned arithmetic where we need signed quantities. Look for similar
    cases in the users of cairo_rectangle_int_t.

 src/cairo-analysis-surface.c |   48 ++++++++++++++++++++++-------------
 src/cairo-clip.c             |   43 ++++++++++++++++---------------
 src/cairo-gstate.c           |    4 +-
 src/cairo-pattern.c          |   13 ++++++---
 src/cairo-rectangle.c        |    6 +++-
 src/cairo-region-private.h   |    3 +-
 src/cairo-region.c           |    3 +-
 src/cairo-surface-fallback.c |   31 +++++++++++++++--------
 src/cairo-surface.c          |   27 +++++++++++---------
 src/cairo-win32-surface.c    |    4 +-
 src/cairo-xcb-surface.c      |   56 +++++++++++++----------------------------
 src/cairo-xlib-surface.c     |   52 ++++++++++++--------------------------
 src/cairoint.h               |    2 +-
 13 files changed, 144 insertions(+), 148 deletions(-)

commit 0e4156121f05b14f800289ea34c5382de1f20869
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 23 13:37:41 2008 +0100

    [rectangle] Fix unsigned promotion whilst computing intersect.
    
    _cairo_rectangle_intersect() incorrectly allows unsigned promotion during
    its arithmetic.

 src/cairo-rectangle.c |   31 +++++++++++++++++--------------
 src/cairoint.h        |    3 ++-
 2 files changed, 19 insertions(+), 15 deletions(-)

commit 2464b8a0a9f7db7421c257eb4e3ac0d98af34761
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 23 13:36:19 2008 +0100

    [pattern] Allow the projected surface extents to be negative.
    
    In order to handle projection of analysis surface with user-fonts we need
    to accommodate patterns extending into negative coordinate space.

 src/cairo-pattern.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit d5d29075bdbb7f412fa6dc182573da18fd81af54
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 23 15:24:13 2008 +0100

    [gstate] Allocate temporary variable for backend_to_user transform.
    
    _cairo_gstate_backend_to_user_rectangle() requires that its input
    arguments are non-NULL and describe the input rectangle to be transformed.
    However, we were passing through output parameters from the public API
    which were allowed to be NULL. So we need to allocate temporary variables
    in which to compute the output rectangle, but only copy them as required.

 src/cairo-gstate.c |   69 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 50 insertions(+), 19 deletions(-)

commit d53537e8b5e3a8345983d8a0529cb230fa2886d1
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 30 08:20:59 2008 -0700

    Increment version to 1.8.3 after the 1.8.2 release.
    
    Thanks to Chris Wilson (who else?) for the last-minute bug fix.

 cairo-version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f7c958d97221375fdcbb6c58c3b58c07676b7589
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 21:02:04 2008 -0700

    Increment cairo version to 1.8.2.
    
    Hurrah! We're finally there.

 cairo-version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 42711a5586cba5db5451ce2400ee5fe655700391
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 09:54:47 2008 +0000

    [xlib] Fix _draw_image_surface() with opaque images.
    
    If the image was opaque with no alpha channel, we filled the output alpha
    with 0. Typically, the destination surface for dithering is an RGB window,
    so this bug went unnoticed. However, test/xlib-expose-event is an example
    where we generate an intermediate alpha-only pixmap for use as a stencil
    and this was failing as the mask was left completely transparent. The
    simple solution is to ensure that for opaque images, the output alpha is
    set to the maximum permissible value.

 src/cairo-xlib-surface.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

commit c3940d342ac506055c2ce6b7e9b27f92d8a63999
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 09:59:48 2008 +0000

    [xlib] whitespace
    
    Tweak the whitespace to lose some unnecessary line wrapping, casts and
    blanks.

 src/cairo-xlib-surface.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit e51648b601de274559800c63575c7f7e0288f596
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Oct 30 04:43:45 2008 -0400

    [test/xlib-expose-event] Save the output image to disk

 test/xlib-expose-event.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit f534bd549e1e2283735d1eabb60c015a5949a735
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 21:28:56 2008 -0700

    Remove test/twin-ref.png.
    
    I missed this in a previous commit, (I think I had used a
    pattern of twin-*-ref.png which of course didn't match
    this file).

 test/twin-ref.png |  Bin 1836 -> 0 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit cf97966c07bc64ff4b169d1d8239407883a26747
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 21:01:01 2008 -0700

    NEWS: Finish the entry for the 1.8.2 release.
    
    Add some summarizing paragraphs and organize bug-fixes and optimizations
    into separate sections.

 NEWS |   93 ++++++++++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 62 insertions(+), 31 deletions(-)

commit b6741cffef6e86d59fa4809d32de14b9c5e8afbf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 01:15:45 2008 +0000

    [NEWS] Spot another couple of typos.
    
    Proof-reading is difficult, even with the squiggly lines.

 NEWS |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit d20cc827791e177eb73a9003c6704b7a5bc49f71
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 30 01:06:08 2008 +0000

    [NEWS] Correct a couple of typos.
    
    Whilst Carl's not looking, fix a couple of typos -- in particular the one
    calling me a bug! ;-)

 NEWS |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 0ceda81dfdfc4adcec28c71be7822caa0627d818
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 17:38:36 2008 -0700

    NEWS: Add long list of bugs fixed for 1.8.2.
    
    (Still need to add a paragraph or two summarizing the release.)

 NEWS |  110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 110 insertions(+), 0 deletions(-)

commit e0046aaf417a61da008dc6374871fa3687ba94ab
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 16:25:00 2008 -0700

    Remove twin perf case.
    
    This performance test relied on the recently-removed ability
    to select the internal twin-based font family with a name of
    "cairo".
    
    Presumably, we'll want to bring this performance case back when
    some other means of requesting that font face is added.

 perf/Makefile.am  |    1 -
 perf/cairo-perf.c |    1 -
 perf/cairo-perf.h |    1 -
 perf/twin.c       |   50 --------------------------------------------------
 4 files changed, 0 insertions(+), 53 deletions(-)

commit 292233685534aed712dfd45e8ccf498b792ce496
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 16:25:00 2008 -0700

    Remove twin test case.
    
    This test relied on the recently-removed ability to select
    the internal twin-based font family with a name of "cairo".
    
    Presumably, we'll want to bring this test case back when
    some other means of requesting that font face is added.

 test/.gitignore         |    1 -
 test/Makefile.am        |    6 ----
 test/twin-ps2-ref.png   |  Bin 1167 -> 0 bytes
 test/twin-ps3-ref.png   |  Bin 1167 -> 0 bytes
 test/twin-svg11-ref.png |  Bin 1773 -> 0 bytes
 test/twin-svg12-ref.png |  Bin 1773 -> 0 bytes
 test/twin.c             |   60 -----------------------------------------------
 7 files changed, 0 insertions(+), 67 deletions(-)

commit a824d284be23793a5c48b9ae833dcb7b2d5fff80
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 16:21:42 2008 -0700

    Remove the ability to select the internal font face with a name of "cairo".
    
    It's not fair to steal this name from the namespace of family names.
    There are definitely cairo.ttf files that exist out there, and people
    may already be using these, (or may use them in the future), with
    cairo_select_font_face and a family name of "cairo".
    
    In place of this, we'll want to come up with some other new, and
    documented API for selecting the internal font face.

 src/cairo-font-face.c |    6 ++----
 src/cairoint.h        |    1 -
 2 files changed, 2 insertions(+), 5 deletions(-)

commit f039da8d9172a6fb60082901c8dc56c7159ecd24
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 16:17:24 2008 -0700

    Add doltcompile and doltlibtool to .gitignore.
    
    These generated files were recently added to our build system.
    We definitely don't want to see them in git-status output.

 .gitignore |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 81439b3bc8656b34c13b3cc7b5b6a9f03a3c8c54
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 29 16:15:12 2008 -0700

    Add missing files to CLEANFILES and DISTCLEANFILES.
    
    Without these files in these lists, "make distcheck" is unhappy.

 Makefile.am      |    4 +++-
 test/Makefile.am |    9 +++++++++
 2 files changed, 12 insertions(+), 1 deletions(-)

commit dd0416f5d47a946498219616f53abdad81d4fc38
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 18:01:09 2008 -0700

    Add recently added reference images to REFERENCE_IMAGES list.
    
    This is just part of the make-distcheck routine for me. I know
    Behdad added a test to check for missing images in the list, but
    it doesn't seem to be getting run automatically as part of
    'make test' nor 'make distcheck', (or if it it, then I'm not
    noticing its output).

 test/Makefile.am |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 9cd9644c1d993f86c6eb7bee692fe642d6d280b1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 29 21:56:36 2008 +0000

    [test] Add a pass-through test.
    
    Check that colour values are correctly passed through all the backends.
    Simple test of the most fundamental functionality.

 test/.gitignore                 |    1 +
 test/Makefile.am                |    3 +
 test/pass-through-ref.png       |  Bin 0 -> 221 bytes
 test/pass-through-rgb24-ref.png |  Bin 0 -> 179 bytes
 test/pass-through.c             |   99 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 103 insertions(+), 0 deletions(-)

commit cec689eab628b59ee1d69e241c5d336760304ea0
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 17:18:34 2008 -0700

    RELEASING: Suggest running 'make distcheck' against Xvfb.
    
    This avoids hitting driver-specific bugs in the X server, and is
    better than doing 'DISPLAY= make distcheck' which simply disables
    all xlib testing completely.

 RELEASING |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit 0ca6ba18e398db7ed8f8bca5faa93d48aa3a4878
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 17:15:42 2008 -0700

    Add note to test/README on running with Xvfb.
    
    This X server has been tested to run through the test suite with
    no unexpected failures, and it avoids hitting any X-driver-specific
    bugs.

 test/README |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

commit eed67717649c343e42ce102a4d78a245dba48925
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 17:12:15 2008 -0700

    Disable the svg12 target in boilerplate.
    
    This target was added to the boilerplate during 1.8.1. It currently
    shows many failures in the test suite. These failures likely fall
    into three different classes:
    
    	* Tests needing new svg12-specific reference images
    
    	* Tests exercising bugs in librsvg
    
    	* Tests exercising existing cairo bugs
    
    We haven't gone through the effort to separate these, but even for
    the tests that are exercising actual cairo bugs, these are likely
    bugs that existed in the cairo 1.8.0 release and not regressions.
    
    Because of that, in this commit I'm conditionally disabling the
    testing of the svg12 target. As soon as we increment the cairo
    version to 1.9.0 or higher, this target will get re-enabled
    automatically and we can begin the work to separate the tests as
    described above and also fix the bugs.

 boilerplate/cairo-boilerplate.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit a94928ddfa066f6e6824775b9d0b6008f3fcbf26
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 15:55:38 2008 -0700

    Add svg-specific reference images for the twin test.
    
    A bit annoying that I have to add the same image as both -svg11
    and -svg12 but that's all the support we have in the current
    test suite. I suppose I could avoid doing that by figuring out
    why this test case cannot successfully roundtrip through librsvg
    and back through cairo.

 test/twin-svg11-ref.png |  Bin 0 -> 1773 bytes
 test/twin-svg12-ref.png |  Bin 0 -> 1773 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 53554ea8892893098b29a27a23c069f0ee584a06
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 15:50:44 2008 -0700

    Add ps2-specific reference images for trap-clip test.
    
    These are quite similar to the existing ps3-specific reference images.
    I definitely don't see any reason why this output should be considered
    a failure.

 test/trap-clip-ps2-argb32-ref.png |  Bin 0 -> 5690 bytes
 test/trap-clip-ps2-rgb24-ref.png  |  Bin 0 -> 5617 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 10fd16a05d8549753179ab5cca855539fb7dec94
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 15:41:40 2008 -0700

    Mark user-font-mask as XFAIL.
    
    This test is expected to fail due to a couple of known bugs. Chris
    has fixes for both bugs, but is holding off on them until after 1.8.2
    to prevent introducing any possible new bugs with his fixes.

 test/Makefile.am |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

commit 655546243f57ae2a5c1813bd45994b18061f1c74
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 15:35:35 2008 -0700

    Rename user-font-image test to user-font-mask.
    
    Otherwise the reference image (user-font-image-ref.png) gets
    interpreted as an image-specific reference image for the
    user-font test case resulting in a bogus failure.

 test/Makefile.am             |    4 +-
 test/user-font-image-ref.png |  Bin 6011 -> 0 bytes
 test/user-font-image.c       |  254 ------------------------------------------
 test/user-font-mask-ref.png  |  Bin 0 -> 6011 bytes
 test/user-font-mask.c        |  254 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 256 insertions(+), 256 deletions(-)

commit 42d2d1b6d3b187b5dbdb630783d7c9bf90c66fb2
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Oct 28 12:48:03 2008 -0700

    Correct NEWS to say 'release' instead of 'snapshot' for 1.8.0
    
    A copy-and-paste bug strikes again.

 NEWS |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 1327ec232cfca675647fb03876487c92fb638354
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 28 10:00:38 2008 +0000

    [image] Remove invalid assert.
    
    The assert can fail for an error surface.
    
    TODO: Decide what values should be returned from getters for error
    surfaces.

 src/cairo-image-surface.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

commit 9481d999df8d399543bdbb45b85bd24b1725bece
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 28 09:59:01 2008 +0000

    [image] Check create_for_data() to ensure a valid minimum stride.
    
    Double check that the user is not being silly by passing in a stride that
    is too small for the width. evince/poppler is one such example...

 src/cairo-image-surface.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

commit 88f628b3972819c0f6ce8e5f06d0f7e6abb9d661
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 28 09:11:23 2008 +0000

    [perf] Fix rectangular case of unaligned-clip.
    
    Janoos spotted that the unaligned clip actually degenerated to an empty
    clip due to a typo when constructing the second rectangle. Simply use a
    cairo_rectangle() instead.

 perf/unaligned-clip.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

commit 1522805f39c505ff05231e67de5a6e6686081d46
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Oct 27 20:57:56 2008 -0400

    [Makefile.am.releasing] Fix typo

 build/Makefile.am.releasing |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 3386794d96d2b1616af9db5b7df1fc5c7a5796a7
Author: Carl Worth <cworth@cworth.org>
Date:   Mon Oct 27 14:09:19 2008 -0700

    Add creation of a versioned manual to the release-publish target.
    
    This arranges so that a versioned manual will be available of the form:
    
    	http://cairographics.org/manual-X.Y.Z
    
    for all future releases and snapshots. We're going through the process
    of manually doing all former releases, such as:
    
    	http://cairographics.org/manual-1.2.0/
    
    which the LSB folks wanted to reference.

 build/Makefile.am.releasing |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

commit a1a7ec6a056fa36389a48c0f53884ae7e92ebc1a
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Oct 27 23:13:05 2008 +1030

    Change ps to ps3 in test/README
    
    The ps target no longer exists.

 test/README |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 670d942fe3dafbed5ceca234e760f29f793233cb
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Oct 27 23:04:16 2008 +1030

    Change user-font-image test to use a pattern
    
    This can be used to expose a bug in _cairo_rectangle_intersect() by
    changing:
    
      fixed_scale = 1024 to 1 in cairo-user-font.c
    
    and
    
    cairo_matrix_translate (&matrix, 0, -8) to (&matrix, 0, -9) in
    user-font-image.c
    
    This will cause cairo_text_extents (cr, text, &extents) in
    user-font-image.c to return a height of 8388683.

 test/user-font-image-ref.png |  Bin 5502 -> 6011 bytes
 test/user-font-image.c       |   13 +++++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

commit cdacf55e1b16a6982c681fab212405fc4af4f1db
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Oct 27 22:07:04 2008 +1030

    Add user-font-image test
    
    Draws bitmap glyphs using cairo_mask(). This test exposes a bug in the
    calculation of the glyph extents.

 test/Makefile.am             |    2 +
 test/user-font-image-ref.png |  Bin 0 -> 5502 bytes
 test/user-font-image.c       |  245 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 247 insertions(+), 0 deletions(-)

commit 22e2dac819de3c082424ebf3ce8f64c9c4797e8a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 26 10:21:37 2008 +0000

    [stroke] Ensure we record the first face for a dashed path.
    
    If the first face was outside the bounds then we skipped it, and so a
    close would incorrectly connect to the first visible face.

 src/cairo-path-stroke.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 64fb3290f00bafc4a10e6432226f669a51fa0bc6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 26 09:54:03 2008 +0000

    [stroke] _cairo_stroker_line_to_dashed() whitespace
    
    A couple of comment spelling mistakes and rearrange whitespace to more
    closely match CODING_STYLE.

 src/cairo-path-stroke.c |   57 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 39 insertions(+), 18 deletions(-)

commit 88935947d11762c91e282fb129c493afc6f2f1a6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 26 08:19:31 2008 +0000

    [test] Add leaky-dashed-stroke
    
    A test case for a leak whilst closing a dashed stroke extracted from the
    report by Jeff Muizelaar who found the artifact whilst looking at
      firefox http://people.mozilla.com/~jmuizelaar/BerlinDistricts-check.svg

 test/.gitignore                      |    1 +
 test/Makefile.am                     |    4 +
 test/leaky-dashed-stroke-ps2-ref.png |  Bin 0 -> 5511 bytes
 test/leaky-dashed-stroke-ps3-ref.png |  Bin 0 -> 5511 bytes
 test/leaky-dashed-stroke-ref.png     |  Bin 0 -> 9214 bytes
 test/leaky-dashed-stroke.c           |  174 ++++++++++++++++++++++++++++++++++
 6 files changed, 179 insertions(+), 0 deletions(-)

commit 195fd27cc64c7aaf18a6d48ccd9d94548331fd4d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 22:04:53 2008 +0100

    [build] Use AC_LINK_IFELSE for testing linker flags.
    
    Richard Hult reported that -Wl,--allow-shlib-undefined was incorrectly
    being identified as supported by gcc under Mac OS/X:
    
    configure:25103: checking whether gcc supports -Wl,--allow-shlib-undefined
    configure:25117: gcc -c -Werror -Wl,--allow-shlib-undefined  conftest.c
    >&5
    i686-apple-darwin9-gcc-4.0.1: --allow-shlib-undefined: linker input file
    unused because linking not done
    
    So instead of just checking whether the compiler accepts the flag, check
    that we can actually link a dummy file.

 build/aclocal.cairo.m4      |   20 ++++++++++++++++++++
 build/configure.ac.warnings |    2 +-
 2 files changed, 21 insertions(+), 1 deletions(-)

commit d692284ab8f90d7402621f1a07aaddcf11d87ef5
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Oct 23 01:45:35 2008 -0400

    [test/user-font] Exercise glyph 0
    
    Previously there was a bug in cairo and/or poppler causing glyph 0 of
    user fonts to not show up.  This is fixed now, so we exercise glyph 0.

 test/user-font.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

commit e6219f7116311d999054dc31df081aa66a0cd2d3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 17:53:05 2008 +0100

    [win32] Correct error paths in text_to_glyphs().
    
    Carl spotted that 1db894 introduced an error into text_to_glyphs() such
    that following an allocation error the code would attempt to thaw an
    unfrozen glyph cache, leading to an attempt to unlock an unlocked mutex -
    which causes a deadlock under win32.

 src/cairo-win32-font.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit 09651a1c1a4856607423e9b06c1f7c397ba4f304
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 8 22:39:48 2008 +0100

    Twin perf case

 perf/Makefile.am  |    3 ++-
 perf/cairo-perf.c |    1 +
 perf/cairo-perf.h |    1 +
 perf/twin.c       |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 54 insertions(+), 1 deletions(-)

commit 954ebacb71071c53c4e4092b469417f01478bc2d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 15:43:56 2008 +0100

    Map toy font face to implementation.
    
    Quartz fonts and user fonts use an indirect font face when creating a
    scaled font for the toy font face. This means that they insert a scaled
    font into the font map that has a different font face to the one that is
    initially searched upon. The result is that when we try to create an
    identical scaled font, we fail to find the existing scaled font and
    attempt to insert a duplicate into the hash table - which triggers an
    assert.
    
    In order to avoid creating duplicate fonts, we add a new method to the
    font backends that allows cairo_scaled_font_create() to peek at the
    font_face that will be used to actually implement the scaled font
    constructor - thus we are able to use the correct font_face as part of the
    hash key.

 src/cairo-font-face.c   |   34 +++++++++++++++++++++++++++++
 src/cairo-ft-font.c     |    2 +
 src/cairo-quartz-font.c |   55 +++++++++++++++++++++++++++++++++++++---------
 src/cairo-scaled-font.c |   11 ++++++++-
 src/cairo-user-font.c   |   37 ++++++++++++++++++++++++-------
 src/cairo-win32-font.c  |    2 +
 src/cairoint.h          |    8 ++++++
 7 files changed, 128 insertions(+), 21 deletions(-)

commit 5e4a1cb0b830f069d99c9512563c82ad628587e3
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Oct 22 21:36:42 2008 +1030

    Don't add a notdef glyph to Type 3 font subsets
    
    This allows user-fonts to use glyph 0 when embedding in PS/PDF.
    According to ISO32000 Type 3 fonts do not require a notdef glyph.

 src/cairo-pdf-surface.c                 |   19 +++-------
 src/cairo-ps-surface.c                  |   21 ++++-------
 src/cairo-scaled-font-subsets.c         |   59 ++++++++++++++++++------------
 src/cairo-type3-glyph-surface-private.h |    6 ---
 src/cairo-type3-glyph-surface.c         |   16 --------
 5 files changed, 48 insertions(+), 73 deletions(-)

commit 170686d4b0ed913a1a175f3f354ec5796814b416
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 22 01:01:06 2008 +0100

    [cairoint] Remove the duplicate prototype.
    
    In the previous commit I added comments and a duplicate prototype. Remove
    the duplicate - but keep the comments.

 src/cairoint.h |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

commit 1db8949f2baf1e620e1d5ef73a66de211420bd0a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 22:48:17 2008 +0100

    Ensure that the scaled font is frozen for the lifetime of the scaled glyph.
    
    After discussing the scaled font locking with Behdad, it transpired that it
    is not sufficient for a font to be locked for the lifetime of a scaled glyph,
    but that the scaled font's glyph cache must be frozen for the glyph'
    lifetime.  If the cache is not frozen, then there is a possibility that the
    glyph may be evicted before the reference goes out of scope i.e. the glyph
    becomes invalid whilst we are trying to use it.
    
    Since the freezing of the cache is the stronger barrier, we remove the
    locking/unlocking of the mutex from the backends and instead move the
    mutex acquisition into the freeze/thaw routines. Then update the rule on
    acquiring glyphs to enforce that the cache is frozen and review the usage
    of freeze/thaw by all the backends to ensure that the cache is frozen for
    the lifetime of the glyph.

 src/cairo-directfb-surface.c    |    4 +-
 src/cairo-glitz-surface.c       |    2 +-
 src/cairo-gstate.c              |    4 -
 src/cairo-meta-surface.c        |    2 -
 src/cairo-mutex-impl-private.h  |    3 +-
 src/cairo-mutex-type-private.h  |    3 +
 src/cairo-paginated-surface.c   |    2 -
 src/cairo-pdf-surface.c         |    2 -
 src/cairo-scaled-font-subsets.c |   30 +++---
 src/cairo-scaled-font.c         |   81 ++++++++++-----
 src/cairo-surface-fallback.c    |    1 +
 src/cairo-surface.c             |    4 -
 src/cairo-svg-surface.c         |    4 +-
 src/cairo-type1-fallback.c      |    9 ++-
 src/cairo-type3-glyph-surface.c |   18 ++--
 src/cairo-user-font.c           |    1 -
 src/cairo-win32-font.c          |   12 ++-
 src/cairo-xcb-surface.c         |  216 +++++++++++++++++++++++----------------
 src/cairo-xlib-surface.c        |   57 ++++++----
 src/cairoint.h                  |    4 +
 src/test-meta-surface.c         |   25 +----
 src/test-paginated-surface.c    |   25 +----
 22 files changed, 280 insertions(+), 229 deletions(-)

commit b2cbbceb4ca57816a498c2c1e676b19182c34e12
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 19:44:42 2008 +0100

    [test/meta-surface-pattern] Propagate errors.
    
    Use cairo_get_target() to propagate any errors from the secondary context.

 test/meta-surface-pattern.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

commit 9d4262ebe07bacacd6e743dea616b37ac51eac01
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Oct 21 17:44:47 2008 -0400

    [build] Use dolt
    
    Dolt is a hack to speed up libtool-based build systems:
    
    	http://dolt.freedesktop.org/
    
    It's completely transparent to the user.  Brings make time
    of cairo from 70s down to 20s.  Yay!

 build/aclocal.dolt.m4 |  177 +++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac          |    1 +
 2 files changed, 178 insertions(+), 0 deletions(-)

commit 5a822046cc66d8405618370c1071433016969020
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:22:48 2008 +0100

    [test/xlib-expose-event] Propagate errors.
    
    Use cairo_get_target() to propagate errors from secondary contexts.

 test/xlib-expose-event.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

commit 21223cc12ca00c52c0b39dc60db410f29e4e76c9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:29:12 2008 +0100

    [test/unbounded-operator] Propagate errors.
    
    Use cairo_get_target() to propagate errors from secondary contexts.

 test/unbounded-operator.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

commit 4c8de6d99d337338d6fd57134247515f9815b5e5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:21:37 2008 +0100

    [test/surface-pattern-scale-up] Propagate errors.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/surface-pattern-scale-up.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit e8de7d1c3605fa6d89640fb4e0631c07e5366348
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:20:54 2008 +0100

    [test/surface-pattern-scale-down] Propagate errors.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/surface-pattern-scale-down.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit b5551cfce2969358746dadae90cbe1add012e29c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:19:40 2008 +0100

    [test/rotate-image-surface-paint] Proapgate errors.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/rotate-image-surface-paint.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit 6d41ffbbed2ad3bab2b1a58e1e5d9e1570a37926
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:18:37 2008 +0100

    [test/pixman-rotate] Propagate errors
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/pixman-rotate.c |   33 ++++++++++++++++-----------------
 1 files changed, 16 insertions(+), 17 deletions(-)

commit 64949b81735ee4e43772224d10031f7edfbc8068
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:17:13 2008 +0100

    [test/operator-source] Propagate errors.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/operator-source.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

commit 971f030b7dca7ce24e54d0465900e6984020345e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:27:17 2008 +0100

    [test/operator-clear] Propagate errors.
    
    Use cairo_get_target() to propagate errors from secondary contexts.

 test/operator-clear.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

commit 9b919b0e91b6c64acbcbfc05c72610188327be67
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:14:51 2008 +0100

    [test/extend-pad] Propagate errors.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/extend-pad.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit 69415b4fc6387acda7498847f8181c802c8b0982
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:25:38 2008 +0100

    [test/device-offset-scale] Propagate errors
    
    Use cairo_get_target() to propagate errors from the secondary contexts.

 test/device-offset-scale.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

commit 9ab296123ef49259a67e8dc43708023da2759283
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:14:01 2008 +0100

    [test/device-offset-positive] Propagate errors.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/device-offset-positive.c |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

commit 594fa0836f2526e0a7f44fc7184f7f09de7dd41f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 11:12:11 2008 +0100

    [test/device-offset] Propagate error.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/device-offset.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 29da47be60b0373ff93769f9f373a20b15a01e0f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 10:42:41 2008 +0100

    [ps] Check for an empty font subset.
    
    Return early before trying to emit an empty subset into the document -
    avoids a potential use of an uninitialised status variable.

 src/cairo-ps-surface.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit fd1f3c27e093b1f51f0c1a381cc02cbf8f9889d7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 21 09:17:56 2008 +0100

    [configure] Check for atomic xchg.
    
    Bug 18140 identifies a case where we have an atomic increment, but not an
    atomic exchange. We need both to implement atomic reference counting, so
    add a second check to detect whether __sync_val_compare_and_swap
    generates a non-atomic instruction.
    
    Fixes http://bugs.freedesktop.org/show_bug.cgi?id=18140.

 build/aclocal.cairo.m4 |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit 71e4f7e3a10e6c9794360473d0114b27b42bcead
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 23:54:57 2008 +0100

    Add API documentation for NULL filenames and write_funcs.
    
    Mention in the API docs that you can pass a NULL filename to
    cairo_(pdf|ps|svg)_surface_create in order to construct a queryable
    surface without generating any temporary files. Similarly when passing a
    NULL write_func to cairo_pdf_surface_create_for_stream et al.

 src/cairo-pdf-surface.c |   10 ++++++++--
 src/cairo-ps-surface.c  |   10 ++++++++--
 src/cairo-svg-surface.c |   10 ++++++++--
 3 files changed, 24 insertions(+), 6 deletions(-)

commit 6cb2b29434ffd5e718868d90e31cb050904b3ea7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 23:22:16 2008 +0100

    [mutex] s/HOLDS_MUTEX/MUTEX_IS_LOCKED/
    
    Behdad prefers the latter to keep a clean namespace.

 src/cairo-mutex-impl-private.h |    2 +-
 src/cairo-mutex-type-private.h |    4 ++--
 src/cairo-scaled-font.c        |   18 +++++++++---------
 3 files changed, 12 insertions(+), 12 deletions(-)

commit ae9d17c015867002895c8aa4e1c6dd1ef370dd20
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 22:31:17 2008 +0100

    [directfb] Unbounded operators are unsupported.
    
    Currently the emulation of Porter-Duff operators does not correctly
    handle the unbounded operators.

 src/cairo-directfb-surface.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

commit 1f35f31c4ee50dcc2f7c8616b9bbb5c45b4ed707
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 22:14:41 2008 +0100

    [directfb] Fallback for SATURATE
    
    We're unable to satisfactorily emulate SATURATE using the src/dst blend
    modes, so fallback. (Might just be a bug in libdirectfb...)

 src/cairo-directfb-surface.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit c7951c4a368baaeeadca4e2a18d3ad45225380a0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 22:04:58 2008 +0100

    [directfb] Perfom text fallback if emulating clip regions.
    
    Fallback if we have a clip that is not a simple region.

 src/cairo-directfb-surface.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

commit 98933fd4b8579b68623a8212015769b058db43f5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 20:59:14 2008 +0100

    [directfb] When blitting check if we need the un-premultiplied color.
    
    When blitting whether we need to use the premultiplied color is dependent
    upon the destination surface capabilities.

 src/cairo-color.c            |    3 ++
 src/cairo-directfb-surface.c |   75 ++++++++++++++++++++++++++++-------------
 2 files changed, 54 insertions(+), 24 deletions(-)

commit 4af8aa5f4d31141a6a4ba914cc860aff5d342d5b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 20:15:12 2008 +0100

    [directfb] Apply clip to release_dest_image()
    
    We need to respect the current clip when copying the fallback image back to
    the target surface.

 src/cairo-directfb-surface.c |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

commit 0ba5085ba06fd1c0ff1ebc88111d4573675a2e17
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 19:41:20 2008 +0100

    [directfb] Fix OBO in clip.
    
    DirectFB seems to use inclusive upper bounds.

 src/cairo-directfb-surface.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 2743e84171fd2a548ac37b1fdd3611d319acded0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 19:32:21 2008 +0100

    [directfb] Force NEAREST.
    
    The current version of DirectFB does not support any filters, so set
    NEAREST on the source patterns so that we can fully optimize the pattern
    inside core.

 src/cairo-directfb-surface.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit f1669d31c0064b8ffbc7db2527fed85488fb305c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 19:03:33 2008 +0100

    [directfb] Track the empty clip rectangle.
    
    A region with no extents means everything should be clipped out, so we
    need an extra flag to disambiguate when we have 0 clip rectangles.

 src/cairo-directfb-surface.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit ebe3048f9b74ff949795a807a7076ec756150ede
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 18:59:03 2008 +0100

    [directfb] Cap the maximum surface size to use for the font cache.
    
    Fallback if we need to create a cache larger than the maximum usable
    surface.

 src/cairo-directfb-surface.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

commit 6f35c2d13e4cb736634bf446d3b8ee38cc6a6b9b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 18:39:45 2008 +0100

    [directfb] Only use the pure BLIT for integer translations.
    
    If we have non-integer translation on a source pattern then we need to use
    STRECTHBLIT (the core takes care to optimize NEAREST patterns to integer
    translations so that this will only be used when interpolation is
    required).

 src/cairo-directfb-surface.c |   30 +++++++++++++++++++++++-------
 1 files changed, 23 insertions(+), 7 deletions(-)

commit 55bb7087b0236fe27980efda829f7b72e047b316
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 16:47:41 2008 +0100

    [directfb] Tweak _categorize_operation().
    
    Explicitly list the extend modes that are supported/unsupported and
    immediately check for an unsupported operation.

 src/cairo-directfb-surface.c |   37 +++++++++++++++++++++++++------------
 1 files changed, 25 insertions(+), 12 deletions(-)

commit edb65213ec975e517165bc3b623f676a12917d0c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 16:46:08 2008 +0100

    [directfb] Support ROI cloning.
    
    Only clone the ROI in order to efficiently handle large sources.

 src/cairo-directfb-surface.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

commit 4006e49ac1e96a983346f97be97bfd850f247ab0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 16:45:06 2008 +0100

    [directfb] Rename backend structure.
    
    Use _cairo_directfb_surface_backend for consistency with other backends.

 src/cairo-directfb-surface.c |   37 ++++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 13 deletions(-)

commit 7e31ddbb08a6a7cf1db06c950c3768e54a5f4cfa
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 13:04:20 2008 +0100

    [directfb] Whitespace.
    
    Trim lots of trailing whitespace and fix up according to CODING_STYLE.

 src/cairo-directfb-surface.c | 1478 +++++++++++++++++++++---------------------
 1 files changed, 733 insertions(+), 745 deletions(-)

commit d49563280b80dd85275057b6442d2f4ece8d724c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 12:49:52 2008 +0100

    [directfb] Simplify return from _directfb_get_operator().
    
    Used only as a predicate, so simply return a boolean.

 src/cairo-directfb-surface.c |  138 +++++++++++++++++++++---------------------
 1 files changed, 68 insertions(+), 70 deletions(-)

commit b17d0ded8cd42d84e97ca2c1fbd4aefedd570b8e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 12:48:02 2008 +0100

    [directfb] Use the solid pattern cache.
    
    The dfb backend recreated a solid color surface for every colour,
    completely bypassing the solid pattern cache.

 src/cairo-directfb-surface.c |   72 ++++++++++-------------------------------
 1 files changed, 18 insertions(+), 54 deletions(-)

commit 786bea48df0dc6d76b2ad00409804a803fe2f4b6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 12:19:50 2008 +0100

    [boilerplate/directfb] Create ARGB surfaces on demand.
    
    Create an RGB or ARGB surface depending upon the content type of the test
    target, with the result that the directfb rgb24 target no longer
    unconditionally fails.

 boilerplate/cairo-boilerplate-directfb.c |   23 +++++++++++++----------
 1 files changed, 13 insertions(+), 10 deletions(-)

commit 4ba9ccc6ab5926d59696f86193f42df2195d7cda
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 23:07:38 2008 +0100

    [configure.ac.analysis] s/safe/_save/
    
    Rename the temporary variable in line with the convention used by the rest
    of the build system.

 build/configure.ac.analysis |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 3a45b07af9743a26305c2576f838b4f3ef83bbb8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 10:37:46 2008 +0100

    [perf] Free images for composite-checker
    
    Fix memleak of the image surfaces.

 perf/composite-checker.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 86356a9578dc248a755aceb7a04aef67a6c529b3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 20 17:12:21 2008 +0100

    [test] Add degenerate-dash to XFAIL.
    
    PS (ghostscript) interprets the degenerate end-caps quite differently, and
    perhaps slightly more rationally... Add this to XFAIL, until we have a
    definitive specification on how we should behave.

 test/Makefile.am |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 83d2552e4cafc9f86a8055abdf6caa685ed4922b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Oct 20 17:59:09 2008 -0400

    Remove CAIRO_BEGIN_DECLS uses that ickle introduced while merging

 src/cairo-mutex-impl-private.h |    2 --
 src/cairo-mutex-type-private.h |    2 --
 2 files changed, 0 insertions(+), 4 deletions(-)

commit eab37f76b0f26a7b007dd51debf4d4901310c8b0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 22:12:18 2008 +0100

    [directfb] Return an error surface on create() failure.
    
    Do not return NULL but an NO_MEMORY error surface if we fail to allocate
    the surface during creation.

 src/cairo-directfb-surface.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

commit 6a02f53dd191605986b15e4757b16f599fe8de5f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 14:21:15 2008 +0100

    [directfb] Simplifiy ADD_TRI
    
    Simplify the ADD_TRI macro to make the code more readable.

 src/cairo-directfb-surface.c |   30 +++++++++++++-----------------
 1 files changed, 13 insertions(+), 17 deletions(-)

commit aba457fe64f12598043b11ae076f0a93fe05eba7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 14:03:24 2008 +0100

    [directfb] Add missing error status
    
    We jumped to the ERROR path without setting an error status - assume
    NO_MEMORY.

 src/cairo-directfb-surface.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 610451e4a7b079d30a73384a76f0aaab250c2970
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 12:45:45 2008 +0100

    [directfb] Correct fixed-to-double conversion.
    
    The trapezoid calculations had not been updated after the 16.16->24.8
    switch. Use _cairo_fixed_to_double() rather than open-coding.

 src/cairo-directfb-surface.c |  110 ++++++++++++++++++++---------------------
 1 files changed, 54 insertions(+), 56 deletions(-)

commit 8e0950ced8837a35b9dc0254860250f9fa1a9613
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 12:11:13 2008 +0100

    [boilerplate/directfb] Gracefully handle failure to create surface.
    
    Simply return NULL indicating failure to create the target surface rather
    than aborting the test (allowing other targets to be tested).

 boilerplate/cairo-boilerplate-directfb.c |  230 +++++++++++++++++-------------
 1 files changed, 130 insertions(+), 100 deletions(-)

commit 801df1b87a585ebf71e6d3d74b815f3470b81ae9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 11:55:20 2008 +0100

    [directfb] Fix error propagation from surface_create()
    
    Do not mask fatal errors, but correctly propagate the error status.

 src/cairo-directfb-surface.c |  208 +++++++++++++++++++++++-------------------
 1 files changed, 114 insertions(+), 94 deletions(-)

commit 476d17fa788fcf173e58b963540c6557f846ceed
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 11:35:27 2008 +0100

    [directfb] Compile fix.
    
    Fixup compilation after 901f0b.

 src/cairo-directfb-surface.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit d72969289db62b38ca024a41c0d8e0df480e7f8c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 09:47:33 2008 +0100

    [image] Remove unused variable.
    
    Cleanup the compiler warning for the unused status after code shuffling.

 src/cairo-image-surface.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit f2ff7944264c23cbec856be3e85f240a93184f80
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 11:56:19 2008 +0100

    [perf] A crude tool to visualise performance changes across a series.
    
    Generate a cairo-perf-diff graph for a series of commits in order to be
    able to identify significant commits. Still very crude, but minimally
    functional.

 configure.ac                   |    3 +
 perf/.gitignore                |    1 +
 perf/Makefile.am               |   26 ++-
 perf/Makefile.win32            |    6 +-
 perf/cairo-perf-diff           |   12 +-
 perf/cairo-perf-diff-files.c   |  458 -------------------------------
 perf/cairo-perf-graph          |  205 ++++++++++++++
 perf/cairo-perf-graph-files.c  |  593 ++++++++++++++++++++++++++++++++++++++++
 perf/cairo-perf-graph-widget.c |  450 ++++++++++++++++++++++++++++++
 perf/cairo-perf-graph.h        |   63 +++++
 perf/cairo-perf-report.c       |  456 ++++++++++++++++++++++++++++++
 perf/cairo-perf.c              |    1 +
 perf/cairo-perf.h              |   61 ++++-
 perf/cairo-stats.h             |    8 -
 14 files changed, 1865 insertions(+), 478 deletions(-)

commit 41c8eefc6d432ab213f6f405c3d6346adb7f7931
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 22:24:32 2008 +0100

    [output-stream] Protect against NULL write_func.
    
    Allow the user to specify a NULL write_func for the output stream so that
    a dummy surface can be created, for example, for querying target font
    options or font extents.
    
    Currently we do not perform any sanity checks at the user entry point and
    will generate a mysterious SEGV during cairo_surface_finish() - which may
    not immediately be obvious that it is due to a NULL write_func.

 src/cairo-output-stream.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 84e4a825fffe3d78e95dec3406a86da6a23144c2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 22:15:17 2008 +0100

    [output-stream] Accept a NULL filename
    
    Principally to support creating a dummy vector surface (i.e.
    cairo_ps_surface_create (NULL, 1, 1)) that can be used to determine font
    extents (or target font options) before opening an output file, but also
    because we currently fail to do any sanity checking at the entry point.

 src/cairo-output-stream.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 52ea38f97b1b90e395c667619770482b10e5672e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 18 00:44:29 2008 +0100

    [meta] Acquire scaled_font mutex for glyph_path().
    
    The caller of _cairo_scaled_font_glyph_path() is expected to be holding
    the scaled_font->mutex.

 src/cairo-meta-surface.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 299ea0580a646dc55fd0156f1904fe4b45ec5725
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 18 00:37:38 2008 +0100

    [user-font] Review locks under error conditions.
    
    Simplify the error handling by only relinquishing the global
    scaled_font_map mutex if we successfully insert the placeholder font. The
    result is that on the error path, there are no changes to global state and
    thus we can entirely skip the user-font initialisation and
    re-registration.

 src/cairo-scaled-font.c |   44 ++++++++++++++++++++++----------------------
 src/cairo-user-font.c   |   39 +++++++++++++++++++++++----------------
 src/cairoint.h          |    2 +-
 3 files changed, 46 insertions(+), 39 deletions(-)

commit c76a8481f372fab8981231b257fdcc69466263d2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 18 00:36:34 2008 +0100

    [analysis] Check for error surfaces.
    
    If the target surface is an error surface, ensure that we return the
    appropriate error surface. Likewise, avoid writing to error surfaces.

 src/cairo-analysis-surface.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

commit 5b28b0b903cb2fdb8a5614659d528bf12488389e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 18 00:35:48 2008 +0100

    [ps] Destroy type3 surface on error.
    
    After an error, ensure that the local type3 surface is destroyed.

 src/cairo-ps-surface.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 6b17c6da47c42dd04ed2acad723c25b6da41b51c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 18 00:34:17 2008 +0100

    [type3] Acquire scaled_font mutex whilst looking up glyphs.
    
    When looking up the glyph in the shared scaled_font glyph cache, the
    caller is required to have taken the scaled_font->mutex.

 src/cairo-type3-glyph-surface.c |   50 +++++++++++++++++++++++---------------
 1 files changed, 30 insertions(+), 20 deletions(-)

commit f56cf93181e73b4ba74f25ce14f7ed6c7cf36e83
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 22:13:53 2008 +0100

    [user-font] Check for error objects.
    
    Check that the user has not passed in an inert error object before any
    attempts to write to it and return the default values.

 src/cairo-user-font.c |   71 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 59 insertions(+), 12 deletions(-)

commit 1f9f9d936b296dbe796b1436c7da7fa3462f7d59
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:39:56 2008 +0100

    [pdf] Acquire scaled_font mutex for show_text_glyphs().
    
    We need to be holding the scaled font mutex over a call to draw text
    glyphs from within an smask group.

 src/cairo-pdf-surface.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 12fb8c9b7c808ab20bee466aa28ee368559fd902
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:33:07 2008 +0100

    [type1] Acquire scaled_font mutex.
    
    In order to perform glyph lookups we need to be holding the mutex for the
    scaled_font.

 src/cairo-type1-fallback.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit ca5f868a73b35eda737ae6596efff91f82eeea75
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:26:20 2008 +0100

    [scaled-font] Zero font extents for an error surface.
    
    Do not attempt to read from the error object, but just return zero
    extents.

 src/cairo-scaled-font.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

commit 1ddf0b2a5c1f3d20b9a91acf7aae021f6b738485
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 10:35:38 2008 +0100

    [surface] Reorder asserts to make no assumptions about error objects.
    
    If the surface is in error, then we cannot assume anything about the
    validity of its contents other than the error status (and reference
    count). This is for the cases were the surface is replaced by a nil
    surface, and in future where the error surface may be replaced by a tiny
    error object.

 src/cairo-surface.c |   94 +++++++++++++++++++++++++-------------------------
 1 files changed, 47 insertions(+), 47 deletions(-)

commit 644e78ca4e6f72499fcf763acd53fa7235b0226d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 20:34:13 2008 +0100

    [svg] Lock the scaled_font whilst emitting glyphs.
    
    We need to hold the scaled_font mutex whilst looking upon glyphs so lock
    the font whilst iterating over the font subset.

 src/cairo-svg-surface.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 4587e9e4f5c46656108b05f7a4841f78df14de26
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 19:11:09 2008 +0100

    [scaled-font-subsets] Add locking to unscaled font.
    
    During map_glyph() we are passed a locked scaled_font for which we are
    asked to add a glyph from that font into the active subsets for the
    surface. This means that we eventually call scaled_glyph_lookup() to load
    the glyph. But first, we attempt to find an existing an existing sub_font
    for glyph, creating a new sub_font as necessary (possibly using an
    entirely different unhinted scaled font). So before accessing the glyph
    cache we need to make sure that we are holding the appropriate mutexes.

 src/cairo-scaled-font-subsets.c |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

commit d3a6651237a276c410885578c41fb505f83372ed
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 14:37:42 2008 +0100

    [xlib] Set return code after failing to allocate glyph surface.
    
    Although we checked for an allocation error, we missed propagating the
    status to the return error code.

 src/cairo-xlib-surface.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

commit bfc3a72cff1a3f9641dae7c9f121598a14eb9a5a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 14:06:03 2008 +0100

    [gstate] Propagate error from clip.
    
    During clip transformation we query the clip extents which can trigger a
    fatal error. Check and propagate.

 src/cairo-gstate.c |   33 +++++++++++++++++++++++----------
 1 files changed, 23 insertions(+), 10 deletions(-)

commit 7975cf3f2c0bc28b8b3c916d5ba725abb38b300d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 13:21:28 2008 +0100

    [paginated] Free local reference to target on error path.
    
    On the error path we must destroy the local reference to the target
    surface.

 src/cairo-paginated-surface.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 4662204a2a02d50e674f121d82bbb4fe1b8f1436
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 12:44:45 2008 +0100

    [test-paginated] Fix double free of surface along error path.
    
    The ownership of the surface is transferred to the paginated surface, so
    we do not need to destroy it ourselves along the error path.

 src/test-paginated-surface.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

commit bf3202fcfd281be3fa62c2d6719377a8f2a0dec4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 12:33:22 2008 +0100

    [xlib] Fix double free of Pixmap along error path.
    
    If the paint fails then we attempt to free the Pixmap ourselves and via
    the cairo_surface_destroy (as it also believes that it owns the Pixmap).

 src/cairo-xlib-surface.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

commit 901f0b540c764e131dd9745def329308af61b3d5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 12:19:09 2008 +0100

    Review backend->create_similar()
    
    Avoid masking fatal errors by enforcing any error to be returned via an
    error surface, so that the NULL return only means UNSUPPORTED. A few
    backends called their create_similar() directly, without correctly checking
    for a potential NULL (for example, the directfb backend was a timebomb,
    since it used NULL to indicate out-of-memory).

 src/cairo-directfb-surface.c |   18 ++++++++++--------
 src/cairo-glitz-surface.c    |   17 +++++++++++------
 src/cairo-quartz-surface.c   |    4 ++--
 src/cairo-surface.c          |    8 ++------
 src/cairo-win32-surface.c    |   18 +++++++++++++-----
 src/cairo-xcb-surface.c      |    2 ++
 6 files changed, 40 insertions(+), 27 deletions(-)

commit 9529699028a5c7a3b0f81f945d25f26285247a11
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 19 09:35:07 2008 +0100

    [test/user-font-rescale] Check and propagate errors.
    
    We need to check the error status on set_user_data() to be sure that the
    data has been set and error otherwise.

 test/user-font-rescale.c |   63 +++++++++++++++++++++++++++++----------------
 1 files changed, 40 insertions(+), 23 deletions(-)

commit 683de2fea2d8cdeea9759cbf3ab7492d634e7af2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 18 00:01:39 2008 +0100

    [test/user-font[-proxy]] Check for error from set_user_data().
    
    Check in case we fail to attach our user_data.

 test/user-font-proxy.c |   69 +++++++++++++++++++++++++++---------------------
 test/user-font.c       |   24 +++++++++++++---
 2 files changed, 58 insertions(+), 35 deletions(-)

commit 198392990082e01443bbda5c0cbe6dc8bf090baf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 22:14:49 2008 +0100

    [test/bitmap] Leak on error path.
    
    Free the FcPattern on error.

 test/bitmap-font.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit 0409be426cb7f67974346a93213dd4675b59776c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 14:26:15 2008 +0100

    [test/font-matrix-translation] Check for OOM
    
    First check that querying the extents did not trigger NO_MEMORY.

 test/font-matrix-translation.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit 21360bf6748b30cf58d54561e40a1aa711d8d7af
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 20:44:51 2008 +0100

    [test/source-surface-big-scaled-down] Propagate error.
    
    Propagate error to source.

 test/surface-pattern-big-scale-down.c |   43 +++++++++++++++++++-------------
 1 files changed, 25 insertions(+), 18 deletions(-)

commit 794160c35baf39593942ba71b45e4e75d2a87103
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 20:37:43 2008 +0100

    [test/surface-pattern] Propagate error.
    
    Use cairo_get_target() to propagate error from secondary context.

 test/surface-pattern.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit 0f48cce8d90cf95afcf86d71a932ab4e504b909b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 20:31:57 2008 +0100

    [test/source-clip-scale] Propagate error.
    
    Use cairo_get_target() to propagate error from secondary context.

 test/source-clip-scale.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 6cdbd132ceba159bb7e3ac5612aa79293b21e95a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 20:22:49 2008 +0100

    [test/source-clip] Propagate error.
    
    Use cairo_get_target() to propagate error from the secondary context.

 test/source-clip.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit f86f233b3e49c3f401b2fa02987b2193485e8be5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 20:14:06 2008 +0100

    [test/smask] Propagate error.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/smask.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 4490a6c363a8745ba89bfa890519a570d098086e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 19:15:17 2008 +0100

    [test/stroke-image] Propagate error
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/stroke-image.c |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

commit 6e6d7e52a3c16787633e5059ae36f2fb0d03148a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 19:02:31 2008 +0100

    [test/mask] Propagate error from secondary context.
    
    Reset the source every time so that the error is propagate from the
    secondary context using cairo_get_target().

 test/mask.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

commit a56d4530d6149e2c4fc884a5cfeede2d6ff6d3b6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:54:21 2008 +0100

    [test/smask-text] Propagate error.
    
    Use cairo_get_target() to propagate error from the secondary context.

 test/smask-text.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit b1e884cd89ab2b83d3b8e072414e4e3f63e3a023
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:52:55 2008 +0100

    [test/smask-stroke] Propagate error.
    
    Use cairo_get_target() to propagate the error from the secondary context.

 test/smask-stroke.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

commit 546fbc2c0cf87abd627477056bf19063c5aa001a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:50:25 2008 +0100

    [test/smask-paint] Propagate error.
    
    Use cairo_get_target() to propagate errors from the secondary context.

 test/smask-paint.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 8bd69132827fa539d9dfb65bd00e00c079827360
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:49:02 2008 +0100

    [test/smask-mask] Propagate error.
    
    Use cairo_get_target() to propagate errors from the secondary contexts.

 test/smask-mask.c |   46 ++++++++++++++++++++++------------------------
 1 files changed, 22 insertions(+), 24 deletions(-)

commit 9c0fe6c61e92044e8599f49e75d38edcdd6be960
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:45:07 2008 +0100

    [test/smask-image-mask] Propagate error.
    
    Use cairo_get_target() to propagate any error status from the secondary
    context.

 test/smask-image-mask.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 373d6c76b65e826f81873b51461bdf3c30024c06
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:43:26 2008 +0100

    [test/smask-fill] Propagate error status.
    
    Use cairo_get_target() to propagate the error from the secondary context.

 test/smask-fill.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

commit bb05beaab626d2fca6d219bfd8148dde71073b39
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 15:27:11 2008 +0100

    [test/show-glyphs-many] Check for NO_MEMORY
    
    As we do a manual status check, we need to perform a full check.

 test/show-glyphs-many.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

commit c0a4ef76e17dfd43d248c13b7f0665da9b847316
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 14:57:42 2008 +0100

    [test/composite-integer-translate-over-repeat] Propagate error.
    
    Use cairo_get_target() to propagate any errors from the secondary context.

 test/composite-integer-translate-over-repeat.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit 4a9e0f0e5ba17a322bbf0f38b2fb418211571d48
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 16:50:32 2008 +0100

    [test/mask] Propagate error from secondary context.
    
    Use cairo_get_target() to infect the primary context with any errors
    raised whilst drawing the mask.

 test/mask.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

commit eaec1caa94ac871eb881ac354c4442ddd2a308ea
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 16:20:28 2008 +0100

    [test/ft-text-*] Check for errors from fontconfig.
    
    If a match cannot be found, or if any other error occured, then fontconfig
    will return NULL. Check and propagate.

 test/ft-text-antialias-none.c        |   31 ++++++++++++++++++++++++++-----
 test/ft-text-vertical-layout-type1.c |   31 ++++++++++++++++++++++++++-----
 test/ft-text-vertical-layout-type3.c |   31 ++++++++++++++++++++++++++-----
 3 files changed, 78 insertions(+), 15 deletions(-)

commit 336eddfdbb31865e3669ceb775089c63ce1db27f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 17:19:12 2008 +0100

    [test/get-clip] Check the status on the secondary context.
    
    As we solely use a secondary context, we must manually report NO_MEMORY
    errors whilst running under memfault.

 test/cairo-test.c |   14 +++++++-
 test/cairo-test.h |    4 ++
 test/get-clip.c   |   98 +++++++++++++++++++++++++++--------------------------
 3 files changed, 67 insertions(+), 49 deletions(-)

commit d48f9340514c258cfece1b72d2f7e3f7b2d3c7b1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 14:05:14 2008 +0100

    [test/clip-operator] Propagate error from secondary context.
    
    Use the cairo_get_target() to propagate any errors from the secondary
    context.

 test/clip-operator.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

commit d11014386f739f43ec5f290714d7c51cc638f172
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 5 13:37:07 2007 +0100

    Add support for lockdep.
    
    lockdep is a valgrind skin which performs pthread locking correctness
    validation. In particular it allows one to write assert(HOLDS_LOCK(mutex))
    which both documents the preconditions for a function and enforces them
    when the program is run under lockdep.
    
    As an aide to lockdep (as it works by intercepting the pthread functions),
    all the mutexes should be initialised and destroyed using
    pthread_mutex_init() and pthread_mutex_destroy() rather than using static
    initializers and no-ops.

 src/cairo-mutex-impl-private.h |   14 ++++++++++++++
 src/cairo-mutex-type-private.h |    6 +++++-
 src/cairo-scaled-font.c        |   13 +++++++++++++
 3 files changed, 32 insertions(+), 1 deletions(-)

commit bccfdf7d93c2a92a342127fc212770f4053cb2cf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 13:47:27 2008 +0100

    [test] Add support for memfault.
    
    Add the core support to cairo-test for running the test-suite under a
    malloc fault injector. This commit contains the adjustments to
    cairo_test_run() to repeat the test if it detects a failure due to fault
    injection and complains if it detects unreported faults or memory leaks.

 build/configure.ac.analysis |   17 +++
 test/cairo-test.c           |  271 +++++++++++++++++++++++++++++++++---------
 test/cairo-test.h           |   10 ++-
 3 files changed, 239 insertions(+), 59 deletions(-)

commit 974fabfe059f9744116d20fd9f8b59f1b8c34b70
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 17 18:52:51 2008 +0100

    [ft] Add more comments about FT_Face lifetime issues.
    
    Currently we only have an example of how to call FT_Done after the last
    reference to the FT cairo_font_face_t has been dropped, but do not
    actually explain why this needs to be done. So add a couple of sentences
    to clarify the likely lifetime of the FT_Face once exposed to cairo.

 src/cairo-ft-font.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

commit 5fcfc7ebc9a2d1d947898d269be7ba91d27c5261
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 17:13:45 2008 +0100

    [test/README] Document all fonts used.
    
    Do a little leg-work to answer a query in a bug report and document the
    results.

 test/README |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

commit c1164a574d3e2cc4746384875d5c2781114c0ea4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 16 08:49:13 2008 +0100

    [type1] Add comment to warn about read() as macro.
    
    In case we are ever tempted to simplify the function pointer, warn that it
    may alias with a macro.

 src/cairo-type1-subset.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit ff9ee74b37a88cba2e996bf0cdae1af6b6c6fe30
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Thu Oct 16 17:29:33 2008 +1030

    Revert unintended changes to test/fallback-resolution.c in the previous commit

 test/fallback-resolution.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5911c6966de832fa350a6e9a4d587b7c3b3b4825
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Thu Oct 16 17:22:48 2008 +1030

    Use correct inverse ctm for stroke in meta surface replay
    
    This fixes #9189 Dashed strokes too long in fallback images

 src/cairo-meta-surface.c   |    2 +-
 test/fallback-resolution.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 6afcd821182137e8c3f128f9600e97cff79978b8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 22:41:26 2008 +0100

    [test] Add a spline test.
    
    Test the decomposition of 5 different types of spline curve. Useful test
    for future experiments in improving the decomposition algorithm.
    
    Note: the vector targets all need separate reference images due to their
    lack of support for cairo_set_tolerance(). Also GS strokes the Bezier
    curve differently using offset curves and opposed to transcribing the
    outline of a pen.

 test/.gitignore                         |    1 +
 test/Makefile.am                        |    7 +
 test/spline-decomposition-pdf-ref.png   |  Bin 0 -> 20404 bytes
 test/spline-decomposition-ps2-ref.png   |  Bin 0 -> 8957 bytes
 test/spline-decomposition-ps3-ref.png   |  Bin 0 -> 8957 bytes
 test/spline-decomposition-ref.png       |  Bin 0 -> 20402 bytes
 test/spline-decomposition-svg11-ref.png |  Bin 0 -> 20404 bytes
 test/spline-decomposition-svg12-ref.png |  Bin 0 -> 20404 bytes
 test/spline-decomposition.c             |  416 +++++++++++++++++++++++++++++++
 9 files changed, 424 insertions(+), 0 deletions(-)

commit 91b0dc92c8ede189d942188f92068f189907e239
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 22:27:53 2008 +0100

    [build] Add -fno-common.
    
    Generate a warning if two files define a global variable with the same
    name, instead of silently merging them to reference the same location.

 build/configure.ac.warnings |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit b94b600b34793cecd9a66d37dd34a6619738e2c2
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Oct 15 13:41:03 2008 -0400

    [quartz] Completely remove CAIRO_HAS_QUARTZ_IMAGE_SURFACE check
    
    Instead of fixing the check in d36b02dc662e623bee58a69c32b149a242cbf52b, just
    remove it. Conditionally compilation will keep cairo-quartz-image-surface.c
    from being compiled in when it is not configured to be. Suggested by Behdad.

 src/cairo-quartz-image-surface.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

commit d36b02dc662e623bee58a69c32b149a242cbf52b
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Oct 15 12:45:11 2008 -0400

    [quartz] Rebalance 'CAIRO_HAS_QUARTZ_IMAGE_SURFACE' #ifdef
    
    Fixes compilation by re-adding '#ifdef CAIRO_HAS_QUARTZ_IMAGE_SURFACE' which
    was, I assume, unintentionally removed by
    2cf4b3161c19b9b0349bd2aa94855fd0822968be.

 src/cairo-quartz-image-surface.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 83162360a44c4d4701f0ade2e2ee813f79186439
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Wed Oct 15 10:34:12 2008 -0400

    Fix quratz_image typo in Makefile.sources.

 src/Makefile.sources |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 877e77fa3e85c09c29e64ca5ae7329346db029cc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 12:20:00 2008 +0100

    [glitz] Disable caching of solid surfaces.
    
    glitz currently has no mechanism to release resources upon connection
    closure (ala XCloseDisplay) and so will attempt invalid accesses when
    evicting old surfaces from the solid pattern cache.

 src/cairo-glitz-surface.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

commit fc04a1e0dbc3cefa51c7602e0a23dba886813fe5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 12:13:40 2008 +0100

    [boilerplate] Fixup compilation for gliitz.
    
    Convert a few old references to cairo_boilerplate_surface_set_user_data.

 boilerplate/cairo-boilerplate-glitz.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit e17f02add019d9acf461a1ad1245ba5be00cf336
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 10:52:33 2008 +0100

    [type1] Protect against read macro
    
    POSIX allows for any of its functions to be implemented as a macro,
    inflicting damage upon innocent function pointers that happen to share
    the same name.
    
    face->stream->read() is one such example.
    
    As it's outside of our control (being a FT_Face) we cannot simply rename
    the data member, so we need to explicitly dereference it as a function
    pointer in order to disambiguate it for the compiler.

 src/cairo-type1-subset.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit bc872a5f5fb9b6318dc78d132da46a6b201f75c7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 10:21:05 2008 +0100

    [xlib] Handle 4,20,24,28 depth XImages
    
    Bug 9102 cairo doesn't support 24 bits per pixel mode on X11
    (https://bugs.freedesktop.org/show_bug.cgi?id=9102)
    is a reminder that that we need to support many obscure XImage formats.
    With Carl's and Behdad's work to support psuedocolor we have a mechanism
    in place to handle any format that is not natively handled by pixman. The
    only piece we were missing was extending the swapper to handle all-known
    formats and putting in defensive checks that pixels were correctly aligned
    in accordance with pixman's requirements.

 src/cairo-image-surface.c |   13 ++++----
 src/cairo-xlib-surface.c  |   70 +++++++++++++++++++++++++++++++++++++-------
 src/cairoint.h            |    2 +-
 3 files changed, 66 insertions(+), 19 deletions(-)

commit 1728fa352011c570ce1bcc3bd14897e789c85252
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 15 09:23:01 2008 +0100

    [svg] Add notes about why we shouldn't add DOCTYPE.
    
    Emmanuel Pacaud did some research into adding DOCTYPE after we had a
    complaint that our SVG output failed to be validated by batik. The
    conclusion he came to was that the validation of SVG was incomplete and
    misleading, i.e. our output might generate false negatives leading to more
    confusion.

 src/cairo-svg-surface.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

commit e9f5ee6efe7725c1e0e32fa9e85cca61ecb93440
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 14 14:42:48 2008 +0100

    [doc] Fix a few gtk-doc errors.
    
    gtk-doc insists on a non-empty long description, even for trivial
    functions that are fully described by their input arguments and return
    value. Grrr.

 src/cairo-gstate.c      |    4 ++++
 src/cairo-os2-surface.c |    2 ++
 src/cairo-scaled-font.c |   14 +++++++-------
 src/cairo-surface.c     |    4 +++-
 src/cairo-unicode.c     |    6 ++++--
 5 files changed, 20 insertions(+), 10 deletions(-)

commit 595414bb787d570ac95fc91c58c370558e9d5a54
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 14 14:24:49 2008 +0100

    [test/fallback-resolution] Extend to cover separate ppi x/y.
    
    Adrian Johnson proposed a hack that fixed the current test by simply
    scaling the dashed stroke by device_transform.xx. Obviously this exposes a
    deficiency in the test case. So add an outer loop to iterate over several
    common ppi for both x and y and in doing so reveal more ugly artifacts in
    the current fallback code.

 test/Makefile.am                              |   42 +++++-
 test/fallback-resolution-ppi150-ref.png       |  Bin 8043 -> 0 bytes
 test/fallback-resolution-ppi150x150-ref.png   |  Bin 0 -> 8043 bytes
 test/fallback-resolution-ppi150x300-ref.png   |  Bin 0 -> 6848 bytes
 test/fallback-resolution-ppi150x37.5-ref.png  |  Bin 0 -> 13176 bytes
 test/fallback-resolution-ppi150x600-ref.png   |  Bin 0 -> 6338 bytes
 test/fallback-resolution-ppi150x72-ref.png    |  Bin 0 -> 8370 bytes
 test/fallback-resolution-ppi150x75-ref.png    |  Bin 0 -> 10445 bytes
 test/fallback-resolution-ppi300-ref.png       |  Bin 5637 -> 0 bytes
 test/fallback-resolution-ppi300x150-ref.png   |  Bin 0 -> 6851 bytes
 test/fallback-resolution-ppi300x300-ref.png   |  Bin 0 -> 5637 bytes
 test/fallback-resolution-ppi300x37.5-ref.png  |  Bin 0 -> 12870 bytes
 test/fallback-resolution-ppi300x600-ref.png   |  Bin 0 -> 4848 bytes
 test/fallback-resolution-ppi300x72-ref.png    |  Bin 0 -> 7053 bytes
 test/fallback-resolution-ppi300x75-ref.png    |  Bin 0 -> 9617 bytes
 test/fallback-resolution-ppi37.5-ref.png      |  Bin 14098 -> 0 bytes
 test/fallback-resolution-ppi37.5x150-ref.png  |  Bin 0 -> 12728 bytes
 test/fallback-resolution-ppi37.5x300-ref.png  |  Bin 0 -> 11981 bytes
 test/fallback-resolution-ppi37.5x37.5-ref.png |  Bin 0 -> 14098 bytes
 test/fallback-resolution-ppi37.5x600-ref.png  |  Bin 0 -> 11654 bytes
 test/fallback-resolution-ppi37.5x72-ref.png   |  Bin 0 -> 12990 bytes
 test/fallback-resolution-ppi37.5x75-ref.png   |  Bin 0 -> 13787 bytes
 test/fallback-resolution-ppi600-ref.png       |  Bin 4104 -> 0 bytes
 test/fallback-resolution-ppi600x150-ref.png   |  Bin 0 -> 6096 bytes
 test/fallback-resolution-ppi600x300-ref.png   |  Bin 0 -> 4812 bytes
 test/fallback-resolution-ppi600x37.5-ref.png  |  Bin 0 -> 12401 bytes
 test/fallback-resolution-ppi600x600-ref.png   |  Bin 0 -> 4104 bytes
 test/fallback-resolution-ppi600x72-ref.png    |  Bin 0 -> 6398 bytes
 test/fallback-resolution-ppi600x75-ref.png    |  Bin 0 -> 8974 bytes
 test/fallback-resolution-ppi72-ref.png        |  Bin 8409 -> 0 bytes
 test/fallback-resolution-ppi72x150-ref.png    |  Bin 0 -> 8069 bytes
 test/fallback-resolution-ppi72x300-ref.png    |  Bin 0 -> 6803 bytes
 test/fallback-resolution-ppi72x37.5-ref.png   |  Bin 0 -> 13147 bytes
 test/fallback-resolution-ppi72x600-ref.png    |  Bin 0 -> 6245 bytes
 test/fallback-resolution-ppi72x72-ref.png     |  Bin 0 -> 8409 bytes
 test/fallback-resolution-ppi72x75-ref.png     |  Bin 0 -> 10628 bytes
 test/fallback-resolution-ppi75-ref.png        |  Bin 12101 -> 0 bytes
 test/fallback-resolution-ppi75x150-ref.png    |  Bin 0 -> 9940 bytes
 test/fallback-resolution-ppi75x300-ref.png    |  Bin 0 -> 9003 bytes
 test/fallback-resolution-ppi75x37.5-ref.png   |  Bin 0 -> 14020 bytes
 test/fallback-resolution-ppi75x600-ref.png    |  Bin 0 -> 8455 bytes
 test/fallback-resolution-ppi75x72-ref.png     |  Bin 0 -> 10202 bytes
 test/fallback-resolution-ppi75x75-ref.png     |  Bin 0 -> 12101 bytes
 test/fallback-resolution.c                    |  199 +++++++++++++------------
 44 files changed, 139 insertions(+), 102 deletions(-)

commit 0d3e152d2fe28b22a27dd6b9f82e2047aea3be94
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 14 13:44:47 2008 +0100

    [check-doc-syntax.sh] Allow quoting.
    
    func_regexp was incorrectly complaining that cairo_pure was a function without
    parenthesis. The simplest solution appeared to be allow quoting of
    'cairo_pure'.

 src/cairo-compiler-private.h |   22 +++++++++++-----------
 src/check-doc-syntax.sh      |    6 +++---
 2 files changed, 14 insertions(+), 14 deletions(-)

commit 02a7ca80f9f9b62deff6c8ba4dc58fee0cebcaa6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 14 11:08:43 2008 +0100

    [pattern] Correctly optimize away fractional translations.
    
    As is so often the case, reading the commit log gives you fresh insight in
    the problem - often called confessional debugging...
    
    We can simplify the problem by ignoring attr->[xy]_offset, for the time
    being, and focus on computing the correct matrix. This is comparatively
    simple as all we need to do is perform the appropriate rounding on the
    translation vector.

 src/cairo-pattern.c |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

commit 9886cb3353eb02ce5b99d555a35b13b8347f8e87
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 14 10:23:41 2008 +0100

    [pattern] Only perform non-integer optimization for identity matrices.
    
    A complication I realised after pushing 3eb4bc3 was handling larger
    sampled areas.  Extending the test case revealed that the optimization
    was broken for anything but the identity transform (after removing the
    translation).  Correctness first, leaving the "pixel-exact" solution for
    interested reader...

 src/cairo-pattern.c                           |   16 ++++++----------
 test/filter-nearest-transformed-pdf-ref.png   |  Bin 373 -> 548 bytes
 test/filter-nearest-transformed-ref.png       |  Bin 151 -> 570 bytes
 test/filter-nearest-transformed-svg11-ref.png |  Bin 217 -> 559 bytes
 test/filter-nearest-transformed-svg12-ref.png |  Bin 217 -> 559 bytes
 test/filter-nearest-transformed.c             |   24 ++++++++++++++++++++++++
 6 files changed, 30 insertions(+), 10 deletions(-)

commit 8dc3deecb8e0ca2f84d996096230f27ab4c24c18
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 14 08:17:23 2008 +0100

    Add documentation for function attributes 'pure' and 'const'.
    
    Carl suggested that cairo_pure and cairo_const are pretty opaque, even to
    the developer who added them, so it is extremely important that they have
    a good description so that they are used correctly and perhaps ported to
    other compilers.

 src/cairo-compiler-private.h |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

commit 6aa1143d5a8ec45fc793102a64e956d7d1c7ad01
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 13 23:49:17 2008 +0100

    Update documentation to remove references to cairo_has_show_text_glyphs().
    
    With the addition of cairo_show_text_glyphs() came a couple of functions
    to query whether the target supported the extended attributes. However,
    at Carl's request cairo_has_show_text_glyphs() was removed - but the
    documentation was not updated to reflect that.

 NEWS                |    2 +-
 src/cairo-surface.c |    3 ---
 src/cairo.c         |    6 +++---
 3 files changed, 4 insertions(+), 7 deletions(-)

commit b2053945df35d4d7eea9fe3200e9c018705309d1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 13 23:39:47 2008 +0100

    [scaled-font] Correct documentation for cairo_scaled_font_create().
    
    Fix the documentation not to suggest that NULL is a legal value for
    font_options (as we temporarily made it during the 1.[57] dev cycle).

 src/cairo-scaled-font.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit 3eb4bc37577e905d93a1935e7a9cd33ae8dbda15
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 13 23:26:04 2008 +0100

    [pattern] Optimize away fractional translation for NEAREST patterns.
    
    As identified in bug 15479,
      Unpredictable performance of cairo-xlib with non-integer translations of a
      source surface pattern
      (https://bugs.freedesktop.org/show_bug.cgi?id=15479),
    source surfaces with a fractional translation hit slow paths for some
    drivers, causing seemingly random performance variations. As a work-around
    Owen Taylor proposed that cairo could convert non-integer translations on
    NEAREST sources patterns to their integer equivalents.
    
    The messy detail involved here is replicating the rounding mode used by
    pixman for the sample offset, but otherwise the conversion is fairly
    trivial.

 src/cairo-pattern.c                           |   35 +++++++++
 test/.gitignore                               |    1 +
 test/Makefile.am                              |    5 +
 test/filter-nearest-transformed-pdf-ref.png   |  Bin 0 -> 373 bytes
 test/filter-nearest-transformed-ref.png       |  Bin 0 -> 151 bytes
 test/filter-nearest-transformed-svg11-ref.png |  Bin 0 -> 217 bytes
 test/filter-nearest-transformed-svg12-ref.png |  Bin 0 -> 217 bytes
 test/filter-nearest-transformed.c             |  103 +++++++++++++++++++++++++
 8 files changed, 144 insertions(+), 0 deletions(-)

commit ceab32e2c3d51c0dd29b105a5a390cdd8aa58f8f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 12 12:11:12 2008 +0100

    [win32] win32 also uses font subsets.
    
    Include win32 in the list of font subset users, fixes build when
    cross-compiling.

 src/cairoint.h |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit 1d3453eee50e4343995c5d3f225d18289fbcebec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 12 11:21:14 2008 +0100

    [pattern] Rescale the linear pattern matrix to avoid overflow.
    
    As proof-of-principle, compute a scale factor to avoid overflow when
    converting a linear pattern to pixman_fixed_t. Fixes test/huge-pattern,
    but the principle should be extended to handle more cases of overflow.

 src/cairo-pattern.c                 |   48 ++++++++++++++++++++++++++++++----
 test/Makefile.am                    |    5 ++-
 test/huge-pattern-pdf-ref.png       |  Bin 0 -> 2716 bytes
 test/huge-pattern-pdf-rgb24-ref.png |  Bin 0 -> 2817 bytes
 test/huge-pattern-ps3-ref.png       |  Bin 0 -> 1786 bytes
 5 files changed, 45 insertions(+), 8 deletions(-)

commit ab1d106cba7aa4abe5f7253c089aadd15e0bb06d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 11 19:52:28 2008 +0100

    [xlib] Use the cached xrender formats.
    
    Use the cached formats for consistency and simplify several double pointer
    dereferences.

 src/cairo-xlib-surface.c |   64 ++++++++++++++++++++++++++++-----------------
 1 files changed, 40 insertions(+), 24 deletions(-)

commit 6736faba3ebe4eae4c1d2aeeb3153eb6f12a32de
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 11 18:10:16 2008 +0100

    [test/any2ppm] Do not attempt to compile PS without spectre
    
    Since CAN_TEST_PS_SURFACE does not currently require spectre, we were
    attempting to compile in spectre support for any2ppm even on systems
    without libspectre installed. Fix that by adding a separate flag for
    CAIRO_HAS_SPECTRE.

 configure.ac     |    5 ++++-
 test/Makefile.am |    2 +-
 test/any2ppm.c   |   28 ++++++++++++++++++++--------
 3 files changed, 25 insertions(+), 10 deletions(-)

commit b35871116243724b59738fce00b512818c83ea17
Author: Benjamin Otte <otte@gnome.org>
Date:   Sat Oct 11 00:18:11 2008 +0100

    [test] Add huge pattern.
    
    Add a test case to exercise range overflow during gradient construction.

 test/.gitignore           |    1 +
 test/Makefile.am          |    4 ++
 test/huge-pattern-ref.png |  Bin 0 -> 1619 bytes
 test/huge-pattern.c       |   74 +++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 79 insertions(+), 0 deletions(-)

commit 77070270813d2ca40d422e5301f75222d19e1d8f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 10 22:24:01 2008 +0100

    [test] Use _POSIX_C_SOURCE for flockfile.
    
    From bug 18010 (https://bugs.freedesktop.org/show_bug.cgi?id=18010),
    in order to make flockfile() available we need to set _POSIX_C_SOURCE and
    according to the man page, the appropriate feature check is
    _POSIX_THREAD_SAFE_FUNCTIONS.

 test/cairo-test.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit 34ff7e4ac42acfb2ab9921da21933113518bd8a0
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Oct 11 23:44:37 2008 +1030

    Check that reads in truetype_reverse_cmap are within valid data
    
    Bulia Byak reported a bug where cairo was crashing with a particular
    font. The font had an incorrect entry in the cmap table that caused
    cairo to read from outside of the buffer allocated for the cmap.

 src/cairo-truetype-subset.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

commit a16ef6ead2b02120ca482aa3d2667e51b0c67e78
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 10 18:03:49 2008 +0100

    [INSTALL] Mention pkg-config requirement
    
    Mention that building the configure script requires at least version 0.16
    of pkg-config.
    
    See the old bug:
      Bug 4702 PKG_PROG_PKG_CONFIG: command not found
      (https://bugs.freedesktop.org/show_bug.cgi?id=4702)

 INSTALL |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit eba9d87d541d89804f70e56874538a249de08502
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 10 16:51:07 2008 +0100

    [image] Warn about a potential NULL return after finish().
    
    Improve the wording as suggested by
      https://bugs.freedesktop.org/show_bug.cgi?id=12659
    to warn about the possibility of returning NULL even if the passed in
    surface was an image surface.

 src/cairo-image-surface.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit ac3e4b4bea574c94de77ec15878d116b619ee3f4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 10 14:00:32 2008 +0100

    [xlib] Disable XRender support if the surface has no xrender_format
    
    Bug 11734:
      XRender crashes due to NULL pointer from Cairo on SGI O2
      (https://bugs.freedesktop.org/show_bug.cgi?id=1173)
    is an example of a case where we try to perform an XRender operation on a
    surface with a format that was not supported by the XRender extension. By
    marking the extension version as -1 on those surfaces, the current checks
    for SURFACE_RENDER_HAS_* always correctly return false and prevent us try
    to create a Picture with a NULL xrender_format.

 src/cairo-xlib-surface.c |   37 ++++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 13 deletions(-)

commit 8ac8e8c523abaa5db24c5303c671ff3487bf0801
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Sun Sep 21 14:29:30 2008 +0200

    [test] Add ps2png check program using libspectre
    
    Add a simple program to compliment pdf2png and svg2png.

 configure.ac     |    1 +
 test/Makefile.am |    8 ++++
 test/ps2png.c    |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 122 insertions(+), 0 deletions(-)

commit 3e6afb353da1fee624b519f5a96b3303c7eb91ae
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Thu Oct 9 12:11:51 2008 +0100

    [test/any2ppm] Enable PS conversion using libspectre.
    
    Complete the vector trilogy using libspectre to provide a similar
    interface (to poppler and librsvg) around GhostScript.

 AUTHORS          |    1 +
 configure.ac     |   20 ++++++++++++---
 test/Makefile.am |    4 +-
 test/any2ppm.c   |   73 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 4 files changed, 90 insertions(+), 8 deletions(-)

commit ddd1615a1777181c6e8db1dbafacb68535ed163a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 8 23:13:03 2008 +0100

    [pattern] Remove incorrect assert.
    
    It's possible to reach that point without setting the filter to NEAREST,
    for example if using FAST or GAUSSIAN.

 src/cairo-pattern.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit c647c0bbca8694a14f5f5807b8349f0b0bb4987d
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Oct 9 13:21:27 2008 +0200

    [TEST] make imagediff work again
    
    It seems to have bitrotten

 test/imagediff.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

commit f644d78dc138a7ba920a108dfb058e9f0fdb5302
Author: Björn Lindqvist <bjourne@gmail.com>
Date:   Wed Oct 8 20:08:25 2008 +0100

    [perf] Add composite performance test.
    
    Add a new test case to Cairo for checking the performance of Cairo's
    equivalent to GDK's gdk_pixbuf_composite_color() operation. That is an
    operation that happens to be extremely useful when viewing or editing
    transparent images so I think it is important that it is as fast as
    possible.

 AUTHORS                  |    1 +
 perf/Makefile.am         |    1 +
 perf/cairo-perf.c        |    1 +
 perf/cairo-perf.h        |    1 +
 perf/composite-checker.c |  108 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 112 insertions(+), 0 deletions(-)

commit 96b083d3f0e47f919cb6d0f06735427eaea21565
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 8 18:53:46 2008 +0100

    [test] Exercise degenerate dashes.
    
    Add a test case to capture the current behaviour when a segment ends on
    an off/on dash transition.
    
    Originally filed as bug:
      Miter artifacts for dashed strokes
      https://bugs.freedesktop.org/show_bug.cgi?id=17973

 test/.gitignore              |    1 +
 test/Makefile.am             |    2 +
 test/degenerate-dash-ref.png |  Bin 0 -> 2005 bytes
 test/degenerate-dash.c       |   97 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 100 insertions(+), 0 deletions(-)

commit 6487a147a2129f588aae900b048b2a801ef95ec0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 8 15:26:03 2008 +0100

    [cairo.h] Be defensive when checking for _MSC_VER
    
    Since cairo.h is a public header file, we need to be careful so that it
    can be compiled by random compilers and even users specifying "-Werror
    -Wundef" (mentioning no names, Company). So replace the bare (and legal)
      #if _MSC_VER
    with
      #if defined (_MSC_VER)
    just in case.

 src/cairo.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 59141e56a723f741c87e2eaa37bf96e243ac5728
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 8 13:50:28 2008 +0100

    [win32] Restore fine-grained fallback support for printing.
    
    Missed updating win32 when implementing the new paginated API to query
    support for the fine-grained fallbacks.
    
    (Thanks to Adrian for spotting this oversight.)

 src/cairo-win32-printing-surface.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit 565c02a37e2d140a20867081eea9bb5de9999b1c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 8 11:06:42 2008 +0100

    [svg] Use finer-grained fallbacks for SVG 1.2
    
    The use of fine-grained fallbacks requires the native support of the
    SOURCE operator applied to an image on the target surface. SVG 1.2
    introduces the "comp-op:src" mode fulfilling this criteria - so we can
    enable fine-grained fallbacks for 1.2+.
    
    Update test/fine-grained-fallbacks to exercise this pathway in SVG 1.2 -
    as SVG natively supported all the current operations within that test.
    This reveals yet another librsvg bug in handling SVG 1.2.

 src/cairo-paginated-private.h                   |    9 ++-
 src/cairo-paginated-surface.c                   |   47 +++++---------
 src/cairo-pdf-surface.c                         |   14 +++-
 src/cairo-ps-surface.c                          |    8 ++
 src/cairo-svg-surface.c                         |   34 +++++++---
 test/Makefile.am                                |    4 +-
 test/finer-grained-fallbacks-ps2-argb32-ref.png |  Bin 1047 -> 0 bytes
 test/finer-grained-fallbacks-ps2-ref.png        |  Bin 0 -> 1356 bytes
 test/finer-grained-fallbacks-ps2-rgb24-ref.png  |  Bin 819 -> 1096 bytes
 test/finer-grained-fallbacks-ps3-argb32-ref.png |  Bin 1047 -> 0 bytes
 test/finer-grained-fallbacks-ps3-ref.png        |  Bin 0 -> 1356 bytes
 test/finer-grained-fallbacks-ps3-rgb24-ref.png  |  Bin 819 -> 1096 bytes
 test/finer-grained-fallbacks-ref.png            |  Bin 796 -> 1111 bytes
 test/finer-grained-fallbacks-rgb24-ref.png      |  Bin 590 -> 1114 bytes
 test/finer-grained-fallbacks.c                  |   79 ++++++++++++++++++++++-
 15 files changed, 147 insertions(+), 48 deletions(-)

commit 0c777a3e0de0d48289432a3d66be68f8779b08a0
Author: Vladimir Vukicevic <vladimir@pobox.com>
Date:   Tue Oct 7 15:20:33 2008 -0700

    [win32] Use wide-char versions of some API functions, for compat with Windows Mobile

 src/cairo-win32-surface.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit cf572b58e1197dac0ff1795b27b142c3e044cf45
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 7 09:55:03 2008 +0100

    [tessellator] Compile fixes for !HAVE_INT64_T
    
    Fixup a couple of instances of implicit down-casting to 32bits from a
    64bit wide integer and add a new is_zero() predicate.

 src/cairo-bentley-ottmann.c |   14 +++++++-------
 src/cairo-wideint-private.h |   10 +++++++++-
 2 files changed, 16 insertions(+), 8 deletions(-)

commit 6b8c0559620ab23c4df1f381d2e95ffc307d2e2f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 7 09:43:45 2008 +0100

    [tessellator] Avoid implicit promotion to 64bit integer.
    
    Avoid passing a 32bit integer as a cairo_int64_t in case we do not have a
    64bit native integral type. As a side-effect this means we can also use a
    narrower multiply.

 src/cairo-bentley-ottmann.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

commit eaa4bd13926728e9da97a23df8a465ef2296049a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 7 21:09:16 2008 +0100

    [pattern] After cloning adjust [xy]_offset if possible.
    
    For the simple case where the pattern matrix only contains an integer
    translation then care is taken to convert that to a identity source matrix
    with the translation applied to the [xy]_offsets. 5b97ee6525 broke this
    guarantee by applying the clone offsets to the source matrix. So when the
    source matrix is identity we can simply adjust the [xy]_offsets and
    preserve the identity matrix. (This idea can be extended further by
    removing any integer translation from the source matrix and storing it in
    the [xy]_offsets as a means to extend the limited precision in
    pixman_matrix_t - encountered when downscaling large images offset onto
    the target surface.)

 src/cairo-pattern.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

commit 552cc09e6be2b704dc32f986c84640d50316c25c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 7 21:05:57 2008 +0100

    [xlib] Check integer translation for XCopyArea.
    
    A precondition for using the core XCopyArea protocol is that the source
    attributes contain only integer translations. However, we failed to apply
    any integer translations from the source matrix to the XCopyArea offsets.
    This worked prior to 5b97ee6525 as
    _cairo_pattern_acquire_surface_for_surface() was careful to only generate
    an identity matrix if the pattern matrix only contained an integer
    translation (and thus we would use XCopyArea in the xlib backend).

 src/cairo-xlib-surface.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

commit 308485a3fc70bc4455a01990443c1f954b8a66f8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 7 20:19:10 2008 +0100

    [test] Add a test for a reported regression by Michael Natterer.
    
    mitch reported on irc that expose events in the gimp were suffering from
    artifacts which he tracked down to a bug with clipping and source
    surfaces. This is the cairo test case for that regression.

 test/.gitignore              |    1 +
 test/Makefile.am             |    2 +
 test/clipped-surface-ref.png |  Bin 0 -> 401 bytes
 test/clipped-surface.c       |   70 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 73 insertions(+), 0 deletions(-)

commit 28a3b546b91290f3377777adedcf7ab71e599188
Author: Vladimir Vukicevic <vladimir@pobox.com>
Date:   Tue Oct 7 10:25:46 2008 -0700

    [win32] create_similar should fall back to DIBs if DDB creation fail

 src/cairo-win32-surface.c |   43 +++++++++++++++++--------------------------
 1 files changed, 17 insertions(+), 26 deletions(-)

commit 4ae37a97b3e415591caa611533f44db5a29cfb72
Author: Vladimir Vukicevic <vladimir@pobox.com>
Date:   Tue Oct 7 10:18:41 2008 -0700

    [quartz] initialize do_reflect field correctly for pattern draws

 src/cairo-quartz-surface.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit 8cf399b944294645833088ee2ac1313093948b66
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 6 18:59:15 2008 +0100

    [test] Add a test to exercise the internal twin font
    
    Although Behdad promises that the rendering is subject to improvement,
    introduce a test to check consistency across platforms and update as
    required.

 test/.gitignore       |    1 +
 test/Makefile.am      |    4 +++
 test/twin-ps2-ref.png |  Bin 0 -> 1167 bytes
 test/twin-ps3-ref.png |  Bin 0 -> 1167 bytes
 test/twin-ref.png     |  Bin 0 -> 1836 bytes
 test/twin.c           |   60 +++++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 65 insertions(+), 0 deletions(-)

commit 1f813ff04022a36a91bf9d1b0f7f2ae1c63b399f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 6 17:55:37 2008 +0100

    [array] Silence gtk-doc complaints.
    
    gtk-doc fails make check for array as it insists that even the simplest
    functions must have a long description and cannot be entirely described by
    their arguments and return value.

 src/cairo-array.c |   26 ++++++++++++++++++++------
 1 files changed, 20 insertions(+), 6 deletions(-)

commit 7cb9ccb4cb2106bb59e181ee284f8dcc5504eb7a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 6 17:44:03 2008 +0100

    Fixup a couple of trivials doc warnings.
    
    Correct the 'Returns' statement to match what gtk-doc expects.

 src/cairo-cache.c   |    3 +--
 src/cairo-pattern.c |    5 ++---
 2 files changed, 3 insertions(+), 5 deletions(-)

commit d6f0351b6cbb0d542a069eb5d0a7377eb85a6e4e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 6 17:17:04 2008 +0100

    [skiplist] Avoid repeated calls to compare on the same element when inserting.
    
    During insertion we must traverse the skiplist in order to find the
    insertion point for the new element. As we descend each level, the next
    element in the chain for this level is sometimes the same as the one we
    just compared against (and know that the new element is greater than).
    Hence we can skip the search on that level and descend to the next. During
    world_map this reduces the number of calls into _sweep_line_elt_compare()
    by ~2.5% (and when performing trapezoidation on strokes gives a similar
    speed up of about 2% - not bad for the addition of a single line.)

 src/cairo-skiplist.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

commit 1440399625ae0579d0748475fc924cfe74339a21
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 6 16:15:29 2008 +0100

    [hull] Replace open-coding of 64bit arithmetic.
    
    Use primitives from cairo-wideint-private.h - in this case it helps to
    make the code more readable as well as reduce dependence on native 64bit
    integers.

 src/cairo-hull.c |   31 +++++++++++++++++++------------
 1 files changed, 19 insertions(+), 12 deletions(-)

commit c6a6bf580fa7036e4c28137f8c038beb5c347244
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 6 16:13:21 2008 +0100

    [slope] Replace open-coding 64bit integer arithmetic.
    
    Prefer to use the operations form cairo-wideint-private.h in order to
    improve readability and reduce our assumptions on the availability of
    64bit integers.

 src/cairo-slope.c |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

commit 5e3fcb7934f568bb7e304a1c434a9370b693df17
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 6 17:02:54 2008 +0100

    [wideint] Declare the wideint arithmetic functions as const.
    
    'const' is a stricter form of 'pure' in that functions declared with that
    attribute do not access any values other than their arguments (in
    contrast to 'pure' which is allowed to read from global memory).

 src/cairo-compiler-private.h |    2 ++
 src/cairo-wideint-private.h  |    2 +-
 2 files changed, 3 insertions(+), 1 deletions(-)

commit 9430bf57ebc86c79e28128e54aeb5a194c9cad03
Author: Carl Worth <cworth@cworth.org>
Date:   Mon Oct 6 14:00:37 2008 -0700

    Fix scrambled version number in generated documentation.
    
    In the cairo 1.8.0 release the documentation would get generated with
    the second and third version components transposed, (so it would say
    1.0.8). Fix the obviously mistaken transposition.

 doc/public/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5beae8f530fe7056fa965cb5ca7b345a667e8122
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Oct 6 12:43:42 2008 -0400

    [Makefile.am.releasing] Make 'make snapshot' print a banner when done
    
    Copied from "make distcheck" implementation.  Prints something like:
    
    =============================================================
    cairo-1.8.1-20081006-38de89 archives ready for distribution:
    cairo-1.8.1-20081006-38de89.tar.gz
    =============================================================

 build/Makefile.am.releasing |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

commit 38de895d3863bd2e6fe921ad6cc6eeff15102701
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Oct 6 12:11:18 2008 -0400

    [RELEASING] Fix sample distcheck output to reflect current versioning

 RELEASING |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit f8018cf193823356270c8e7f21f3108fbe44679c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Oct 6 11:45:08 2008 -0400

    [boilerplate] Fix "make dist"
    
    The cairo-boilerplate-ps/pdf/svg.h files where removed in commit
    9841d9d58ea286f798626d325d50a85bf3f02c8f but the Makefile.sources
    listing was not updated.

 boilerplate/Makefile.sources |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

commit 6578ac148ecdd236b0860923e5dee87291c9966c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Oct 6 11:39:47 2008 -0400

    [twin-font] Make the stroke lighter
    
    I'm still to fine-tune the font and add hinting and bold/oblique support.
    In the mean time though, a lighter stroke produces much nicer glyphs.

 src/cairo-font-face-twin.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2fb7753903daf5c207b22034682a250161af22ad
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Oct 6 11:39:00 2008 -0400

    [Makefile.am.releasing] Exclude uid/gid from tarball
    
    By setting GNU tar options --owner=0 --group=0

 build/Makefile.am.releasing |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit 589564c3b02d5b0505806924bd051323717791a3
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Oct 4 01:36:07 2008 -0400

    [user-font] Fix comment re backend interface

 src/cairo-user-font.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit c98c1cb5325bbc05c88ea350ff99d6eaf56fd339
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 5 10:39:10 2008 +0100

    [wideint] Mark functions as pure
    
    Take advantage of the gcc function attribute 'pure', which tells gcc that
    the function result only depends upon its arguments and it has zero side
    effects (e.g. it does not clobber memory). This gives gcc greater
    opportunity to rearrange and optimize the wideint arithmetic.

 src/cairo-compiler-private.h |    6 ++++++
 src/cairo-wideint-private.h  |    2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)

commit 76dd4603d01068b1b377312ced6b44fe5419794f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 5 10:15:49 2008 +0100

    [tessellator] Replace open-coding _cairo_int64_cmp().
    
    We often use the construct:
      if (_cairo_int64_lt (A, B)
         return -1;
      if (_cairo_int64_gt (A, B)
         return 1;
      return 0;
    to compare two large integers (int64, or int128) which does twice the
    required work on CPUs without large integer support. So replace it with a
    single wideint function _cairo_int64_cmp() and therefore allow
    opportunities to both shrink the code size and write a more efficient
    comparison. (The primarily motivation is to simply replace each block with
    a single more expressive line.)

 src/cairo-bentley-ottmann.c |   19 ++--------------
 src/cairo-wideint-private.h |   10 ++++++++-
 src/cairo-wideint.c         |   48 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+), 17 deletions(-)

commit 6eead4a5f746e182eabfcda9959cd9cc53d95a89
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 4 12:39:21 2008 +0100

    [stroke] Simplify dash-off logic.
    
    Remove a redundant level of if-else branching (and remove a duplicate
    code) block by testing dash_on first.

 src/cairo-path-stroke.c |   65 ++++++++++++++++++++--------------------------
 1 files changed, 28 insertions(+), 37 deletions(-)

commit 4aa0991a11f03a47735dcfafe43d9505b939554e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 4 20:22:18 2008 +0100

    [test] Mark fallback-resolution as XFAIL.
    
    There appears to be no simple solution here, as it seems to be a
    fundamental flaw in the design of the meta-surface wrt to replaying into
    a fallback image. (I may be wrong, but if Carl found no easy solution then
    I feel no shame for my own failure ;-)

 test/Makefile.am |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

commit ae87382a84770f8656c369d258f705b8ac20049c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 4 10:54:25 2008 +0100

    [tessellator] Special case edge comparisons when on either end-point.
    
    If the sweep-line is currently on an end-point of a line,
    then we know its precise x value and can use a cheaper comparator.
    Considering that we often need to compare events at end-points (for
    instance on a start event), this happens frequently enough to warrant
    special casing.

 src/cairo-bentley-ottmann.c |  100 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 96 insertions(+), 4 deletions(-)

commit ab23c2995356821537b9a0facdff87c339a05d2a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 1 12:18:16 2008 +0100

    [tessellator] Direct comparison of result in edges_compare_x_for_y.
    
    We need to compare the x-coordinate of a line at a for a particular y,
    without loss of precision.
    
    The x-coordinate along an edge for a given y is:
      X = A_x + (Y - A_y) * A_dx / A_dy
    
    So the inequality we wish to test is:
      A_x + (Y - A_y) * A_dx / A_dy -?- B_x + (Y - B_y) * B_dx / B_dy,
    where -?- is our inequality operator.
    
    By construction we know that A_dy and B_dy (and (Y - A_y), (Y - B_y)) are
    all positive, so we can rearrange it thus without causing a sign
    change:
      A_dy * B_dy * (A_x - B_x) -?- (Y - B_y) * B_dx * A_dy
                                    - (Y - A_y) * A_dx * B_dy
    
    Given the assumption that all the deltas fit within 32 bits, we can compute
    this comparison directly using 128 bit arithmetic.

 src/cairo-bentley-ottmann.c |   97 ++++++++++++++++++++++++------------------
 src/cairo-wideint-private.h |    1 +
 2 files changed, 56 insertions(+), 42 deletions(-)

commit 7db03ac68cd556c903c07a2e2f8b75ec51263d12
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 1 12:34:36 2008 +0100

    [tessellator] Use abort() instead of exit().
    
    More friendly when debugging, as the debug will (by default) catch the
    SIGTRAP and break at the offending test.

 src/cairo-bentley-ottmann.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 59e569576d00e9c1cb66a77cf447c3cc3fb038e7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 19:04:39 2008 +0100

    [traps] Discard trivially empty trapezoid.
    
    The convex_quad tessellator (and possibly even the more general polygon
    tessellator) will generate empty trapezoids when given a
    rectangle which can be trivially discarded before inserting into traps.

 src/cairo-traps.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

commit 7a2329e9c8afbfecb88c6c50bd63aa03ea7f9f81
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 1 09:49:45 2008 +0100

    [traps] Reset extents on clearing.
    
    When clearing the array of current trapezoids, reset the extents to
    infinite so that they are properly recomputed.

 src/cairo-traps.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 8ec24a443d45b012df9b1a14b00a0b5b1c43e2ea
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 30 23:19:01 2008 +0100

    [xlib] Share the common conditions for starting a new xGlyphElt using a macro.
    
    Move the predicate for starting a new glyph elt into a macro so that it
    can be shared between _cairo_xlib_surface_emit_glyphs() and
    _emit_glyph_chunks() without code duplication.

 src/cairo-xlib-surface.c |   39 ++++++++++++++++++++++-----------------
 1 files changed, 22 insertions(+), 17 deletions(-)

commit a593338b2c2cdaff808947436f8fb9a52d74c695
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 1 16:24:33 2008 +0100

    [xcb] Return false from _cairo_xcb_surface_is_similar().
    
    _cairo_xcb_surface_is_similar() is currently only used by the pattern
    cache to determine whether to keep the surface in the solid color cache.
    This is fundamentally broken without hooking into Display closure as it
    keeps a reference to an expired picture. So in order to prevent spurious
    application crashes, disable the caching for xcb.

 src/cairo-xcb-surface.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit 65f1575f6b2392d59410f40281a52654053bd2a8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 1 16:16:45 2008 +0100

    [xcb] Compile fix.
    
    Must compile xcb more often. Especially after copying code over from xlib.

 src/cairo-xcb-surface.c |   41 ++++++++++++++++++++++++-----------------
 1 files changed, 24 insertions(+), 17 deletions(-)

commit e76432f7544d5b3b9157f09e18acc167d9ee90a3
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Oct 4 00:35:43 2008 -0400

    [win32] Use -MDd and -LDd instead of -MD and -LD for debug build
    
    As reported by Damian Frank:
    
    "I ran into a hitch with the Makefile.win32 infrastructure.  It uses -MD and
    -LD when linking regardless of the config, but it should be using -MDd and
    -LDd for the debug config.  I believe both the Makefile.win32.common and
    src/Makefile.win32 files include erroneous declarations.  This produces
    warnings at link time about a mismatch when linking against properly created
    debug libs (for instance, I had a zlib built as "LIB ASM Debug" that linked
    properly against the debug runtime).
    
    This problem applies to pixman too; can you pass this along to the
    maintainer?"
    
    Would be delighted to if someone commits a fix to pixman reading this
    commit message.

 build/Makefile.win32.common |    8 ++++++--
 src/Makefile.win32          |    2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

commit 8ea9cb187a198c64bfb79af8001d95eab29715b4
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Oct 1 14:12:18 2008 -0700

    Use symbolic constants for Render repeat modes.
    
    Names like RepeatNone and RepeatNormal are much easier to
    read and understand than bare 0 and 1.

 src/cairo-xlib-surface.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 2c58a2c3851afac0386fcf0bf8504a937231185c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Sep 30 17:55:01 2008 -0400

    [xlib] Start a new glyph element every 128 glyphs
    
    Xrender has limits at 252 glyphs.  We play safe and fast and limit
    elements to 128 glyphs.  That's plenty, no measurable performance
    hit expected.

 src/cairo-xlib-surface.c |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

commit fd7e09c7e66876b8492424e1c7d1260c12cc17f3
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Sep 30 17:46:06 2008 -0400

    [xlib] Allow room for glyph element padding
    
    Xrender pads glyph elements to 4byte boundaries.  We didn't consider
    that in our request size calculations.  We do now.

 src/cairo-xlib-surface.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

commit c01fb77abbaf28c03aa6a21ebb997638dbdf950b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Sep 30 17:41:51 2008 -0400

    [xlib] s/_cairo_xlib_surface_emit_glyphs_chunk/_emit_glyphs_chunk/
    
    For readability's sake.

 src/cairo-xlib-surface.c |   34 +++++++++++++++++-----------------
 1 files changed, 17 insertions(+), 17 deletions(-)

commit c2ba25df1aec1cebfc4ce85e06a4187950675820
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Sep 30 17:40:56 2008 -0400

    [xlib] Add comment about glyph chunk invariant

 src/cairo-xlib-surface.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit e983458e1fba15153815430c83619da53929139d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Sep 30 17:26:46 2008 -0400

    Revert "[xlib] Correct calculation of XRenderComposite* request size."
    
    This reverts commit 0eb0c26474a19477554bfd580aa5f8ae77c29779.
    The change was too drastic and overlooked some subleties of the old
    code, but the main reason for the revert is that it introduced an
    ugly duplicated glyph flush block.  I'm working on a more incremental
    fix.

 src/cairo-xlib-surface.c |  123 +++++++++++++++++-----------------------------
 1 files changed, 45 insertions(+), 78 deletions(-)

commit 32a158528884562f4b22a81da3fa352ee1061835
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Sep 30 15:20:36 2008 -0400

    [configure.ac] Require autoconf >= 2.59 and automake >= 1.9.6
    
    These are the versions available on RHEL5 (two years old now), and
    we know cairo works with them.  There's evidence that our build system
    does not work with older automake, and we've been requiring autoconf 2.58
    but no one ever tested 2.58 with the new build system.  It's very likely
    that 2.58 doesn't work and needs some macro backporting.  In any case,
    no one reported that they have 2.58 when I asked on the list.

 configure.ac |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 0eb0c26474a19477554bfd580aa5f8ae77c29779
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 30 13:33:25 2008 +0100

    [xlib] Correct calculation of XRenderComposite* request size.
    
    show-glyphs-many is triggering an assertion failure within xlib. The cause
    appears to be that we are submitting an overlong request.
    
    Reviewing the code and comparing with libXrender/src/Glyph.c I found two
    points to address.
    
    1. When encountering the first 2-byte, or 4-byte glyph and thus triggering
    the recalculation of the current request_size, we did not check that there
    was enough room for the expanded request. In case there is not, we need to
    emit the current request (before expansion) and reset.
    
    2. Subtleties in how XRenderCompositeText* constructs the binary protocol
    buffer require that xGlyphElts are aligned to 32-bit boundaries and that
    it inserts an additional xGlyphElt every 252 glyphs when width==1 or
    every 254 glyphs for width==2 || width==4.  Thus we need to explicitly
    compute how many bytes would be required to add this glyph in accordance
    with the above.
    
    Considering the complexity (and apparent fragility since we require tight
    coupling to XRender) of the code, I'm sure there are more bugs to be
    found.

 src/cairo-xlib-surface.c |  123 +++++++++++++++++++++++++++++-----------------
 1 files changed, 78 insertions(+), 45 deletions(-)

commit 02a56a4c84cd07a2c33134974680bad7f17f733d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 30 15:08:54 2008 +0100

    [test/show-glyphs-many] Exercise xlib boundary conditions.
    
    Within _cairo_xlib_surface_emit_glyphs() there are a number of
    complications to do with packing as many glyphs as possible into a
    single XRenderCompositeGlyph*() call. Essentially these consist of
    choosing the right function and packing for the current glyphs, describing
    runs of glyphs and ensuring that we do not exceed the maximum request size
    within a single call. So we add to the test case we an attempt to show 64k
    2-byte glyphs and an attempt to mix 64k 1-byte and 2-byte glyphs, with the
    change-over point chosen to overflow the maximum request size, should
    _cairo_xlib_surface_emit_glyphs() naively resize the current request.

 test/show-glyphs-many.c |   83 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 64 insertions(+), 19 deletions(-)

commit 2a347a92b0a27a42840f9538cb98f792be12b277
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 30 13:29:35 2008 +0100

    [test/show-glyphs-many] Re-enable test to trigger crash in xlib.
    
    Moral of this story is bugs cluster. If we made a mistake, especially in a
    complicated bit of code that is interfacing with another library, then we
    are likely to make a similar mistake in future. Disabling this test hid a
    regression between 1.4 and 1.6.

 test/Makefile.am        |   15 +--------------
 test/show-glyphs-many.c |    9 +++++++++
 2 files changed, 10 insertions(+), 14 deletions(-)

commit fade54e71a48919cc3e8311e202960c66eab74bf
Author: Torsten Schönfeld <kaffeetisch@gmx.de>
Date:   Tue Sep 30 11:47:53 2008 +0100

    [doc] Add links to solid pattern constructors.
    
    Add links for the solid pattern constructors to the language bindings
    guidelines in line with the other pattern types.

 doc/public/language-bindings.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit d9f50d7841fa0216df157ba632483c8b27c50119
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 30 11:03:29 2008 +0100

    [test/filter-nearest-offset] Remove XFAIL status
    
    I swear that when I said that it was a rounding error, I was looking at an
    image where the squares were overlapping the lines and had a listing of
    all the coordinates used. However, the current output on all the machines
    I have to hand is correct so I believe the underlying bug to be fixed.
    
    Update the reference images for the external renderers because (a) GS
    exhibits the same bug cairo had and (b) librvsg/PDF do not use NEAREST
    when applying surface patterns, so the squares are blurred as a result.

 test/Makefile.am                         |    8 +++++---
 test/filter-nearest-offset-pdf-ref.png   |  Bin 0 -> 4537 bytes
 test/filter-nearest-offset-ps2-ref.png   |  Bin 0 -> 255 bytes
 test/filter-nearest-offset-ps3-ref.png   |  Bin 0 -> 255 bytes
 test/filter-nearest-offset-svg11-ref.png |  Bin 0 -> 4739 bytes
 test/filter-nearest-offset-svg12-ref.png |  Bin 0 -> 4739 bytes
 test/filter-nearest-offset.c             |    3 +--
 7 files changed, 6 insertions(+), 5 deletions(-)

commit 7d5e6a18d5e72366e19cb806cbdad5ed180b53da
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 30 10:04:12 2008 +0100

    [test/filter-nearest-offset] Paint a grey background
    
    Avoid requiring (an absent!) rgb24 ref image by using an opaque grey
    background. Confirm the reference image is identical to the old one
    (modulo the background change) using GIMP.

 test/filter-nearest-offset-ref.png |  Bin 254 -> 248 bytes
 test/filter-nearest-offset.c       |    6 ++++++
 2 files changed, 6 insertions(+), 0 deletions(-)

commit 35be08715595aa0bda48ce0b3cb11711eee55c64
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 30 10:54:45 2008 +0100

    [Makefile.am] Only rerun headers-standalone if a header file has changed
    
    Use a stamp to mark the time that the headers were last checked and only
    rerun the test if any have been modified since.

 src/.gitignore           |    1 +
 src/Makefile.am.analysis |    4 +++-
 2 files changed, 4 insertions(+), 1 deletions(-)

commit 6da8d8ea62399d94281a2a262a630ef113062d0c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 17:56:34 2008 +0100

    [pattern] Fix up OBO introduced to cloned area
    
    In the midst of porting 5eec3e378afd6ff9991cea8e42b8478eb3e79773 I failed
    to include the pad in the floor() and ceil() which introduces two
    potential off-by-one errors into each dimension of the region of interest
    of the source surface.

 src/cairo-pattern.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit e3f9e40df74b0334c2b544790fd3485ba527bd55
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Sep 29 11:49:04 2008 -0400

    Fix residues of the Makefile.*.config Makefile.*.features renaming
    
    They just don't seem to want to die...

 boilerplate/Makefile.win32 |    2 +-
 src/Makefile.sources       |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d703f964aa7d1d4c8ec0b8a5dee437c222ce8629
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 16:37:35 2008 +0100

    Clean up compile warnings.
    
    A couple of unchecked status returns (which should always be
    CAIRO_STATUS_SUCCESS) and an unused variable.

 src/cairo-surface.c     |    8 ++++++--
 src/cairo-svg-surface.c |    1 -
 2 files changed, 6 insertions(+), 3 deletions(-)

commit 1310df44edcf0b9fee648c8f8688d4a1177cde68
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Sep 29 11:34:19 2008 -0400

    [text_to_glyphs] Further enhance the docs
    
    The most complex public cairo API deserves more doc love...

 src/cairo-scaled-font.c |    8 +++++---
 src/cairo-user-font.c   |    5 +++++
 src/cairo.h             |    2 +-
 3 files changed, 11 insertions(+), 4 deletions(-)

commit 41c66a9dfa9f4e7b9839db9dc362f5fa48797561
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 15:28:28 2008 +0100

    [test/xlib-surface-source] Fix ill-timed XCloseDisplay
    
    Sigh - finding a crasher in xlib seemed too good to be true. And it was.
    The bug is due to the coupling of the XCloseDisplay with the user_data on
    the source surface.
    
    This was an externally trigger XCloseDisplay whilst the user had live
    surfaces, so I consider this a gross application bug and therefore does
    not require graceful handling within cairo-xlib. However, I'm willing to
    listen to reason...

 test/surface-source.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 63ee963c63a73cf6d9272e15a7d8f7b63f12e77b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 15:09:23 2008 +0100

    [user-font] Rewrite text_to_glyphs allocation instructions.
    
    Resolve the seemingly conflicting two paragraphs that instruct the writer
    of a user-font on when to allocate the glyphs array during text_to_glyphs,
    so that it is consistent with itself and the code. In particular, I could
    find no indication in the code that num_glyphs is preset to -1 (it should
    be a user parameter reflecting the number of entries in the supplied glyph
    buffer) and the callback must allocate the array using
    cairo_glyph_allocate().

 src/cairo.h |   33 ++++++++++++++-------------------
 1 files changed, 14 insertions(+), 19 deletions(-)

commit c23dbc4c616aed05dfe71901ce7ac0cadcbfb13d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 13:54:12 2008 +0100

    [test/surface-source] Modify to trigger a crash.
    
    Whilst investigating:
      Bug 7360 painting huge surfaces fails
      https://bugs.freedesktop.org/show_bug.cgi?id=7360
    I found a particular combination of operations that cause a crash within
    xlib, so I'm committing the test for posterity.

 test/surface-source.c |   50 +++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 38 insertions(+), 12 deletions(-)

commit 3b33d49d37a5751e7848516c468b323e19c34bea
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 08:14:24 2008 +0100

    [test/filter-bilinear-extents] Remove XFAIL.
    
    With the reintroduction of Carl Worth's and Owen Taylor's work to expand
    pattern extents as necessary to include extra samples due to the filter
    radius, we expect filter-bilinear-extents to PASS. This patch series is
    important as it factors out our assumptions about filter radius into a
    single function and cleans up the code in its wake.
    
    However, since the external PS/PDF renderers do not necessarily use the same
    filter as cairo (and currently they only use NEAREST due to lack of
    /Interpolate emission in those backends) we can expect differences in test
    output. So add the respective reference images to capture current
    expectations and to highlight future changes.
    
    Fixes bugs:
      Bug 15349 - bad clipping with EXTEND_NONE
      [https://bugs.freedesktop.org/show_bug.cgi?id=15349],
      Bug 15367 -Improve filtering handling in cairo-pattern.c
      [https://bugs.freedesktop.org/show_bug.cgi?id=15367]

 test/Makefile.am                         |   35 +++++++++++++++++++++++++++++-
 test/filter-bilinear-extents-pdf-ref.png |  Bin 0 -> 798 bytes
 test/filter-bilinear-extents-ps2-ref.png |  Bin 0 -> 173 bytes
 test/filter-bilinear-extents-ps3-ref.png |  Bin 0 -> 173 bytes
 4 files changed, 34 insertions(+), 1 deletions(-)

commit 5eec3e378afd6ff9991cea8e42b8478eb3e79773
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Sep 29 00:53:59 2008 +0100

    [pattern] Improve handling of filter radius and optimize when possible.
    
    Factor out common filter analysis code from _cairo_pattern_get_extents()
    so that we can share it with _cairo_pattern_acquire_surface_for_surface()
    as well. During the analysis of the filter determine whether the pattern
    matrix maps source pixels exactly onto destination pixels and if so convert
    the filter to NEAREST - generalising the existing conversion to NEAREST.
    
    (Patch ported to master by Chris Wilson, all bugs are his.)

 src/cairo-matrix.c  |   29 +++++++++++++
 src/cairo-pattern.c |  113 +++++++++++++++++++++++++++++++++++----------------
 src/cairoint.h      |    3 +
 3 files changed, 110 insertions(+), 35 deletions(-)

commit 7d7057cf8896a3558fadc35d160d3bc667972800
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Apr 4 19:00:28 2008 -0700

    _cairo_pattern_get_extents: Fix to allow for expansion based on filter
    
    This fixes the filter-bilinear-extents test case and the
    related bug entry:
    
    	bad clipping with EXTEND_NONE
    	http://bugs.freedesktop.org/show_bug.cgi?id=15349
    
    Though there are still differences in the PDF and PostScript
    backends, (primarily because we can't capture cairo's filter
    modes in those file formats).

 src/cairo-pattern.c                                |   22 ++++++++++++++++++++
 test/paint-source-alpha-svg11-ref.png              |  Bin 505 -> 756 bytes
 ...scale-source-surface-paint-svg11-argb32-ref.png |  Bin 182 -> 229 bytes
 .../scale-source-surface-paint-svg11-rgb24-ref.png |  Bin 192 -> 243 bytes
 ...scale-source-surface-paint-svg12-argb32-ref.png |  Bin 182 -> 229 bytes
 .../scale-source-surface-paint-svg12-rgb24-ref.png |  Bin 192 -> 243 bytes
 6 files changed, 22 insertions(+), 0 deletions(-)

commit 6ef4bd4ecfa30f00ad0fe6e5e5f1d1a0a5dfe8e3
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sun Sep 28 23:30:22 2008 +0100

    [pattern] Fix acquiring outside of source bounds
    
    Restrict the area we acquire from the source image to the bounds of
    the source image, even when we have an identity matrix. This handles
    circumstances where the pattern extents may be enlarged due to
    filtering, for example when applying a bilinear filter.
    
    This patch replaces the open-coded rectangle intersection which has
    already proven itself to be a source of bugs.
    
    (Patch ported to master by Chris Wilson, all bugs are his.)

 src/cairo-pattern.c |   63 ++++++++++++++++++++++++++-------------------------
 1 files changed, 32 insertions(+), 31 deletions(-)

commit 6d0f2c4421e34a078469a81646a52dfa47b4dcf1
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Sep 29 00:02:18 2008 +0100

    [pattern] Remove the hack to support cloning surface patterns.
    
    Remove instances (abuses) of calling _cairo_pattern_acquire_surface() on
    a known-surface-pattern with a hack to say "give me the entire surface".
    If you know you just want the entire surface as an image surface, that
    can be done more simply.
    
    (Split from original patch on
    https://bugs.freedesktop.org/attachment.cgi?id=15703, by Chris Wilson -
    as usual all bugs are his.)

 src/cairo-pattern.c                |    5 +---
 src/cairo-svg-surface.c            |   16 +------------
 src/cairo-win32-printing-surface.c |   41 ++++++++++++++++-------------------
 3 files changed, 22 insertions(+), 40 deletions(-)

commit 117f643e49615295eb37af24efffd8327429cbf9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 22:42:30 2008 +0100

    [test/filter-bilinear-extents] Extend testing.
    
    First, explicitly set the filter mode to BILINEAR in case the default should
    ever change. And then draw a second pattern with extents that in theory
    are larger than the source surface in order to test handling of acquiring
    out-of-bounds extents.

 test/filter-bilinear-extents.c |   45 +++++++++++++++++++++++++++------------
 1 files changed, 31 insertions(+), 14 deletions(-)

commit 3ff86a4510b718a3154b56b052be786f9495a3b0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 08:38:31 2008 +0100

    [test] Disable caching of SVG fail/pass surfaces.
    
    As we use cairo to convert SVG files back to an image, that process is
    dependent upon changes within our library and so we cannot skip the
    conversion if the SVG file happens to match a previous run. Fortunately,
    librsvg is quick enough that this is not a major issue.

 boilerplate/cairo-boilerplate.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 24b22f0d2161f7a4ce75ceb2a86a77737027ee56
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 29 07:52:09 2008 +0100

    [glitz] Compile fix for typo.
    
    I wonder whether merely fixing a compile error in glitz will do anything
    towards its utility... Anyway fix the missing comma as reported by
    Shunichi Fuji and correct the asserts.

 src/cairo-glitz-surface.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 4f449107afba8ca96cd16e8dec283db124105dc8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 21:05:36 2008 +0100

    [test/fallback-resolution] Exercise a couple of outstanding bugs.
    
    Use dashes to exercise bugs:
      https://bugs.freedesktop.org/show_bug.cgi?id=9189
      https://bugs.freedesktop.org/show_bug.cgi?id=17223
    Note bug 17223 indicates that this is still relevant for win32 printing
    where fallbacks are used if the dash offset is non-zero.
    
    And use a pattern to exercise the (fixed) regression:
      https://bugs.launchpad.net/inkscape/+bug/234546

 test/fallback-resolution-ppi150-ref.png  |  Bin 2397 -> 8043 bytes
 test/fallback-resolution-ppi300-ref.png  |  Bin 1591 -> 5637 bytes
 test/fallback-resolution-ppi37.5-ref.png |  Bin 4681 -> 14098 bytes
 test/fallback-resolution-ppi600-ref.png  |  Bin 1121 -> 4104 bytes
 test/fallback-resolution-ppi72-ref.png   |  Bin 2497 -> 8409 bytes
 test/fallback-resolution-ppi75-ref.png   |  Bin 3575 -> 12101 bytes
 test/fallback-resolution.c               |   40 ++++++++++++++++++++++++++++-
 7 files changed, 38 insertions(+), 2 deletions(-)

commit 0a7d781ab020171e70bd1dc66ff1556106e5be3f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 18:57:15 2008 +0100

    [perf] Add rounded rectangle perf case.
    
    Add the performance test case to compare the speed of filling a rounded
    rectangle (one with camphered corners) as opposed to an ordinary
    rectangle. Since the majority of the pixels are identical, ideally the two
    cases would take similar times (modulo the additional overhead in the more
    complex path).

 perf/Makefile.am          |    1 +
 perf/cairo-perf.c         |    1 +
 perf/cairo-perf.h         |    1 +
 perf/rectangles.c         |   22 +++++++++-
 perf/rounded-rectangles.c |  111 +++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 135 insertions(+), 1 deletions(-)

commit d52b55cb1b2a4e9b5fd8dd12592a227f8f6a93fc
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Sun Sep 28 17:51:23 2008 +0100

    [xlib] _surfaces_compatible() can return true for different picture formats
    
    _surfaces_compatible in cairo-xlib-surface returns true for surfaces with
    different xrender_format when each has the same depth and no (NULL)
    visual.
    
    Common picture formats will not have the same depth, but
    it is possible to create a surface with a non-standard xrender_format
    having the same depth as another xrender_format with
    cairo_xlib_surface_create_with_xrender_format.
    
    Both cairo_xlib_surface_create_with_xrender_format and
    _cairo_xlib_surface_create_similar_with_format create surfaces with no
    visual.
    
    The same issue exists in the xcb backend.
    
    Fixes bug https://bugs.freedesktop.org/show_bug.cgi?id=16564.

 AUTHORS                  |    1 +
 src/cairo-xcb-surface.c  |    4 +++-
 src/cairo-xlib-surface.c |    4 +++-
 3 files changed, 7 insertions(+), 2 deletions(-)

commit b6b54e2f2736bfa9f76b7b6fc0da5d35a71fe846
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 17:13:11 2008 +0100

    [svg] Compile fix for last commit.
    
    Sorry - badly merged patch (missed a chunk).

 src/cairo-svg-surface.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit cff3bcba68233101c5518801b64e37d2f0e70ae8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 17:06:32 2008 +0100

    [svg] Check that the mask is supported.
    
    During the analyze phase we also need to check whether we can emit the mask
    without requiring fallbacks.

 src/cairo-svg-surface.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

commit 8ad3031359d74bdff4b1e3ef8d0af047821f1795
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 17:04:15 2008 +0100

    [svg] Enable the assertion that paint() is supported.
    
    The XXX comment before the disabled assert is misleading as the final
    fallback image paint operation should never trigger UNSUPPORTED.

 src/cairo-svg-surface.c |   13 ++++---------
 1 files changed, 4 insertions(+), 9 deletions(-)

commit 95e637f9ac9e4256f7ba73e8f048f8e559631c82
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 16:54:59 2008 +0100

    [paginated] Set paginated mode before every replay.
    
    Previously we were replaying full page fallbacks without updating the
    mode - this was upsetting SVG.

 src/cairo-paginated-surface.c |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

commit 36b98589911ab57762317ec95cbff41681c1e0b6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 16:24:40 2008 +0100

    [svg] Kill _cairo_svg_surface_force_fallbacks.
    
    It is not used, but refuses to die!

 src/cairo-svg-surface.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

commit 57851464f920d52444d19d25e78293fa0f40c5f9
Author: Benjamin Otte <otte@gnome.org>
Date:   Sun Sep 28 17:02:23 2008 +0200

    [SVG] make backend handle new operators gracefully
    
    Previously, the SVG backend would rash when new operators were added to
    cairo.h, now it returns UNSUPPORTED.
    Also unsupported operators can now be set as NULL, so image fallbacks can
    be used properly.
    Should use fallbacks instead of color-dodge for CAIRO_OPERATOR_STURATE?

 src/cairo-svg-surface.c |   45 +++++++++++++++++++++++++++++++--------------
 1 files changed, 31 insertions(+), 14 deletions(-)

commit fda80cc852a109fe60e3277a1847bc5c24f35d8e
Author: Benjamin Otte <otte@gnome.org>
Date:   Sun Sep 28 14:57:49 2008 +0200

    [SVG] use _cairo_operator_bounded_by_source()
    
    previously, the code was duplicating its functionality

 src/cairo-svg-surface.c |   27 ++++++++++++---------------
 1 files changed, 12 insertions(+), 15 deletions(-)

commit 3c18d95b293eddaa25232bc06398c78bc8043cb4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 15:57:37 2008 +0100

    Compute device_transform_inverse.
    
    Because we can independently set either the device scale or the device
    offset, we need to be careful and recompute the inverse rather than simply
    assuming that the original contents of the device transform is identity.
    
    Fixes regression https://bugs.launchpad.net/inkscape/+bug/234546.

 src/cairo-surface.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

commit 9841d9d58ea286f798626d325d50a85bf3f02c8f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 28 13:34:50 2008 +0100

    Automate error checking for fallback-resolution.
    
    For this we extend the boilerplate get_image() routines to extract a
    single page out of a paginated document and then proceed to manually
    check each page of the fallback-resolution test.
    
    (Well that's the theory, in practice SVG doesn't support multiple pages
    and so we just generate a new surface for each resolution. But the
    infrastructure is in place so that we can automate other tests,
    e.g. test/multi-pages.)

 boilerplate/cairo-boilerplate-pdf-private.h        |    5 +
 boilerplate/cairo-boilerplate-pdf.c                |   29 +-
 boilerplate/cairo-boilerplate-pdf.h                |   33 --
 boilerplate/cairo-boilerplate-ps-private.h         |    9 +-
 boilerplate/cairo-boilerplate-ps.c                 |   33 +-
 boilerplate/cairo-boilerplate-ps.h                 |   33 --
 boilerplate/cairo-boilerplate-svg-private.h        |    5 +
 boilerplate/cairo-boilerplate-svg.c                |   36 +-
 boilerplate/cairo-boilerplate-svg.h                |   33 --
 .../cairo-boilerplate-test-surfaces-private.h      |    1 +
 boilerplate/cairo-boilerplate-test-surfaces.c      |    7 +-
 boilerplate/cairo-boilerplate-win32-printing.c     |    5 +
 boilerplate/cairo-boilerplate-win32-private.h      |    1 +
 boilerplate/cairo-boilerplate.c                    |   74 ++--
 boilerplate/cairo-boilerplate.h                    |    7 +
 src/cairo-svg-surface.c                            |    6 +-
 test/Makefile.am                                   |    6 +
 test/cairo-test.c                                  |   36 +-
 test/cairo-test.h                                  |   12 +
 test/fallback-resolution-ppi150-ref.png            |  Bin 0 -> 2397 bytes
 test/fallback-resolution-ppi300-ref.png            |  Bin 0 -> 1591 bytes
 test/fallback-resolution-ppi37.5-ref.png           |  Bin 0 -> 4681 bytes
 test/fallback-resolution-ppi600-ref.png            |  Bin 0 -> 1121 bytes
 test/fallback-resolution-ppi72-ref.png             |  Bin 0 -> 2497 bytes
 test/fallback-resolution-ppi75-ref.png             |  Bin 0 -> 3575 bytes
 test/fallback-resolution.c                         |  413 +++++++++++++++-----
 26 files changed, 486 insertions(+), 298 deletions(-)

commit cca1fc6358e9d0213dd2b41a5bfd1629eec6511e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 21:53:21 2008 +0100

    [test] Fix target specific tests for recent SVG/PS version split.
    
    A few tests explicitly checked whether the "ps" or "svg" target was
    enabled and this broke because of the name change. So fixup, to run
    the generic test if either PS or SVG target is enabled as appropriate.

 test/create-for-stream.c   |    8 ++++++--
 test/fallback-resolution.c |    8 ++++++--
 test/multi-page.c          |    4 +++-
 test/ps-features.c         |    4 +++-
 test/svg-clip.c            |    4 +++-
 test/svg-surface.c         |    4 +++-
 6 files changed, 24 insertions(+), 8 deletions(-)

commit 39e4a0bcd04191eecfc593653a4ba32a28fcac6a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 19:33:51 2008 +0100

    [test] Update list of REFERENCE_IMAGES
    
    A few typos, deletions and additions from the inclusion of versioned
    SVG/PS testing.

 test/Makefile.am |   50 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 31 insertions(+), 19 deletions(-)

commit 260362e5728e2591bb50f565ef04ba951d95de79
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 19:16:34 2008 +0100

    [cairo-test] Fix cairo_test_file_is_older().
    
    It did not even compile, so no longer it wasn't deleting cached results
    if you updated the reference images.

 test/cairo-test.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

commit ffbb67303c1a4d986096ba046bb3256314b9f1b1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 18:54:45 2008 +0100

    [test/gradient-constant-alpha] Remove ps2 reference images.
    
    PostScript level 2 has no support for gradients and so should uses image
    fallbacks and hence do not require the GS specific reference images.

 test/Makefile.am                               |    2 --
 test/gradient-constant-alpha-ps2-ref.png       |  Bin 124 -> 0 bytes
 test/gradient-constant-alpha-ps2-rgb24-ref.png |  Bin 124 -> 0 bytes
 3 files changed, 0 insertions(+), 2 deletions(-)

commit 4fa9f8c0608c137d9aa277039cb286c8294e6a2f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 17:42:06 2008 +0100

    [test/large-source] Remove stale comment.
    
    Delete a reference to an old limitation of pixman.

 test/large-source.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

commit 35f1e2fa4f15c562e5cc41578b413c6874e131bc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 17:37:32 2008 +0100

    [test/operator*] Remove XFAIL descriptions.
    
    The tests should now pass, so remove the line claiming that they fail
    for unknown reasons.

 test/operator-alpha.c |    3 +--
 test/operator.c       |    3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 871f683367b1a1647b607f9221e1fc2eddc6e5dd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 17:24:57 2008 +0100

    clone_similar(): s/device_offset/clone_offset/
    
    A little bit of sleep and reflection suggested that the use of
    device_offset_[xy] was confusing and clone_offset_[xy] more consistent
    with the function naming.

 src/cairo-directfb-surface.c         |   12 ++++++------
 src/cairo-glitz-surface.c            |   18 +++++++++---------
 src/cairo-image-surface.c            |    6 +++---
 src/cairo-pattern.c                  |    6 +++---
 src/cairo-quartz-surface.c           |   16 ++++++++--------
 src/cairo-surface-fallback-private.h |    4 ++--
 src/cairo-surface-fallback.c         |    8 ++++----
 src/cairo-surface.c                  |   16 ++++++++--------
 src/cairo-win32-private.h            |    4 ++--
 src/cairo-win32-surface.c            |    8 ++++----
 src/cairo-xcb-surface.c              |   12 ++++++------
 src/cairo-xlib-surface.c             |   12 ++++++------
 src/cairoint.h                       |   10 +++++-----
 src/test-fallback-surface.c          |    8 ++++----
 14 files changed, 70 insertions(+), 70 deletions(-)

commit 95c3c069326a77a28eb49053c0ace9f1977e0378
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 17:13:32 2008 +0100

    [surface] Only return early for no traps if the operator is bounded by a mask.
    
    If the operator is unbounded, then its area of effect extends beyond
    the definition of the mask by the trapezoids and so we must always perform
    the image composition.
    
    Fixes test/operator*.

 src/cairo-surface-fallback.c |    4 +---
 test/Makefile.am             |    2 --
 2 files changed, 1 insertions(+), 5 deletions(-)

commit 922a5801164c2b2340a7b4a950820b07e72adadc
Merge: 0c43170 1e45da4
Author: Emmanuel Pacaud <emmanuel.pacaud@free.fr>
Date:   Sat Sep 27 11:55:50 2008 +0200

    Merge branch 'master' of git+ssh://emmanuel@git.cairographics.org/git/cairo

commit 0c4317085ecfc112214cdfe2abd66d9df8038282
Author: Emmanuel Pacaud <emmanuel.pacaud@free.fr>
Date:   Sat Sep 27 11:47:32 2008 +0200

    [svg] Fix comp-op for paint, mask and show_glyphs operations.
    
    In paint and show_glyphs, the compositing operator was not emitted at all.
    In mask, the operator was also emitted for the mask itself, which is
    wrong.
    
    SVG clear and source differ from cairo as it also affects the
    destination if the source pixel are completely transparent. We need to emit
    an additional clip-to-self property.
    
    Librsvg does not support clip-to-self, so it renders the SVG
    test outputs incorrectly.
    
    This patch also remove a lot of useless spaces in the style property
    strings (I know, this should go in another commit).

 src/cairo-svg-surface.c |  196 +++++++++++++++++++++++++++--------------------
 1 files changed, 113 insertions(+), 83 deletions(-)

commit 1e45da48b555b707225c1521068011cabbcc976f
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Sep 27 14:38:22 2008 +0930

    Update ref images in Makefile.am

 test/Makefile.am |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit c0535e8e3394f0b78867785e65cf89dbb31875d5
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Sep 27 14:31:50 2008 +0930

    Remove miter-precision from XFAIL
    
    The miter-precision PS output prints correctly on my LaserJet 4050. So
    file a Ghostscript bug, supply PS ref images and remove from XFAIL.

 test/Makefile.am                 |    1 -
 test/README                      |    5 +++++
 test/miter-precision-ps2-ref.png |  Bin 0 -> 865 bytes
 test/miter-precision-ps3-ref.png |  Bin 0 -> 865 bytes
 test/miter-precision.c           |    2 +-
 5 files changed, 6 insertions(+), 2 deletions(-)

commit 5b97ee65259cafb335c1a2c53f1a55dfcb175e20
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 27 00:18:07 2008 +0100

    Allow cloning sub-regions of similar surfaces.
    
    Previously the rule for clone_similar() was that the returned surface
    had exactly the same size as the original, but only the contents within
    the region of interest needed to be copied. This caused failures for very
    large images in the xlib-backend (see test/large-source).
    
    The obvious solution to allow cloning only the region of interest seemed
    to be to simply set the device offset on the cloned surface. However, this
    fails as a) nothing respects the device offset on the surface at that
    layer in the compositing stack and b) possibly returning references to the
    original source surface provides further confusion by mixing in another
    source of device offset.
    
    The second method was to add extra out parameters so that the
    device offset could be returned separately and, for example, mixed into
    the pattern matrix. Not as elegant, a couple of extra warts to the
    interface, but it works - one less XFAIL...

 src/cairo-clip.c                     |    6 ++++++
 src/cairo-directfb-surface.c         |   14 +++++++++-----
 src/cairo-glitz-surface.c            |   10 ++++++++++
 src/cairo-image-surface.c            |    3 +++
 src/cairo-pattern.c                  |   15 +++++++++++++--
 src/cairo-quartz-surface.c           |   10 +++++++++-
 src/cairo-surface-fallback-private.h |    2 ++
 src/cairo-surface-fallback.c         |    8 ++++++--
 src/cairo-surface.c                  |   24 ++++++++++++++++++------
 src/cairo-win32-private.h            |    2 ++
 src/cairo-win32-surface.c            |    8 ++++++--
 src/cairo-xcb-surface.c              |   18 ++++++++++++++----
 src/cairo-xlib-surface.c             |   21 +++++++++++++++------
 src/cairoint.h                       |   11 +++++++++--
 src/test-fallback-surface.c          |    4 ++++
 test/Makefile.am                     |    1 -
 16 files changed, 126 insertions(+), 31 deletions(-)

commit 7f3a48f90b409653a2d4fb802779ecb7508e4d6e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Sep 26 13:27:42 2008 -0400

    [cairo.h] Don't define cairo_public to __declspec(dllimport) for static build
    
    That define should target win32 DLL builds only.  We can't tell though,
    so we require user to define CAIRO_WIN32_STATIC_BUILD to signal that.

 src/cairo-system.c |    2 +-
 src/cairo.h        |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit b6e910f4b636e947cefb310125979ce742e87730
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Sep 26 12:36:33 2008 -0400

    [README.win32] Update wording from Tor Lillqvist

 README.win32 |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

commit fc12267405e98497c9f086d49fa6501d8f671a68
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 26 17:10:52 2008 +0100

    [scaled-font] Spelling fix.
    
    Arbitrary spelling fix.

 src/cairo-scaled-font.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit e0f214710760a0e0332207cb3009e3119867bd13
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 26 16:49:57 2008 +0100

    [boilerplate] Add a PS 2 target.
    
    Ensure that we can generate PS2 output when required by creating a PS
    level 2 target and using GhostScript for conformance testing.

 boilerplate/cairo-boilerplate-ps-private.h         |   29 ++-
 boilerplate/cairo-boilerplate-ps.c                 |   55 ++++-
 boilerplate/cairo-boilerplate.c                    |   23 ++-
 test/Makefile.am                                   |  286 +++++++++++++-------
 test/big-line-ps-ref.png                           |  Bin 1148 -> 0 bytes
 test/big-line-ps-rgb24-ref.png                     |  Bin 830 -> 0 bytes
 test/big-line-ps2-ref.png                          |  Bin 0 -> 1148 bytes
 test/big-line-ps2-rgb24-ref.png                    |  Bin 0 -> 830 bytes
 test/big-line-ps3-ref.png                          |  Bin 0 -> 1148 bytes
 test/big-line-ps3-rgb24-ref.png                    |  Bin 0 -> 830 bytes
 test/caps-joins-ps-ref.png                         |  Bin 1459 -> 0 bytes
 test/caps-joins-ps2-ref.png                        |  Bin 0 -> 1459 bytes
 test/caps-joins-ps3-ref.png                        |  Bin 0 -> 1459 bytes
 test/clip-fill-rule-ps-argb32-ref.png              |  Bin 310 -> 0 bytes
 test/clip-fill-rule-ps-rgb24-ref.png               |  Bin 302 -> 0 bytes
 test/clip-fill-rule-ps2-argb32-ref.png             |  Bin 0 -> 310 bytes
 test/clip-fill-rule-ps2-rgb24-ref.png              |  Bin 0 -> 302 bytes
 test/clip-fill-rule-ps3-argb32-ref.png             |  Bin 0 -> 310 bytes
 test/clip-fill-rule-ps3-rgb24-ref.png              |  Bin 0 -> 302 bytes
 test/clip-nesting-ps-argb32-ref.png                |  Bin 651 -> 0 bytes
 test/clip-nesting-ps-rgb24-ref.png                 |  Bin 636 -> 0 bytes
 test/clip-nesting-ps2-argb32-ref.png               |  Bin 0 -> 651 bytes
 test/clip-nesting-ps2-rgb24-ref.png                |  Bin 0 -> 636 bytes
 test/clip-nesting-ps3-argb32-ref.png               |  Bin 0 -> 651 bytes
 test/clip-nesting-ps3-rgb24-ref.png                |  Bin 0 -> 636 bytes
 test/clip-operator-ps-rgb24-ref.png                |  Bin 3624 -> 0 bytes
 test/clip-operator-ps2-rgb24-ref.png               |  Bin 0 -> 3624 bytes
 test/clip-operator-ps3-ref.png                     |  Bin 0 -> 8188 bytes
 test/clip-operator-ps3-rgb24-ref.png               |  Bin 0 -> 3624 bytes
 test/clip-push-group-ps-argb32-ref.png             |  Bin 179 -> 0 bytes
 test/clip-push-group-ps-rgb24-ref.png              |  Bin 179 -> 0 bytes
 test/clip-push-group-ps2-argb32-ref.png            |  Bin 0 -> 179 bytes
 test/clip-push-group-ps2-rgb24-ref.png             |  Bin 0 -> 179 bytes
 test/clip-push-group-ps3-argb32-ref.png            |  Bin 0 -> 179 bytes
 test/clip-push-group-ps3-rgb24-ref.png             |  Bin 0 -> 179 bytes
 test/clip-twice-ps-argb32-ref.png                  |  Bin 575 -> 0 bytes
 test/clip-twice-ps-rgb24-ref.png                   |  Bin 541 -> 0 bytes
 test/clip-twice-ps2-argb32-ref.png                 |  Bin 0 -> 575 bytes
 test/clip-twice-ps2-rgb24-ref.png                  |  Bin 0 -> 541 bytes
 test/clip-twice-ps3-argb32-ref.png                 |  Bin 0 -> 575 bytes
 test/clip-twice-ps3-rgb24-ref.png                  |  Bin 0 -> 541 bytes
 test/clipped-group-ps-ref.png                      |  Bin 343 -> 0 bytes
 test/clipped-group-ps2-ref.png                     |  Bin 0 -> 343 bytes
 test/clipped-group-ps3-ref.png                     |  Bin 0 -> 343 bytes
 test/close-path-ps-ref.png                         |  Bin 309 -> 0 bytes
 test/close-path-ps2-ref.png                        |  Bin 0 -> 309 bytes
 test/close-path-ps3-ref.png                        |  Bin 0 -> 309 bytes
 test/copy-path-ps-ref.png                          |  Bin 474 -> 0 bytes
 test/copy-path-ps2-ref.png                         |  Bin 0 -> 474 bytes
 test/copy-path-ps3-ref.png                         |  Bin 0 -> 474 bytes
 test/dash-caps-joins-ps-argb32-ref.png             |  Bin 3870 -> 0 bytes
 test/dash-caps-joins-ps-rgb24-ref.png              |  Bin 3870 -> 0 bytes
 test/dash-caps-joins-ps2-argb32-ref.png            |  Bin 0 -> 3870 bytes
 test/dash-caps-joins-ps2-rgb24-ref.png             |  Bin 0 -> 3870 bytes
 test/dash-caps-joins-ps3-argb32-ref.png            |  Bin 0 -> 3870 bytes
 test/dash-caps-joins-ps3-rgb24-ref.png             |  Bin 0 -> 3870 bytes
 test/dash-curve-ps-ref.png                         |  Bin 27293 -> 0 bytes
 test/dash-curve-ps2-ref.png                        |  Bin 0 -> 27293 bytes
 test/dash-curve-ps3-ref.png                        |  Bin 0 -> 27293 bytes
 test/dash-scale-ps-argb32-ref.png                  |  Bin 6318 -> 0 bytes
 test/dash-scale-ps-rgb24-ref.png                   |  Bin 6316 -> 0 bytes
 test/dash-scale-ps2-argb32-ref.png                 |  Bin 0 -> 6318 bytes
 test/dash-scale-ps2-rgb24-ref.png                  |  Bin 0 -> 6316 bytes
 test/dash-scale-ps3-argb32-ref.png                 |  Bin 0 -> 6318 bytes
 test/dash-scale-ps3-rgb24-ref.png                  |  Bin 0 -> 6316 bytes
 test/dash-state-ps-ref.png                         |  Bin 10219 -> 0 bytes
 test/dash-state-ps2-ref.png                        |  Bin 0 -> 10219 bytes
 test/dash-state-ps3-ref.png                        |  Bin 0 -> 10219 bytes
 test/dash-zero-length-ps-ref.png                   |  Bin 319 -> 0 bytes
 test/dash-zero-length-ps-rgb24-ref.png             |  Bin 304 -> 0 bytes
 test/dash-zero-length-ps2-ref.png                  |  Bin 0 -> 319 bytes
 test/dash-zero-length-ps2-rgb24-ref.png            |  Bin 0 -> 304 bytes
 test/dash-zero-length-ps3-ref.png                  |  Bin 0 -> 319 bytes
 test/dash-zero-length-ps3-rgb24-ref.png            |  Bin 0 -> 304 bytes
 test/degenerate-arc-ps-ref.png                     |  Bin 585 -> 0 bytes
 test/degenerate-arc-ps2-ref.png                    |  Bin 0 -> 585 bytes
 test/degenerate-arc-ps3-ref.png                    |  Bin 0 -> 585 bytes
 test/degenerate-path-ps-argb32-ref.png             |  Bin 390 -> 0 bytes
 test/degenerate-path-ps-rgb24-ref.png              |  Bin 358 -> 0 bytes
 test/degenerate-path-ps2-argb32-ref.png            |  Bin 0 -> 390 bytes
 test/degenerate-path-ps2-rgb24-ref.png             |  Bin 0 -> 358 bytes
 test/degenerate-path-ps3-argb32-ref.png            |  Bin 0 -> 390 bytes
 test/degenerate-path-ps3-rgb24-ref.png             |  Bin 0 -> 358 bytes
 test/degenerate-pen-ps-ref.png                     |  Bin 865 -> 0 bytes
 test/degenerate-pen-ps2-ref.png                    |  Bin 0 -> 865 bytes
 test/degenerate-pen-ps3-ref.png                    |  Bin 0 -> 865 bytes
 test/device-offset-fractional-ps-ref.png           |  Bin 201 -> 0 bytes
 test/device-offset-fractional-ps2-ref.png          |  Bin 0 -> 201 bytes
 test/device-offset-fractional-ps3-ref.png          |  Bin 0 -> 201 bytes
 test/extend-reflect-ps-ref.png                     |  Bin 153322 -> 0 bytes
 test/extend-reflect-ps2-ref.png                    |  Bin 0 -> 153322 bytes
 test/extend-reflect-ps3-ref.png                    |  Bin 0 -> 153322 bytes
 test/extend-reflect-similar-ps-ref.png             |  Bin 153322 -> 0 bytes
 test/extend-reflect-similar-ps2-ref.png            |  Bin 0 -> 153322 bytes
 test/extend-reflect-similar-ps3-ref.png            |  Bin 0 -> 153322 bytes
 test/fill-alpha-pattern-ps-ref.png                 |  Bin 4380 -> 0 bytes
 test/fill-alpha-pattern-ps3-ref.png                |  Bin 0 -> 4380 bytes
 test/fill-and-stroke-ps-argb32-ref.png             |  Bin 310 -> 0 bytes
 test/fill-and-stroke-ps-rgb24-ref.png              |  Bin 319 -> 0 bytes
 test/fill-and-stroke-ps2-argb32-ref.png            |  Bin 0 -> 310 bytes
 test/fill-and-stroke-ps2-rgb24-ref.png             |  Bin 0 -> 319 bytes
 test/fill-and-stroke-ps3-argb32-ref.png            |  Bin 0 -> 310 bytes
 test/fill-and-stroke-ps3-rgb24-ref.png             |  Bin 0 -> 319 bytes
 test/fill-missed-stop-ps-argb32-ref.png            |  Bin 564 -> 0 bytes
 test/fill-missed-stop-ps-rgb24-ref.png             |  Bin 531 -> 0 bytes
 test/fill-missed-stop-ps2-argb32-ref.png           |  Bin 0 -> 564 bytes
 test/fill-missed-stop-ps2-rgb24-ref.png            |  Bin 0 -> 531 bytes
 test/fill-missed-stop-ps3-argb32-ref.png           |  Bin 0 -> 564 bytes
 test/fill-missed-stop-ps3-rgb24-ref.png            |  Bin 0 -> 531 bytes
 test/fill-rule-ps-argb32-ref.png                   |  Bin 2253 -> 0 bytes
 test/fill-rule-ps-rgb24-ref.png                    |  Bin 2031 -> 0 bytes
 test/fill-rule-ps2-argb32-ref.png                  |  Bin 0 -> 2253 bytes
 test/fill-rule-ps2-rgb24-ref.png                   |  Bin 0 -> 2031 bytes
 test/fill-rule-ps3-argb32-ref.png                  |  Bin 0 -> 2253 bytes
 test/fill-rule-ps3-rgb24-ref.png                   |  Bin 0 -> 2031 bytes
 test/finer-grained-fallbacks-ps-argb32-ref.png     |  Bin 1047 -> 0 bytes
 test/finer-grained-fallbacks-ps-rgb24-ref.png      |  Bin 819 -> 0 bytes
 test/finer-grained-fallbacks-ps2-argb32-ref.png    |  Bin 0 -> 1047 bytes
 test/finer-grained-fallbacks-ps2-rgb24-ref.png     |  Bin 0 -> 819 bytes
 test/finer-grained-fallbacks-ps3-argb32-ref.png    |  Bin 0 -> 1047 bytes
 test/finer-grained-fallbacks-ps3-rgb24-ref.png     |  Bin 0 -> 819 bytes
 test/font-matrix-translation-ps-argb32-ref.png     |  Bin 748 -> 0 bytes
 test/font-matrix-translation-ps-rgb24-ref.png      |  Bin 748 -> 0 bytes
 test/font-matrix-translation-ps2-argb32-ref.png    |  Bin 0 -> 748 bytes
 test/font-matrix-translation-ps2-rgb24-ref.png     |  Bin 0 -> 748 bytes
 test/font-matrix-translation-ps3-argb32-ref.png    |  Bin 0 -> 748 bytes
 test/font-matrix-translation-ps3-rgb24-ref.png     |  Bin 0 -> 748 bytes
 test/ft-show-glyphs-positioning-ps-ref.png         |  Bin 2269 -> 0 bytes
 test/ft-show-glyphs-positioning-ps2-ref.png        |  Bin 0 -> 2269 bytes
 test/ft-show-glyphs-positioning-ps3-ref.png        |  Bin 0 -> 2269 bytes
 test/ft-show-glyphs-table-ps-ref.png               |  Bin 5687 -> 0 bytes
 test/ft-show-glyphs-table-ps2-ref.png              |  Bin 0 -> 5687 bytes
 test/ft-show-glyphs-table-ps3-ref.png              |  Bin 0 -> 5687 bytes
 test/ft-text-antialias-none-ps-argb32-ref.png      |  Bin 335 -> 0 bytes
 test/ft-text-antialias-none-ps2-argb32-ref.png     |  Bin 0 -> 335 bytes
 test/ft-text-antialias-none-ps3-argb32-ref.png     |  Bin 0 -> 335 bytes
 test/ft-text-vertical-layout-type1-ps-ref.png      |  Bin 1846 -> 0 bytes
 test/ft-text-vertical-layout-type1-ps2-ref.png     |  Bin 0 -> 1846 bytes
 test/ft-text-vertical-layout-type1-ps3-ref.png     |  Bin 0 -> 1846 bytes
 test/ft-text-vertical-layout-type3-ps-ref.png      |  Bin 1804 -> 0 bytes
 test/ft-text-vertical-layout-type3-ps2-ref.png     |  Bin 0 -> 1804 bytes
 test/ft-text-vertical-layout-type3-ps3-ref.png     |  Bin 0 -> 1804 bytes
 test/glyph-cache-pressure-ps-ref.png               |  Bin 1454 -> 0 bytes
 test/glyph-cache-pressure-ps2-ref.png              |  Bin 0 -> 1454 bytes
 test/glyph-cache-pressure-ps3-ref.png              |  Bin 0 -> 1454 bytes
 test/gradient-alpha-ps-argb32-ref.png              |  Bin 134 -> 0 bytes
 test/gradient-alpha-ps-rgb24-ref.png               |  Bin 130 -> 0 bytes
 test/gradient-alpha-ps2-argb32-ref.png             |  Bin 0 -> 134 bytes
 test/gradient-alpha-ps2-rgb24-ref.png              |  Bin 0 -> 130 bytes
 test/gradient-alpha-ps3-argb32-ref.png             |  Bin 0 -> 134 bytes
 test/gradient-alpha-ps3-rgb24-ref.png              |  Bin 0 -> 130 bytes
 test/gradient-constant-alpha-ps-ref.png            |  Bin 124 -> 0 bytes
 test/gradient-constant-alpha-ps-rgb24-ref.png      |  Bin 124 -> 0 bytes
 test/gradient-constant-alpha-ps2-ref.png           |  Bin 0 -> 124 bytes
 test/gradient-constant-alpha-ps2-rgb24-ref.png     |  Bin 0 -> 124 bytes
 test/gradient-constant-alpha-ps3-ref.png           |  Bin 0 -> 124 bytes
 test/gradient-constant-alpha-ps3-rgb24-ref.png     |  Bin 0 -> 124 bytes
 test/infinite-join-ps-ref.png                      |  Bin 218 -> 0 bytes
 test/infinite-join-ps2-ref.png                     |  Bin 0 -> 218 bytes
 test/infinite-join-ps3-ref.png                     |  Bin 0 -> 218 bytes
 test/leaky-dash-ps-argb32-ref.png                  |  Bin 286 -> 0 bytes
 test/leaky-dash-ps-rgb24-ref.png                   |  Bin 284 -> 0 bytes
 test/leaky-dash-ps2-argb32-ref.png                 |  Bin 0 -> 286 bytes
 test/leaky-dash-ps2-rgb24-ref.png                  |  Bin 0 -> 284 bytes
 test/leaky-dash-ps3-argb32-ref.png                 |  Bin 0 -> 286 bytes
 test/leaky-dash-ps3-rgb24-ref.png                  |  Bin 0 -> 284 bytes
 test/leaky-dashed-rectangle-ps-ref.png             |  Bin 444 -> 0 bytes
 test/leaky-dashed-rectangle-ps2-ref.png            |  Bin 0 -> 444 bytes
 test/leaky-dashed-rectangle-ps3-ref.png            |  Bin 0 -> 444 bytes
 test/leaky-polygon-ps-ref.png                      |  Bin 354 -> 0 bytes
 test/leaky-polygon-ps2-ref.png                     |  Bin 0 -> 354 bytes
 test/leaky-polygon-ps3-ref.png                     |  Bin 0 -> 354 bytes
 test/line-width-scale-ps-ref.png                   |  Bin 3911 -> 0 bytes
 test/line-width-scale-ps2-ref.png                  |  Bin 0 -> 3911 bytes
 test/line-width-scale-ps3-ref.png                  |  Bin 0 -> 3911 bytes
 test/linear-gradient-ps-ref.png                    |  Bin 779 -> 0 bytes
 test/linear-gradient-ps3-ref.png                   |  Bin 0 -> 779 bytes
 test/linear-gradient-reflect-ps-ref.png            |  Bin 314 -> 0 bytes
 test/linear-gradient-reflect-ps3-ref.png           |  Bin 0 -> 314 bytes
 test/long-dashed-lines-ps-ref.png                  |  Bin 1516 -> 0 bytes
 test/long-dashed-lines-ps2-ref.png                 |  Bin 0 -> 1516 bytes
 test/long-dashed-lines-ps3-ref.png                 |  Bin 0 -> 1516 bytes
 test/meta-surface-pattern-ps-argb32-ref.png        |  Bin 3257 -> 0 bytes
 test/meta-surface-pattern-ps-rgb24-ref.png         |  Bin 3873 -> 0 bytes
 test/meta-surface-pattern-ps2-argb32-ref.png       |  Bin 0 -> 3257 bytes
 test/meta-surface-pattern-ps2-rgb24-ref.png        |  Bin 0 -> 3873 bytes
 test/meta-surface-pattern-ps3-argb32-ref.png       |  Bin 0 -> 3257 bytes
 test/meta-surface-pattern-ps3-rgb24-ref.png        |  Bin 0 -> 3873 bytes
 test/new-sub-path-ps-argb32-ref.png                |  Bin 556 -> 0 bytes
 test/new-sub-path-ps-rgb24-ref.png                 |  Bin 423 -> 0 bytes
 test/new-sub-path-ps2-argb32-ref.png               |  Bin 0 -> 556 bytes
 test/new-sub-path-ps2-rgb24-ref.png                |  Bin 0 -> 423 bytes
 test/new-sub-path-ps3-argb32-ref.png               |  Bin 0 -> 556 bytes
 test/new-sub-path-ps3-rgb24-ref.png                |  Bin 0 -> 423 bytes
 test/over-above-source-ps-argb32-ref.png           |  Bin 636 -> 0 bytes
 test/over-above-source-ps2-argb32-ref.png          |  Bin 0 -> 636 bytes
 test/over-above-source-ps3-argb32-ref.png          |  Bin 0 -> 636 bytes
 test/over-around-source-ps-argb32-ref.png          |  Bin 632 -> 0 bytes
 test/over-around-source-ps-rgb24-ref.png           |  Bin 538 -> 0 bytes
 test/over-around-source-ps2-argb32-ref.png         |  Bin 0 -> 632 bytes
 test/over-around-source-ps2-rgb24-ref.png          |  Bin 0 -> 538 bytes
 test/over-around-source-ps3-argb32-ref.png         |  Bin 0 -> 632 bytes
 test/over-around-source-ps3-rgb24-ref.png          |  Bin 0 -> 538 bytes
 test/over-below-source-ps-argb32-ref.png           |  Bin 503 -> 0 bytes
 test/over-below-source-ps2-argb32-ref.png          |  Bin 0 -> 503 bytes
 test/over-below-source-ps3-argb32-ref.png          |  Bin 0 -> 503 bytes
 test/over-between-source-ps-argb32-ref.png         |  Bin 678 -> 0 bytes
 test/over-between-source-ps2-argb32-ref.png        |  Bin 0 -> 678 bytes
 test/over-between-source-ps3-argb32-ref.png        |  Bin 0 -> 678 bytes
 test/random-intersections-ps-ref.png               |  Bin 89253 -> 0 bytes
 test/random-intersections-ps2-ref.png              |  Bin 0 -> 89253 bytes
 test/random-intersections-ps3-ref.png              |  Bin 0 -> 89253 bytes
 test/rectilinear-miter-limit-ps-ref.png            |  Bin 221 -> 0 bytes
 test/rectilinear-miter-limit-ps2-ref.png           |  Bin 0 -> 221 bytes
 test/rectilinear-miter-limit-ps3-ref.png           |  Bin 0 -> 221 bytes
 test/reflected-stroke-ps-ref.png                   |  Bin 3898 -> 0 bytes
 test/reflected-stroke-ps2-ref.png                  |  Bin 0 -> 3898 bytes
 test/reflected-stroke-ps3-ref.png                  |  Bin 0 -> 3898 bytes
 test/rel-path-ps-rgb24-ref.png                     |  Bin 243 -> 0 bytes
 test/rel-path-ps2-rgb24-ref.png                    |  Bin 0 -> 243 bytes
 test/rel-path-ps3-rgb24-ref.png                    |  Bin 0 -> 243 bytes
 test/rotate-image-surface-paint-ps-ref.png         |  Bin 212 -> 0 bytes
 test/rotate-image-surface-paint-ps2-ref.png        |  Bin 0 -> 212 bytes
 test/rotate-image-surface-paint-ps3-ref.png        |  Bin 0 -> 212 bytes
 test/select-font-face-ps-ref.png                   |  Bin 959 -> 0 bytes
 test/select-font-face-ps2-ref.png                  |  Bin 0 -> 959 bytes
 test/select-font-face-ps3-ref.png                  |  Bin 0 -> 959 bytes
 test/self-copy-ps-ref.png                          |  Bin 335 -> 0 bytes
 test/self-copy-ps2-ref.png                         |  Bin 0 -> 335 bytes
 test/self-copy-ps3-ref.png                         |  Bin 0 -> 335 bytes
 test/show-text-current-point-ps-ref.png            |  Bin 1356 -> 0 bytes
 test/show-text-current-point-ps2-ref.png           |  Bin 0 -> 1356 bytes
 test/show-text-current-point-ps3-ref.png           |  Bin 0 -> 1356 bytes
 test/skew-extreme-ps-ref.png                       |  Bin 1048 -> 0 bytes
 test/skew-extreme-ps2-ref.png                      |  Bin 0 -> 1048 bytes
 test/skew-extreme-ps3-ref.png                      |  Bin 0 -> 1048 bytes
 test/smask-ps-ref.png                              |  Bin 3669 -> 0 bytes
 test/smask-ps2-ref.png                             |  Bin 0 -> 3669 bytes
 test/smask-ps3-ref.png                             |  Bin 0 -> 3669 bytes
 test/smask-text-ps-ref.png                         |  Bin 2023 -> 0 bytes
 test/smask-text-ps2-ref.png                        |  Bin 0 -> 2023 bytes
 test/smask-text-ps3-ref.png                        |  Bin 0 -> 2023 bytes
 test/source-clip-scale-ps-argb32-ref.png           |  Bin 183 -> 0 bytes
 test/source-clip-scale-ps-rgb24-ref.png            |  Bin 183 -> 0 bytes
 test/source-clip-scale-ps2-argb32-ref.png          |  Bin 0 -> 183 bytes
 test/source-clip-scale-ps2-rgb24-ref.png           |  Bin 0 -> 183 bytes
 test/source-clip-scale-ps3-argb32-ref.png          |  Bin 0 -> 183 bytes
 test/source-clip-scale-ps3-rgb24-ref.png           |  Bin 0 -> 183 bytes
 test/stroke-ctm-caps-ps-ref.png                    |  Bin 1079 -> 0 bytes
 test/stroke-ctm-caps-ps2-ref.png                   |  Bin 0 -> 1079 bytes
 test/stroke-ctm-caps-ps3-ref.png                   |  Bin 0 -> 1079 bytes
 test/stroke-image-ps-ref.png                       |  Bin 1786 -> 0 bytes
 test/stroke-image-ps2-ref.png                      |  Bin 0 -> 1786 bytes
 test/stroke-image-ps3-ref.png                      |  Bin 0 -> 1786 bytes
 test/surface-pattern-ps-argb32-ref.png             |  Bin 2520 -> 0 bytes
 test/surface-pattern-ps2-argb32-ref.png            |  Bin 0 -> 2520 bytes
 test/surface-pattern-ps3-argb32-ref.png            |  Bin 0 -> 2520 bytes
 test/surface-pattern-scale-down-ps-argb32-ref.png  |  Bin 1400 -> 0 bytes
 test/surface-pattern-scale-down-ps2-argb32-ref.png |  Bin 0 -> 1400 bytes
 test/surface-pattern-scale-down-ps3-argb32-ref.png |  Bin 0 -> 1400 bytes
 test/surface-pattern-scale-up-ps-argb32-ref.png    |  Bin 1011 -> 0 bytes
 test/surface-pattern-scale-up-ps2-argb32-ref.png   |  Bin 0 -> 1011 bytes
 test/surface-pattern-scale-up-ps3-argb32-ref.png   |  Bin 0 -> 1011 bytes
 test/text-pattern-ps-argb32-ref.png                |  Bin 966 -> 0 bytes
 test/text-pattern-ps-rgb24-ref.png                 |  Bin 924 -> 0 bytes
 test/text-pattern-ps3-argb32-ref.png               |  Bin 0 -> 966 bytes
 test/text-pattern-ps3-rgb24-ref.png                |  Bin 0 -> 924 bytes
 test/text-rotate-ps-ref.png                        |  Bin 6851 -> 0 bytes
 test/text-rotate-ps2-ref.png                       |  Bin 0 -> 6851 bytes
 test/text-rotate-ps3-ref.png                       |  Bin 0 -> 6851 bytes
 test/text-transform-ps-ref.png                     |  Bin 4154 -> 0 bytes
 test/text-transform-ps2-ref.png                    |  Bin 0 -> 4154 bytes
 test/text-transform-ps3-ref.png                    |  Bin 0 -> 4154 bytes
 test/transforms-ps-ref.png                         |  Bin 418 -> 0 bytes
 test/transforms-ps2-ref.png                        |  Bin 0 -> 418 bytes
 test/transforms-ps3-ref.png                        |  Bin 0 -> 418 bytes
 test/trap-clip-ps-argb32-ref.png                   |  Bin 5591 -> 0 bytes
 test/trap-clip-ps-rgb24-ref.png                    |  Bin 5512 -> 0 bytes
 test/trap-clip-ps3-argb32-ref.png                  |  Bin 0 -> 5591 bytes
 test/trap-clip-ps3-rgb24-ref.png                   |  Bin 0 -> 5512 bytes
 test/user-font-proxy-ps-ref.png                    |  Bin 8171 -> 0 bytes
 test/user-font-proxy-ps2-ref.png                   |  Bin 0 -> 8171 bytes
 test/user-font-proxy-ps3-ref.png                   |  Bin 0 -> 8171 bytes
 test/user-font-ps-ref.png                          |  Bin 5043 -> 0 bytes
 test/user-font-ps2-ref.png                         |  Bin 0 -> 5043 bytes
 test/user-font-ps3-ref.png                         |  Bin 0 -> 5043 bytes
 test/user-font-rescale-ps-ref.png                  |  Bin 8041 -> 0 bytes
 test/user-font-rescale-ps2-ref.png                 |  Bin 0 -> 8041 bytes
 test/user-font-rescale-ps3-ref.png                 |  Bin 0 -> 8041 bytes
 289 files changed, 277 insertions(+), 116 deletions(-)

commit 0c030d3b768718eac5d429d0c819934f32896b25
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 26 15:26:40 2008 +0100

    [boilerplate] Add svg-1.2 target.
    
    SVG 1.2 is sufficiently different from 1.1 that it has separate code
    paths within cairo-svg-surface and so justifies its own boilerplate
    target.

 boilerplate/cairo-boilerplate-svg-private.h        |   30 ++++++---
 boilerplate/cairo-boilerplate-svg.c                |   48 +++++++++++++-
 boilerplate/cairo-boilerplate.c                    |   24 ++++++--
 test/Makefile.am                                   |   66 +++++++++++++-------
 test/caps-joins-alpha-svg-ref.png                  |  Bin 2454 -> 0 bytes
 test/caps-joins-alpha-svg11-ref.png                |  Bin 0 -> 2454 bytes
 test/caps-joins-alpha-svg12-ref.png                |  Bin 0 -> 2454 bytes
 test/font-matrix-translation-svg-ref.png           |  Bin 970 -> 0 bytes
 test/font-matrix-translation-svg11-ref.png         |  Bin 0 -> 970 bytes
 test/font-matrix-translation-svg12-ref.png         |  Bin 0 -> 970 bytes
 test/ft-show-glyphs-positioning-svg-ref.png        |  Bin 6590 -> 0 bytes
 test/ft-show-glyphs-positioning-svg11-ref.png      |  Bin 0 -> 6590 bytes
 test/ft-show-glyphs-positioning-svg12-ref.png      |  Bin 0 -> 6590 bytes
 test/ft-text-vertical-layout-type1-svg-ref.png     |  Bin 3973 -> 0 bytes
 test/ft-text-vertical-layout-type1-svg11-ref.png   |  Bin 0 -> 3973 bytes
 test/ft-text-vertical-layout-type1-svg12-ref.png   |  Bin 0 -> 3973 bytes
 test/ft-text-vertical-layout-type3-svg-ref.png     |  Bin 3957 -> 0 bytes
 test/ft-text-vertical-layout-type3-svg11-ref.png   |  Bin 0 -> 3957 bytes
 test/ft-text-vertical-layout-type3-svg12-ref.png   |  Bin 0 -> 3957 bytes
 test/linear-gradient-svg-ref.png                   |  Bin 1000 -> 0 bytes
 test/linear-gradient-svg11-ref.png                 |  Bin 0 -> 1000 bytes
 test/linear-gradient-svg12-ref.png                 |  Bin 0 -> 1000 bytes
 test/mask-alpha-svg-argb32-ref.png                 |  Bin 615 -> 0 bytes
 test/mask-alpha-svg11-argb32-ref.png               |  Bin 0 -> 615 bytes
 test/mask-alpha-svg12-argb32-ref.png               |  Bin 0 -> 615 bytes
 test/mask-ctm-svg-argb32-ref.png                   |  Bin 108 -> 0 bytes
 test/mask-ctm-svg11-argb32-ref.png                 |  Bin 0 -> 108 bytes
 test/mask-ctm-svg12-argb32-ref.png                 |  Bin 0 -> 108 bytes
 test/mask-surface-ctm-svg-argb32-ref.png           |  Bin 108 -> 0 bytes
 test/mask-surface-ctm-svg11-argb32-ref.png         |  Bin 0 -> 108 bytes
 test/mask-surface-ctm-svg12-argb32-ref.png         |  Bin 0 -> 108 bytes
 test/mask-svg-argb32-ref.png                       |  Bin 8527 -> 0 bytes
 test/mask-svg-rgb24-ref.png                        |  Bin 7935 -> 0 bytes
 test/mask-svg11-argb32-ref.png                     |  Bin 0 -> 8527 bytes
 test/mask-svg11-rgb24-ref.png                      |  Bin 0 -> 7935 bytes
 test/mask-svg12-argb32-ref.png                     |  Bin 0 -> 8527 bytes
 test/mask-svg12-rgb24-ref.png                      |  Bin 0 -> 7935 bytes
 test/mask-transformed-similar-svg-ref.png          |  Bin 4051 -> 0 bytes
 test/mask-transformed-similar-svg11-ref.png        |  Bin 0 -> 4051 bytes
 test/mask-transformed-similar-svg12-ref.png        |  Bin 0 -> 4051 bytes
 test/meta-surface-pattern-svg-argb32-ref.png       |  Bin 3924 -> 0 bytes
 test/meta-surface-pattern-svg-rgb24-ref.png        |  Bin 4593 -> 0 bytes
 test/meta-surface-pattern-svg11-argb32-ref.png     |  Bin 0 -> 3924 bytes
 test/meta-surface-pattern-svg11-rgb24-ref.png      |  Bin 0 -> 4593 bytes
 test/meta-surface-pattern-svg12-argb32-ref.png     |  Bin 0 -> 3924 bytes
 test/meta-surface-pattern-svg12-rgb24-ref.png      |  Bin 0 -> 4593 bytes
 test/paint-source-alpha-svg-ref.png                |  Bin 505 -> 0 bytes
 test/paint-source-alpha-svg11-ref.png              |  Bin 0 -> 505 bytes
 test/paint-source-alpha-svg12-ref.png              |  Bin 0 -> 505 bytes
 test/paint-with-alpha-svg-ref.png                  |  Bin 516 -> 0 bytes
 test/paint-with-alpha-svg11-ref.png                |  Bin 0 -> 516 bytes
 test/paint-with-alpha-svg12-ref.png                |  Bin 0 -> 516 bytes
 test/push-group-svg-argb32-ref.png                 |  Bin 2935 -> 0 bytes
 test/push-group-svg11-argb32-ref.png               |  Bin 0 -> 2935 bytes
 test/push-group-svg12-argb32-ref.png               |  Bin 0 -> 2935 bytes
 test/radial-gradient-svg-ref.png                   |  Bin 91039 -> 0 bytes
 test/radial-gradient-svg11-ref.png                 |  Bin 0 -> 91039 bytes
 test/radial-gradient-svg12-ref.png                 |  Bin 0 -> 91039 bytes
 test/rotate-image-surface-paint-svg-ref.png        |  Bin 248 -> 0 bytes
 test/rotate-image-surface-paint-svg11-ref.png      |  Bin 0 -> 248 bytes
 test/rotate-image-surface-paint-svg12-ref.png      |  Bin 0 -> 248 bytes
 test/scale-source-surface-paint-svg-argb32-ref.png |  Bin 182 -> 0 bytes
 test/scale-source-surface-paint-svg-rgb24-ref.png  |  Bin 192 -> 0 bytes
 ...scale-source-surface-paint-svg11-argb32-ref.png |  Bin 0 -> 182 bytes
 .../scale-source-surface-paint-svg11-rgb24-ref.png |  Bin 0 -> 192 bytes
 ...scale-source-surface-paint-svg12-argb32-ref.png |  Bin 0 -> 182 bytes
 .../scale-source-surface-paint-svg12-rgb24-ref.png |  Bin 0 -> 192 bytes
 test/set-source-svg-argb32-ref.png                 |  Bin 104 -> 0 bytes
 test/set-source-svg11-argb32-ref.png               |  Bin 0 -> 104 bytes
 test/set-source-svg12-argb32-ref.png               |  Bin 0 -> 104 bytes
 test/smask-fill-svg-ref.png                        |  Bin 1166 -> 0 bytes
 test/smask-fill-svg11-ref.png                      |  Bin 0 -> 1166 bytes
 test/smask-fill-svg12-ref.png                      |  Bin 0 -> 1166 bytes
 test/smask-mask-svg-ref.png                        |  Bin 2529 -> 0 bytes
 test/smask-mask-svg11-ref.png                      |  Bin 0 -> 2529 bytes
 test/smask-mask-svg12-ref.png                      |  Bin 0 -> 2529 bytes
 test/smask-paint-svg-ref.png                       |  Bin 2612 -> 0 bytes
 test/smask-paint-svg11-ref.png                     |  Bin 0 -> 2612 bytes
 test/smask-paint-svg12-ref.png                     |  Bin 0 -> 2612 bytes
 test/smask-svg-ref.png                             |  Bin 3634 -> 0 bytes
 test/smask-svg11-ref.png                           |  Bin 0 -> 3634 bytes
 test/smask-svg12-ref.png                           |  Bin 0 -> 3634 bytes
 test/smask-text-svg-ref.png                        |  Bin 1886 -> 0 bytes
 test/smask-text-svg11-ref.png                      |  Bin 0 -> 1886 bytes
 test/smask-text-svg12-ref.png                      |  Bin 0 -> 1886 bytes
 test/source-clip-scale-svg-ref.png                 |  Bin 119 -> 0 bytes
 test/source-clip-scale-svg11-ref.png               |  Bin 0 -> 119 bytes
 test/source-clip-scale-svg12-ref.png               |  Bin 0 -> 119 bytes
 test/surface-pattern-svg-ref.png                   |  Bin 17663 -> 0 bytes
 test/surface-pattern-svg11-ref.png                 |  Bin 0 -> 17663 bytes
 test/surface-pattern-svg12-ref.png                 |  Bin 0 -> 17663 bytes
 test/text-pattern-svg-argb32-ref.png               |  Bin 1733 -> 0 bytes
 test/text-pattern-svg-rgb24-ref.png                |  Bin 1563 -> 0 bytes
 test/text-pattern-svg11-argb32-ref.png             |  Bin 0 -> 1733 bytes
 test/text-pattern-svg11-rgb24-ref.png              |  Bin 0 -> 1563 bytes
 test/text-pattern-svg12-argb32-ref.png             |  Bin 0 -> 1733 bytes
 test/text-pattern-svg12-rgb24-ref.png              |  Bin 0 -> 1563 bytes
 test/text-rotate-svg-ref.png                       |  Bin 18301 -> 0 bytes
 test/text-rotate-svg11-ref.png                     |  Bin 0 -> 18301 bytes
 test/text-rotate-svg12-ref.png                     |  Bin 0 -> 18301 bytes
 test/user-font-proxy-svg-ref.png                   |  Bin 17902 -> 0 bytes
 test/user-font-proxy-svg11-ref.png                 |  Bin 0 -> 17902 bytes
 test/user-font-proxy-svg12-ref.png                 |  Bin 0 -> 17902 bytes
 test/user-font-rescale-svg-ref.png                 |  Bin 15741 -> 0 bytes
 test/user-font-rescale-svg11-ref.png               |  Bin 0 -> 15741 bytes
 test/user-font-rescale-svg12-ref.png               |  Bin 0 -> 15741 bytes
 test/user-font-svg-ref.png                         |  Bin 6134 -> 0 bytes
 test/user-font-svg11-ref.png                       |  Bin 0 -> 6134 bytes
 test/user-font-svg12-ref.png                       |  Bin 0 -> 6134 bytes
 109 files changed, 128 insertions(+), 40 deletions(-)

commit 86e57671dd21078215505202ef8aa2141d10fb9c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Sep 26 11:08:22 2008 -0400

    [check-*.sh] Redirect error reports to stderr

 doc/public/check-doc-coverage.sh |    6 +++---
 src/check-def.sh                 |    2 +-
 src/check-doc-syntax.sh          |    8 ++++----
 src/check-headers.sh             |    2 +-
 src/check-plt.sh                 |    2 +-
 src/check-preprocessor-syntax.sh |   10 +++++-----
 6 files changed, 15 insertions(+), 15 deletions(-)

commit 096f9def0f599e527d97bb979f7cafbc87dcddc6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Sep 26 10:55:44 2008 -0400

    Add slim markers to make check-plt.sh happy

 src/cairo-font-face.c |    4 ++++
 src/cairo-user-font.c |    4 ++++
 src/cairo.c           |    5 +++++
 src/cairoint.h        |   13 +++++++++++++
 4 files changed, 26 insertions(+), 0 deletions(-)

commit 1de059b33bd2e6121e35ccf1c4a35ba7755c44d8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Sep 26 09:49:50 2008 -0400

    [RELEASING] Add ftp-release@lists.freedesktop.org
    
    That list is monitored by various distros to pick up new releases.
    We should CC release announcements there.

 RELEASING |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 9662be8ee77e219908b64b82e828d577dcf120f0
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Sep 26 00:22:00 2008 -0400

    [twin-font] Adjust ascent/descent
    
    The font data uses a 64 int high font space with baseline at 50.

 src/cairo-font-face-twin.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 3883a371f2ba78b17a1302ba8c5df1a79f3e4075
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Sep 26 00:20:21 2008 -0400

    [scaled-font] Use full ctm matrix when comparing scaled-font keys
    
    We use the full matrix in hash computation, but only compare the
    non-translation items in equality check.  This is no bug though,
    as we set the ctm translation components of a scaled font to zero
    explicitly.  But the change makes the hash and equal functions
    consistent, which is good.

 src/cairo-scaled-font.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 48099af9fed7497a230992e41d559a19c5dbdc60
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 25 13:24:58 2008 +0100

    [boilerplate] Retry conversion in process if first attempt fails.
    
    One possibility for a read failure whilst converting the image is if the
    external utility crashed. This information is important for the test suite
    as knowing input that causes the converter to crash is just as vital as
    identifying a crash within the library.

 boilerplate/cairo-boilerplate-pdf.c |   11 +----------
 boilerplate/cairo-boilerplate-svg.c |   11 +----------
 boilerplate/cairo-boilerplate.c     |   35 +++++++++++++++++++++++++++++++++--
 boilerplate/cairo-boilerplate.h     |   11 +++++++++--
 4 files changed, 44 insertions(+), 24 deletions(-)

commit f2c484d73ce61012a2d9925f15b55e7c51e34b85
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 25 00:16:45 2008 +0100

    [test/any2ppm] Handle short reads/writes.
    
    No excuse other than simple laziness - it manifested itself with random
    "error whilst reading" failures.

 boilerplate/cairo-boilerplate.c |   24 ++++++++++++++++--
 test/any2ppm.c                  |   50 +++++++++++++++++++++++++++++++++-----
 2 files changed, 64 insertions(+), 10 deletions(-)

commit 681424cbaf94556bf1804547b42ad642c0a066ab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 25 10:40:32 2008 +0100

    [analysis] Merge two analysis status codes.
    
    Since there is an implicit precedence in the ranking of the analysis
    return codes, provide a function to centralize the logic within the
    analysis surface and isolate the backends from the complexity.

 src/cairo-analysis-surface-private.h |    3 ++
 src/cairo-analysis-surface.c         |   50 +++++++++++++++++++++++++--------
 src/cairo-pdf-surface.c              |   31 ++++++---------------
 3 files changed, 50 insertions(+), 34 deletions(-)

commit 06f0cc81d227a571e011e83cc192050a34d6ea13
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 25 10:29:27 2008 +0100

    Add a macro to determine whether a status is a fatal error.
    
    In a few places we need to check whether we have a fatal error or an
    internal return code, so provide a utility macro to centralise the check.

 src/cairo.c    |    3 +--
 src/cairoint.h |    3 +++
 2 files changed, 4 insertions(+), 2 deletions(-)

commit ba18d57339dbedbbdb7f3ca35b06ce6b5dbcd972
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 25 09:39:41 2008 +0100

    [pdf] Propagate status
    
    Check and return a few forgotten error codes from static functions.

 src/cairo-pdf-operators.c |   14 +++++++++++---
 src/cairo-pdf-surface.c   |    6 +++++-
 2 files changed, 16 insertions(+), 4 deletions(-)

commit 907f550a1b13b0a388f9ff22663911d4aabbe2d8
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Sep 26 20:26:55 2008 +0930

    Fix bitmap-font XFAIL
    
    Images in PDF are scaled to a unit square. In PS we set the
    ImageMatrix to do the same. When the image is painted we scale the
    graphics state to paint the image at the right size. In the case of
    Type 3 fonts consisting of bitmap images we want to paint the images
    at their original size so we scale the graphics state by the image
    width and height.
    
    The bug was that we were scaling by the width/height in the glyph
    metrics. For non rotated fonts this worked. However for rotated fonts
    the width/height of the glyph images may be larger than the
    width/height in the glyph metrics. This resulted in a Type 3 font
    where the glyph images were scaled slightly smaller than they should
    have been.

 src/cairo-type3-glyph-surface.c     |   10 +++-------
 test/Makefile.am                    |    1 -
 test/bitmap-font-pdf-argb32-ref.png |  Bin 1064 -> 0 bytes
 3 files changed, 3 insertions(+), 8 deletions(-)

commit f8542dc9dd4dd0685f68381f21fa72dbddd8d682
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Sep 25 19:08:24 2008 -0400

    [twin-font] Clean up font data by joining lines and closing paths
    
    Two changes here:
    
      * Replace move_to;line_to;move_to;line_to sequences with
        move_to;line_to;line_to when feasible.
    
      * Close paths for round glyphs.
    
    Both improve the stroke rendering of the joint.
    
    The first change also saves 3 bytes per joint (33 such joints).
    Which we have just left unused for now.  To reclaim them one need
    to update the charset table.  Something for a lazy Sunday afternoon
    scripting task.
    
    In the saving department, we can save further by:
    
      - Getting rid of the left/ascent/descent values as we compute
        glyph bounding box automatically.  Then we can liberally use
        the right value to adjust glyph advance width.  Saves three
        bytes per glyph (there's 96 glyphs in the font).
    
      - First operation is always a move_to.  So we can remove the 'm'
        for that.  Ugly though.
    
    And the charset has zeros for the first 32 entries.  Can get rid of
    that too at the expense of handling it in the code...
    
    In total, combining the above we can save some 500 bytes.  The font
    currently takes about 3.7kb.

 src/cairo-font-face-twin-data.c |  154 +++++++++++++++++++-------------------
 src/cairo-font-face-twin.c      |   18 ++++-
 2 files changed, 91 insertions(+), 81 deletions(-)

commit d5a998387bcee6569d33375d592190f480f12712
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Sep 25 04:27:11 2008 -0400

    Add an internal font face
    
    The font data and rendering is adapted from Keith Packard's Twin
    window system.  The hinting stuff is not ported yet, but hey, it renders!
    
    The implementation uses user fonts, and the user font backend is modified
    to use this font face (which we call "twin" font face internally) when
    a toy font is needed.
    
    The font face layer is then modified to use this font if:
    
      - The toy font face "cairo" is asked for, or
    
      - No native font backend is available, or
    
      - The preferred native font backend fails to return a font with
        STATUS_UNSUPPORTED.  No font backend does this right now but
        the idea is to change FreeType to return it if no fonts found
        on the system.
    
    We also allow building with no font backends now!
    
    The new doc/tutorial/src/twin.c file tests the twin face at various
    sizes.

 build/configure.ac.features     |   26 +-
 doc/tutorial/src/twin.c         |   39 ++
 src/Makefile.sources            |    2 +
 src/cairo-font-face-twin-data.c | 1030 +++++++++++++++++++++++++++++++++++++++
 src/cairo-font-face-twin.c      |  199 ++++++++
 src/cairo-font-face.c           |   33 +-
 src/cairo-user-font.c           |   53 ++-
 src/cairoint.h                  |   18 +-
 8 files changed, 1371 insertions(+), 29 deletions(-)

commit dd7e2461ce748403e121a5de5e4e4c8890e39236
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Sep 25 16:06:19 2008 -0700

    Increment cairo version to 1.8.1 after the 1.8.0 release.

 cairo-version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
