ChangeLog   [plain text]


# Generated by configure.  Do not edit.

commit 4938e11ffe11781e4e294092807ebc67f362eac6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 25 13:25:14 2010 +0000

    version: Bump for 1.10.2 release

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

commit de464ea7781707984a1e1d5f98a8ff23c5ee18ed
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 25 13:24:37 2010 +0000

    NEWS: Add entry for 1.10.2

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

commit 888eeb187f542b96e722725f616720038e700b84
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Dec 25 10:19:38 2010 +0000

    Add a KNOWN_ISSUES file to track WONTFIX(?) bugs

 KNOWN_ISSUES |   10 ++++++++++
 Makefile.am  |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)

commit a27e3bc6d08feeac8e4ee5315a0ad974efee0ee9
Author: Koji Otani <sho@bbr.jp>
Date:   Wed Nov 17 00:07:03 2010 +1030

    PS: fix embedding of grayscale jpegs
    
    https://bugs.freedesktop.org/show_bug.cgi?id=31632
    (cherry picked from commit 653ceb517fe756b042a3cf8322a36cbfe71ddbd8)

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

commit 4aabff8f6740e2027febd97c1863f7ba5a46cb92
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Dec 14 17:56:00 2010 +0100

    path-bounder: Update current point after curve_to op
    
    Even if the curve_to is completely within the current extents box, the
    current point needs to be updated because the shape of following ops
    depends on the position of the current point.
    
    Fixes bug-extents.

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

commit 5996652364efa4fb4ae6c984ddf6ddad8868782b
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Dec 14 20:15:28 2010 +0100

    test: Add bug-extents
    
    Add a test for the computation of approximate extents used by most
    backends to esimate the region affected by drawing operations.
    
    Based on:
    http://lists.cairographics.org/archives/cairo/2010-December/021331.html

 test/Makefile.am                 |    5 +++
 test/Makefile.sources            |    1 +
 test/bug-extents.c               |   59 ++++++++++++++++++++++++++++++++++++++
 test/bug-extents.image16.ref.png |  Bin 0 -> 7576 bytes
 test/bug-extents.ps.ref.png      |  Bin 0 -> 5844 bytes
 test/bug-extents.quartz.ref.png  |  Bin 0 -> 9310 bytes
 test/bug-extents.ref.png         |  Bin 0 -> 9162 bytes
 test/bug-extents.xlib.ref.png    |  Bin 0 -> 9234 bytes
 8 files changed, 65 insertions(+), 0 deletions(-)

commit f832ff7f22499bfa8e907f9fb059d56857d11e68
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Nov 28 16:58:20 2010 +0100

    test: Fix ref images
    
    The corners of the boxes in these ref images were not correct.

 test/clip-stroke.image16.ref.png   |  Bin 1308 -> 1305 bytes
 test/clip-stroke.ref.png           |  Bin 1442 -> 1447 bytes
 test/clipped-group.image16.ref.png |  Bin 281 -> 270 bytes
 test/clipped-group.ref.png         |  Bin 289 -> 289 bytes
 4 files changed, 0 insertions(+), 0 deletions(-)

commit ff35af3fd73e59ea29b1a322c833f7dd24b0b8bc
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Nov 28 14:32:51 2010 +0100

    image: Fix compositing of unaligned boxes
    
    The input of _fill_unaligned_boxes is (supposed to be) composed only
    of disjoint rectangles, that can safely be passed to the rectilinear
    span converter, but this function artificially introduces intersecting
    rectangles when drawing non-aligned boxes.
    
    Using non-intersecting rectangles is easy and makes the code correct.
    
    Fixes rectilinear-grid.
    
    Reviewed-by: Uli Schlachter <psychon@znc.in>

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

commit 7b29f1d5d85ebb7e92e9759692233c80a4687a07
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Nov 26 17:55:35 2010 +0100

    test: Add rectilinear-grid
    
    The rectilinear scan converter assumes disjoint rects as input, but
    cairo-image passes intersecting rectangles to it.
    
    This test shows that image and any backends passing through it for the
    rasterization (fallbacks, vector backends whose renderer is
    cairo-based) fail in compute the corners of intersecting rectangles
    correctly.

 test/Makefile.am                      |    2 +
 test/Makefile.sources                 |    1 +
 test/rectilinear-grid.c               |   78 +++++++++++++++++++++++++++++++++
 test/rectilinear-grid.image16.ref.png |  Bin 0 -> 638 bytes
 test/rectilinear-grid.ref.png         |  Bin 0 -> 569 bytes
 5 files changed, 81 insertions(+), 0 deletions(-)

commit 9ec51baa779a30041ea944643d4d0b8333bb759b
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Nov 26 21:41:17 2010 +1030

    PDF: Add missing clipper_reset
    (cherry picked from commit 2ae2be36d4551906fd4edbc8bf07aaa7fe0c93cf)

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

commit 841a2df7359e2b491aed7ed8c043cce669357ae3
Author: Markus Stange <mstange@themasta.com>
Date:   Fri Nov 5 09:23:44 2010 +0100

    Fix type of _cairo_memory_stream_destroy parameter
    
    In 9b9952ab4f64a476bbadfd3e6cf1e66c1137ccd7
    _cairo_memory_stream_destroy was changed to take an unsigned long
    instead of unsigned int, and the two callsites in cairo-gl-shaders.c
    weren't updated.

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

commit b6a97499c71af60a3f15d131d51eb53fb21b48ff
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Oct 5 10:36:38 2010 +0200

    xcb: Do not return value in void function
    
    Sun Studio Compiler complains:
    "cairo-xcb-surface.c", line 585: void function cannot return value
    even if the returned value is void.
    Some minor code restructuring removes the issue.

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

commit e71588c80d5c6112fa9f7c6ea369d90f9284199f
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Oct 24 16:40:53 2010 +0200

    test: Add romedalen images copyright information
    
    romedalen.png and romedalen.jpg have been bundled into the test
    suite without an explicit copyright notice.

 test/COPYING |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

commit 2b3d8de11a536d668084ea6d2bf295da1d1cdc11
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Oct 16 22:51:28 2010 +0200

    Fix degenerate arcs
    
    Make sure that degenerate arcs become a move_to-line_to sequence
    instead of just a move_to.
    
    Fixes get-path-extents.

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

commit fafca7ace250e3f4f9c60584f0ddff187c690068
Author: Joerg Sonnenberger <joerg@NetBSD.org>
Date:   Tue Oct 12 22:07:37 2010 +0200

    LD_PRELOAD is supported on DragonFly.

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

commit c20d55eb1c1eb1c6f51a21c7eb205ba4c2c125e8
Author: Erik Zeek <zeekec@mad.scientist.com>
Date:   Thu Nov 4 17:57:03 2010 +0100

    Fix build on gentoo
    
    The problem is probably caused by a change in the behavior of autoconf
    (2.67).
    
    See http://bugs.gentoo.org/336329

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

commit 8ef5161da307361e20dad68df74512c5afcbb012
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Nov 6 15:46:48 2010 +0100

    configure: Correct reporting of tee backend
    
    Since 9f33f8453b4949cfdc63169d3acd7238f89379c2 tee is not compiled in
    anymore by default. Reporting it as always enabled is misleading.

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

commit a6b503961b7ffd6a0725ad7d98ec1c46e2f15f25
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Nov 22 23:41:33 2010 +0100

    ps: Fix painting
    
    Painting of some pattern was broken because the paint operation was
    implemented as a fill to a rect containing the clip, but this rect was
    not transformed as appropriate (using the cairo_to_ps matrix).
    PDF simply fills the whole surface rect, so we implement the same
    behavior in PS.
    
    Fixes clip-group-shapes-circles, clip-stroke, linear-gradient-extend,
    linear-gradient-one-stop, radial-gradient-one-stop.

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

commit b8347e33539402ef64d652bc0f67522e4d02d51c
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 21 00:37:29 2010 +1030

    PS: Fix regression - incorrect EPS bounding box
    
        https://bugs.freedesktop.org/show_bug.cgi?id=24688
    (cherry picked from commit bb4055dac6a937b3412170a332b5effe4bbeff7d)

 src/cairo-analysis-surface.c |   40 ++++++++++------------------------------
 1 files changed, 10 insertions(+), 30 deletions(-)

commit cfff4f30a0eaa29b817cb32616c2da5a27921332
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Nov 20 23:54:00 2010 +1030

    PS: Fix regression - missing page content in EPS output
    
    https://bugs.freedesktop.org/show_bug.cgi?id=24688
    (cherry picked from commit d3746448d78fcedf8f8f9a7d0fca47f1bd6a5b67)

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

commit ed87ddddb3994f126e0f2d18fa23da6bc5ed579e
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Nov 20 00:50:04 2010 +1030

    PS/PDF: Fix regression when changing page size to a larger size
    
    https://bugs.freedesktop.org/show_bug.cgi?id=24691
    (cherry picked from commit e7c5f470436220668e50201d775a9fec47162a67)

 src/cairo-paginated-surface.c |   28 ++++++++++++++++++++++++++++
 src/cairo-pdf-surface.c       |   10 ++++++++--
 src/cairo-ps-surface.c        |    6 ++++++
 3 files changed, 42 insertions(+), 2 deletions(-)

commit ccff76433e1cd068e5534d0ab633c27b0faf47d2
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Nov 10 20:09:53 2010 +1030

    PDF: Restrict ActualText to PDF version >= 1.5
    
    The use of ActualText in a marked content sequence is a PDF 1.5
    feature.
    
    A 'use_actual_text' flag linked to the PDF version has already been
    implemented in pdf-operators but for some reason this flag had not
    been used to control the use of ActualText.
    (cherry picked from commit 3afd7cd031ab9097e37c3e89d86ec41d015fdeb8)

 src/cairo-pdf-operators.c |   31 ++++++++++++++++++-------------
 1 files changed, 18 insertions(+), 13 deletions(-)

commit e0967ff83c24aaf6d6b3a93a627872820be9012b
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Nov 6 21:15:30 2010 +1030

    Fix type1-fallback bbox
    (cherry picked from commit 74873c82242e9c124b69e05d0f8abdf78983d62d)

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

commit 1413a44f64982e5196ca338c7cee5dfe19cd4b40
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Nov 6 18:44:54 2010 +1030

    configure.ac.features: s/Meta/Recording/
    (cherry picked from commit 8f2f5e5ad4f8e5f18da903865bb2d2afce3a544e)

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

commit e9bb70d2dee4ef7a54e3971f09a08df30c2b5287
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Fri Nov 5 11:40:00 2010 -0400

    Fix degenerate vertical path bounds.
    
    6b77567b6ef28710c7707ab82c7fa95c810152d1 made vertical
    path bounds with no area return extents of 0,0. This fixes
    the problem by not assuming degenerate path bounds are 0,0

 src/cairo-path-bounds.c |    4 +++-
 test/get-path-extents.c |   40 ++++++++++++++++++++++++++++++++--------
 2 files changed, 35 insertions(+), 9 deletions(-)

commit 91a6fe64236985d30f5794d760698deafd9e6511
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Nov 1 21:15:07 2010 +0100

    image: Use correct size for allocation
    
    In 06e9caf86199e8261a07db6d4774628fa147728d the type of the variables
    was changed, but the type used to compute the allocation size was not.
    
    Fixes a crash in user-font-mask (test-fallback backend).
    (cherry picked from commit c7027c9d89d9a13d6cbc1727fc8513c908878db9)

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

commit 83259f6ed60e00d0c25ca81c9ff9adfc017ebf5f
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Oct 28 13:57:05 2010 +0200

    build: Don't build cairo-fdr when the tee surface is off

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

commit efc2440526c609338d68354ddf38031d1fa7c2c4
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Thu Oct 28 21:21:00 2010 +1030

    PDF: Don't use the currently set color  after a 'Q' operator
    
    https://bugs.freedesktop.org/show_bug.cgi?id=31140
    (cherry picked from commit e23bcfd4300870034f07b1ecd1bb4d2ac95d9785)

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

commit f47830dbbc34c7068ccdd8f7f9042e8734c9e408
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Oct 24 11:32:41 2010 +1030

    Type 1 subset: Fix glyph advance
    
    https://bugs.freedesktop.org/show_bug.cgi?id=31062
    (cherry picked from commit 6dc0b19adb6da690ad5944623081b9cdb42de066)

 src/cairo-type1-subset.c |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

commit f747ea81fb91239690b1785bce9ed29cb58c9098
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Thu Oct 14 19:28:13 2010 +1030

    PDF: Fix regression in EXTEND_NONE gradients
    
    The test for opaque gradients in _cairo_pdf_surface_add_pdf_pattern()
    must be identical to the test in
    _cairo_pdf_surface_emit_pattern_stops() other wise the PDF file will
    reference a smask that does not exist.
    
    The _cairo_pattern_is_opaque() test is too strict for PDF as PDF can
    draw EXTEND_NONE gradients with opaque color stops without requiring a
    smask.
    (cherry picked from commit 7a17ef31760c49b81fd2890814f5b2aeb8c6b3a3)

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

commit 7450a3c8a7843334d6e16af3ecef88915b5d9f26
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Oct 1 19:18:28 2010 +0930

    pdf-operators: fix bug that was causing unnecessary repositioning of text
    
    This optimizes the output to increase the maximum amount of text that
    is emitted with a single Tj operator.
    (cherry picked from commit 165a14b5646d582781d119874f549ec9a02d7f53)

 src/cairo-pdf-operators-private.h |    1 +
 src/cairo-pdf-operators.c         |    7 ++++++-
 2 files changed, 7 insertions(+), 1 deletions(-)

commit 43c93f2b101f534f8aa4213403af3281fcdc17fb
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Oct 1 17:41:28 2010 +0930

    Fix font metrics in PDF Type 1 fonts
    
    edcefa87 introduced a bug in the Type 1 font metrics in PDF files.
    (cherry picked from commit 3f817dcfd39ffdb73ac694fd90a47d9d3a42af74)

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

commit 66ace8cd33c0ebe88972f0c4d5c0effeacb1cea3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 29 13:46:02 2010 +0100

    image: The a8 in-place span compositing is only valid for SOURCE
    
    Fixes test/a8-clear.
    
    Reported-by: Jeremy Moles <jeremy@emperorlinux.com>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

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

commit 05faebd5845c68005f5b96428952faae5a67208f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 29 13:23:24 2010 +0100

    test: Add a8-clear
    
    Reported-by: Jeremy Moles <jeremy@emperorlinux.com>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

 test/Makefile.am      |    1 +
 test/Makefile.sources |    1 +
 test/a8-clear.c       |   64 +++++++++++++++++++++++++++++++++++++++++++++++++
 test/a8-clear.ref.png |  Bin 0 -> 271 bytes
 4 files changed, 66 insertions(+), 0 deletions(-)

commit ac6fd51fe4e500973e0939983d00aa81c8acf556
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 29 13:25:08 2010 +0100

    image: Silence a compile warning
    
    cairo-image-surface.c: In function ‘_cairo_image_reset_static_data’:
    cairo-image-surface.c:1006: warning: old-style function definition
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

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

commit 75e2b7c7b52be6663fac05925b9b4cc5f3b42f9f
Author: Tim Janik <timj@gtk.org>
Date:   Thu Sep 23 13:55:11 2010 +0200

    cairo: docu fix for cairo_set_source_surface

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

commit 4cf5260e99e3e7588e45ee179c57b75588b95987
Author: Kouhei Sutou <kou@cozmixng.org>
Date:   Sun Sep 12 10:36:27 2010 +0900

    xml: fix a typo to correct the indentation after <path></path>
    
    Signed-off-by: Kouhei Sutou <kou@cozmixng.org>

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

commit 0f070bd5ff9ad17b90852e8a7ba102c6b4b050f6
Author: Tomáš Chvátal <scarabeus@gentoo.org>
Date:   Sat Sep 11 22:55:23 2010 +0200

    Fix posix calls in configure.ac test code.
    
    Fixes https://bugs.gentoo.org/show_bug.cgi?id=336779
    
    Signed-off-by: Tomáš Chvátal <scarabeus@gentoo.org>

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

commit f59771051badc2ea708437c5faa27d0895f787d6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Aug 18 08:48:36 2010 +0100

    drm: Add missing header file for tarball

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

commit 8fca990be7fca609e834703e60dd888c13fc637f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 10 13:35:11 2010 +0100

    cairo: Remove trailing comma from cairo_device_t
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30115
    Reported-by: Murray Cumming <murrayc@murrayc.com>

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

commit 291876ad3477330143bbb814ea72c658dc8ca584
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Sep 9 22:53:38 2010 +0200

    test: do not leak resources
    
    Silence some leak reports by check-valgrind.

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

commit 8fda4ab1cc7f60196b232d194c33e592ecdec9b5
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Aug 26 11:15:46 2010 +0200

    image: add _cairo_image_reset_static_data
    
    Image has static caches which needs to be reset to make
    cairo_debug_reset_static_data behave as expected.
    Silences a bunch of leak reports by check-valgrind.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-debug.c         |    2 ++
 src/cairo-image-surface.c |   42 ++++++++++++++++++++++++++++++++++--------
 src/cairoint.h            |    3 +++
 3 files changed, 39 insertions(+), 8 deletions(-)

commit ca775cbf5a7245092cabdda43db9d06e96613ff4
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Aug 26 11:13:51 2010 +0200

    test: do not leak resources
    
    Silence two leak reports by check-valgrind.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 test/linear-gradient-large.c |    1 +
 test/nil-surface.c           |    3 ++-
 2 files changed, 3 insertions(+), 1 deletions(-)

commit 2b6c4c2a64c585cb815089e83719e00b1cfc985f
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Thu Sep 9 11:28:03 2010 +0200

    recording: Document CAIRO_HAS_RECORDING_SURFACE macro

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

commit d8f88cf3f97af6771a4d77bf81e1025eb7bcfd1d
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Thu Sep 9 11:00:42 2010 +0200

    recording: Fix cairo_recording_surface_create() doc comments
    
    The name of the parameters in the docs should match the name of the
    function parameters. Added also return value docs.

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

commit 737880260f1895667baf25bcc6814052e6a6a027
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Thu Sep 9 10:57:13 2010 +0200

    recording: Add section doc comments

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

commit 1ddc1bfa01e4c17001504c886bc5fb97625f5861
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Thu Sep 9 10:54:50 2010 +0200

    doc: Add section for recording surface

 doc/public/cairo-docs.xml     |    1 +
 doc/public/cairo-sections.txt |    7 +++++++
 2 files changed, 8 insertions(+), 0 deletions(-)

commit a48eccbf77874e00a57ab7f1ab96ed0f359b3963
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 7 13:58:29 2010 +0100

    configure: Fix typo "(requires both --enable-xcb)"

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

commit faeb6caaeba76c9797db0cd917bff4f102512d59
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 6 18:40:27 2010 +0100

    version: 1.10.1 open for bugfixing

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

commit cb0bc64c16b3a38cbf0c622830c18ac9ea6e2ffe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 6 17:15:51 2010 +0100

    version: 1.10.0 *release*
    
    /me faints with excitement.

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

commit 87fad104645c481ab027afbc9fa45c54cacbc9a7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 6 17:14:41 2010 +0100

    NEWS: Sum up 2 years of development for 1.10.0 in 60 lines

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

commit 04623ef9df7274d411a3b7f03129bf43e53e7086
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 6 13:15:55 2010 +0100

    test: Add subsurface-outside-target refs to REFERENCE_IMAGES

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

commit d5b2c2a12ebea33f4d108d4deec2e9111c8c7e12
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 6 13:10:08 2010 +0100

    test: Rename clip-fill-*-unbounded.image16 ref to match REFERENCE_IMAGES

 test/clip-fill-eo-unbounded.image16.ref.png       |  Bin 0 -> 2887 bytes
 test/clip-fill-eo-unbounded.image16.rgb24.ref.png |  Bin 2887 -> 0 bytes
 test/clip-fill-nz-unbounded.image16.ref.png       |  Bin 0 -> 2887 bytes
 test/clip-fill-nz-unbounded.image16.rgb24.ref.png |  Bin 2887 -> 0 bytes
 4 files changed, 0 insertions(+), 0 deletions(-)

commit cab9682f9dc4c99dcd51ddb66abd756e2ac7a63c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 6 12:24:47 2010 +0100

    check: Ignore the documentation errors.
    
    Currently it is complaining about having documentation for
    unconfigured sections, ignore it for now.

 doc/public/check-doc-coverage.sh |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit 8127f1f5d52bb716dbd70efe096894f2a542f4a9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 6 12:24:14 2010 +0100

    Bump pixman requirements to 0.18.4 for assorted fixes.

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

commit 21a2f90cdef3d592c1d1614852fe3929ed2aa765
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 2 13:19:26 2010 +0100

    check: Make the actual error stand out

 doc/public/check-doc-coverage.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 8258532794d0579f6c1b825b8cfb9c8f7ced4369
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 2 13:15:07 2010 +0100

    Reduce the cairo_device_type_t to only hold the used entries.
    
    This should help clarify the documentation by not mentioning non-existent
    devices and prevent any assumed coupling between surface-type values and
    devices.

 src/cairo.h                              |   49 +++++-------------------------
 util/cairo-gobject/cairo-gobject-enums.c |   24 ++------------
 2 files changed, 12 insertions(+), 61 deletions(-)

commit e3afbc1875d618c6d7e893971372be8f9889fc8b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 2 13:07:53 2010 +0100

    check: Fix for link-time-optimisation

 src/check-def.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit a9e055ff481303428cd9684dca826bc3f5d868c5
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Sep 2 14:51:30 2010 +0100

    freelist: Separate freelist inlines from the datatype in headers.
    
    The cairo-freelist-private.h header has a number of static inline
    functions which call hidden functions in libcairo.  This poses
    a problem on Solaris where the native compiler compiles inline
    functions whether they are used or not, thereby adding the
    link time requirements on hidden functions from whatever code
    that includes cairo-freelist-private.h.  Unfortunately the
    boilerplate code includes cairo-private headers and indirectly
    the freelist header, so linking the boilerplate helper library
    fails on Solaris.
    
    This patch separates the structure definitions from the function
    prototypes and static inlines in cairo-freelist-private.h by moving
    the datatypes to a new cairo-freelist-type-private.h.

 src/Makefile.sources              |    1 +
 src/cairo-freelist-private.h      |   28 +------------------
 src/cairo-freelist-type-private.h |   54 +++++++++++++++++++++++++++++++++++++
 src/cairo-xlib-display.c          |    2 +-
 src/cairo-xlib-private.h          |    2 +-
 5 files changed, 58 insertions(+), 29 deletions(-)

commit f5632d641c44a143386ca3b413e90ed3b1a85f89
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Sep 2 13:55:55 2010 +0300

    build: Remove stray backslash.
    
    A stray backslash bwetween two assignment lines apparently
    invokes a GNU make extension for conditional assignments.
    This patch fixes the build when using the native Solaris make.

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

commit 3a8b8fcc2a8a48cef49211c45723862f9fa8db23
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Sep 1 21:14:40 2010 +0200

    gobject: Fix header defines

 util/cairo-gobject/cairo-gobject.h |   64 ++++++++++++++++++------------------
 1 files changed, 32 insertions(+), 32 deletions(-)

commit 54a651564cdd2510d0a66f6720c4a45733ff3285
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Sep 1 18:47:16 2010 +0200

    build: Work around caching not reevaluating uncached variables
    
    This is a somewhat crude hack to ensure that GOBJECT_CFLAGS/LIBS are
    properly cached.

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

commit 28ba78a9716f3c105cdfb5f7519f2435dd9cb271
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Sep 1 18:46:46 2010 +0200

    gobject: Fix pkgconfig file variable
    
    I confused % and $. I blame it on spec files.

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

commit 61a1835e40d0b6d786951143779077d16ed2486e
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Sep 1 03:17:12 2010 +0200

    subsurface: Fix acquire_source_surface for out-of-bounds surfaces
    
    See subsurface-outside-target test.

 src/cairo-surface-subsurface.c |   41 ++++++++++++++++++++++-----------------
 1 files changed, 23 insertions(+), 18 deletions(-)

commit f54c51e75c7abe872127d559e029bf4383439bca
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Sep 1 02:10:51 2010 +0200

    test: Add subsurface-outside-target
    
    This test defines the behavior of subsurfaces when they are created to
    be bigger than their target.

 test/Makefile.sources                         |    1 +
 test/subsurface-outside-target.argb32.ref.png |  Bin 0 -> 2063 bytes
 test/subsurface-outside-target.c              |  178 +++++++++++++++++++++++++
 test/subsurface-outside-target.rgb24.ref.png  |  Bin 0 -> 1648 bytes
 4 files changed, 179 insertions(+), 0 deletions(-)

commit 6eab5ee10c111cf87dcf62e3f639f44cfd1e5cf6
Author: Maarten Bosmans <mkbosmans@gmail.com>
Date:   Sat Aug 28 13:39:21 2010 +0200

    build: prefer libpng14 over older versions
    
    Also move libpng to the front of the list, so that the default
    version of the system is first checked.

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

commit 9f98ec6eb915204d59820cf57d32f347f9933517
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Aug 29 00:05:51 2010 +0300

    device: Refer the user to per-backend docs about devices.
    
    The exact semantics of the device API can't be spelled out
    out in the device API docs since the effects are so tied
    to the specific backend.  To use a particular device in
    practice the user should refer to the backend docs.

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

commit b0f65054b810d432238ff4986bee3f63e1fc46df
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Aug 29 00:03:07 2010 +0300

    subsurface: Add a note to the docs about usage restrictions.
    
    Make our assumptions about constructed subsurfaces explicit
    while we work out the correct semantics for the edge cases.

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

commit 92fe2d370d120f4d9bc95e92209d1c1cec7e900b
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Aug 28 17:12:45 2010 +0200

    surface-offset: Use right variable in mask
    
    Use source/mask instead of their copies. The copies only get initialized
    if we actually need to translate things.

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

commit df4b23ff74f3d22fb306f59cdba4dce6b0857cd2
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Aug 27 20:26:06 2010 +0300

    subsurface: Fix crash when acquiring a source image.
    
    The code is passing in the extra info received from
    the target surface's acquire_source() method to
    _cairo_surface_get_extents() rather than the acquired
    source surface itself.

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

commit 2d146867dc4d4e17da2fd1e4776f62aaa999d90f
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Aug 26 14:50:34 2010 +0200

    subsurface: Correct cloning condition
    
    72644c6df2c2da1d77ca10a755dbb44bbd960c0d was using the wrong (inverted)
    condition to check if the subsurface extents are contained in the
    target extents.

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

commit 72644c6df2c2da1d77ca10a755dbb44bbd960c0d
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Aug 26 14:24:17 2010 +0200

    subsurface: Avoid invalid accesses
    
    Whenever subsurface extents are not contained in the target extents,
    using the source image given by the target (with origin corrected by
    using an appropriate offset in the data pointer) is not a valid
    operation. Fallback to cloning in that case.

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

commit df4465bdd11e25a1ed942bc0fc8e7dc5d43f951f
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Aug 26 14:23:04 2010 +0200

    subsurface: Silence compiler warnings
    
    Commit d1c35f5e65d53f6b8b9060455335424ca0f44bd0 introduced two
    unused variable warnings.

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

commit d1c35f5e65d53f6b8b9060455335424ca0f44bd0
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Aug 26 13:55:02 2010 +0200

    subsurface: Don't clip size to target size
    
    This clipping would modify the origin of the subsurface and then the
    creator has no easy way to figure this out.

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

commit 174fb5f16f93887e2f319edd5b46efae3e7e93ad
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Aug 26 13:21:04 2010 +0200

    subsurface: Don't apply device transform twice for source/mask

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

commit e79acf47a57b60c83d1f9491aac354161986b29b
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Aug 26 12:54:25 2010 +0200

    subsurface: Make CAIRO_SURFACE_TYPE_SUBSURFACE public

 src/cairo-analysis-surface.c    |    2 +-
 src/cairo-image-surface.c       |    2 +-
 src/cairo-pdf-surface.c         |    4 ++--
 src/cairo-ps-surface.c          |    4 ++--
 src/cairo-script-surface.c      |    2 +-
 src/cairo-surface-subsurface.c  |    4 ++--
 src/cairo-types-private.h       |    3 +--
 src/cairo-xcb-surface-render.c  |    4 ++--
 src/cairo-xlib-surface.c        |    2 +-
 src/cairo.h                     |    7 ++++++-
 src/drm/cairo-drm-i915-shader.c |    6 +++---
 src/drm/cairo-drm-i965-shader.c |    6 +++---
 12 files changed, 25 insertions(+), 21 deletions(-)

commit 40459dacb52587cc784faf2635e54797d3989408
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Aug 26 11:45:28 2010 +0200

    subsurface: Don't crash when the device transform isn't integer
    
    Apply the transform before rounding to integer coordinates, so we can
    handle doubles easily.

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

commit e19b213e84ab8b8ead5e0c700e5b906590e22aa1
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Aug 26 11:18:29 2010 +0200

    subsurface: Make subsurfaces their own type
    
    Do not try to hide being a subsurface.
    This would cause confusion when users where calling surface-type
    specific getters on subsurfaces.
    
    FIXME: We still need public API to access a subsurface's target though.

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

commit e65bf64c4a6e2c7ff673449b8459b3150e438e21
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Aug 26 11:17:06 2010 +0200

    subsurface: Properly account for device offsets in the target

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

commit 8e9c4ea5890a4df3f463e592dc3aa429bb423608
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Aug 11 12:18:53 2010 +0100

    Mark the context as invalid on the final cairo_destroy()
    
    We initialise the context to a non-error state upon creation, but after
    destroy there is a window of opportunity where the object is kept alive
    inside the context pool and the user could mistakenly keep on passing
    the zombie context into cairo functions. As all entry points need to
    check error status, flagging the context as an error object upon the
    final unreference prevents such misuse (until such as time as the
    context is reallocated).

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

commit cd52378ae60ab2075d7e9ec7335e990b2f46059e
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Aug 10 19:38:59 2010 +0200

    test: Update linear-gradient-large ref image
    
    Make linear-gradient-large ref image match xlib gradients (both on nvidia
    and on macosx) and pixman gradients (when patched to compute the linear
    gradients using floating point math).

 test/linear-gradient-large.ref.png |  Bin 3753 -> 4079 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit a7762e3d6570a6981d8fb74ecc6ae30391c39b89
Author: Krzysztof Kosiński <tweenk.pl@gmail.com>
Date:   Tue Aug 10 17:55:03 2010 +0200

    tests: Add linear-gradient-large test
    
    Shows large rounding errors in Pixman when computing gradients. Added as
    a test to Cairo to catch similar issues in other backends.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=29470

 test/Makefile.am                   |    5 ++-
 test/Makefile.sources              |    1 +
 test/linear-gradient-large.c       |   67 ++++++++++++++++++++++++++++++++++++
 test/linear-gradient-large.ref.png |  Bin 0 -> 3753 bytes
 4 files changed, 71 insertions(+), 2 deletions(-)

commit 56ea51fdcc273531b5e86b921aad19237a1c9415
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Aug 9 20:23:50 2010 +0200

    Replace insertion sort with mergesort in the scan converter
    
    Insertion sort can take up to O(n^2), mergesort is guaranteed to run
    in O(n*log(n)).
    An example showing bad performance for insertion sort is:
       https://bugs.freedesktop.org/show_bug.cgi?id=28067
    
    The mergesort has been engineered to be fast even when working on
    cases where the insertion sort would have performed well and as
    expected it shows no changes in the benchmark cairo traces.

 src/cairo-tor-scan-converter.c |  138 ++++++++++++++++++++++++++++++----------
 1 files changed, 103 insertions(+), 35 deletions(-)

commit a150371a5d10e03d6c0d781c6fac950a9ac6be18
Author: Nicolaus L Hepler <nlhepler@gmail.com>
Date:   Tue Aug 10 09:34:39 2010 +0200

    ft-font: Make alpha mapping consistent
    
    Vertical RGB mapping previously forced opaque pixels.
    To be consistent with horizontal RGB/BGR and vertical BGR it
    should use an alpha equal to the mid channel (green).

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

commit 73470862cbc5895147d5c58ca2647f539e8fe67c
Author: David Schleef <ds@schleef.org>
Date:   Tue Aug 10 02:37:38 2010 +0200

    perf: Fix README to say cairo-perf-micro

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

commit df8f96423429915ef1648310fce8b5aed0917c0a
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Aug 10 01:24:30 2010 +0200

    build: Fudge the build system some more so it handles extra libs
    
    Add NONPKGCONFIG_EXTRA_LIBS that are only put into the generated pc file
    but not used when linking. This is now used to add -lcairo-gobject to
    the cairo-gobject.pc file.

 build/configure.ac.features          |    3 +++
 configure.ac                         |    2 +-
 src/cairo-features-uninstalled.pc.in |    2 +-
 src/cairo-features.pc.in             |    2 +-
 4 files changed, 6 insertions(+), 3 deletions(-)

commit 01325ad767acf6213135a0bad895de233324f745
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Aug 10 00:11:25 2010 +0200

    gobject: Include the extra library in the pkgconfig file

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

commit 8fb91dc3f6b691f91c322cec4b1d0ee4dbebd69c
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Aug 10 00:53:53 2010 +0300

    script: Fix script backend build.
    
    The flight data recorders were missing an include
    of cairo-tee.h ever since cairo-tee.h became an optional
    backend.

 util/cairo-fdr/fdr.c    |    1 +
 util/cairo-sphinx/fdr.c |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

commit 766832364904dbf5b8a67ebc1600d2ec45d2734f
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Aug 9 18:47:13 2010 +0200

    perf: Improve calibration
    
    Make the loops count depend on the actual calibration_loops/calibration_time
    instead of calibration_loops/calibration_max_time.
    This avoids having some tests take much less/more than the wanted time per iteration
    (I was having some tests taking about 1 second, other taking about 7 seconds when
    the ms_per_iteration was 2000)
    
    Spend 0.5-1 times the time wanted for each iteration in calibration, increase the
    accuracy of loops count. Just making the loops count be the correct ratio doesn't
    guarantee that the iteration time is accurate. By actually measuring iteration
    times until it gets greater than 1/4 of the wanted time, the total sum is bound
    to be <= the wanted iteration time and last calibration time is between 1/4 and
    1/2 of the wanted time, so it should give a very accurate loop count.

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

commit 046b642db0782ab5e2a5c82988b21e05afe8e716
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 16:30:59 2010 +0300

    os2: Restore surface type checking in the get_extents method.

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

commit 78bdd87b7545f8e85632ac301a69da145727fcec
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 16:22:26 2010 +0300

    os2: Fix clipping to bounds when blitting pixels.
    
    The bounds checks on the rectangle to blit were done
    after converting target/source to inclusive/noninclusive
    coordinates rather than before, potentially causing an
    off-by-one in the sizes, since the same logic was applied
    to both inclusive and non-inclusive coordinates.  This
    patch enforces bounds up front.
    
    Thread "OS/2 surface fixes" on cairo-l:
    http://lists.cairographics.org/archives/cairo/2010-July/020343.html

 src/cairo-os2-surface.c |   64 ++++++++++++++++++++--------------------------
 1 files changed, 28 insertions(+), 36 deletions(-)

commit d0284687b32161212d6bc52309e2d5bb516dc3e8
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 03:53:24 2010 +0300

    os2: Tweak an inline declaration.
    
    C99 and cairo prefers "static inline <return type>" rather
    than "static <return type> inline".
    
    Thread "OS/2 surface fixes" on cairo-l:
    http://lists.cairographics.org/archives/cairo/2010-July/020343.html

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

commit cb30340064a2ff24dc408e185c5a309a14f6c78c
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 03:33:10 2010 +0300

    os2: Consolidate error paths of cairo_os2_surface_create().
    
    Use a single code path to release the resources acquired
    for a surface that's been partially constructed, rather than
    have multiple error exits which each release the resources
    acquired so far.
    
    Thread "OS/2 surface fixes" on cairo-l:
    http://lists.cairographics.org/archives/cairo/2010-July/020343.html

 src/cairo-os2-surface.c |  120 +++++++++++++++++++++++-----------------------
 1 files changed, 60 insertions(+), 60 deletions(-)

commit 66e3d650fe90754c811195c75579ac7a3512b7be
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 03:12:12 2010 +0300

    os2: Document ownership of OS/2 objects passed to surfaces.
    
    Clarify the documentation for cairo_os2_surface_create()
    and cairo_os2_surface_set_hwnd() to note that the ownership
    of the presentation space and window respectively
    remains with the caller.
    
    Thread "OS/2 surface fixes" on cairo-l:
    http://lists.cairographics.org/archives/cairo/2010-July/020343.html

 src/cairo-os2-surface.c |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 deletions(-)

commit 01525271544d5b88f87027e470fa85038d59bf8d
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 03:08:21 2010 +0300

    os2: Don't fake an Anchor Block when one isn't needed.
    
    The code was being tricky about passing in a HAB to
    DevOpenDC() even though one isn't needed at all under
    OS/2.  Pass in NULL instead.
    
    Thread "OS/2 surface fixes" on cairo-l:
    http://lists.cairographics.org/archives/cairo/2010-July/020343.html

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

commit 883d9725e0f844e7d5cc4c50c75a812b5435702b
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 03:01:56 2010 +0300

    os2: Fix buffer allocator behaviour on arithmetic overflow.
    
    On arithmetic overflow the buffer allocator would attempt
    to allocate zero bytes instead of failing the allocation.
    Depending on the implementation of the underlying allocator
    being proxied, this may result in an allocation of a zero
    length buffer, causing all kinds of grief.  This patch
    causes arithmetic overflows to explicitly fail the allocation.
    
    Thread "OS/2 surface fixes" on cairo-l:
    http://lists.cairographics.org/archives/cairo/2010-July/020343.html

 src/cairo-os2-surface.c |   54 ++++++++++++++++++++---------------------------
 1 files changed, 23 insertions(+), 31 deletions(-)

commit b54037828c5b338b2f1dcbe48201225b258c1e1e
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 02:40:20 2010 +0300

    os2: Fix blitting 24 bpp pixel data.
    
    There's a format mismatch between cairo's pixel formats
    and OS/2 24 bpp data: the individual pixels in OS/2 take
    only three bytes per pixel, but there needs to be padding
    between lines to make the start of a line always be aligned
    at a DWORD boundary.
    
    This patch fixes the format conversion code to include
    the required padding between rows.
    
    Thread "OS/2 surface fixes" on cairo-l:
    http://lists.cairographics.org/archives/cairo/2010-July/020343.html

 src/cairo-os2-private.h |    1 +
 src/cairo-os2-surface.c |  118 +++++++++++++++++++++++++++--------------------
 2 files changed, 69 insertions(+), 50 deletions(-)

commit 5aadecb3ac03d379c2c8113566fa8062843df42e
Author: Rich Walsh <DragText@E-vertise.Com>
Date:   Sat Aug 7 02:30:01 2010 +0300

    os2: New API to create surfaces without a persistent HPS.
    
    It's not always necessary to create a presentation space (HPS) for
    surface tied to a window, as the user may have one already.  This patch
    introduces three new functions to create a surface without an HPS
    and let the user manage an HPS associated with the surface.
    
    Thread "OS/2 surface fixes" on cairo-l:
    http://lists.cairographics.org/archives/cairo/2010-July/020343.html
    
    Mozilla Bugzilla:
    https://bugzilla.mozilla.org/show_bug.cgi?id=557159

 src/cairo-os2-surface.c |  142 ++++++++++++++++++++++++++++++++++++++++++++++-
 src/cairo-os2.h         |   14 +++++
 2 files changed, 153 insertions(+), 3 deletions(-)

commit 9669faa936fe38da3615d7831e423befa5ecdfad
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Aug 8 17:23:05 2010 +0200

    gl: Handle errors from _cairo_gl_gradient_render()
    
    Thanks Andrea for finding this.

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

commit e31b56e020df806aa6180cd2efa0a34e55e5adaf
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Aug 8 14:45:24 2010 +0200

    configure: Fix gobject handling
    
    1) Explicitly depend on glib, too.
    2) Don't link gobject into libcairo proper (thanks Joonas for noticing).

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

commit ae2b7b13cd5fdeaee44496056bb99f497346e262
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Aug 4 14:22:23 2010 +0200

    pattern: Simplify degenerate linear pattern to solid colors
    
    Degenerate linear patterns are considered clear if they have
    EXTEND_NONE, the average of the first and the last stop if they are
    EXTEND_PAD, the weighted average of the stops (based on the size of
    the interpolation range in which they are active, just like integrating
    over the whole interpolation range and taking the average) if they are
    EXTEND_REPEAT or EXTEND_REFLECT.
    
    Fixes degenerate-linear-gradient

 src/cairo-pattern.c                     |  119 ++++++++++++++++++++++++++++++-
 test/degenerate-linear-gradient.ref.png |  Bin 232 -> 322 bytes
 2 files changed, 117 insertions(+), 2 deletions(-)

commit d54a5a9fc90857448954d6cbe725d4665efa3d45
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Aug 4 14:16:34 2010 +0200

    pattern: Add gradient degeneracy testing functions
    
    Introduce two new (private) functions for testing the degeneracy of linear
    and radial gradients and use them instead of verbose (and error-prone) tests.

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

commit 63434bc43819e2c7d4db568e82f5a9a7dfb0418d
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Aug 4 14:22:01 2010 +0200

    gstate: Correct comment

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

commit 28cd511fb974f886ae65e588413afcfc220a1a7c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Aug 7 22:55:46 2010 +0200

    Correct color stops comparison function
    
    Two clear stops with different "underlying" colors must be considered
    different, since when interpolated with non-clear colors they will
    produce different results.

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

commit f71a618bd2604c8f0beaf4816a38a54f6f271bd9
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Aug 7 21:32:09 2010 +0200

    Fix configuration if gobject is absent
    
    Autodetect gobject and only use it if present.
    Its absence is not to be considered a failure since it's not required.

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

commit 661f4859cdbc0394ed0a9db34ced0f4e2bbe78ff
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Aug 7 20:05:42 2010 +0200

    Add cairo-gobject library
    
    This library is supposed to contain GType declarations for Cairo types.
    It is also meant to support gobject-introspection binding creation.

 boilerplate/Makefile.win32.features        |   12 +
 build/Makefile.win32.features              |    1 +
 build/Makefile.win32.features-h            |    3 +
 configure.ac                               |   10 +
 src/Makefile.win32.features                |   16 +
 util/Makefile.am                           |    4 +
 util/cairo-gobject/Makefile.am             |   15 +
 util/cairo-gobject/cairo-gobject-enums.c   |  519 ++++++++++++++++++++++++++++
 util/cairo-gobject/cairo-gobject-structs.c |   87 +++++
 util/cairo-gobject/cairo-gobject.h         |  186 ++++++++++
 10 files changed, 853 insertions(+), 0 deletions(-)

commit fc4e8f036326da1839ec5320eba60823e7efc2db
Author: Søren Sandmann Pedersen <ssp@redhat.com>
Date:   Sat Aug 7 12:10:49 2010 -0400

    Update documentation to reflect that rgb565 is no longer deprecated.

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

commit de606af5d673df193fc07fbd047ba2cec82d2f1c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jul 27 18:04:36 2010 +0200

    quartz: improve backend detection
    
    Quartz previously crashed with NULL backends and didn't check for
    the backend type when getting a CGContext from a quartz surface,
    returning meaningless data for subsurfaces.

 src/cairo-quartz-surface.c |   24 +++++++++++++++---------
 1 files changed, 15 insertions(+), 9 deletions(-)

commit 056ce165c4377e9cf93fd7a06b6b0d5d4d98cb8c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jul 27 18:50:55 2010 +0200

    quartz: fix solid masking fallback
    
    Falling back when painting would ignore the alpha value (which is
    needed to have the correct mask opacity).
    _cairo_quartz_surface_paint_cg doesn't fallback, so the usual mask
    fallback path is now taken, as expected.

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

commit bdeade14ea86fb5f3ff17accd71711d2c40b1b33
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Jul 28 19:33:53 2010 +0200

    quartz: fix stroking with unbounded operators
    
    Self-intersecting strokes were drawn incorrectly when an unbounded
    operator was used, since the fixup operation also cleared the
    intersection.
    
    Fixes clip-stroke-unbounded.

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

commit 8f38d2aa29bc0d69690cbf542c4a2b497b7a0c0a
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jul 29 10:45:59 2010 +0200

    test: improve clip-*-unbounded tests
    
    Merge clip-*-unbounded tests and add self-intersections to the paths
    that are drawn. This exposes a bug in the unbounded fixup code in quartz.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

 test/Makefile.am                                   |   35 ++--
 test/Makefile.sources                              |    3 +-
 test/clip-draw-unbounded.c                         |  184 ++++++++++++++++++++
 test/clip-fill-eo-unbounded.argb32.ref.png         |  Bin 0 -> 3668 bytes
 test/clip-fill-eo-unbounded.image16.rgb24.ref.png  |  Bin 0 -> 2887 bytes
 test/clip-fill-eo-unbounded.quartz.argb32.ref.png  |  Bin 0 -> 3366 bytes
 test/clip-fill-eo-unbounded.quartz.rgb24.ref.png   |  Bin 0 -> 3061 bytes
 test/clip-fill-eo-unbounded.rgb24.ref.png          |  Bin 0 -> 3201 bytes
 test/clip-fill-eo-unbounded.svg12.rgb24.xfail.png  |  Bin 0 -> 3636 bytes
 ...p-fill-eo-unbounded.xlib-fallback.rgb24.ref.png |  Bin 0 -> 3208 bytes
 test/clip-fill-eo-unbounded.xlib.argb32.ref.png    |  Bin 0 -> 3693 bytes
 test/clip-fill-eo-unbounded.xlib.rgb24.ref.png     |  Bin 0 -> 3198 bytes
 test/clip-fill-nz-unbounded.argb32.ref.png         |  Bin 0 -> 3668 bytes
 test/clip-fill-nz-unbounded.image16.rgb24.ref.png  |  Bin 0 -> 2887 bytes
 test/clip-fill-nz-unbounded.quartz.argb32.ref.png  |  Bin 0 -> 3366 bytes
 test/clip-fill-nz-unbounded.quartz.rgb24.ref.png   |  Bin 0 -> 3061 bytes
 test/clip-fill-nz-unbounded.rgb24.ref.png          |  Bin 0 -> 3201 bytes
 test/clip-fill-nz-unbounded.svg12.rgb24.xfail.png  |  Bin 0 -> 3636 bytes
 ...p-fill-nz-unbounded.xlib-fallback.rgb24.ref.png |  Bin 0 -> 3208 bytes
 test/clip-fill-nz-unbounded.xlib.argb32.ref.png    |  Bin 0 -> 3693 bytes
 test/clip-fill-nz-unbounded.xlib.rgb24.ref.png     |  Bin 0 -> 3198 bytes
 test/clip-fill-unbounded.argb32.ref.png            |  Bin 1607 -> 0 bytes
 test/clip-fill-unbounded.c                         |  105 -----------
 test/clip-fill-unbounded.image16.ref.png           |  Bin 1204 -> 0 bytes
 test/clip-fill-unbounded.pdf.argb32.ref.png        |  Bin 1244 -> 0 bytes
 test/clip-fill-unbounded.ps.argb32.xfail.png       |  Bin 1244 -> 0 bytes
 test/clip-fill-unbounded.quartz.argb32.ref.png     |  Bin 1436 -> 0 bytes
 test/clip-fill-unbounded.quartz.rgb24.ref.png      |  Bin 1368 -> 0 bytes
 test/clip-fill-unbounded.rgb24.ref.png             |  Bin 1304 -> 0 bytes
 test/clip-fill-unbounded.svg12.argb32.xfail.png    |  Bin 1601 -> 0 bytes
 test/clip-fill-unbounded.svg12.rgb24.xfail.png     |  Bin 1601 -> 0 bytes
 ...clip-fill-unbounded.xlib-fallback.rgb24.ref.png |  Bin 1438 -> 0 bytes
 test/clip-fill-unbounded.xlib.argb32.ref.png       |  Bin 1759 -> 0 bytes
 test/clip-fill-unbounded.xlib.rgb24.ref.png        |  Bin 1430 -> 0 bytes
 test/clip-stroke-unbounded.argb32.ref.png          |  Bin 1694 -> 3545 bytes
 test/clip-stroke-unbounded.c                       |  102 -----------
 test/clip-stroke-unbounded.image16.ref.png         |  Bin 1255 -> 0 bytes
 test/clip-stroke-unbounded.image16.rgb24.ref.png   |  Bin 0 -> 2778 bytes
 test/clip-stroke-unbounded.pdf.argb32.xfail.png    |  Bin 1351 -> 0 bytes
 test/clip-stroke-unbounded.ps.argb32.ref.png       |  Bin 1351 -> 0 bytes
 test/clip-stroke-unbounded.quartz.argb32.ref.png   |  Bin 1493 -> 3362 bytes
 test/clip-stroke-unbounded.quartz.rgb24.ref.png    |  Bin 1356 -> 3061 bytes
 test/clip-stroke-unbounded.rgb24.ref.png           |  Bin 1372 -> 3063 bytes
 test/clip-stroke-unbounded.svg12.argb32.xfail.png  |  Bin 1697 -> 0 bytes
 test/clip-stroke-unbounded.svg12.rgb24.xfail.png   |  Bin 1697 -> 3569 bytes
 ...ip-stroke-unbounded.xlib-fallback.rgb24.ref.png |  Bin 1437 -> 3123 bytes
 test/clip-stroke-unbounded.xlib.argb32.ref.png     |  Bin 1785 -> 3620 bytes
 test/clip-stroke-unbounded.xlib.rgb24.ref.png      |  Bin 1442 -> 3109 bytes
 48 files changed, 204 insertions(+), 225 deletions(-)

commit 142df6f9638e10d0712e092d902f7670965a88f9
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 30 22:04:44 2010 +0200

    configure: Disable xml backend by default
    
    We don't want to enable it by default when nobody uses it.

 boilerplate/Makefile.win32.features |    2 +-
 build/Makefile.win32.features       |    2 +-
 configure.ac                        |    2 +-
 src/Makefile.win32.features         |    2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 9f33f8453b4949cfdc63169d3acd7238f89379c2
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 30 21:48:14 2010 +0200

    configure: Disable tee backend by default
    
    We don't want to enable it by default when nobody uses it.

 boilerplate/Makefile.win32.features |    4 +++-
 build/Makefile.win32.features       |    1 +
 build/Makefile.win32.features-h     |    2 ++
 configure.ac                        |    2 +-
 src/Makefile.win32.features         |    8 +++++++-
 src/cairo-surface.c                 |    4 ++++
 test/api-special-cases.c            |    6 ++++++
 7 files changed, 24 insertions(+), 3 deletions(-)

commit 9f4d677e2a6dd0bfbbbe20de39f92177bfdfc0e8
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 30 22:15:55 2010 +0200

    tee: Move definitions into separate header

 src/Makefile.sources     |    6 +++-
 src/cairo-tee-surface.c  |    2 +
 src/cairo-tee.h          |   66 ++++++++++++++++++++++++++++++++++++++++++++++
 src/cairo.h              |   17 ------------
 test/api-special-cases.c |    3 ++
 5 files changed, 75 insertions(+), 19 deletions(-)

commit 14639e6b8525ada2cb93abb1d70dde827b7bf9e0
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Thu Jun 17 18:29:48 2010 -0400

    egl: Use EGL_KHR_surfaceless_opengl extension when available
    
    This lets us avoid creating a throwaway pbuffer just to make the
    context current.

 src/cairo-egl-context.c |   58 ++++++++++++++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 20 deletions(-)

commit b6fd673d37e1c8962d15c0e0e59322a2002fc399
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 26 13:15:38 2010 +0100

    version: 1.9.15 post-snapshot bump

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

commit ed8c6f42540f03a62fd64ad83b7c397528092232
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 26 12:53:44 2010 +0100

    version: 1.9.14 snapshot

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

commit 81094cf4622302ebaa9b3f328f5d2a56a1c07a64
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 26 12:52:56 2010 +0100

    NEWS: 1.9.14

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

commit c1fcbd0322f86327ddd89c2eef2facbc74045629
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Jul 26 11:21:48 2010 +0200

    quartz: fix REFLECT radial gradients
    
    The interpolation range of repeating radial gradients can safely be
    reflected around any integer (previously 0), but for reflect-extended
    radial gradients can only be reflected around odd integers if the
    appearance is to be the same, thus reflecting around 1 is correct for both.
    
    Fixes radial-gradient.

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

commit 3898e46d1de19848efeddb442dcf7f7663530256
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jul 23 09:41:48 2010 +0100

    image: Compensate mask origins for glyph clipping
    
    Fixes the regression in bitmap-font and large-font pointed out by Andrea
    Canciani since ef067933.

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

commit 53fcfc781eeee949abc03cf90048a2228f7e0a63
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Wed Jul 21 22:39:40 2010 +0300

    build: Typos in comments.
    
    Fix inline "dnl" strings left over from a string
    substitution "--" -> "dnl".

 build/configure.ac.pthread |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit fd1e731c9d0af307ebde4d888866c95bd6ebe66d
Author: Hib Eris <hib@hiberis.nl>
Date:   Wed Jul 21 22:34:05 2010 +0300

    build: Fix pthread detection code when there isn't one.
    
    The code was testing the output variable $use_pthread rather than
    the input variable $enable_pthread when checking that pthreads
    were actually found when requested.

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

commit 108b1c7825116ed3f93aa57384bbd3290cdc9181
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Sat Jul 17 13:08:53 2010 +1200

    clip: consider gstate target extents in _cairo_gstate_copy_clip_rectangle_list
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=29125
    
    To be consistent with _cairo_gstate_clip_extents, the context's clip
    should be intersected with the target surface extents (instead of only
    using them when there is no clip).
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-clip.c   |   72 ++++++++++++++++++---------------------------------
 src/cairo-gstate.c |   14 +++++++++-
 test/get-clip.c    |   16 +++++++++++
 3 files changed, 55 insertions(+), 47 deletions(-)

commit b79ea8a6cab8bd28aebecf6e1e8229d5ac017264
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Sat Jul 17 11:46:25 2010 +1200

    clip: consider all_clipped in _cairo_clip_get_extents
    
    If the gstate clip in _cairo_gstate_int_clip_extents() has all_clipped
    set (and path NULL), then it returns the gstate target extents instead of
    an empty rectangle.  If the target is infinite, then it says the clip is
    unbounded.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=29124
    Tested-by test/get-clip
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-clip.c |    5 +++++
 test/get-clip.c  |    5 ++++-
 2 files changed, 9 insertions(+), 1 deletions(-)

commit 6a5115901381fe9c81a8a311e267c2a00e2a1d04
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Sat Jul 17 10:47:42 2010 +1200

    test: return CAIRO_TEST_FAILURE from get-clip preamble on failure
    
    https://bugs.freedesktop.org/show_bug.cgi?id=29120

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

commit f2fa15680ec3ac95cb68d4957557f06561a7dc55
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Sat Jul 17 10:39:50 2010 +1200

    clip: return empty clip from _cairo_clip_copy_rectangle_list when all_clipped
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=29122
    Tested by test/get-clip
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

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

commit 33ac2035876aeb9215ca0bdaaeea5265fcee61f8
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Sat Jul 17 10:13:22 2010 +1200

    test: use the surface size expected in get-clip phase "No clip set"
    
    https://bugs.freedesktop.org/show_bug.cgi?id=29121

 test/get-clip.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

commit bac5c28a18af5d43c96f0b64d1c7235da3f02779
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jul 17 10:09:14 2010 +0100

    boilerplate: Offset the xlib window
    
    An idea courtesy of Benjamin Otte is to stress the drivers a bit more by
    not rendering to 0,0. Under various circumstances rendering to a Window
    is mapped onto the Screen root Window with a collection of offsets and
    clips by X. It is easy for the driver to make a mistake and misrender...

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

commit 51b0c21f02a8f0f5d7f44da05e49d7f8f3bf8bc7
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 16 19:49:53 2010 +0200

    build: Add explicit dependcy to cxx lib
    
    Otherwise the build will fail because it doesn't add the dependency
    manually.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=29114

 boilerplate/Makefile.am |    3 +++
 src/Makefile.am         |    2 +-
 2 files changed, 4 insertions(+), 1 deletions(-)

commit 6b92d5a0f9fce28f99b07177454da00f984fdb43
Author: Oleg Romashin <romaxa@gmail.com>
Date:   Fri Jul 16 09:47:23 2010 +0100

    qt: Use native glyph rendering.
    
    Remove the hack of using the xlib surface to do glyph rendering and use
    the new interface introduced with Qt4.7, or else fallback to image
    rendering with freetype.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    [2 files changed, 35 insertions(+), 140 deletions(-) \o/]

 src/cairo-qt-surface.cpp |  169 ++++++++++------------------------------------
 src/cairo-xlib-surface.c |    6 --
 2 files changed, 35 insertions(+), 140 deletions(-)

commit f53f072a223c3fbdeba315f5cba755cba498e121
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 18:53:29 2010 +0100

    clip: Do the NULL check before the dereference.
    
    Breakage introduced in the commit earlier today.

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

commit ef0679333da881bd83b0bb4db546ea9c68f81f89
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 16:07:27 2010 +0100

    image: Manually clip against bounds when rendering directly
    
    This is path is slightly peculiar in that it explicitly avoid the
    intermediate mask and the geometry is not pre-clipped.
    
    This in conjunction with the previous commit fixes:
    
      Clip doesn't work for text
      https://bugs.freedesktop.org/show_bug.cgi?id=29008
    
    which is captured in test/partial-clip-text.

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

commit 679e5a600bd7dae6cbde83070fb1f7355f8025a7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 16:06:32 2010 +0100

    Differentiate between reducing clip to composite extents and a rectangle
    
    This is required for handling glyphs when rendering directly to the
    surface.

 src/cairo-clip-private.h         |    4 ++++
 src/cairo-clip.c                 |   22 +++++++++++++++-------
 src/cairo-gl-surface.c           |    4 ++--
 src/cairo-image-surface.c        |   10 +++++-----
 src/cairo-surface-fallback.c     |   10 +++++-----
 src/cairo-xcb-surface-render.c   |   10 +++++-----
 src/drm/cairo-drm-i915-glyphs.c  |    2 +-
 src/drm/cairo-drm-i915-surface.c |    8 ++++----
 src/drm/cairo-drm-i965-glyphs.c  |    2 +-
 src/drm/cairo-drm-i965-surface.c |    8 ++++----
 10 files changed, 46 insertions(+), 34 deletions(-)

commit 8546a877889bfafc056c867bc9aea25e9fdcdef0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 16:27:29 2010 +0100

    test: Add partial-clip-text
    
    This exercises a bug found by Igor Nikitin:
    
      https://bugs.freedesktop.org/show_bug.cgi?id=29008

 test/Makefile.am                   |    3 ++
 test/Makefile.sources              |    1 +
 test/partial-clip-text.c           |   50 ++++++++++++++++++++++++++++++++++++
 test/partial-clip-text.ps.ref.png  |  Bin 0 -> 107 bytes
 test/partial-clip-text.ref.png     |  Bin 0 -> 175 bytes
 test/partial-clip-text.svg.ref.png |  Bin 0 -> 173 bytes
 6 files changed, 54 insertions(+), 0 deletions(-)

commit 53ee897449dca497d6a3d6dc90b87fea8027cc44
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 12:37:31 2010 +0100

    version: Post-snapshot bump to 1.9.13

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

commit aa4cd8287f47b4538e765e1b48dcbac19813a8a2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 12:12:12 2010 +0100

    version: 1.9.12 snapshot

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

commit 53b129dd8aecf4e2bd8b7d2cd27b91370c6705e9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 12:11:42 2010 +0100

    NEWS for 1.9.12.

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

commit 01380f3a56b28a388d2876780f33516ecd16ee16
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 11:49:53 2010 +0100

    test: Missing REFERENCE_IMAGES

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

commit 459b8ae660eb49a87ffb9da31f305718a2b4f11f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 12 11:05:57 2010 +0100

    Make distcheck happy.

 src/cairo-fontconfig-private.h |    2 ++
 src/cairo-skia.h               |    2 +-
 src/glew/GL/glew.h             |    2 ++
 src/glew/GL/glxew.h            |    2 ++
 test/api-special-cases.c       |    5 +++--
 5 files changed, 10 insertions(+), 3 deletions(-)

commit d56b1718025f8b2354b5b1eb99af41df70a6c590
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Jul 12 10:36:24 2010 +0200

    test: Add halo quartz reference images
    
    When quartz-font is enabled, halo and halo-transform fonts have a
    different shape.

 test/halo-transform.quartz.ref.png |  Bin 0 -> 14360 bytes
 test/halo.quartz.ref.png           |  Bin 0 -> 8601 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 9107895789fc721ee6ea2ccb2ce3ab99fb978caa
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Jul 12 11:03:15 2010 +0300

    test: Add comments explaining the bug in bug-seams.
    
    Where two rasterization methods meet, havoc occurs.

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

commit 0152db263b9b12547fadb5d080913fcbb696d34e
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Jul 12 10:36:00 2010 +0300

    build: Sync up autogenerated win32 build files.

 boilerplate/Makefile.win32.features |    9 +++++++++
 build/Makefile.win32.features       |    1 +
 build/Makefile.win32.features-h     |    3 +++
 src/Makefile.win32.features         |    9 +++++++++
 4 files changed, 22 insertions(+), 0 deletions(-)

commit 06ffb7df716652baba96960cd59e1a59f4bd1ac1
Author: Eric Anholt <eric@anholt.net>
Date:   Sat Jul 10 14:19:50 2010 -0700

    gl: Only use a mat3 for the transformation for gradients coordinates.
    
    No point in passing in a column of zeroes that we multiply by zero, or
    the row that we drop on the floor.  We could do even better by just
    passing in a 3x2, at the expense of adding a language version
    dependency (or just pass in 2 vectors).
    
    No significant performance difference.

 src/cairo-gl-shaders.c |   28 +++++++++++++---------------
 1 files changed, 13 insertions(+), 15 deletions(-)

commit 1e7485f8e5b6fd9b26f06838d8e7a35e073c394b
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Jul 12 00:23:11 2010 +0300

    trace: Avoid stdbool.h C99ism.
    
    There is no <stdbool.h> on old Solaris without invoking
    c99 mode explicitly.

 util/cairo-trace/trace.c |  184 +++++++++++++++++++++++----------------------
 1 files changed, 94 insertions(+), 90 deletions(-)

commit 97529a3713d899468fb3ca7a1c3f75a09bd1b215
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Jul 11 23:54:21 2010 +0300

    build: Avoid shifting shell parameters that aren't there.
    
    The shift primitive of the Solaris 9 Bourne shell doesn't like
    it if we try to shift more formal arguments than are there.
    This causes the compare_versions function in autogen.sh to croak when
    the actual and compared versions differ in the number of
    components.

 autogen.sh |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit dd6026b613aa5414a128727995f2a4f79284072a
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Jul 11 20:44:40 2010 +0200

    doc: Make the necessity of flush/mark_dirty more obvious

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

commit 8a1944f45b9c9056088246d4f2e72d60a59fd5c4
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Jul 11 19:11:15 2010 +0200

    check: Allow unprefix type names in the title
    
    Some documentation sections use the type name as the title, and we don't
    want to use that title as a link.

 src/check-doc-syntax.sh |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

commit f0466ecf7db859a80b779b7fb4381e3c9409c39b
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Jul 11 21:57:40 2010 +0300

    build: Fix typo in pthread test program.
    
    Missing a semicolon after pthread_cleanup_push.  Incredibly
    only openbsd 4.5 minded.

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

commit 3f1d7de8e1620ad385930477b63454107dd8ffd3
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Jul 11 17:29:07 2010 +0300

    build: Fix regression provoked by newer autoconf and dodgy configuring.
    
    We're not supposed to be redefining PACKAGE_VERSION, PACKAGE_...
    from the configure generated confdefs.h.  This patch rudely adds
    paper over the problem.  The compiler warnings are a problem for
    us since our checking of various compiler flags assumes that
    no news is good news, and that any warning messages are due
    to the flags under test.  The regression appears when using
    an autoconf >= 2.64, at least, but not with 2.61.
    
    The same issue appears in the pthread test because our conftest
    unconditionally #defines _GNU_SOURCE, but autoconf ends up doing
    that in the confdefs.h.

 build/configure.ac.noversion |   13 ++++++++++++-
 build/configure.ac.pthread   |    2 ++
 2 files changed, 14 insertions(+), 1 deletions(-)

commit fca8977219b857e2e61dd86ac39ae9f40086f306
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Jun 27 03:03:17 2010 +0300

    build: Rework pthread detection.
    
    Use two levels of pthread support: a minimal level used to
    build cairo itself, and a full level to build threaded apps
    which want to use cairo.  The minimal level tries to use
    pthread stubs from libc if possible, but falls back to the
    full level if that's not possible.  We use CFLAGS=-D_REENTRANT
    LIBS=-lpthread to find a real pthread library since that seems
    to work on every unix-like test box we can get our hands on.

 build/ax-pthread.m4           |  283 -----------------------------------------
 build/configure.ac.pthread    |  251 ++++++++++++++++++++++++++++++++++++
 configure.ac                  |   47 +++----
 test/Makefile.am              |   16 +--
 test/cairo-test-trace.c       |   10 +-
 test/cairo-test.c             |    6 +-
 util/cairo-sphinx/Makefile.am |    3 +-
 util/cairo-sphinx/sphinx.c    |    4 +
 util/cairo-trace/Makefile.am  |    4 +-
 9 files changed, 291 insertions(+), 333 deletions(-)

commit 47c35e5e86a3c99fc39afe2e13a7c92d5247ee1e
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Jun 27 01:14:03 2010 +0300

    build: Purge CAIRO_CC_TRY_LINK_FLAG.
    
    Use CAIRO_CC_TRY_FLAG instead in the one place where we used
    CAIRO_CC_TRY_LINK_FLAG and make the build system one macro
    smaller.

 build/aclocal.cairo.m4      |   21 ---------------------
 build/configure.ac.warnings |    2 +-
 2 files changed, 1 insertions(+), 22 deletions(-)

commit d2f5592e0e0d316cfc40ec676ee6e7f4e2a699fb
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Jun 27 01:11:13 2010 +0300

    build: Factor out a more pliable CAIRO_CC_TRY_LINK_WITH_ENV_SILENT.
    
    Introduce a new CAIRO_CC_TRY_LINK_WITH_ENV_SILENT macro for running
    generic link tests with arbitrary CFLAGS/LIBS/LDFLAGS and no muttering
    of autoconf messages.  Rewrite the previous CAIRO_CC_TRY_FLAG in terms
    of it.

 build/aclocal.cairo.m4 |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

commit 120b78ada7eed6424f07a688854657d0c3ad68f8
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Jul 11 18:48:38 2010 +0200

    build: Split boilerplate lib generation into two so's
    
    Same thing as what was previously done for libcairo.so: Build an
    intermediate lib for the (potential) C++ stuff.

 boilerplate/Makefile.am      |   31 ++++++++++++++++++++++++-------
 boilerplate/Makefile.sources |    7 ++-----
 2 files changed, 26 insertions(+), 12 deletions(-)

commit d6362a0d76753cb6f85f0dbd567a3ec7b7b08696
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Jul 11 16:01:44 2010 +0200

    qt: Define cairo-qt's API as C symbols
    
    That way, the C linker doesn't mess up when linking libcairo.so.

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

commit 5d4a4775c8b091b947b52cc8f7e1e48a5eaea007
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Jul 11 15:41:56 2010 +0200

    build: Fix typo that makes C++ libs not build

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

commit 9b9952ab4f64a476bbadfd3e6cf1e66c1137ccd7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jul 10 11:13:07 2010 +0100

    Convert mime data length to use unsigned long
    
    What we want to use is size_t, but we don't want the implied POSIX
    dependency. However, POSIX does say that size_t is an unsigned integer
    that is no longer than a long, so it would appear safe to use an
    unsigned long as a replacement. Safer at least than unsigned int.

 src/cairo-image-info-private.h     |    6 +++---
 src/cairo-image-info.c             |    4 ++--
 src/cairo-output-stream-private.h  |    2 +-
 src/cairo-output-stream.c          |    2 +-
 src/cairo-pdf-surface.c            |   18 +++++++++---------
 src/cairo-png.c                    |    2 +-
 src/cairo-ps-surface.c             |    2 +-
 src/cairo-script-surface.c         |    6 +++---
 src/cairo-surface.c                |    4 ++--
 src/cairo-svg-surface.c            |    6 +++---
 src/cairo-types-private.h          |    2 +-
 src/cairo-win32-printing-surface.c |   10 +++++-----
 src/cairo.h                        |    4 ++--
 util/cairo-trace/trace.c           |    6 +++---
 14 files changed, 37 insertions(+), 37 deletions(-)

commit eb85ab998b606144daf025285968a5d6031b9aa6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jul 10 10:43:40 2010 +0100

    subsurface: Don't assume we ever own the target.
    
    Andrea pointed out that snapshots can be shared, and so the subsurface
    should not be calling finish even on a snapshot.

 src/cairo-surface-subsurface-private.h |    1 -
 src/cairo-surface-subsurface.c         |   17 ++++++++---------
 2 files changed, 8 insertions(+), 10 deletions(-)

commit 59c83117d77f58e9cb64aaa6b572fab62fb31c6b
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 18:55:11 2010 +0200

    build: Commit new versions of autogenerate Windows build files
    
    The recent commits to the build system changed a bunch of stuff in
    there, so update the files.

 boilerplate/Makefile.win32.features |   92 +++++++++++++++++++++++++++++++----
 build/Makefile.win32.features-h     |    1 -
 src/Makefile.win32.features         |   92 +++++++++++++++++++++++++++++++----
 3 files changed, 164 insertions(+), 21 deletions(-)

commit bf117e4ea7c89dadcb5a358bb47c0f213cc67461
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 18:43:38 2010 +0200

    build: fix glew include
    
    Currently wether internal glew is built is dependant on wether the
    tarball in use was built with internal glew or not. And that's not how
    it should be.

 configure.ac         |    8 ++++----
 src/Makefile.sources |   11 +++++++----
 2 files changed, 11 insertions(+), 8 deletions(-)

commit 0bd704bd1e92b274209aeda6de88c7e75ffa81be
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 17:15:02 2010 +0200

    build: Remove wrong flags from libcairo_cxx.la
    
    They're useful for the final so, but not for an intermediate noinst lib.

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

commit faceffd5beb4297299175945660522d8f1f5f2cb
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 16:58:18 2010 +0200

    build: copy/paste failure: Don't build libcxx.la

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

commit dbb386d3c0aa9e7534d333cf3dbcfc2aaeac05d3
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 12:49:10 2010 +0200

    gl: Use unsigned int instead of GLuint
    
    GLuint is not defined in cairo-gl.h. If unsigned int is not compatible
    enough to GLuint, we might consider to use #include <GL/gl.h> instead.

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

commit f7fc8569a797356d5e93ad67aae4eca31e6835cd
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 12:29:35 2010 +0200

    build: Fix C++ issues with automake
    
    This is an attempt to fix the broken situation we've been in where
    automake links libcairo.la with c++ because it might potentially maybe
    include C++ files.
    
    Those potential files only exist in Chris' throwaway backends (skia, qt)
    and the BeOS backend, so for 99.99% of cases, these backends are not
    needed and linking with c++ is overkill. Also, no one wants to have
    libcairo.so link to libstdc++.
    
    This patch fixes that in mutliple steps:
    1) Add build infrastructure to distinguish between C and C++ backends.
       This is done by allowing to specify backend_sources as well as
       backend_cxx_sources variables in Makefile.sources.
    2) Optionally build a libcairo_cxx.la noinst library
       This intermediate library is built for C++ backends only and therefor
       linked using c++. It is then linked into the final libcairo.la. This
       does not require c++, so the linking of libcairo.la is done with cc.
    
    This also works around various weirdnesses that the current build system
    exposes, where it assumes cisms when in fact using c++ semantics, like
    not detecting c++ properly or:
    https://bugzilla.redhat.com/show_bug.cgi?id=606523

 build/configure.ac.features |    7 ++++++-
 configure.ac                |   10 ++++++++++
 src/Makefile.am             |   20 +++++++++++++++++++-
 src/Makefile.am.analysis    |    4 ++--
 src/Makefile.sources        |    6 +++---
 5 files changed, 40 insertions(+), 7 deletions(-)

commit df6d49f6eaf334d5a2de8bdd90919278071ab868
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 10:29:30 2010 +0200

    build: Get rid of $(foo_files) Makefile.am variables
    
    They're unused, and less variables make the build system easier to
    understand.

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

commit ce530b2802683fe6c5289367ef03018f4081a2da
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 04:24:51 2010 +0200

    doc: Add "@Since: 1.10" tags to device docs

 src/cairo-device.c |   14 ++++++++++++++
 src/cairo.h        |    2 ++
 2 files changed, 16 insertions(+), 0 deletions(-)

commit c1fed693020c96126cdc697ddd22567398369b04
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 04:20:42 2010 +0200

    gl: Remove double ** from some comments
    
    gtk-doc doesn't like that unless it's a real gtk-doc comment.
    And it wasn't.

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

commit 5c73b371ae31f230210987941eec2db49d2e02be
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 04:20:06 2010 +0200

    doc: Document remaining cairo-device functions

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

commit 9877c1932a44f7e5300d6fcd99c19748aa5a4828
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 03:52:45 2010 +0200

    doc: Add more documentation for devices
    
    Add general docs and document acquire/release. I'm not happy with the
    documentation yet. In particular, I have 2 issues:
    1) The threading guarantees Cairo provides are missing.
    2) There's no docs on which Cairo functions do acquire devices.
    
    I guess I'll have to fix them later.

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

commit 739d6e35fa5632b80b888d6475f2fdb6be6054a6
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 03:04:27 2010 +0200

    doc: Clarify that cairo_surface_get_device() can return NULL

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

commit 65d0590b041835fb466f4a7073910ef1383d9e77
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 02:23:13 2010 +0200

    doc: Copy docs for standard device APIs
    
    Copied from the surface equivalents

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

commit 8a08b6fa5288f376688730c66ae9219d01180f42
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 02:21:00 2010 +0200

    doc: Remove the <TITLE> declarations
    
    This information was duplicated. It exists as the "@Title" of the
    SECTION inline documentation already.

 doc/public/cairo-sections.txt |   28 ----------------------------
 1 files changed, 0 insertions(+), 28 deletions(-)

commit 5e76bc6deb9fd4dc7a0f9181d3941ba55ce89c56
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 9 01:10:24 2010 +0200

    doc: Add missing region documentation

 src/cairo-region.c |   25 +++++++++++++++++++++++++
 src/cairo.h        |   13 +++++++++++++
 2 files changed, 38 insertions(+), 0 deletions(-)

commit 57da730d286f643c8f68b445907f7cdd1f53e5de
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 23:44:35 2010 +0200

    doc: Fix a syntax issue in quartz-font gtkdoc
    
    A missing empty line caused the long description to be part of
    @See_Also. Ooops.

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

commit fb03eba44f1ae7dd76dd3db82bfb55b06b0932ae
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jul 8 20:06:08 2010 +0200

    test: Add quartz functions to api-special-cases test

 test/api-special-cases.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

commit 59aab0bdc24838252850034cee36ed756f3c3e2a
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jul 8 20:05:13 2010 +0200

    test: fix typo

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

commit b870cc030d8e0eb6309695e5a101c802f688cf40
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 13:05:18 2010 +0200

    doc: Move tmpl/ docs to inline docs
    
    I did this manually so I could review the docs at the same time.
    If anyone finds typos or other mistakes I did, please complain to me (or
    better: fix them).

 doc/public/cairo-sections.txt           |    4 +-
 doc/public/tmpl/.gitignore              |    3 -
 doc/public/tmpl/cairo-atsui.sgml        |   21 -
 doc/public/tmpl/cairo-beos.sgml         |   22 -
 doc/public/tmpl/cairo-font-face.sgml    |  116 ------
 doc/public/tmpl/cairo-font-options.sgml |  199 ---------
 doc/public/tmpl/cairo-ft.sgml           |   87 ----
 doc/public/tmpl/cairo-image.sgml        |  127 ------
 doc/public/tmpl/cairo-matrix.sgml       |  169 --------
 doc/public/tmpl/cairo-paths.sgml        |  263 ------------
 doc/public/tmpl/cairo-pattern.sgml      |  350 ----------------
 doc/public/tmpl/cairo-pdf.sgml          |  101 -----
 doc/public/tmpl/cairo-png.sgml          |   96 -----
 doc/public/tmpl/cairo-ps.sgml           |  144 -------
 doc/public/tmpl/cairo-quartz-fonts.sgml |   52 ---
 doc/public/tmpl/cairo-quartz.sgml       |   64 ---
 doc/public/tmpl/cairo-scaled-font.sgml  |  227 -----------
 doc/public/tmpl/cairo-status.sgml       |   98 -----
 doc/public/tmpl/cairo-surface.sgml      |  326 ---------------
 doc/public/tmpl/cairo-svg.sgml          |   91 -----
 doc/public/tmpl/cairo-text.sgml         |  319 ---------------
 doc/public/tmpl/cairo-transforms.sgml   |  132 ------
 doc/public/tmpl/cairo-types.sgml        |   43 --
 doc/public/tmpl/cairo-user-fonts.sgml   |  169 --------
 doc/public/tmpl/cairo-version.sgml      |  205 ----------
 doc/public/tmpl/cairo-win32-fonts.sgml  |  106 -----
 doc/public/tmpl/cairo-win32.sgml        |  101 -----
 doc/public/tmpl/cairo-xcb-xrender.sgml  |   26 --
 doc/public/tmpl/cairo-xcb.sgml          |   26 --
 doc/public/tmpl/cairo-xlib-xrender.sgml |   60 ---
 doc/public/tmpl/cairo-xlib.sgml         |  147 -------
 doc/public/tmpl/cairo.sgml              |  674 -------------------------------
 src/cairo-beos-surface.cpp              |   10 +
 src/cairo-font-face.c                   |   17 +
 src/cairo-font-options.c                |   12 +
 src/cairo-ft-font.c                     |   25 ++
 src/cairo-image-surface.c               |   21 +
 src/cairo-matrix.c                      |   23 +
 src/cairo-misc.c                        |   20 +
 src/cairo-path.c                        |    9 +
 src/cairo-pattern.c                     |   17 +
 src/cairo-pdf-surface.c                 |   17 +
 src/cairo-png.c                         |   18 +
 src/cairo-ps-surface.c                  |   17 +
 src/cairo-quartz-font.c                 |   17 +
 src/cairo-quartz-surface.c              |   17 +
 src/cairo-scaled-font.c                 |   10 +
 src/cairo-surface.c                     |   47 +++
 src/cairo-svg-surface.c                 |   17 +
 src/cairo-types-private.h               |    8 +
 src/cairo-user-font.c                   |   22 +
 src/cairo-version.c                     |  156 +++++++
 src/cairo-win32-font.c                  |   17 +
 src/cairo-win32-surface.c               |   24 ++
 src/cairo-xcb-surface-render.c          |   13 +
 src/cairo-xcb-surface.c                 |   13 +
 src/cairo-xlib-surface.c                |   40 ++
 src/cairo.c                             |   57 +++
 58 files changed, 666 insertions(+), 4566 deletions(-)

commit 65a1e351330106ee0af9f6f0df06b82954341ee6
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 03:28:05 2010 +0200

    doc: Remove CAIRO_FORMAT_RGB16_565 from hidden symbols list
    
    It's part of the cairo_format_t documentation now.

 doc/public/cairo-sections.txt |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit e7594aebce6007bfa2027ba2655875db6c036e73
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 03:21:45 2010 +0200

    doc: Fix some consistency issues that confuse gtk-doc

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

commit da2663a0aa1e3f0a6b2f6ae2e9952ac27dec3f5d
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 03:14:42 2010 +0200

    doc: Add list of new symbol in Cairo 1.10

 doc/public/cairo-docs.xml |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit a106aa86a3267b4886f7eabdc4b07bb394e11531
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 03:13:20 2010 +0200

    doc: add --name-space option to gtkdoc-mkdb
    
    This sorts function names in new symbols lists way better.

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

commit 71d17e4b1f1cb83bc605d72d8419d4bfb824c828
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 02:42:39 2010 +0200

    drm: Fix Makefile for drm_xr
    
    Use cairo_drm_xr_sources/headers for the drm_xr stuff. This makes it
    work correctly in gtk-doc instead of conditionally adding it to
    cairo_drm_sources/headers.

 src/Makefile.sources |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

commit 4b3e488cebeeace02eae1164ed12caa93d7c5847
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 02:42:06 2010 +0200

    skia: Add cairo-skia.h as a public header

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

commit 2a546286da5fe7203846d99a4a3d732c73e62db5
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 02:20:17 2010 +0200

    doc: Add a section about regions

 doc/public/cairo-docs.xml     |    1 +
 doc/public/cairo-sections.txt |   30 ++++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)

commit ab1f6d1af7c0e47077013edd58e93fa9fc6f2b5c
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 01:41:27 2010 +0200

    doc: Add missing surface APIs

 doc/public/cairo-sections.txt |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 90bf273a38856d178e90721168b8b076f79fbf38
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 01:39:37 2010 +0200

    doc: Add a section for cairo_device_t

 doc/public/cairo-docs.xml     |    1 +
 doc/public/cairo-sections.txt |   18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

commit 60e4f28d091df8ac6b898448eb52fae9ca920d5d
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 01:39:07 2010 +0200

    doc: Add cairo_in_clip() to cairo_t section

 doc/public/cairo-sections.txt |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 6843186b729b20acddccd36184d2c5a7b5525d2e
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 01:38:43 2010 +0200

    doc: Add cairo_rectangle_int_t to the general types list

 doc/public/cairo-sections.txt |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit c54dff82d3055529b7663dcff7a970cae919a9e0
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 01:33:42 2010 +0200

    glew: The headers are private, not public

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

commit 4252e3b8f915fc23611f1a667bf7bc1bb6a21dfd
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 01:32:25 2010 +0200

    doc: Add drm and glew to the ignored directories
    
    This reduces the number of unused symbols to a reasonable size. ;)

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

commit 729d00341c26d46d82359014df97472a469e49a4
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 8 13:57:43 2010 +0200

    gl: Fix compile error after rebase failure

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

commit 292423c73376a7f9b84c9e3e578c242f486e921b
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jul 7 15:46:33 2010 -0400

    Support NOCONFIGURE environment variable
    
    This is taken from gnome-common; it can be convenient for builders
    to separate the autogen from the configure stage.

 autogen.sh |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 9e6c151af810886e94372ac8e4878915059c6c14
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Thu Jun 17 18:19:39 2010 -0400

    gl: Add new cairo-gl surface constructor to create surface for texture

 src/cairo-gl-private.h |    2 +
 src/cairo-gl-surface.c |  111 ++++++++++++++++++++++++++++++++++++++++++-----
 src/cairo-gl.h         |    4 ++
 3 files changed, 105 insertions(+), 12 deletions(-)

commit 4c91bb9a221bc8e3d65a96365bbd1157b3f4e612
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jul 6 17:27:18 2010 +0200

    region: Add cairo_region_xor() and cairo_region_xor_rectangle()
    
    gdk_region_xor() was a quite often used function in GDK and now that
    GDKe uses cairo regions, it seems like a worthwhile addition to Cairo.

 src/cairo-region.c |   80 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/cairo.h        |    6 ++++
 src/cairoint.h     |    2 +
 3 files changed, 88 insertions(+), 0 deletions(-)

commit 82de6336d88be43de759b94634e87b9e4a8391b1
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jul 6 00:48:36 2010 +0200

    test: Add note about how to fix failures to api-special-cases

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

commit 75f269b14e1e4cdadd8c08566a07b2460ae3364b
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jul 6 00:41:12 2010 +0200

    test: Add documentation to the api-special-cases test
    
    Hopefully people add other backend APIs to the testsuite.

 test/api-special-cases.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

commit 398870e64a18f32f1854cb19f64c34e2b1987140
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jul 6 00:21:38 2010 +0200

    xlib: Setters should set finished surfaces into an error status
    
    Caught by api-special-cases test

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

commit 6e562d1448eb70b7269f8f2f280719aa2aeb3ce7
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jul 6 00:20:57 2010 +0200

    xcb: Setters should set finished surfaces into an error status
    
    Caught by api-special-cases test

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

commit fa070704966f10e7264778a3ffb401054a68e8f7
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jul 6 00:20:36 2010 +0200

    test: Add xcb and xlib functions to api-special-cases test

 test/api-special-cases.c |   91 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 insertions(+), 0 deletions(-)

commit c4068fe9414bad663f77c030ac96fa4b4cba87ba
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 23:14:33 2010 +0200

    test: Add ps, pdf and svg to the api-special-cases test

 test/api-special-cases.c |  103 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 103 insertions(+), 0 deletions(-)

commit 3e008e8ab0a1c5254bd1d8a58c9e9a89846fe7ac
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 23:14:19 2010 +0200

    svg: Set error when extracting from finished surface
    
    Caught by api-special-cases test

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

commit 2e66cbaee2efc4a8eb2117f945d68e2816349cfe
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 23:10:12 2010 +0200

    ps: Allow specifying if errors on extract_surface should be set
    
    Getters should not set errors on passed in input. So we don't.
    
    Caught by api-special-cases test

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

commit f5dfc3ce6eab3bf836f2d7f7cf72d2834c42d72f
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 23:08:08 2010 +0200

    ps: Set error when extracting from finished surface
    
    Caught by api-special-cases test

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

commit 106357f6e28467f6db02e8d69c4aea459aca781c
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 23:07:24 2010 +0200

    pdf: Set error when extracting from finished surface
    
    Caught by api-special-cases test

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

commit 702aa19fdae8bd511c4374f580dde6503afd3341
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 22:50:44 2010 +0200

    gl: Fail properly when called with finished functions
    
    Caught by api-special-cases test

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

commit b87be76bdfcbd329c79a9f11b24d22010ad15dde
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 22:50:18 2010 +0200

    test: Add gl functions to the tests

 test/api-special-cases.c |   39 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 38 insertions(+), 1 deletions(-)

commit 448653e7b9938100c3f2e30e026fbc4d9de7d0d5
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 22:41:43 2010 +0200

    Call _cairo_error() when setting the FINISHED error on surfaces

 src/cairo-surface-subsurface.c |    2 +-
 src/cairo-surface.c            |   12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 19da8e138d317c1770d8bbd21a49c657d954f126
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 22:40:54 2010 +0200

    tee: Add proper error handling
    
    Caught by api-special-cases

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

commit a9f30fc1f0c3e50715468b09707477973bf5268b
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 22:30:55 2010 +0200

    test: Add recording and tee surface functions to api-special-cases

 test/api-special-cases.c |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

commit 41abc0ca37855751ed06051a30c0d866977ed2bd
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 22:19:05 2010 +0200

    test: add PNG functions

 test/api-special-cases.c |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

commit 897eaa3e97f865ad2c28442c26efaf4ba391cf03
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 22:11:23 2010 +0200

    test: Add a non-error surface check
    
    In that check, we call functions that require a specific surface type
    with surfaces of a different type and check that they don't crash and
    set the correct error.

 test/api-special-cases.c |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

commit 986ddf565215dc01065eade46921abe8a4b7912e
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 22:03:42 2010 +0200

    test: add image surface functions to api-special-cases test

 test/api-special-cases.c |   90 +++++++++++++++++++++++++++++++++------------
 1 files changed, 66 insertions(+), 24 deletions(-)

commit 72878d70ea75be03f47fa9d53f8305e76162054e
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 20:47:19 2010 +0200

    test: Add a new test variant to api-special-cases test
    
    This variant tests a (hopefully) inert error surface.

 test/api-special-cases.c |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

commit 9de25a0297c141a0776835920168afaa3ca77a87
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 18:33:40 2010 +0200

    configure: remove dolt
    
    libtool should be fast by now

 Makefile.am           |    5 +-
 build/aclocal.dolt.m4 |  178 -------------------------------------------------
 configure.ac          |    1 -
 3 files changed, 2 insertions(+), 182 deletions(-)

commit 6744b78de17930285569da2158a334763e2bd333
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 18:25:31 2010 +0200

    subsurface: Fail if created from a finished surface
    
    Caught by api-special-cases test

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

commit 8fd1ecea12f15c2bda710065909a14415ba92bd8
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 18:25:16 2010 +0200

    surface: Fail if set_mime_data() is called on a finished surface
    
    Caught by api-special-cases test

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

commit e388ff1ae732970d6166780817ec121cf58ccd0e
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 18:24:23 2010 +0200

    surface: Fail early if create_similar() is called on a finished surface
    
    Caught by api-special-cases test

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

commit c1689ef6f27f99c36e1a5f4de658363ca0aad25a
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 18:23:37 2010 +0200

    surface: don't call begin_modification on finished surfaces
    
    Fixes https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/600622
    
    Caught by api-special-cases test

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

commit cf0245c1201d4884ff19e881e9c118784fa14884
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 18:17:09 2010 +0200

    tests: Add a testcase that checks APIs work consistently
    
    In particular, it checks that finished and surfaces in an error state do
    not do bad things, like cause crashes.
    So far this test only checks surface APIs, but it should be extended to
    cover all APIs.
    
    Please update this test when new APIs get added.
    
    Motivated by https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/600622

 test/Makefile.sources          |    1 +
 test/api-special-cases.c       |  360 ++++++++++++++++++++++++++++++++++++++++
 test/api-special-cases.ref.png |  Bin 0 -> 95 bytes
 3 files changed, 361 insertions(+), 0 deletions(-)

commit eb63284fc3ae9377003ca312be58ae8f5dbbfdbd
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 00:37:10 2010 +0200

    configure: Use automake silent rules
    
    This replaces shave usage.
    If silent rules are not available, don't use them.

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

commit 68bbb6b4a0a3b9bc923ccf130b1ca4221a5e54bd
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 5 00:35:39 2010 +0200

    configure: remove shave

 build/.gitignore       |    2 -
 build/aclocal.shave.m4 |   77 ---------------------------------------------
 build/shave-libtool.in |   69 ----------------------------------------
 build/shave.in         |   82 ------------------------------------------------
 configure.ac           |    4 --
 5 files changed, 0 insertions(+), 234 deletions(-)

commit 9ce87c67ff64083ec48edfefe83a1df3756c364c
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Jul 3 02:54:55 2010 +0200

    perf: print comment describing backend
    
    Use the descibe string to output information about the backend we're
    testing.

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

commit fcfe7c67248ea171dc40c0dbd861e489a2df5941
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Jul 3 02:54:28 2010 +0200

    boilerplate: Add describe string
    
    Print the pixman version we're using

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

commit 0a7135148a634ea6692a4edd83193870a5d526b3
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Jul 3 02:54:08 2010 +0200

    gl: Add describe string

 boilerplate/cairo-boilerplate-glx.c |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

commit a1c4b001a548611b7d77e9280fdb5a82da275830
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 30 18:27:54 2010 +0200

    boilerplate: Add a describe vfunc
    
    This function is supposed to describe the backend in use. The describe
    function is optional - and therefore initialized as NULL everywhere.
    Note:
    It is well known that the xlib backend uses X. What is not known is what
    version the server supports or what graphics card it is running on. That
    is the information the describe vfunc is supposed to provide.

 boilerplate/Makefile.win32.features            |    8 ++++++++
 boilerplate/cairo-boilerplate-directfb.c       |    4 ++--
 boilerplate/cairo-boilerplate-drm.c            |    2 ++
 boilerplate/cairo-boilerplate-egl.c            |    1 +
 boilerplate/cairo-boilerplate-glx.c            |    4 ++++
 boilerplate/cairo-boilerplate-pdf.c            |    4 ++--
 boilerplate/cairo-boilerplate-ps.c             |    8 ++++----
 boilerplate/cairo-boilerplate-quartz.c         |    5 +++--
 boilerplate/cairo-boilerplate-script.c         |    2 +-
 boilerplate/cairo-boilerplate-skia.c           |    4 ++--
 boilerplate/cairo-boilerplate-svg.c            |    8 ++++----
 boilerplate/cairo-boilerplate-test-surfaces.c  |   16 ++++++++--------
 boilerplate/cairo-boilerplate-vg.c             |    4 ++++
 boilerplate/cairo-boilerplate-wgl.c            |    2 ++
 boilerplate/cairo-boilerplate-win32-printing.c |    4 ++--
 boilerplate/cairo-boilerplate-win32.c          |    4 ++--
 boilerplate/cairo-boilerplate-xcb.c            |    7 +++++++
 boilerplate/cairo-boilerplate-xlib.c           |    4 ++++
 boilerplate/cairo-boilerplate.c                |   10 +++++-----
 boilerplate/cairo-boilerplate.h                |    4 ++++
 build/Makefile.win32.features-h                |    1 +
 src/Makefile.win32.features                    |    8 ++++++++
 22 files changed, 80 insertions(+), 34 deletions(-)

commit 4c039b1cdfac5b5d6aa0c38f0779213fd14ec7de
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jul 2 17:01:12 2010 +0100

    user-font: Check the status before destroying the context

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

commit 1f84f5682c6ff246b3d28c75c8731504f31c1ee1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jul 2 13:19:17 2010 +0100

    xlib: Apply translation to image surface upload.
    
    Fixes:
    
      Bug 28888 - cairo_paint with rgb images does not work correctly
      https://bugs.freedesktop.org/show_bug.cgi?id=28888

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

commit d2d6c96c24501d888422ea42d3c90d3c8f3647a0
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jun 29 09:58:54 2010 +0200

    user-font: correct handling of size 0 text
    
    Text with size 0 has a singular scale matrix, thus requires special
    handling to avoid invalidating the context where it is used.
    
    Fixes pthread-show-text and text-zero-len (they failed with assertion
    when ran using the user font backend).

 src/cairo-matrix.c      |    9 +++++++
 src/cairo-scaled-font.c |    5 +--
 src/cairo-user-font.c   |   60 ++++++++++++++++++++++++++++------------------
 src/cairoint.h          |    3 ++
 4 files changed, 50 insertions(+), 27 deletions(-)

commit 6db247e13c6fa61879029b335c6fa649d810c11b
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jun 29 09:28:04 2010 +0200

    user-font: ignore translation in scale matrix
    
    Currently the translation component of the scaled_font scale matrix
    is applied by gstate and only linear components should be applied in
    font backends.
    
    Fixes font-matrix-translation (when using user-font as font backend).

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

commit 549431e98ed0be17b80f24f0e0c167c7ad632f4f
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Jun 28 22:40:28 2010 +0200

    ft-font: fix typo

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

commit 97a88c5adb08a3181bad1f63a7bbdfe5784b4207
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 28 17:10:59 2010 +0100

    xlib: Compile without fontconfig
    
    Create a cairo-fontconfig-private.h where we can add the missing defines
    in a common location rather than in the body of the code.

 src/Makefile.sources           |    1 +
 src/cairo-fontconfig-private.h |   76 ++++++++++++++++++++++++++++++++++++++++
 src/cairo-ft-font.c            |    5 +--
 src/cairo-surface-subsurface.c |    1 +
 src/cairo-xlib-screen.c        |   20 +----------
 5 files changed, 80 insertions(+), 23 deletions(-)

commit 7d6910014310344e5d16c97ffd1f1c9fbc01b143
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Jun 28 17:12:41 2010 +0200

    quartz: remove unused declarations

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

commit bd4c14b94eeb386b30439929e8e54a5d9b5d5fca
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jun 24 23:20:41 2010 +0200

    quartz: remove unused os version info
    
    It was previously used to activate a workaround for text transformation
    whenrunning on some os versions. Now the workaround is not needed anymore.

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

commit aa7e9c43b6381930455a68258dcc3e14dce2b0e4
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jun 24 14:18:02 2010 +0200

    quartz-font: correct and explain matrix computations
    
    glyph_path was taking into account the translation (which currently
    is already applied in gstate) and the sign of the elements of the
    matrices was not explained.

 src/cairo-quartz-font.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

commit b26f72fef99e9869a62cbb8e44a82837f87cf2c6
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jun 24 22:34:36 2010 +0200

    quartz: check return status
    
    If the font backend is unable to tell the extents of the operation,
    consider it unbound.

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

commit 9c0d761bfcdd28d52c83d74f46dd3c709ae0fa69
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jun 24 15:26:03 2010 +0200

    quartz: improve text transform handling
    
    Use scale instead of manually compositing font_matrix and ctm and
    composite it with the context ctm, so that no workaround for clipping
    is needed anymore.

 src/cairo-quartz-surface.c |   46 +++++++++++--------------------------------
 1 files changed, 12 insertions(+), 34 deletions(-)

commit 9068b5768b8560fbf095f1c0eecb5c805232f794
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jun 24 15:15:37 2010 +0200

    quartz-font: silence compiler warnings
    
    Remove an unused function, explicitly ignore or check return values,
    don't define unused variables.

 src/cairo-quartz-font.c |   84 +++++++++++++++++------------------------------
 1 files changed, 30 insertions(+), 54 deletions(-)

commit ca161a585a7ce09cfcd468ea7591c5959077a907
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 26 14:50:57 2010 +0100

    version: 1.9.9
    
    Post-snapshot bump.

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

commit 0f1ff0daab7259ec16076f788760da4f35cb0cdc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 26 14:20:25 2010 +0100

    test: Missing ref image.

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

commit 45d1f461ce2d2e3af16a5a90ffd8980bffc5eaa8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 26 14:17:23 2010 +0100

    version: 1.9.10

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

commit 7a68a7bfd550b5e4b6635495e7de49fe306fbad4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 26 14:16:27 2010 +0100

    NEWS for 1.9.10 snapshot

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

commit 8df41361196c7ba1b8d272507cc3d523cdcf5632
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 26 09:52:11 2010 +0100

    Regenerate default win32 headers.

 boilerplate/Makefile.win32.features |    8 --------
 build/Makefile.win32.features-h     |    1 -
 src/Makefile.win32.features         |    8 --------
 3 files changed, 0 insertions(+), 17 deletions(-)

commit 1373675ef7602363aeca0d9ec12be79719ea066d
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 25 14:10:12 2010 +0200

    pop-group: Translate existing path properly
    
    This fixes the reverse case of the push_group case fixed a few commits
    ago.

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

commit 59076776674e3ae47099f20e1d86064fbd856008
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 25 14:08:49 2010 +0200

    test: improve push-group-path-offset to also catch the pop_group() case
    
    cairo_pop_group() also trasnforms the path wrong, so we use cairo_fill()
    to copy data instead of cairo_paint().
    
    (Also, unbust the testcase.)

 test/push-group-path-offset.c |   45 ++++++++++++++--------------------------
 1 files changed, 16 insertions(+), 29 deletions(-)

commit 2e8571d95ca36f8ad9e20796990cdc0b3f763082
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 25 13:41:22 2010 +0200

    push-group: Fix path translation when pushing a group with device offsets
    
    With the previous code, the parent's device offset wasn't undone before
    applying the new device offset.
    Tested by push-group-path-offset test.

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

commit a9b8d1a94ea624ea8b12a125bdf70c6f248e7ca7
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 25 13:38:40 2010 +0200

    test: Add a new test for a bug with device-offset tests
    
    All the credit for this one goes to make distcheck

 test/Makefile.sources               |    1 +
 test/push-group-path-offset.c       |   90 +++++++++++++++++++++++++++++++++++
 test/push-group-path-offset.ref.png |  Bin 0 -> 186 bytes
 3 files changed, 91 insertions(+), 0 deletions(-)

commit 1099a3515b6a69e2ff360d8e6b1df71e3ea5c213
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 24 17:22:34 2010 +0100

    drm/intel: Fix common off-by-one by rewriting the [XY]MAX macro.
    
    Many rectangles in the command stream are specified as inclusive rects,
    i.e. the max values are (width-1, height-1), which is easy to neglect.

 src/drm/cairo-drm-i915-private.h          |    2 +-
 src/drm/cairo-drm-i915-surface.c          |   24 ++++++------------------
 src/drm/cairo-drm-i965-shader.c           |   12 ++++++------
 src/drm/cairo-drm-intel-command-private.h |    4 ++--
 4 files changed, 15 insertions(+), 27 deletions(-)

commit fb6a00571c818c738d66bc04dc75e79491878f78
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 14 10:19:37 2010 +0100

    drm: _cairo_color_get_content() compilation fixes

 src/drm/cairo-drm-i915-shader.c |    2 +-
 src/drm/cairo-drm-i965-shader.c |    5 +----
 src/drm/cairo-drm-intel.c       |    3 +--
 3 files changed, 3 insertions(+), 7 deletions(-)

commit 42956b46436b9704be7619e1b61ab222923376d0
Author: Zoxc <zoxc32@gmail.com>
Date:   Sun Jun 20 21:07:57 2010 +0000

    build: Added cairo deflate stream as a requirement for the script surface.

 src/Makefile.sources |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit b036a09972a19e63a85a4661a457525e2abe4026
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Jun 24 14:59:18 2010 +0300

    whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/.
    
    Ran a script to align the formal parameters of functions and
    collapse spaces to tabs in code.

 boilerplate/cairo-boilerplate-beos.cpp         |   42 +++++-----
 boilerplate/cairo-boilerplate-directfb.c       |   86 ++++++++++----------
 boilerplate/cairo-boilerplate-drm.c            |    2 +-
 boilerplate/cairo-boilerplate-egl.c            |   20 +++---
 boilerplate/cairo-boilerplate-getopt.c         |   12 ++--
 boilerplate/cairo-boilerplate-glx.c            |   60 +++++++-------
 boilerplate/cairo-boilerplate-pdf.c            |   24 +++---
 boilerplate/cairo-boilerplate-private.h        |    2 +-
 boilerplate/cairo-boilerplate-ps.c             |   49 ++++++------
 boilerplate/cairo-boilerplate-qt.cpp           |   18 ++--
 boilerplate/cairo-boilerplate-quartz.c         |   18 ++--
 boilerplate/cairo-boilerplate-scaled-font.h    |    2 +-
 boilerplate/cairo-boilerplate-script.c         |   30 ++++----
 boilerplate/cairo-boilerplate-skia.c           |   18 ++--
 boilerplate/cairo-boilerplate-svg.c            |   59 +++++++-------
 boilerplate/cairo-boilerplate-system.c         |   10 ++-
 boilerplate/cairo-boilerplate-system.h         |   10 ++-
 boilerplate/cairo-boilerplate-test-surfaces.c  |  100 ++++++++++++------------
 boilerplate/cairo-boilerplate-vg.c             |   36 ++++----
 boilerplate/cairo-boilerplate-wgl.c            |   58 +++++++-------
 boilerplate/cairo-boilerplate-win32-printing.c |   29 ++++---
 boilerplate/cairo-boilerplate-win32.c          |   18 ++--
 boilerplate/cairo-boilerplate-xcb.c            |   85 ++++++++++----------
 boilerplate/cairo-boilerplate-xlib.c           |   90 +++++++++++-----------
 boilerplate/cairo-boilerplate.c                |  102 ++++++++++++-----------
 boilerplate/cairo-boilerplate.h                |   44 ++++++-----
 perf/cairo-perf-chart.c                        |   38 ++++++---
 perf/cairo-perf-compare-backends.c             |   30 ++++---
 perf/cairo-perf-diff-files.c                   |   37 +++++----
 perf/cairo-perf-graph-files.c                  |   73 ++++++++++-------
 perf/cairo-perf-graph-widget.c                 |   60 +++++++++------
 perf/cairo-perf-graph.h                        |    8 +-
 perf/cairo-perf-micro.c                        |   82 ++++++++++---------
 perf/cairo-perf-os2.c                          |   10 +-
 perf/cairo-perf-posix.c                        |   24 +++---
 perf/cairo-perf-print.c                        |    5 +-
 perf/cairo-perf-report.c                       |   62 +++++++++------
 perf/cairo-perf-trace.c                        |   82 +++++++++++--------
 perf/cairo-perf-win32.c                        |    6 +-
 perf/cairo-perf.h                              |   38 +++++----
 perf/cairo-stats.c                             |   11 ++-
 perf/cairo-stats.h                             |    6 +-
 42 files changed, 850 insertions(+), 746 deletions(-)

commit 616e35d1fae703dc118ce503d25d4f57cfd16dfd
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Jun 24 09:44:07 2010 +0300

    boilerplate: Remove the xlib-window target from Renderless builds.
    
    I don't know why _cairo_boilerplate_xlib_window_create_surface()
    is in the Render-only section of the code, but since it is, this
    patch makes the boilerplate at least compile if we don't have
    Render support built in.

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

commit aed744008dbaab49f28f9c54ad0850074ece5d66
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
Date:   Thu Jun 24 05:38:14 2010 -0400

    test: Fix typo in copyright statement

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

commit 5c7e1dd690af21943435676bfac320cfe863cf55
Author: Soeren Sandmann <sandmann@daimi.au.dk>
Date:   Thu Jun 24 10:11:48 2010 +0100

    test: Add an example of seams.
    
    A pair of perfectly conjoint quads should not produce a seam when
    accumulating into a temporary mask. Yet here is an example of where they
    do!

 test/Makefile.am                     |    3 +
 test/Makefile.sources                |    1 +
 test/bug-seams.c                     |   98 ++++++++++++++++++++++++++++++++++
 test/bug-seams.ref.png               |  Bin 0 -> 1604 bytes
 test/bug-seams.xlib-fallback.ref.png |  Bin 0 -> 2133 bytes
 test/bug-seams.xlib.ref.png          |  Bin 0 -> 1606 bytes
 6 files changed, 102 insertions(+), 0 deletions(-)

commit 413ec4b708a511eb2f3866165a35d3a8d97bd326
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jun 22 23:19:32 2010 +0200

    gl: Return a surface from _cairo_surface_create_in_error()
    
    On error, surface creation functions should always return a surface
    created with _cairo_surface_create_in_error() instead of a new surface
    in an error state. This simplifies internal code as no refcounting has
    to be done.

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

commit a4e292507cf7c2f960d040edd57b56a976c73da6
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jun 22 22:01:25 2010 +0200

    gl: Propagate surface creation error instead of crashing

 src/cairo-gl-glyphs.c |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

commit faa4e6761c8f74a1acaa7ccc5bc8bb23b2f5cdb1
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jun 21 14:01:34 2010 +0200

    egl: Copy glx code to detect the proper surface in acquire

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

commit 76a721f7e94fb040f106b200c09c1a7b9ae83d36
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jun 21 13:30:06 2010 +0200

    egl: Remove unused prev_foo usage

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

commit b8051ee985ed46c69f5fba1216ead1ebacecfd44
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 19 18:09:27 2010 +0100

    script: Pass the buffer length back to freetype.
    
    After querying the required size, inform the backend of the allocated
    size of the buffer.

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

commit 8ac9a9df24eefc5f1125db87eb8eda2e94f54070
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 19 13:23:50 2010 +0100

    xcb: Return the status upon flushing the device.
    
    The vfunc was updated to expect the status return, so supply it.

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

commit 9fffc0e120df8947c34d9e423c69ab66b763d875
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 19 11:15:13 2010 +0100

    xlib: Precise and Imprecise were reversed.
    
    The intention was to switch to imprecise mode by default, using the
    exact rendering mode only upon request.

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

commit b322b2e61984c2e9e00fb44343ebe5e423246445
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 19 10:26:05 2010 +0100

    xlib: Perform image uploads inplace.
    
    Under the restrictive conditions where we are doing an untransformed
    contained upload of an image into a matching surface, perform it in
    place. The drivers will attempt to stream such uploads efficiently, far
    more so than our code.

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

commit c3eb95bf6670bbc06ef908481da95f3504c7dc4d
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 19:26:07 2010 +0200

    egl: Fail properly if no configs are available instead of crashing

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

commit 3908d80f57bc0abef47721a5b8b9afd5041118e3
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 16:11:20 2010 +0200

    glx: Remove useless optimization trying to avoid glXMakeCurrent()
    
    The optimization is not performance-relevant. And having less code is
    always a good idea.

 src/cairo-glx-context.c |   19 ++-----------------
 1 files changed, 2 insertions(+), 17 deletions(-)

commit 64f90322f73c37ac5667292949bb45b0279239d9
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 12:40:48 2010 +0200

    gl: Refactor status handling in _cairo_gl_context_release()
    
    Previously, the code returned a status and required the caller to mangle
    this status with his own status. Now, the function takes the previous
    status ass an argument and does the mangling itself.
    
    Also contains fixes for all the callers to actually check the return
    value - which is now rather trivial as it just requires passing through
    the status variable.

 src/cairo-gl-composite.c |    6 +---
 src/cairo-gl-device.c    |    2 +-
 src/cairo-gl-glyphs.c    |   14 ++++--------
 src/cairo-gl-gradient.c  |    3 +-
 src/cairo-gl-private.h   |   14 +++++++-----
 src/cairo-gl-surface.c   |   47 ++++++++++++++++++++++++---------------------
 6 files changed, 43 insertions(+), 43 deletions(-)

commit fc3d521c121da237974e486f1b7735009764b441
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 12:23:37 2010 +0200

    gl: Inline the check_error() function

 src/cairo-gl-private.h |   23 +++++++----------------
 1 files changed, 7 insertions(+), 16 deletions(-)

commit 9d7fa289132650261e546b39af2371c262f46d3c
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 12:18:05 2010 +0200

    gl: Don't assert if there used to be a GL error
    
    When acquiring the GL context, do not assert that the GL context is not
    in an error state. Do not even call _cairo_error(). Handling GL errors
    in other code is not Cairo's responsibility.
    
    Instead just clear all previous errors so we don't accidentally set
    surfaces into error states to unrelated errors.

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

commit 0f9a8cd18f14b1f23aaefe14db3b5ad07c84cff7
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 12:17:36 2010 +0200

    gl: Add a custom glGetError() function
    
    This function clears all errors and returns the first one that happened.

 src/cairo-gl-private.h |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

commit 8048d3aa0a11ab1c054887682b8b2a899a87da0e
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 10:50:21 2010 +0200

    gl: Remove custom fprintf fudging on GL errors
    
    Now that we probably call _cairo_error() on every GL error, there is no
    need to use custom methods to catch those errors. The usual breakpoint
    is enough.

 src/cairo-gl-private.h |    7 +------
 src/cairo-gl-surface.c |   20 --------------------
 2 files changed, 1 insertions(+), 26 deletions(-)

commit f4da5048bf87df0651ec83ca3f1ad6a5af7eb16d
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 10:44:15 2010 +0200

    gl: cairo_warn about return value from cairo_gl_context_release()

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

commit d9179f480a43c7171806e2c33804aaae70a2cfa6
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 18 00:43:09 2010 +0200

    boilerplate: Reinstate glFinish() for wgl
    
    It was accidentally disabled.

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

commit 67e84d61230a2012c18d8bff60e8835aaa57be07
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Thu Jun 17 17:38:00 2010 -0400

    egl: Implement acquire and release for EGL backend

 src/cairo-egl-context.c |   46 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 37 insertions(+), 9 deletions(-)

commit 7ab9ce1b9130dcd63b2b2b2516b77ef1ae531144
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 17 15:47:04 2010 +0100

    image: Make a local copy of the trap coordinates as the boxes alias.
    
    As we transform the array of trapezoids into an array of boxes in-place,
    we must take local copies of the coordinates before writing into the
    boxes otherwise we may inadvertently modify the trapezoidal coordinates.
    
    Fixes test/a1-bug.

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

commit f2645fa361003636d1da6ca38c3b61fef1b1ce4d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 17 15:38:53 2010 +0100

    test: Add a1-bug
    
    Capture a bug report from "cairouser" where a1 rasterisation is now
    broken.

 test/Makefile.am            |    3 ++
 test/Makefile.sources       |    1 +
 test/a1-bug.c               |   61 +++++++++++++++++++++++++++++++++++++++++++
 test/a1-bug.image16.ref.png |  Bin 0 -> 3329 bytes
 test/a1-bug.ref.png         |  Bin 0 -> 3736 bytes
 test/a1-bug.xlib.ref.png    |  Bin 0 -> 3362 bytes
 6 files changed, 65 insertions(+), 0 deletions(-)

commit 800e977c2ea1e097c4b7332b18a5fc03089603c1
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Jun 17 14:27:13 2010 +0300

    perf: Allow comparing perf reports with only one difference.
    
    The cairo-perf-diff-files tool would ignore perf reports with
    just one test for no apparent reason.  The traces take so long
    that it's useful to be able to compare runs with just one trace.

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

commit 29b8cfd2b6cf590fcfe64e5ba5b4479c2748ac06
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 17 10:11:31 2010 +0100

    test/halo: Remove copied code.
    
    How did that get there? I obviously ran the test to generate the output,
    so where did it spring as it is the old version of the function?
    
    From 16364768d79570e7201a87f0a985c65acaff5560.
    
    Mysteries will never cease.

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

commit a9a22649e2ffa1cd3720c8555dc3c6aff2040e3d
Author: Zoxc <zoxc32@gmail.com>
Date:   Wed Jun 16 21:33:30 2010 +0200

    wgl: Only reset GL context on the dummy window.
    
    This changes the WGL context destruction code to only reset the GL
    context for the dummy window, since doing it on <nothing> is an
    invalid operation.

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

commit ca35e09ece5107c3ebc9f111d4a3d96d69aa3d03
Author: Zoxc <zoxc32@gmail.com>
Date:   Mon Jun 14 20:34:52 2010 +0200

    gl: Added wgl boilerplate and moved the glx and egl boilerplates into their own files.

 boilerplate/Makefile.sources        |    4 +-
 boilerplate/Makefile.win32.features |    8 +
 boilerplate/cairo-boilerplate-egl.c |  141 ++++++++++
 boilerplate/cairo-boilerplate-gl.c  |  492 -----------------------------------
 boilerplate/cairo-boilerplate-glx.c |  401 ++++++++++++++++++++++++++++
 boilerplate/cairo-boilerplate-wgl.c |  236 +++++++++++++++++
 build/Makefile.win32.features-h     |    1 +
 src/Makefile.win32.features         |    8 +
 8 files changed, 798 insertions(+), 493 deletions(-)

commit 2af3262895d74492a0f856f049d1524a527257bb
Author: Zoxc <zoxc32@gmail.com>
Date:   Mon Jun 14 20:33:17 2010 +0200

    wgl: Renamed hwnd field to wnd.

 src/cairo-wgl-context.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 7a023a62f7517ad0d54f4d59c99909fadcc05e82
Author: Nicolaus L Helper <nlhepler@gmail.com>
Date:   Thu Jun 17 08:56:30 2010 +0100

    ft,fc,xlib: LCD filtering patch.
    
    This adds internal API to retrieve the LCD filtering parameters from
    fontconfig, or as set on the Screen, and feed them to FreeType when
    rendering the glyph.
    
    References:
      Bug 10301 - LCD filtering patch
      https://bugs.freedesktop.org/show_bug.cgi?id=10301
    
    Tested-by: Brandon Wright <bearoso@gmail.com>
    Forward-ported-by: Robert Hooker <sarvatt@gmail.cm>
    
    ickle: The API is clearly not ready for public consumption, the enum are
    poorly named, however this stands by itself as enabling system wide
    properties.

 src/cairo-font-options.c  |   51 ++++-
 src/cairo-ft-font.c       |  675 ++++++++++++++++++++++++++++++++-------------
 src/cairo-surface.c       |    1 +
 src/cairo-types-private.h |   25 ++
 src/cairo-xlib-screen.c   |   28 ++
 src/cairoint.h            |    7 +
 6 files changed, 597 insertions(+), 190 deletions(-)

commit 36b4b0631cc220d01c411b596a4eef839338cd7c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 17 08:50:31 2010 +0100

    image: Use consistent rounding modes for a1 rasterisation.
    
    When checking if the traps are equivalent to a set of rectangles, we
    need to use the same rounding mode as when converting the traps to a set
    of boxes and then filling them. Failure to do leads to a situation where
    (-127,-128) was thought to be equivalent to (0,0) but we attempted to
    fill from 0 to -1 instead.
    
    References:
      http://lists.cairographics.org/archives/cairo/2010-June/020115.html

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

commit 3306bcb1d91265d60c460aa64d3ee4a4acb430a1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 17 08:47:48 2010 +0100

    fixed: Refactor code to use more inlines and less duplication of logic.
    
    This also has the side-effect of fixing the types in the problematic
    functions which hid Andrea's true fix for the unsigned FRAC_MASK.

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

commit c0dee7964c4394b7963041f246855fd3b01f4ebb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 16 18:49:58 2010 +0100

    test: Add a1-rasterisation
    
    Check the rounding criteria when rasterising.

 test/Makefile.am                         |    2 +
 test/Makefile.sources                    |    1 +
 test/a1-rasterisation-rectangles.ref.png |  Bin 0 -> 1729 bytes
 test/a1-rasterisation-triangles.ref.png  |  Bin 0 -> 1729 bytes
 test/a1-rasterisation.c                  |  101 ++++++++++++++++++++++++++++++
 5 files changed, 104 insertions(+), 0 deletions(-)

commit 16364768d79570e7201a87f0a985c65acaff5560
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 16 15:09:22 2010 +0100

    test/halo: Transformation seems key to the bug...

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

commit cb28e0bfeb47a72f14ee42f161ebf6b5eb61e76b
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jun 17 08:42:39 2010 +0200

    test: correct options in getopt call
    
    'k' was missing and 't' was present but unhandled. Options have been
    reordered according to the "USAGE" ordering.

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

commit 3cd07559328b60e3da85debb805cb4a3fc4abc22
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Jun 16 22:54:08 2010 +0200

    correct rounding computation
    
    cairo_fixed_integer_round[_down] were adding an unsigned mask value
    before shifting its result, causing the shift to be computed as
    logical (unsigned) right shift, thus producing incorrect values for
    negative inputs. Making the mask value signed fixes this issue.
    
    Bug report by cu:
    http://lists.cairographics.org/archives/cairo/2010-June/020115.html

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

commit 8689d75caaa9c6ee42976873d21684fa9f48834f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 16 15:09:22 2010 +0100

    test/halo: Transformation seems key to the bug...
    
    Only it is actually transformation of the result that is required in
    order to magnify the effect to a detectable level.

 test/Makefile.am                    |    5 +++
 test/halo-transform.image16.ref.png |  Bin 0 -> 10983 bytes
 test/halo-transform.ps.ref.png      |  Bin 0 -> 8691 bytes
 test/halo-transform.ref.png         |  Bin 0 -> 15086 bytes
 test/halo-transform.xlib.ref.png    |  Bin 0 -> 15346 bytes
 test/halo.c                         |   64 +++++++++++++++++++++++++++++++++-
 test/halo.image16.ref.png           |  Bin 5328 -> 6172 bytes
 test/halo.ps.ref.png                |  Bin 0 -> 5220 bytes
 test/halo.ref.png                   |  Bin 7524 -> 8839 bytes
 test/halo.xlib.ref.png              |  Bin 7404 -> 8835 bytes
 10 files changed, 67 insertions(+), 2 deletions(-)

commit 71936a1f414807a51c68de111362c2d5499bdfa7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 15 21:36:15 2010 +0100

    test/aliasing: Add a few more colour combinations.
    
    In particular, compare red against its inverse, cyan. Etc.

 test/aliasing.c               |    6 +++++-
 test/aliasing.image16.ref.png |  Bin 20810 -> 97251 bytes
 test/aliasing.ref.png         |  Bin 22980 -> 104672 bytes
 test/aliasing.xlib.ref.png    |  Bin 24018 -> 104315 bytes
 4 files changed, 5 insertions(+), 1 deletions(-)

commit e2220a1f3a7b483e615f5bb993a014d20b0f788a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 15 11:45:54 2010 +0100

    configure: Try an alternate name for system glew.

 configure.ac |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

commit 25ec0c1e9b5af2ba68200b79b252de5c1b371d0a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 15 10:59:01 2010 +0100

    build: Enable system GLEW on non-UNIX platforms

 configure.ac |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

commit 52624446636bb5941ca2180afa2c0be275414cec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 15 10:40:36 2010 +0100

    glew: Define NULL

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

commit 56d06b088b9c355ca76a38191717a8e03aa5f59a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 14 22:58:38 2010 +0100

    test: Add an aliasing test case.
    
    Just a simple test in drawing neighbouring edges and looking for the
    effects of aliasing.

 test/Makefile.am              |    3 +
 test/Makefile.sources         |    1 +
 test/aliasing.c               |   98 +++++++++++++++++++++++++++++++++++++++++
 test/aliasing.image16.ref.png |  Bin 0 -> 20810 bytes
 test/aliasing.ref.png         |  Bin 0 -> 22980 bytes
 test/aliasing.xlib.ref.png    |  Bin 0 -> 24018 bytes
 6 files changed, 102 insertions(+), 0 deletions(-)

commit 4b39f02bf7e8b4921518db4a2d8564514cb323a9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 14 20:38:26 2010 +0100

    test: Add halo
    
    halo uses text_path + stroke + (fill | show_text)  to generate a "halo"
    around the string. This is to try to replicate a bug described by Ian
    Britten in the PDF backend where the rendering of the show_text looked
    distorted compared to the stroke.

 test/Makefile.am          |    3 +
 test/Makefile.sources     |    1 +
 test/halo.c               |   98 +++++++++++++++++++++++++++++++++++++++++++++
 test/halo.image16.ref.png |  Bin 0 -> 5328 bytes
 test/halo.ref.png         |  Bin 0 -> 7524 bytes
 test/halo.xlib.ref.png    |  Bin 0 -> 7404 bytes
 6 files changed, 102 insertions(+), 0 deletions(-)

commit 072a200ec502bf5ac3e62702e6f14ed18171b1e0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 14 16:05:14 2010 +0100

    build: Add wgl to Makefile.sources and regenerate features.

 boilerplate/Makefile.win32.features |   10 ++++++++++
 build/Makefile.win32.features       |    1 +
 build/Makefile.win32.features-h     |    3 +++
 src/Makefile.sources                |    6 ++++--
 src/Makefile.win32.features         |   14 ++++++++++++++
 5 files changed, 32 insertions(+), 2 deletions(-)

commit 4a0bd91ff77c8afddde6d09495bc9ca7242f953d
Author: Dmitri Vorobiev <dmitri.vorobiev@movial.com>
Date:   Mon Jun 14 16:40:39 2010 +0300

    scaled-font: fine-tune caching
    
    This patch implements the ideas outlined by Behdad Esfahbod in the following
    mailing list message:
    
    http://lists.cairographics.org/archives/cairo/2010-June/020065.html
    
    Specifically, two things have been adjusted. First, the size of the look-up
    table was reduced to 64. Second, cache codepath is now bypassed for strings
    that are shorter than 16, not only for one-character strings. This allowed
    us to reduce the LUT initialization overhead while still retaining the
    advantage of caching for common-case string sizes.
    
    We have experimented with different LUT sizes, and it came out that the size
    of 64 is the best one in view of speed, at least for our language-neutral
    benchmark, which generated random strings of printable ASCII characters.
    
    Below is a table presenting benchmark results for different values of LUT
    size:
    
    ===============================================================================
     Benchmark		| [1]	| [2]	| [3]	| [4]	| [5]	| [6]	| [7]
    ===============================================================================
    8px text, 1 chars	| 0.41	| 0.41	| 0	| 0.41	| 0	| 0.41	| 0
    8px text, 10 chars	| 2.13	| 2.21	| 3.76	| 2.19	| 2.82	| 2.09	| -1.88
    8px text, 20 chars	| 2.97	| 3.04	| 2.36	| 3.01	| 1.35	| 2.98	| 0.34
    12px text, 1 chars	| 0.94	| 0.94	| 0	| 0.95	| 1.06	| 0.94	| 0
    12px text, 10 chars	| 4.73	| 4.89	| 3.38	| 4.9	| 3.59	| 4.82	| 1.9
    12px text, 20 chars	| 6.32	| 6.42	| 1.58	| 6.46	| 2.22	| 6.32	| 0
    16px text, 1 chars	| 1.75	| 1.76	| 0.57	| 1.77	| 1.14	| 1.76	| 0.57
    16px text, 10 chars	| 8.13	| 8.45	| 3.94	| 8.43	| 3.69	| 8.44	| 3.81
    16px text, 20 chars	| 10.41	| 10.69	| 2.69	| 10.64	| 2.21	| 10.65	| 2.31
    24px text, 1 chars	| 3.3	| 3.3	| 0	| 3.32	| 0.61	| 3.3	| 0
    24px text, 10 chars	| 14.68	| 14.97	| 1.98	| 14.97	| 1.98	| 14.87	| 1.29
    24px text, 20 chars	| 17.93	| 18.01	| 0.45	| 18.06	| 0.73	| 17.81	| -0.67
    96px text, 1 chars	| 23.65	| 23.38	| -1.14	| 23.74	| 0.38	| 23.65	| 0
    96px text, 5 chars	| 50.52	| 51.34	| 1.62	| 51.48	| 1.9	| 51.41	| 1.76
    96px text, 10 chars	| 57.5	| 58.11	| 1.06	| 58.27	| 1.34	| 58.04	| 0.94
    ===============================================================================
    
    [1]: Git head, Mpix/s
    [2]: {GLYPH_LUT_SIZE = 32, CACHING_THRESHOLD = 16}
    [3]: Gain of {32, 16} w.r.t. Git head
    [4]: {GLYPH_LUT_SIZE = 64, CACHING_THRESHOLD = 16}
    [5]: Gain of {64, 16} w.r.t. Git head
    [6]: {GLYPH_LUT_SIZE = 128, CACHING_THRESHOLD = 16}
    [7]: Gain of {128, 16} w.r.t. Git head
    
    The benchmark itself can be found from this mailing list message:
    
    http://lists.cairographics.org/archives/cairo/2010-June/020064.html

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

commit 505a0456d2498112155db7e7f275a14dc98f643e
Author: Zoxc <zoxc32@gmail.com>
Date:   Mon Jun 14 01:20:54 2010 +0200

    gl: Added WGL context and surface.

 build/configure.ac.features |    1 +
 configure.ac                |    9 ++
 src/cairo-gl.h              |   16 +++
 src/cairo-wgl-context.c     |  253 +++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 279 insertions(+), 0 deletions(-)

commit fd6c38b9e006feefa20ce4f54d3108dad51c828d
Author: Zoxc <zoxc32@gmail.com>
Date:   Mon Jun 14 01:04:10 2010 +0200

    win32: Fixed compile errors in Windows backend.

 src/cairo-win32-printing-surface.c |    9 ++++-----
 src/cairo-win32-surface.c          |    4 ++--
 2 files changed, 6 insertions(+), 7 deletions(-)

commit 5f10139cd92383c657e328ffad41874c4f668551
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 13 12:33:10 2010 +0100

    NEWS: A couple more tweaks
    
    I only spotted these in the release announcement.

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

commit 4932aaa3173799c8f3ac30e4c9a594c20c83a121
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 13 12:02:53 2010 +0100

    version: 1.9.9
    
    Post-snapshot bump.

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

commit 3a20b10cd0d94406fbd5fe3bb3d4820a95364537
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 13 10:27:03 2010 +0100

    version: 1.9.8
    
    Snapshot time!

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

commit b612a230865a1a62f9cdcb051de9b57b509646b2
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Jun 13 12:29:24 2010 +0200

    test: update quartz ref images in makefile

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

commit 0693af2328606a4c7e4c888d2a1cd346e6bef405
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 13 10:22:37 2010 +0100

    test: Move all output below test/output/
    
    make distcheck complains of remanents being left under test/ after a
    clean, notably the files used to check the capabilities of a similar
    surface and the fallback-resolution output.

 test/cairo-test.c          |   53 ++++++++++++++++++++++++-------------------
 test/fallback-resolution.c |   30 +++++++++++++++++++++---
 2 files changed, 56 insertions(+), 27 deletions(-)

commit ffc3a39c95e918fa2fcd14c1b1063b9a9acceebf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 20:04:36 2010 +0100

    NEWS: Minor tweaks.

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

commit b6e16b8d2950cdadf2e2b14b0e7502d4a9ebdc09
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Jun 12 10:33:35 2010 +0200

    test: quartz ref image refresh

 test/a1-image-sample.quartz.xfail.png              |  Bin 0 -> 972 bytes
 test/a1-mask-sample.quartz.xfail.png               |  Bin 0 -> 972 bytes
 test/a1-traps-sample.quartz.xfail.png              |  Bin 0 -> 122 bytes
 test/big-line.quartz.ref.png                       |  Bin 0 -> 993 bytes
 test/caps-joins-curve.quartz.ref.png               |  Bin 0 -> 5199 bytes
 test/clear.quartz.argb32.ref.png                   |  Bin 0 -> 691 bytes
 test/clear.quartz.rgb24.ref.png                    |  Bin 0 -> 606 bytes
 test/clip-disjoint.quartz.ref.png                  |  Bin 0 -> 5476 bytes
 test/clip-fill-rule.quartz.rgb24.ref.png           |  Bin 0 -> 363 bytes
 test/clip-fill-unbounded.quartz.argb32.ref.png     |  Bin 0 -> 1436 bytes
 test/clip-fill-unbounded.quartz.rgb24.ref.png      |  Bin 0 -> 1368 bytes
 test/clip-fill.quartz.ref.png                      |  Bin 0 -> 875 bytes
 test/clip-group-shapes-circles.quartz.ref.png      |  Bin 0 -> 1518 bytes
 test/clip-nesting.quartz.argb32.ref.png            |  Bin 0 -> 1048 bytes
 test/clip-nesting.quartz.ref.png                   |  Bin 1067 -> 0 bytes
 test/clip-nesting.quartz.rgb24.ref.png             |  Bin 956 -> 937 bytes
 test/clip-operator.quartz.argb32.ref.png           |  Bin 0 -> 9586 bytes
 test/clip-operator.quartz.ref.png                  |  Bin 9539 -> 0 bytes
 test/clip-operator.quartz.rgb24.ref.png            |  Bin 4412 -> 4104 bytes
 test/clip-push-group.quartz.ref.png                |  Bin 203 -> 166 bytes
 test/clip-shape.quartz.ref.png                     |  Bin 0 -> 3229 bytes
 test/clip-stroke-unbounded.quartz.argb32.ref.png   |  Bin 0 -> 1493 bytes
 test/clip-stroke-unbounded.quartz.rgb24.ref.png    |  Bin 0 -> 1356 bytes
 test/clip-stroke.quartz.ref.png                    |  Bin 0 -> 1305 bytes
 test/clip-text.quartz.ref.png                      |  Bin 0 -> 854 bytes
 test/clip-twice.quartz.argb32.ref.png              |  Bin 0 -> 1171 bytes
 test/clip-twice.quartz.ref.png                     |  Bin 1171 -> 0 bytes
 test/clip-twice.quartz.rgb24.ref.png               |  Bin 1111 -> 1095 bytes
 test/clipped-group.quartz.ref.png                  |  Bin 0 -> 308 bytes
 test/culled-glyphs.quartz.ref.png                  |  Bin 0 -> 493 bytes
 test/dash-caps-joins.quartz.ref.png                |  Bin 4727 -> 0 bytes
 test/dash-caps-joins.quartz.xfail.png              |  Bin 0 -> 4446 bytes
 test/dash-curve.quartz.ref.png                     |  Bin 47965 -> 0 bytes
 test/dash-curve.quartz.xfail.png                   |  Bin 0 -> 42238 bytes
 test/dash-scale.quartz.ref.png                     |  Bin 8079 -> 7614 bytes
 test/dash-state.quartz.ref.png                     |  Bin 8698 -> 0 bytes
 test/dash-state.quartz.xfail.png                   |  Bin 0 -> 6957 bytes
 test/degenerate-arc.quartz.ref.png                 |  Bin 0 -> 552 bytes
 test/degenerate-curve-to.quartz.ref.png            |  Bin 0 -> 247 bytes
 test/degenerate-dash.quartz.xfail.png              |  Bin 0 -> 1560 bytes
 test/degenerate-path.quartz.argb32.xfail.png       |  Bin 0 -> 200 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.quartz.rgb24.xfail.png        |  Bin 0 -> 172 bytes
 test/degenerate-pen.quartz.ref.png                 |  Bin 1144 -> 0 bytes
 test/degenerate-rel-curve-to.quartz.ref.png        |  Bin 0 -> 246 bytes
 test/extend-pad-border.quartz.ref.png              |  Bin 0 -> 432 bytes
 test/extend-pad-similar.quartz.xfail.png           |  Bin 0 -> 270 bytes
 test/extend-pad.quartz.xfail.png                   |  Bin 0 -> 270 bytes
 test/fill-alpha-pattern.quartz.ref.png             |  Bin 0 -> 7943 bytes
 test/fill-alpha.quartz.ref.png                     |  Bin 0 -> 2704 bytes
 test/fill-and-stroke-alpha-add.quartz.ref.png      |  Bin 603 -> 542 bytes
 test/fill-and-stroke-alpha.quartz.ref.png          |  Bin 550 -> 0 bytes
 test/fill-and-stroke.quartz.argb32.ref.png         |  Bin 0 -> 273 bytes
 test/fill-and-stroke.quartz.ref.png                |  Bin 286 -> 0 bytes
 test/fill-and-stroke.quartz.rgb24.ref.png          |  Bin 264 -> 249 bytes
 ...ill-degenerate-sort-order.quartz.argb32.ref.png |  Bin 0 -> 2451 bytes
 test/fill-degenerate-sort-order.quartz.ref.png     |  Bin 2470 -> 0 bytes
 ...fill-degenerate-sort-order.quartz.rgb24.ref.png |  Bin 2098 -> 2079 bytes
 test/fill-image.quartz.ref.png                     |  Bin 0 -> 1297 bytes
 test/fill-rule.quartz.argb32.ref.png               |  Bin 0 -> 2060 bytes
 test/fill-rule.quartz.ref.png                      |  Bin 2079 -> 0 bytes
 test/fill-rule.quartz.rgb24.ref.png                |  Bin 1790 -> 1771 bytes
 test/filter-bilinear-extents.quartz.xfail.png      |  Bin 0 -> 308 bytes
 test/filter-nearest-offset.quartz.xfail.png        |  Bin 0 -> 2130 bytes
 test/filter-nearest-transformed.quartz.xfail.png   |  Bin 0 -> 534 bytes
 test/finer-grained-fallbacks.quartz.argb32.ref.png |  Bin 0 -> 988 bytes
 test/finer-grained-fallbacks.quartz.rgb24.ref.png  |  Bin 0 -> 763 bytes
 test/font-matrix-translation.quartz.ref.png        |  Bin 1090 -> 996 bytes
 test/ft-show-glyphs-table.quartz.xfail.png         |  Bin 0 -> 827 bytes
 .../ft-text-vertical-layout-type1.quartz.xfail.png |  Bin 0 -> 3635 bytes
 test/ft-text-vertical-layout-type3.quartz.ref.png  |  Bin 0 -> 3573 bytes
 test/glyph-cache-pressure.quartz.ref.png           |  Bin 3654 -> 3284 bytes
 test/gradient-constant-alpha.quartz.argb32.ref.png |  Bin 0 -> 214 bytes
 test/group-unaligned.quartz.ref.png                |  Bin 0 -> 363 bytes
 test/huge-radial.quartz.ref.png                    |  Bin 0 -> 84690 bytes
 test/inverse-text.quartz.ref.png                   |  Bin 0 -> 2565 bytes
 test/joins.quartz.ref.png                          |  Bin 0 -> 5833 bytes
 test/leaky-dash.quartz.ref.png                     |  Bin 241 -> 195 bytes
 test/leaky-dashed-rectangle.quartz.ref.png         |  Bin 0 -> 339 bytes
 test/leaky-dashed-stroke.quartz.ref.png            |  Bin 0 -> 9229 bytes
 test/line-width-scale.quartz.ref.png               |  Bin 6434 -> 5623 bytes
 test/linear-gradient-reflect.quartz.ref.png        |  Bin 878 -> 780 bytes
 test/linear-gradient-subset.quartz.ref.png         |  Bin 0 -> 887 bytes
 test/linear-gradient.quartz.ref.png                |  Bin 1164 -> 1060 bytes
 test/long-dashed-lines.quartz.ref.png              |  Bin 2313 -> 2068 bytes
 test/mask-alpha.quartz.argb32.ref.png              |  Bin 641 -> 622 bytes
 test/mask-transformed-image.quartz.ref.png         |  Bin 0 -> 3909 bytes
 test/mask-transformed-similar.quartz.ref.png       |  Bin 0 -> 3909 bytes
 test/mask.quartz.argb32.ref.png                    |  Bin 0 -> 10575 bytes
 test/mask.quartz.ref.png                           |  Bin 10682 -> 0 bytes
 test/mask.quartz.rgb24.ref.png                     |  Bin 8418 -> 8354 bytes
 test/new-sub-path.quartz.ref.png                   |  Bin 383 -> 370 bytes
 test/new-sub-path.quartz.rgb24.ref.png             |  Bin 357 -> 0 bytes
 test/operator-clear.quartz.argb32.ref.png          |  Bin 0 -> 1228 bytes
 test/operator-clear.quartz.ref.png                 |  Bin 1459 -> 0 bytes
 test/operator-clear.quartz.rgb24.ref.png           |  Bin 1293 -> 1096 bytes
 test/operator-source.quartz.argb32.ref.png         |  Bin 0 -> 4754 bytes
 test/operator-source.quartz.ref.png                |  Bin 4637 -> 0 bytes
 test/operator-source.quartz.rgb24.ref.png          |  Bin 3533 -> 3535 bytes
 test/over-above-source.quartz.argb32.ref.png       |  Bin 0 -> 511 bytes
 test/over-above-source.quartz.ref.png              |  Bin 530 -> 0 bytes
 test/over-above-source.quartz.rgb24.ref.png        |  Bin 456 -> 437 bytes
 test/over-around-source.quartz.argb32.ref.png      |  Bin 0 -> 593 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-between-source.quartz.argb32.ref.png     |  Bin 0 -> 551 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/path-append.quartz.ref.png                    |  Bin 0 -> 6395 bytes
 test/pthread-same-source.quartz.xfail.png          |  Bin 0 -> 957 bytes
 test/pthread-show-text.quartz.ref.png              |  Bin 0 -> 42996 bytes
 test/push-group-color.quartz.ref.png               |  Bin 0 -> 3127 bytes
 test/push-group.quartz.argb32.ref.png              |  Bin 0 -> 3932 bytes
 test/push-group.quartz.rgb24.ref.png               |  Bin 0 -> 3659 bytes
 test/radial-gradient.quartz.ref.png                |  Bin 92334 -> 0 bytes
 test/random-intersections-curves-eo.quartz.ref.png |  Bin 0 -> 326366 bytes
 test/random-intersections-curves-nz.quartz.ref.png |  Bin 0 -> 324940 bytes
 test/random-intersections-eo.quartz.ref.png        |  Bin 197778 -> 179179 bytes
 test/random-intersections-nonzero.quartz.ref.png   |  Bin 0 -> 180871 bytes
 ...recording-surface-pattern.quartz.argb32.ref.png |  Bin 0 -> 4570 bytes
 test/recording-surface-pattern.quartz.ref.png      |  Bin 4572 -> 0 bytes
 .../recording-surface-pattern.quartz.rgb24.ref.png |  Bin 4063 -> 4058 bytes
 test/rectilinear-dash.quartz.xfail.png             |  Bin 0 -> 494 bytes
 test/rectilinear-stroke.quartz.xfail.png           |  Bin 0 -> 209 bytes
 test/reflected-stroke.quartz.ref.png               |  Bin 5293 -> 0 bytes
 test/rel-path.quartz.ref.png                       |  Bin 212 -> 0 bytes
 test/rel-path.quartz.rgb24.ref.png                 |  Bin 228 -> 0 bytes
 test/rotate-image-surface-paint.quartz.ref.png     |  Bin 257 -> 356 bytes
 test/rotated-clip.quartz.ref.png                   |  Bin 0 -> 3923 bytes
 test/rounded-rectangle-fill.quartz.ref.png         |  Bin 0 -> 684 bytes
 test/scale-offset-image.quartz.ref.png             |  Bin 0 -> 9054 bytes
 test/scale-offset-similar.quartz.ref.png           |  Bin 0 -> 9054 bytes
 test/select-font-face.quartz.ref.png               |  Bin 2970 -> 2645 bytes
 test/self-intersecting.quartz.xfail.png            |  Bin 0 -> 233 bytes
 test/show-text-current-point.quartz.ref.png        |  Bin 3093 -> 2773 bytes
 test/smask-fill.quartz.ref.png                     |  Bin 0 -> 2076 bytes
 test/smask-mask.quartz.ref.png                     |  Bin 0 -> 3357 bytes
 test/smask-paint.quartz.ref.png                    |  Bin 0 -> 3499 bytes
 test/smask-stroke.quartz.ref.png                   |  Bin 0 -> 1697 bytes
 test/smask-text.quartz.ref.png                     |  Bin 0 -> 1904 bytes
 test/smask.quartz.ref.png                          |  Bin 0 -> 4067 bytes
 test/source-clip-scale.quartz.ref.png              |  Bin 148 -> 126 bytes
 test/spline-decomposition.quartz.xfail.png         |  Bin 0 -> 19560 bytes
 test/stroke-ctm-caps.quartz.ref.png                |  Bin 1109 -> 899 bytes
 test/stroke-image.quartz.ref.png                   |  Bin 1802 -> 1350 bytes
 test/subsurface-pad.quartz.xfail.png               |  Bin 0 -> 197 bytes
 test/surface-pattern-big-scale-down.quartz.ref.png |  Bin 0 -> 258 bytes
 ...urface-pattern-operator.quartz.argb32.xfail.png |  Bin 0 -> 5917 bytes
 ...surface-pattern-operator.quartz.rgb24.xfail.png |  Bin 0 -> 2546 bytes
 ...e-pattern-scale-down-extend-none.quartz.ref.png |  Bin 0 -> 391 bytes
 ...-pattern-scale-down-extend-pad.quartz.xfail.png |  Bin 0 -> 397 bytes
 ...attern-scale-down-extend-reflect.quartz.ref.png |  Bin 0 -> 475 bytes
 ...pattern-scale-down-extend-repeat.quartz.ref.png |  Bin 0 -> 397 bytes
 test/surface-pattern-scale-down.quartz.ref.png     |  Bin 3188 -> 2276 bytes
 test/surface-pattern-scale-up.quartz.xfail.png     |  Bin 0 -> 3294 bytes
 test/surface-pattern.quartz.xfail.png              |  Bin 0 -> 9216 bytes
 test/text-antialias-gray.quartz.ref.png            |  Bin 1041 -> 956 bytes
 test/text-antialias-none.quartz.ref.png            |  Bin 300 -> 270 bytes
 test/text-antialias-subpixel.quartz.ref.png        |  Bin 1065 -> 949 bytes
 test/text-glyph-range.quartz.ref.png               |  Bin 0 -> 2191 bytes
 test/text-pattern.quartz.argb32.ref.png            |  Bin 0 -> 2148 bytes
 test/text-pattern.quartz.ref.png                   |  Bin 2158 -> 0 bytes
 test/text-pattern.quartz.rgb24.ref.png             |  Bin 1874 -> 1867 bytes
 test/text-rotate.quartz.ref.png                    |  Bin 17820 -> 16655 bytes
 test/trap-clip.quartz.argb32.ref.png               |  Bin 0 -> 6060 bytes
 test/trap-clip.quartz.ref.png                      |  Bin 6041 -> 0 bytes
 test/trap-clip.quartz.rgb24.ref.png                |  Bin 5385 -> 5694 bytes
 test/unantialiased-shapes.quartz.ref.png           |  Bin 4394 -> 3868 bytes
 test/unbounded-operator.quartz.ref.png             |  Bin 4066 -> 0 bytes
 test/unbounded-operator.quartz.rgb24.ref.png       |  Bin 1918 -> 0 bytes
 test/user-font-proxy.quartz.ref.png                |  Bin 0 -> 19795 bytes
 test/user-font-rescale.quartz.ref.png              |  Bin 0 -> 15982 bytes
 test/user-font.quartz.ref.png                      |  Bin 0 -> 5960 bytes
 test/xcomposite-projection.quartz.ref.png          |  Bin 0 -> 639 bytes
 175 files changed, 0 insertions(+), 0 deletions(-)

commit 0d5a15f23812575c80db44ca23075293cc0dbfad
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 20:00:24 2010 +0100

    check: Disable running cairo-perf-micro
    
    Since this takes days to run now and should not find any bugs that are
    not covered by the test-suite it seems like a pointless exercise.
    Especially as I am trying to make a release!

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

commit e9fb39daee9ef3f80e4aedbda68027b36ce94fe3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 19:40:42 2010 +0100

    NEWS: take two.

 NEWS |   81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 75 insertions(+), 6 deletions(-)

commit 62899e5e23a798bb3e9b60c9e793555e973b7823
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 18:51:31 2010 +0100

    NEWS: Boring stub for 1.9.10.

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

commit fc372b1d9dea1ed4cb4229eaaad62a2d8e112a03
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 16:50:30 2010 +0100

    test: Missing ref images

 test/Makefile.am                       |    8 ++++----
 test/coverage-triangles.xlib.xfail.png |  Bin 0 -> 15859 bytes
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 8737bc8b17ff0c437bb57df018bb7c540a394a7c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 16:49:46 2010 +0100

    gl: start returning the failure status aftern an invalid GL op.

 src/cairo-gl-composite.c |    1 +
 src/cairo-gl-device.c    |   26 +++++++++++++++++++-------
 src/cairo-gl-glyphs.c    |   10 +++++++---
 src/cairo-gl-private.h   |   45 ++++++++++++++++++++++++++++++++++-----------
 src/cairo-gl-surface.c   |   40 +++++++++++++++++++++++++---------------
 5 files changed, 86 insertions(+), 36 deletions(-)

commit 5b2f90bf532184e46829de4b2e2f9d0b10c1ff81
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 16:49:11 2010 +0100

    test: Forgotten ref image.

 test/clipped-group.xlib-fallback.ref.png |  Bin 0 -> 344 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit cdd6f11716e3fbe579d68161caec220c7852fdff
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 15:44:29 2010 +0100

    test: Record the expected failure mode for partial-coverage-intersecting-quads
    
    As the diagonals of the quad intersect below the limits of Cairo's fixed
    point, we fail to take heed of the intersection.

 test/Makefile.am                                   |    1 +
 test/partial-coverage-intersecting-quads.xfail.png |  Bin 0 -> 262 bytes
 2 files changed, 1 insertions(+), 0 deletions(-)

commit 3d72b4aa70d106b5da093e6405c7e3890fa343cf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 15:32:31 2010 +0100

    test/coverage: The comment was still wrong.
    
    Writing comments is hard. I give in.

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

commit e6d1b3a8ce0b516aed7715b57d9ca5ab4fad6c2f
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Jun 12 16:22:54 2010 +0200

    test: update font family name
    
    Update the name of the test font family to DejaVu, so that backends
    unable to rely on fontconfig to match font names can find the correct
    font anyway.

 test/README       |   10 +++++-----
 test/cairo-test.h |    2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 3cb882d01b53cb3cec9be62d678dd4ef7ea2c1fd
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Jun 12 16:20:37 2010 +0200

    test: make test font family a define
    
    In order to make it easier to change the test font family, add it
    as a define in the global header and always reference the macro in
    the tests.

 test/cairo-test.h                    |    2 ++
 test/clip-all.c                      |    2 +-
 test/clip-empty-save.c               |    2 +-
 test/clip-empty.c                    |    2 +-
 test/clip-operator.c                 |    2 +-
 test/font-face-get-type.c            |    2 +-
 test/font-matrix-translation.c       |    2 +-
 test/ft-show-glyphs-positioning.c    |    2 +-
 test/ft-show-glyphs-table.c          |    2 +-
 test/ft-text-antialias-none.c        |    2 +-
 test/ft-text-vertical-layout-type3.c |    2 +-
 test/get-path-extents.c              |    2 +-
 test/glyph-cache-pressure.c          |    2 +-
 test/inverse-text.c                  |    6 +++---
 test/large-font.c                    |    2 +-
 test/operator-clear.c                |    2 +-
 test/operator-source.c               |    2 +-
 test/overlapping-glyphs.c            |    2 +-
 test/pdf-features.c                  |    2 +-
 test/ps-features.c                   |    2 +-
 test/select-font-face.c              |    6 +++---
 test/select-font-no-show-text.c      |    2 +-
 test/show-text-current-point.c       |    2 +-
 test/smask-text.c                    |    2 +-
 test/smask.c                         |    2 +-
 test/text-antialias-gray.c           |    2 +-
 test/text-antialias-none.c           |    2 +-
 test/text-antialias-subpixel.c       |    2 +-
 test/text-glyph-range.c              |    2 +-
 test/text-pattern.c                  |    2 +-
 test/text-rotate.c                   |    2 +-
 test/text-transform.c                |    2 +-
 test/text-zero-len.c                 |    2 +-
 test/unbounded-operator.c            |    2 +-
 test/user-font-rescale.c             |    6 +++---
 35 files changed, 42 insertions(+), 40 deletions(-)

commit b1e4df928fb59ee295830d5c0fa26330714f88f2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 15:28:28 2010 +0100

    test/coverage: Refine comments
    
    Joonas didn't like me putting incorrect labels in my comments. Said they
    were misleading and worse than useless. Harsh.

 test/coverage.c |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

commit 968374b6335199cbf02c8c4733537388da2a45f5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 15:14:17 2010 +0100

    test/coverage: Add a comment describing the column_triangle geometry()

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

commit 299263f8c912d3468d51ed22bcb6ab96275709f0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 13:48:12 2010 +0100

    test: Disable tests that are too slow to run by default.
    
    Introduce a slow mode [-s] to the runner, and add "slow" to the
    requirements for the very long running tests like the coverage stress
    tests.

 test/cairo-test-runner.c |   17 +++++++++++++++--
 test/coverage.c          |   12 ++++++------
 test/half-coverage.c     |    4 ++--
 test/mask-glyphs.c       |    2 +-
 test/partial-coverage.c  |   16 ++++++++--------
 5 files changed, 32 insertions(+), 19 deletions(-)

commit 53139261c7ba1a4cc0b869cb48c136b0362a3b0c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 13:40:17 2010 +0100

    test: Use exact matching on test names by default.
    
    Specifying individual tests to run is more common than using a group
    chosen from a keyword, so change the default matching mode and introduce
    '-k' to select by keyword.

 test/cairo-test-runner.c |   45 ++++++++++++++++++++++-----------------------
 1 files changed, 22 insertions(+), 23 deletions(-)

commit 97288b0859bae6cea1e3bff84b632e00f1d10917
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 13:34:27 2010 +0100

    test: More minute geometry exercised by partial-coverage.
    
    Moving beyond the capabilities of cairo...

 test/Makefile.am                                   |    2 +
 test/partial-coverage-intersecting-quads.ref.png   |  Bin 0 -> 189 bytes
 ...partial-coverage-intersecting-triangles.ref.png |  Bin 0 -> 202 bytes
 test/partial-coverage.c                            |  131 ++++++++++++++++++++
 4 files changed, 133 insertions(+), 0 deletions(-)

commit 4e3ef57bc892b0b046c486390adc7164a1de64de
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 13:18:42 2010 +0100

    test: More coverage coverage.
    
    A couple of different shapes that aim to test the tessellation side of
    the rasterisers more... And worryingly there does seem to be an
    unexpected systematic error.

 test/Makefile.am                                   |    8 +
 test/coverage-column-triangles.ref.png             |  Bin 0 -> 208 bytes
 test/coverage-column-triangles.xlib.xfail.png      |  Bin 0 -> 12745 bytes
 test/coverage-intersecting-quads.ref.png           |  Bin 0 -> 253 bytes
 test/coverage-intersecting-quads.xlib.xfail.png    |  Bin 0 -> 15296 bytes
 test/coverage-intersecting-triangles.ref.png       |  Bin 0 -> 209 bytes
 .../coverage-intersecting-triangles.xlib.xfail.png |  Bin 0 -> 16728 bytes
 test/coverage-row-triangles.ref.png                |  Bin 0 -> 208 bytes
 test/coverage-row-triangles.xlib.xfail.png         |  Bin 0 -> 12671 bytes
 test/coverage.c                                    |  249 +++++++++++++++++++-
 10 files changed, 251 insertions(+), 6 deletions(-)

commit 9b7cc7641b691a3b9e3d5edd51053c9a095d9c5a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jun 12 10:41:09 2010 +0100

    cairo: Create error objects for cairo_t
    
    Perform an early check for error status and prevent creation of a full
    object. This means that we do not pass down error objects to the
    initialisation routines and so can survive without paranoia inside the
    library. It also has brings consistency that like the other
    constructors, no object is created in error and we can skip the
    cairo_destroy() if we choose (and we don't waste one of the precious
    zero-alloc context slots.
    
    Fixes crash in test/a8-mask introduced by 1a544361e845.

 src/cairo-debug.c              |    2 +
 src/cairo-mutex-list-private.h |    1 +
 src/cairo.c                    |   76 ++++++++++++++++++++++++++++++++++------
 src/cairoint.h                 |    3 ++
 4 files changed, 71 insertions(+), 11 deletions(-)

commit 9b6617a3b3b31d52e6646400b16ec56c754bfebd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 21:58:34 2010 +0100

    image: Apply component alpha to composite masks.
    
    If we need to pattern requires component alpha, then we must take a
    copy of the image and enable component alpha for pixman.
    
    Fixes test/text-antialias-subpixel on xlib-fallback -- i.e. we will
    finally render subpixel antialiased text on ancient XServers.

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

commit 7440fc07f77b112b00957f5459129dba23a5683f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 21:29:02 2010 +0100

    test: xlib ref image refresh

 test/Makefile.am                                   |   26 ++++++++++++++-----
 ...clip-fill-unbounded.xlib-fallback.rgb24.ref.png |  Bin 1429 -> 1438 bytes
 test/clip-fill-unbounded.xlib.argb32.ref.png       |  Bin 1758 -> 1759 bytes
 test/clip-fill-unbounded.xlib.rgb24.ref.png        |  Bin 1426 -> 1430 bytes
 test/clip-group-shapes-circles.xlib.ref.png        |  Bin 0 -> 1534 bytes
 ...-group-shapes-unaligned-rectangles.xlib.ref.png |  Bin 0 -> 431 bytes
 ...ip-stroke-unbounded.xlib-fallback.rgb24.ref.png |  Bin 1429 -> 1437 bytes
 test/clip-stroke-unbounded.xlib.argb32.ref.png     |  Bin 1792 -> 1785 bytes
 test/clip-stroke-unbounded.xlib.rgb24.ref.png      |  Bin 1426 -> 1442 bytes
 test/clip-stroke.xlib-fallback.ref.png             |  Bin 1490 -> 1491 bytes
 test/clip-stroke.xlib.ref.png                      |  Bin 1490 -> 1491 bytes
 test/clipped-group.xlib.ref.png                    |  Bin 0 -> 289 bytes
 test/coverage-rectangles.xlib.xfail.png            |  Bin 0 -> 15981 bytes
 test/finer-grained-fallbacks.xlib-fallback.ref.png |  Bin 0 -> 919 bytes
 test/finer-grained-fallbacks.xlib.ref.png          |  Bin 1111 -> 1110 bytes
 test/finer-grained-fallbacks.xlib.rgb24.ref.png    |  Bin 1114 -> 856 bytes
 test/ft-text-vertical-layout-type1.xlib.ref.png    |  Bin 3639 -> 3625 bytes
 test/ft-text-vertical-layout-type3.xlib.ref.png    |  Bin 3605 -> 3597 bytes
 test/leaky-dashed-rectangle.xlib.ref.png           |  Bin 347 -> 344 bytes
 test/linear-gradient-subset.xlib.ref.png           |  Bin 0 -> 782 bytes
 test/pthread-show-text.xlib-fallback.ref.png       |  Bin 0 -> 42073 bytes
 ...m-intersections-curves-nz.xlib-fallback.ref.png |  Bin 264288 -> 264277 bytes
 test/random-intersections-curves-nz.xlib.ref.png   |  Bin 264288 -> 264277 bytes
 test/recording-surface-pattern.xlib.argb32.ref.png |  Bin 0 -> 3055 bytes
 test/recording-surface-pattern.xlib.rgb24.ref.png  |  Bin 0 -> 3124 bytes
 test/scale-offset-image.xlib-fallback.xfail.png    |  Bin 8706 -> 8686 bytes
 test/scale-offset-image.xlib.ref.png               |  Bin 0 -> 9136 bytes
 test/scale-offset-image.xlib.xfail.png             |  Bin 9132 -> 0 bytes
 test/scale-offset-similar.xlib-fallback.xfail.png  |  Bin 8706 -> 8686 bytes
 test/scale-offset-similar.xlib.xfail.png           |  Bin 8696 -> 8698 bytes
 test/self-intersecting.xlib.ref.png                |  Bin 252 -> 208 bytes
 test/smask-text.xlib-fallback.ref.png              |  Bin 0 -> 1874 bytes
 test/smask.xlib-fallback.ref.png                   |  Bin 0 -> 3423 bytes
 test/subsurface.xlib.ref.png                       |  Bin 0 -> 1782 bytes
 test/text-rotate.xlib-fallback.ref.png             |  Bin 0 -> 16592 bytes
 35 files changed, 19 insertions(+), 7 deletions(-)

commit a049889c64131b170b66ed8906309f6adee80fa5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 21:26:26 2010 +0100

    pattern: Remove incorrect optimisations from _cairo_pattern_aquire_surface()
    
    Safe reduction of patterns is performed in gstate, so not only are the
    extra checks in _cairo_pattern_acquire_surface redundant there are also
    unsafe. Simply remove them.
    
    Fixes test/radial-gradient-extend [xlib-fallback]

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

commit 00bc1d1578dc2640db64315270b00073697fb9fa
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 20:31:29 2010 +0100

    pattern: Remove extraordinary _cairo_pattern_fini_snapshot().
    
    Miraculously the circular references from self-copy have disappeared and
    the forced finish within _cairo_pattern_fini_snapshot() now quite
    explosive. By replacing them with an ordinary _cairo_pattern_fini() the
    crash from test/smask-image-mask disappear along and valgrind remains
    happy.
    
    Fixes test/smask-image-mask and similar.

 src/cairo-pattern.c           |   17 -----------------
 src/cairo-recording-surface.c |   24 ++++++++++++------------
 src/cairoint.h                |    3 ---
 3 files changed, 12 insertions(+), 32 deletions(-)

commit 1098e203dc21529f138bfabfa7558f61b8427ea0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 18:07:28 2010 +0100

    test: pdf ref image refresh

 test/Makefile.am                                   |   11 +++++++++++
 test/clear-source.pdf.xfail.png                    |  Bin 0 -> 974 bytes
 test/clip-fill-unbounded.pdf.argb32.ref.png        |  Bin 0 -> 1244 bytes
 test/clip-stroke-unbounded.pdf.argb32.xfail.png    |  Bin 0 -> 1351 bytes
 test/clip-unbounded.pdf.argb32.xfail.png           |  Bin 0 -> 95 bytes
 test/clip-unbounded.pdf.rgb24.xfail.png            |  Bin 0 -> 95 bytes
 test/filter-nearest-offset.pdf.xfail.png           |  Bin 2152 -> 4522 bytes
 test/filter-nearest-transformed.pdf.xfail.png      |  Bin 532 -> 532 bytes
 test/pthread-show-text.pdf.ref.png                 |  Bin 0 -> 47015 bytes
 test/radial-gradient-source.pdf.argb32.ref.png     |  Bin 0 -> 235290 bytes
 test/rotate-image-surface-paint.pdf.xfail.png      |  Bin 358 -> 442 bytes
 ...scale-source-surface-paint.pdf.argb32.xfail.png |  Bin 0 -> 157 bytes
 .../scale-source-surface-paint.pdf.rgb24.xfail.png |  Bin 0 -> 152 bytes
 test/surface-pattern-operator.pdf.argb32.xfail.png |  Bin 0 -> 5485 bytes
 test/surface-pattern-operator.pdf.rgb24.xfail.png  |  Bin 0 -> 2095 bytes
 15 files changed, 11 insertions(+), 0 deletions(-)

commit 1c91d019c54afde0edb022312491b086588ce6c4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 17:47:08 2010 +0100

    test: ps ref image refresh.
    
    Update to gs-8.71 and some additional reference images for the new tests.

 test/Makefile.am                                   |  116 +++++++++++---------
 test/README                                        |    2 +-
 test/big-line.ps.ref.png                           |  Bin 0 -> 946 bytes
 test/bug-bo-rectangular.ps.xfail.png               |  Bin 0 -> 945 bytes
 test/caps-joins-curve.ps.ref.png                   |  Bin 3728 -> 3715 bytes
 test/caps-joins.ps.ref.png                         |  Bin 2282 -> 2268 bytes
 test/caps-sub-paths.ps.ref.png                     |  Bin 0 -> 163 bytes
 test/caps.ps.ref.png                               |  Bin 1466 -> 1478 bytes
 test/clear-source.ps.xfail.png                     |  Bin 0 -> 552 bytes
 test/clip-disjoint.ps.ref.png                      |  Bin 0 -> 4680 bytes
 test/clip-fill-rule.ps.argb32.ref.png              |  Bin 0 -> 251 bytes
 test/clip-fill-rule.ps.rgb24.ref.png               |  Bin 0 -> 234 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-unbounded.ps.argb32.xfail.png       |  Bin 0 -> 1244 bytes
 test/clip-image.ps.ref.png                         |  Bin 0 -> 2498 bytes
 test/clip-nesting.ps.argb32.ref.png                |  Bin 0 -> 441 bytes
 test/clip-nesting.ps.rgb24.ref.png                 |  Bin 0 -> 492 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-push-group.ps.ref.png                    |  Bin 0 -> 120 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-stroke-unbounded.ps.argb32.ref.png       |  Bin 0 -> 1351 bytes
 test/clip-stroke.ps.xfail.png                      |  Bin 0 -> 662 bytes
 test/clip-twice.ps.argb32.ref.png                  |  Bin 0 -> 492 bytes
 test/clip-twice.ps.rgb24.ref.png                   |  Bin 0 -> 409 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/clipped-group.ps2.ref.png                     |  Bin 343 -> 214 bytes
 test/clipped-group.ps3.ref.png                     |  Bin 343 -> 214 bytes
 test/copy-path.ps.ref.png                          |  Bin 0 -> 379 bytes
 test/copy-path.ps2.ref.png                         |  Bin 474 -> 0 bytes
 test/copy-path.ps3.ref.png                         |  Bin 474 -> 0 bytes
 test/dash-caps-joins.ps.ref.png                    |  Bin 0 -> 3669 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-curve.ps2.ref.png                        |  Bin 27293 -> 24355 bytes
 test/dash-curve.ps3.ref.png                        |  Bin 27293 -> 24355 bytes
 test/dash-infinite-loop.ps.ref.png                 |  Bin 0 -> 617 bytes
 test/dash-scale.ps.ref.png                         |  Bin 0 -> 5965 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-state.ps2.ref.png                        |  Bin 10219 -> 8740 bytes
 test/dash-state.ps3.ref.png                        |  Bin 10219 -> 8740 bytes
 test/degenerate-arc.ps2.ref.png                    |  Bin 585 -> 509 bytes
 test/degenerate-arc.ps3.ref.png                    |  Bin 585 -> 509 bytes
 test/degenerate-curve-to.ps.xfail.png              |  Bin 202 -> 221 bytes
 test/degenerate-dash.ps.xfail.png                  |  Bin 1835 -> 1837 bytes
 test/degenerate-path.ps.argb32.xfail.png           |  Bin 236 -> 234 bytes
 test/degenerate-path.ps.rgb24.xfail.png            |  Bin 186 -> 184 bytes
 test/degenerate-pen.ps.ref.png                     |  Bin 0 -> 759 bytes
 test/degenerate-pen.ps2.ref.png                    |  Bin 865 -> 0 bytes
 test/degenerate-pen.ps3.ref.png                    |  Bin 865 -> 0 bytes
 test/degenerate-rel-curve-to.ps.ref.png            |  Bin 0 -> 225 bytes
 test/degenerate-rel-curve-to.ps.xfail.png          |  Bin 202 -> 0 bytes
 test/fill-and-stroke.ps.argb32.ref.png             |  Bin 0 -> 257 bytes
 test/fill-and-stroke.ps.rgb24.ref.png              |  Bin 0 -> 225 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
 .../fill-degenerate-sort-order.ps.argb32.xfail.png |  Bin 1901 -> 1903 bytes
 test/fill-degenerate-sort-order.ps.rgb24.xfail.png |  Bin 1645 -> 1638 bytes
 test/fill-image.ps.ref.png                         |  Bin 1799 -> 1645 bytes
 test/fill-rule.ps2.argb32.ref.png                  |  Bin 2253 -> 1878 bytes
 test/fill-rule.ps2.rgb24.ref.png                   |  Bin 2031 -> 1524 bytes
 test/fill-rule.ps3.argb32.ref.png                  |  Bin 2253 -> 1878 bytes
 test/fill-rule.ps3.rgb24.ref.png                   |  Bin 2031 -> 1524 bytes
 test/finer-grained-fallbacks.ps2.argb32.ref.png    |  Bin 1173 -> 1168 bytes
 test/finer-grained-fallbacks.ps2.rgb24.ref.png     |  Bin 1154 -> 936 bytes
 test/finer-grained-fallbacks.ps3.argb32.ref.png    |  Bin 1173 -> 1168 bytes
 test/finer-grained-fallbacks.ps3.rgb24.ref.png     |  Bin 1154 -> 936 bytes
 test/ft-text-vertical-layout-type1.ps.ref.png      |  Bin 1634 -> 2088 bytes
 test/ft-text-vertical-layout-type3.ps.ref.png      |  Bin 1636 -> 2134 bytes
 test/group-unaligned.ps.ref.png                    |  Bin 332 -> 321 bytes
 test/group-unaligned.ps.rgb24.xfail.png            |  Bin 0 -> 371 bytes
 test/implicit-close.ps.ref.png                     |  Bin 0 -> 252 bytes
 test/joins.ps.ref.png                              |  Bin 5496 -> 4230 bytes
 test/leaky-dashed-rectangle.ps.ref.png             |  Bin 444 -> 358 bytes
 test/leaky-dashed-stroke.ps.ref.png                |  Bin 0 -> 5293 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-polygon.ps.ref.png                      |  Bin 0 -> 289 bytes
 test/leaky-polygon.ps2.ref.png                     |  Bin 354 -> 0 bytes
 test/leaky-polygon.ps3.ref.png                     |  Bin 354 -> 0 bytes
 test/line-width-scale.ps2.ref.png                  |  Bin 3911 -> 3431 bytes
 test/line-width-scale.ps3.ref.png                  |  Bin 3911 -> 3431 bytes
 test/linear-gradient-subset.ps3.ref.png            |  Bin 0 -> 619 bytes
 test/long-dashed-lines.ps2.ref.png                 |  Bin 1516 -> 1329 bytes
 test/long-dashed-lines.ps3.ref.png                 |  Bin 1516 -> 1329 bytes
 test/new-sub-path.ps2.argb32.ref.png               |  Bin 556 -> 398 bytes
 test/new-sub-path.ps3.argb32.ref.png               |  Bin 556 -> 398 bytes
 test/operator-alpha-alpha.ps.xfail.png             |  Bin 1338 -> 3429 bytes
 test/over-around-source.ps2.argb32.ref.png         |  Bin 522 -> 508 bytes
 test/over-around-source.ps3.argb32.ref.png         |  Bin 522 -> 508 bytes
 test/over-below-source.ps2.argb32.ref.png          |  Bin 503 -> 368 bytes
 test/over-below-source.ps2.rgb24.ref.png           |  Bin 0 -> 362 bytes
 test/over-below-source.ps3.argb32.ref.png          |  Bin 503 -> 368 bytes
 test/over-below-source.ps3.rgb24.ref.png           |  Bin 0 -> 362 bytes
 test/path-append.ps.ref.png                        |  Bin 4516 -> 4525 bytes
 test/pixman-rotate.ps.argb32.ref.png               |  Bin 0 -> 355 bytes
 test/push-group-color.ps3.ref.png                  |  Bin 0 -> 2561 bytes
 test/random-intersections-curves-eo.ps.ref.png     |  Bin 151676 -> 151668 bytes
 test/random-intersections-curves-nz.ps.ref.png     |  Bin 134732 -> 134746 bytes
 test/random-intersections-eo.ps.ref.png            |  Bin 78806 -> 78037 bytes
 test/random-intersections-nonzero.ps.ref.png       |  Bin 77299 -> 76450 bytes
 test/recording-surface-pattern.ps.argb32.ref.png   |  Bin 0 -> 3064 bytes
 test/recording-surface-pattern.ps.rgb24.ref.png    |  Bin 0 -> 3147 bytes
 test/recording-surface-pattern.ps2.argb32.ref.png  |  Bin 3257 -> 0 bytes
 test/recording-surface-pattern.ps2.rgb24.ref.png   |  Bin 3873 -> 0 bytes
 test/recording-surface-pattern.ps3.argb32.ref.png  |  Bin 3257 -> 0 bytes
 test/recording-surface-pattern.ps3.rgb24.ref.png   |  Bin 3873 -> 0 bytes
 test/reflected-stroke.ps.ref.png                   |  Bin 0 -> 3368 bytes
 test/reflected-stroke.ps2.ref.png                  |  Bin 3898 -> 0 bytes
 test/reflected-stroke.ps3.ref.png                  |  Bin 3898 -> 0 bytes
 test/rounded-rectangle-fill.ps.ref.png             |  Bin 0 -> 551 bytes
 test/rounded-rectangle-stroke.ps.ref.png           |  Bin 0 -> 568 bytes
 test/scale-offset-image.ps.ref.png                 |  Bin 7289 -> 7697 bytes
 test/spline-decomposition.ps.ref.png               |  Bin 9028 -> 8939 bytes
 test/stroke-image.ps.ref.png                       |  Bin 1641 -> 1682 bytes
 test/subsurface.ps.ref.png                         |  Bin 0 -> 1651 bytes
 test/surface-pattern-big-scale-down.ps.ref.png     |  Bin 0 -> 235 bytes
 test/surface-pattern-big-scale-down.ps.xfail.png   |  Bin 238 -> 0 bytes
 test/text-glyph-range.ps.ref.png                   |  Bin 0 -> 1253 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-rotate.ps.ref.png                        |  Bin 0 -> 8765 bytes
 test/text-rotate.ps2.ref.png                       |  Bin 6851 -> 0 bytes
 test/text-rotate.ps3.ref.png                       |  Bin 6851 -> 0 bytes
 test/text-transform.ps.ref.png                     |  Bin 0 -> 3430 bytes
 test/text-transform.ps2.ref.png                    |  Bin 4154 -> 0 bytes
 test/text-transform.ps3.ref.png                    |  Bin 4154 -> 0 bytes
 test/trap-clip.ps2.argb32.ref.png                  |  Bin 4849 -> 4839 bytes
 test/trap-clip.ps2.rgb24.ref.png                   |  Bin 5617 -> 4729 bytes
 test/trap-clip.ps3.argb32.ref.png                  |  Bin 5591 -> 4751 bytes
 test/trap-clip.ps3.rgb24.ref.png                   |  Bin 5512 -> 4553 bytes
 test/twin.ps.ref.png                               |  Bin 2142 -> 2136 bytes
 test/user-font-proxy.ps.ref.png                    |  Bin 7766 -> 7837 bytes
 test/user-font-rescale.ps.ref.png                  |  Bin 0 -> 6781 bytes
 test/user-font-rescale.ps2.ref.png                 |  Bin 8041 -> 0 bytes
 test/user-font-rescale.ps3.ref.png                 |  Bin 8041 -> 0 bytes
 test/xlib-expose-event.ps.ref.png                  |  Bin 0 -> 39035 bytes
 155 files changed, 65 insertions(+), 53 deletions(-)

commit 1a544361e845e4881990624a597f9dc2b82d1c73
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 16:04:41 2010 +0100

    gstate: Update cached matrix state after device transform changes on the target
    
    Commit 8d67186cb291cb877e52b987e2ac18c2a1175a57 caches whether the device
    transform is identity on context creation. However, the api is quite lax
    and allows the user to modify the device transform *after* he has
    started to use the surface in a context, as apparently WebKit does.
    Since this is not the only instance where we may need to invalidate
    caches if the user modifies state, introduce a simple mechanism for
    hooking into notifications of property changes.
    
    Fixes test/clip-device-offset.

 src/Makefile.sources        |    1 +
 src/cairo-gstate-private.h  |    3 ++
 src/cairo-gstate.c          |   28 ++++++++++++++++++++---
 src/cairo-observer.c        |   50 +++++++++++++++++++++++++++++++++++++++++++
 src/cairo-surface-private.h |    1 +
 src/cairo-surface.c         |    6 +++++
 src/cairo-types-private.h   |    6 +++++
 src/cairoint.h              |    5 ++++
 8 files changed, 96 insertions(+), 4 deletions(-)

commit f74b11415a1f7682dd50c222baa8815ef93681dc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 14:06:15 2010 +0100

    test: Use a group to render PDF correctly using poppler.
    
    In order to support blend modes, we need to use a clear background
    whilst rendering the PDF, which inspired the use of DEST_OVER to avoid
    having to render to an intermediate surface. However, the adjunct of
    using subpixel text means that we cannot simply using the alpha channel
    as the sole mask and so need to render to an intermediate and paint it
    over an opaque background.

 test/any2ppm.c |    9 ++++++---
 test/pdf2png.c |    9 ++++++---
 2 files changed, 12 insertions(+), 6 deletions(-)

commit 7f227ec8d3f981dbbf2ca1914bf7fd29d9cdfd05
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 12:54:15 2010 +0100

    Revert "test/pdf2png: Don't use DEST_OVER as poppler starts using subpixel text."
    
    This reverts commit 506b2ebe714d61a64972b607a42a55e48d1c722a.
    
    We have conflicting requirements here. In order to support extended
    blend modes correctly we need to use DEST_OVER, at the expense of
    supporting subpixel text. More thought required.

 test/any2ppm.c |    9 +++++----
 test/pdf2png.c |   10 +++++-----
 2 files changed, 10 insertions(+), 9 deletions(-)

commit c761e0c5bb55e8869521ad5b4a2447ea9abcb4d1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 12:40:36 2010 +0100

    test: Restrict the coverage tests to raster targets.
    
    Typo inside the requirements failed to prevent the tests running on the
    vector backends.

 test/coverage.c         |    4 ++--
 test/half-coverage.c    |    4 ++--
 test/partial-coverage.c |   18 +++++++++---------
 3 files changed, 13 insertions(+), 13 deletions(-)

commit b49c944fe4abb9f3c70fac02a71061bf8d07259a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 12:38:17 2010 +0100

    test: Add a convenience script to disable the screensaver when testing
    
    If the screensaver activates, it can cause failures when attempting to
    render into an xlib window, so inhibit if we know how.

 test/Makefile.am             |    2 +-
 test/run-cairo-test-suite.sh |   18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletions(-)

commit 4e4724d48c63d0cd4ec507ce72dcc55fb6e5f584
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 12:19:56 2010 +0100

    gl: make check insists "cairoint.h" is first.

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

commit 4edbcf1b1d046c9c626a0c0ad10d3c71f17984f2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 12:17:19 2010 +0100

    color: Mark _cairo_color_get_content() as private.

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

commit 506b2ebe714d61a64972b607a42a55e48d1c722a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 12:04:39 2010 +0100

    test/pdf2png: Don't use DEST_OVER as poppler starts using subpixel text.
    
    Using DEST_OVER in this form to paint the background white fails in the
    presence of subpixel geometry (particular text), so remove the hack and
    simply paint the background white prior to passing the surface to
    poppler. KISS.

 test/any2ppm.c |    9 ++++-----
 test/pdf2png.c |   10 +++++-----
 2 files changed, 9 insertions(+), 10 deletions(-)

commit edb73b6dcf1adce40d6c10c492e3f78556e22b85
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 11:16:42 2010 +0100

    xlib: Adjust trapezoid precision based on antialias.
    
    Render supports two modes of precision when rendering trapezoids.
    Precise specifies points sampling on a 15x17 grid, ala pixman. Imprecise
    allows the driver more freedom in the methods used, which may be more
    amenable to acceleration. Choose to use the imprecise mode by default,
    but still allow users to force the more rigidly specified precision by
    changing the antialias mode.

 src/cairo-xlib-surface-private.h |    1 +
 src/cairo-xlib-surface.c         |   31 +++++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 0 deletions(-)

commit 290749bdb5c634c030db81722214661c34344403
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 10:59:17 2010 +0100

    polygon: Reorder conditionals based on likelihood.
    
    The vast majority of edges will be unclipped, so process those first.

 src/cairo-polygon.c |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

commit 55037bfb2454a671332d961e061c712ab5471580
Author: Karl Tomlinson <karlt+@karlt.net>
Date:   Fri Jun 11 10:35:43 2010 +0100

    xlib: Find matching Visual for XRenderFormat
    
    Not only is this useful for users to know which Visual matches any
    particular Cairo surface, it should also close a few obscure bugs of not
    converting images correctly on upload.
    
    Fixes:
    
      Bug 28492 - cairo_xlib_surface_create_with_xrender_format does not
                  create visual for resulting surface
      https://bugs.freedesktop.org/show_bug.cgi?id=28492
    
      Mozilla Bug 567065 - Try to create offscreen Xlib surface from existing
                           visual if possible
      https://bugzilla.mozilla.org/show_bug.cgi?id=567065
    
      Mozilla Bug 445250 - cairo_draw_with_xlib should provide a non-NULL visual
                           to callback
      https://bugzilla.mozilla.org/show_bug.cgi?id=445250
    
    Reported-by: Oleg Romashin <romaxa@gmail.com>

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

commit cf426bce8ebd3aff5d50c6a54bbd731132b3d312
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 10:05:09 2010 +0100

    test: Add a simple coverage test.
    
    This test case should be much clearer than half-coverage over what it
    purports to actually test. In each pixel, it draws a single geometric
    primitive that coverages a known percentage of the pixel and then we
    measure how close the rasterisers are to that ideal.

 test/Makefile.am                 |    2 +
 test/Makefile.sources            |    1 +
 test/coverage-rectangles.ref.png |  Bin 0 -> 259 bytes
 test/coverage-triangles.ref.png  |  Bin 0 -> 253 bytes
 test/coverage.c                  |  135 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 138 insertions(+), 0 deletions(-)

commit bd3d9ef3d1dbc5364e79e6afb47d9e124cb61ca4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 09:12:16 2010 +0100

    test: Distinguish tests that throw an error from a normal fail.
    
    Hitting an error in a test case is almost as bad as crashing, and the
    severity may be lost amidst "normal" failures. So introduce a new class
    of ERROR so that we can immediately spot these during a test run, and
    appropriately log them afterwards.

 test/cairo-test-runner.c |   89 ++++++++++++++++++++++++++++++++++++++++++++-
 test/cairo-test.c        |   20 ++++++++++-
 test/cairo-test.h        |    1 +
 3 files changed, 107 insertions(+), 3 deletions(-)

commit eeafeebd2ec8ad8a9e7053aaaa0f845b58563b3b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 11 09:06:20 2010 +0100

    path: Exponentially grow buffer based on populated points and ops.
    
    Instead of simply doubling the buffer size every time we overflow a point
    or an op, enlarge the buffer to fit twice the number of used points and
    ops.  We expect paths to be fairly consistent in the mix of operations,
    and this allows the buffer size to tune itself to actual usage and reduce
    wastage.

 src/cairo-path-fixed-private.h |    3 ++-
 src/cairo-path-fixed.c         |   39 +++++++++++++++++++--------------------
 2 files changed, 21 insertions(+), 21 deletions(-)

commit b0056a86b4f6c92fa7eb89baf8483a46979c8cf1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 10 18:27:22 2010 +0100

    test: Exercise partial coverage some more.
    
    Add some overlapping triangles (coarse enough for them to be resolved
    using Cairo's 24.8 fixed point without loss of precision) to exercise
    handling of overlapping subpixel geometry.

 test/Makefile.am                                   |    4 +
 ...tial-coverage-overlap-half-triangles-eo.ref.png |  Bin 0 -> 189 bytes
 ...partial-coverage-overlap-half-triangles.ref.png |  Bin 0 -> 189 bytes
 ...overage-overlap-three-quarter-triangles.ref.png |  Bin 0 -> 186 bytes
 ...artial-coverage-three-quarter-reference.ref.png |  Bin 0 -> 186 bytes
 test/partial-coverage.c                            |  284 ++++++++++++++++++--
 6 files changed, 269 insertions(+), 19 deletions(-)

commit 836f6166597eaa687b10e5f26fe71e099c434aa1
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Jun 9 19:09:22 2010 +0200

    gl: support single stop gradients

 src/cairo-gl-gradient-private.h |    2 +-
 src/cairo-gl-gradient.c         |    3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

commit d17e2c5e23eac302b7463a08205088147da1172a
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jun 10 10:52:16 2010 +0200

    ps: support single stop gradients

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

commit eb7fc351156bd66921ac3b3ffbd1fba6ba743ffb
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu Jun 10 10:51:50 2010 +0200

    pdf: support single stop gradients

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

commit e2660a0eac5f6081bf052db16b8bd85c814d19d8
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Jun 9 16:59:29 2010 +0200

    pattern: improve single stop gradients handling
    
    None-extended single stop gradients are now explicitly made clear.

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

commit 7a024bc206aae790c7357be83474126037335ab1
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Jun 9 17:59:47 2010 +0200

    test: exercise ps crash with single stop gradients
    
    PS crashes only when using the source operator, as it will otherwise
    fallback to rasterization of the gradients.

 test/linear-gradient-one-stop.argb32.ref.png |  Bin 0 -> 225 bytes
 test/linear-gradient-one-stop.c              |    2 +-
 test/linear-gradient-one-stop.ref.png        |  Bin 344 -> 0 bytes
 test/linear-gradient-one-stop.rgb24.ref.png  |  Bin 0 -> 174 bytes
 test/radial-gradient-one-stop.argb32.ref.png |  Bin 0 -> 1392 bytes
 test/radial-gradient-one-stop.c              |    2 +-
 test/radial-gradient-one-stop.ref.png        |  Bin 1422 -> 0 bytes
 test/radial-gradient-one-stop.rgb24.ref.png  |  Bin 0 -> 1153 bytes
 8 files changed, 2 insertions(+), 2 deletions(-)

commit a0f8cfe64660c0043db15f9b9cbf1298bf1838d1
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jun 8 17:04:00 2010 +0200

    pattern: improve degenerate gradients handling
    
    Degenerate radial gradients are now considered clear.

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

commit bccd89b4177b5f5bd05def9bee5f0927a9f25e4a
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jun 8 15:45:09 2010 +0200

    gstate: correct optimizations
    
    Gradient were previously hand-optimized (without properly checking
    for extend modes). By properly using _cairo_pattern functions we
    avoid code duplication and bugs.
    
    Fixes linear-gradient-extend, radial-gradient-extend.

 src/cairo-gstate.c |   85 ++++++++++-----------------------------------------
 1 files changed, 17 insertions(+), 68 deletions(-)

commit 06c6207ad4205f211be70e324c6d32ea7d28dca8
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jun 1 19:40:14 2010 +0200

    pattern: add gradient_is_solid function
    
    It contains in a single place the logic needed to check if a gradient
    pattern is solid (within a specified region).

 src/cairo-pattern.c |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/cairoint.h      |    5 ++++
 2 files changed, 58 insertions(+), 0 deletions(-)

commit 561625ee3bd2732457eaaf28937edf557ee7661d
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jun 1 19:39:02 2010 +0200

    pattern: improve clear/opaque check functions
    
    _cairo_pattern_is_opaque was missing some checks about the extend type.
    Conversely _cairo_pattern_is_clear was being too strict about gradients.

 src/cairo-pattern.c |  112 +++++++++++++++++++++++++++++++++++++++++++++++----
 src/cairoint.h      |    4 ++
 2 files changed, 108 insertions(+), 8 deletions(-)

commit baaf312e047a9bea6f54e63cd6534c2ed7448523
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Apr 19 09:53:00 2010 +0200

    pattern: remove content field from solid patterns
    
    The content field in solid patterns had ill-defined semantic (or no
    semantic at all), thus it can be removed.

 src/cairo-color.c          |   16 ++++++++++++++++
 src/cairo-gl-surface.c     |    2 +-
 src/cairo-gstate.c         |   14 +++++---------
 src/cairo-pattern.c        |   37 ++++++++++---------------------------
 src/cairo-script-surface.c |    9 +++------
 src/cairo-surface.c        |    4 ++--
 src/cairo-types-private.h  |    1 -
 src/cairo-xlib-surface.c   |    6 +++---
 src/cairo.c                |    4 ++--
 src/cairoint.h             |    9 +++++----
 10 files changed, 47 insertions(+), 55 deletions(-)

commit 7461947eb1a5f002a5931303843a5a2deca0e383
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Apr 19 09:51:26 2010 +0200

    surface: remove content argument from is_similar
    
    The content argument was basically unuses.
    
    Xlib change extracted from ickle's wip/compositor branch.

 src/cairo-directfb-surface.c |    2 +-
 src/cairo-pattern.c          |    5 ++---
 src/cairo-surface.c          |    5 ++---
 src/cairo-win32-surface.c    |    3 +--
 src/cairo-xlib-surface.c     |   30 ++----------------------------
 src/cairoint.h               |    6 ++----
 6 files changed, 10 insertions(+), 41 deletions(-)

commit ef5f9b5c61750207947587173d21b46e2d299f33
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 10 14:13:53 2010 +0100

    test: Update partial coverage.
    
    Gah, no wonder the output looked wrong for the triangles, they only
    covered half the pixel. So separate triangles into two cases.

 test/Makefile.am                             |    2 +
 test/partial-coverage-half-reference.ref.png |  Bin 0 -> 189 bytes
 test/partial-coverage-half-triangles.ref.png |  Bin 0 -> 189 bytes
 test/partial-coverage.c                      |   98 ++++++++++++++++++++++++-
 4 files changed, 96 insertions(+), 4 deletions(-)

commit 8d67186cb291cb877e52b987e2ac18c2a1175a57
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 10 11:36:58 2010 +0100

    gstate: Track whether the combination of ctm * device is identity.
    
    In the fairly common condition that both the ctm and the device
    transforms are identity, the function overhead of calling the matrix
    multiplication on the point overwhelmingly dominates.

 src/cairo-clip.c           |    1 +
 src/cairo-gstate-private.h |  310 ++++++++++++++++++++++++++++++++++++++++++++
 src/cairo-gstate.c         |   18 +++-
 src/cairoint.h             |  295 -----------------------------------------
 4 files changed, 327 insertions(+), 297 deletions(-)

commit 1349728d1ef63ed562a3fd0ee3c0a89aaba77616
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 10 11:26:12 2010 +0100

    test: Add partial coverage.
    
    Another experiment in measuring consistency of rasterisation stratagems
    across the backends.

 test/Makefile.am                         |    3 +
 test/Makefile.sources                    |    1 +
 test/partial-coverage-rectangles.ref.png |  Bin 0 -> 202 bytes
 test/partial-coverage-reference.ref.png  |  Bin 0 -> 202 bytes
 test/partial-coverage-triangles.ref.png  |  Bin 0 -> 202 bytes
 test/partial-coverage.c                  |  213 ++++++++++++++++++++++++++++++
 6 files changed, 217 insertions(+), 0 deletions(-)

commit 486118361ad0c2e68fa9f6b44ddb10e84d237eca
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 10 11:28:26 2010 +0100

    test: Fix half-coverage colouration.
    
    Hmm, red over red makes the test pointless. The test still remains of
    highly dubious quality, as it primarily serves as a rendercheck more
    than a test of Cairo. The best hope for this test is that it inspires a
    better one.
    
    And incorporate the notes made by Joonas.

 test/half-coverage.c |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)

commit 5cb764850f7c405085739647bac2809045e7cdf3
Author: Dmitri Vorobiev <dmitri.vorobiev@movial.com>
Date:   Wed Jun 9 19:20:27 2010 +0300

    scaled-font: optimize cairo_scaled_font_text_to_glyphs()
    
    This patch serves two purposes. First, it factors out the heavy part
    of the cairo_scaled_font_text_to_glyphs() routine thus allowing GCC
    to better optimize the cache cleanup loop. Keeping the look-up table
    indices in a separate array speeds up array initialization even further.
    
    Second, this patch introduces a shortcut for the case when the string
    to be rendered consists of a single character. In this case, caching is
    not necessary at all.
    
    We have a benchmark that uses Cairo to render a large amount of random
    strings of consisting of printable ASCII characters. Below are Oprofile
    results collected while running this benchmark. It is easy to see that
    the heavy part becomes noticeably lighter.
    
    Before:
    
    Profiling through timer interrupt
    samples  %        app name                 symbol name
    198755   13.5580  libcairo.so.2.10907.0    cairo_scaled_font_text_to_glyphs
    88580     6.0424  libcairo.so.2.10907.0    _cairo_scaled_glyph_lookup
    81127     5.5340  libcairo.so.2.10907.0    _cairo_hash_table_lookup
    68186     4.6513  libcairo.so.2.10907.0    cairo_scaled_font_glyph_extents
    47145     3.2160  libcairo.so.2.10907.0    _composite_glyphs_via_mask
    46327     3.1602  libcairo.so.2.10907.0    _cairo_scaled_font_glyph_device_extents
    44817     3.0572  libcairo.so.2.10907.0    _composite_glyphs
    40431     2.7580  libcairo.so.2.10907.0    .plt
    
    After (note that cairo_scaled_font_text_to_glyphs_internal_single() was inlined):
    
    Profiling through timer interrupt
    samples  %        app name                 symbol name
    107264    7.6406  libcairo.so.2.10907.0    cairo_scaled_font_text_to_glyphs_internal_multiple
    87888     6.2604  libcairo.so.2.10907.0    _cairo_scaled_glyph_lookup
    79011     5.6281  libcairo.so.2.10907.0    _cairo_hash_table_lookup
    71723     5.1090  libcairo.so.2.10907.0    cairo_scaled_font_glyph_extents
    48084     3.4251  libcairo.so.2.10907.0    _composite_glyphs_via_mask
    46636     3.3220  libcairo.so.2.10907.0    _cairo_scaled_font_glyph_device_extents
    44740     3.1869  libcairo.so.2.10907.0    _composite_glyphs
    42472     3.0254  libc-2.8.so              _int_malloc
    39194     2.7919  libcairo.so.2.10907.0    _cairo_gstate_transform_glyphs_to_backend
    38614     2.7506  libcairo.so.2.10907.0    .plt
    37063     2.6401  libcairo.so.2.10907.0    _cairo_ft_ucs4_to_index
    36856     2.6253  libc-2.8.so              random
    36376     2.5911  libcairo.so.2.10907.0    _cairo_scaled_glyphs_equal
    34545     2.4607  libcairo.so.2.10907.0    cairo_matrix_transform_point
    31690     2.2573  libc-2.8.so              malloc
    29395     2.0939  libcairo.so.2.10907.0    _cairo_matrix_is_identity
    26142     1.8621  libcairo.so.2.10907.0    _cairo_utf8_to_ucs4
    24406     1.7385  libc-2.8.so              free
    24059     1.7138  libcairo.so.2.10907.0    cairo_scaled_font_text_to_glyphs
    
    [ickle: slightly amended for stylistic consistency.]

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

commit c43399fa68696aa62599fb71752850dd46c15c82
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Jun 9 17:53:09 2010 +0200

    gl: fix compilation on MacOS X
    
    MacOS X uses different defines to avoid multiple inclusion of GL
    header files. Adding them to glew.h fixes the compilation when GL is
    enabled.

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

commit 6eb5f859f1d38783dc43541e7e87b0c5f91691d8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 9 10:40:32 2010 +0100

    bo: And disable DEBUG_TRAPS again.
    
    Meh. I'm going back to bed. Thanks Joonas for catching this.

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

commit 85af0ec37456b4eb47c39326b24370a9ccc43092
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 9 10:33:29 2010 +0100

    test: Add half-coverage to exercise the rasteriser with subpixel geometry.

 test/Makefile.sources |    1 +
 test/half-coverage.c  |  129 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 130 insertions(+), 0 deletions(-)

commit 56c081bdc6d29df932e6993109586ff275d8de12
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 9 10:33:01 2010 +0100

    bo: Fix debugging for changes in internal traps api.

 src/cairo-bentley-ottmann.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

commit a946d39555136adc4eff3b68a62ba37f6d9a6299
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jun 8 21:09:51 2010 +0200

    gl: Add support for clip regions to the span renderer
    
    Clip surface support is still missing, but i suppose that'd need a tiny
    bit more code...

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

commit f61b3f25aff454800a9d6013012d41633139d896
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jun 8 12:03:36 2010 +0200

    gl: Add an assertion that we always have a texture
    
    When painting, the sources must be textures and not windows, and we did
    that wrong previously. This assertion makes sure that never happens
    again.

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

commit c6c9a24a1df1826cab78bd8ef1c5a1074bafa0d7
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jun 8 04:11:33 2010 +0200

    gl: Use CAIRO_COLOR_BLACK
    
    ... instead of creating black on our own - and wrong, too.

 src/cairo-gl-surface.c |    8 +-------
 1 files changed, 1 insertions(+), 7 deletions(-)

commit 19bc6793d1d9b209d5a03a727288504b1e71f7c4
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jun 8 04:00:02 2010 +0200

    gl: Only clone texture surfaces
    
    Using non-texture surfaces as source or mask will fail, so we need to
    fallback.
    Caught by the subsurface-modify-child test.

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

commit 44483d843e4fe1f5db5cf213f76913d683265bb4
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jun 8 03:59:10 2010 +0200

    gl: Fix argument order
    
    oops...

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

commit 72bf1a536775138d79787729994ec9cfe2193be7
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jun 8 01:50:12 2010 +0200

    Update my copyright notices to preferred version
    
    No more copyright headers containing my name.

 test/clear-source.c          |   35 ++++++++++++++++++-----------------
 test/clip-fill-no-op.c       |   35 ++++++++++++++++++-----------------
 test/clip-stroke-no-op.c     |   35 ++++++++++++++++++-----------------
 test/pthread-same-source.c   |   35 ++++++++++++++++++-----------------
 test/pthread-similar.c       |   35 ++++++++++++++++++-----------------
 test/xcomposite-projection.c |   35 ++++++++++++++++++-----------------
 test/zero-mask.c             |   35 ++++++++++++++++++-----------------
 7 files changed, 126 insertions(+), 119 deletions(-)

commit 10d95c7020ca94903d474beb9c8ede89c186cbe3
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jun 8 20:48:25 2010 +0200

    test: add/update reference images
    
    Add missing reference images and update one-stop references according
    to current subset policy (outside the defined range, the gradient
    is clear).

 test/degenerate-linear-gradient.ref.png |  Bin 0 -> 232 bytes
 test/degenerate-radial-gradient.ref.png |  Bin 0 -> 428 bytes
 test/linear-gradient-one-stop.ref.png   |  Bin 468 -> 344 bytes
 test/radial-gradient-one-stop.ref.png   |  Bin 3772 -> 1422 bytes
 4 files changed, 0 insertions(+), 0 deletions(-)

commit dd0f8872711d9896416cca2027f578f7d58d228f
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Jun 7 17:34:12 2010 +0200

    test: fix typo

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

commit 9b88b5dce5327cbd13ea05de949c502fe41f91f7
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jun 8 10:45:06 2010 +0200

    test: add degenerate gradient and single stop tests
    
    Add tests for degeneratate linear gradients (with start point equal
    to the end point), degenerate radial gradients (start radius and end
    radius equal to zero, same start and end circle) and gradients (both
    linear and radial) with just a single stop.

 test/Makefile.sources                 |    6 ++-
 test/degenerate-linear-gradient.c     |   81 +++++++++++++++++++++++++
 test/degenerate-radial-gradient.c     |   93 ++++++++++++++++++++++++++++
 test/linear-gradient-one-stop.c       |   90 +++++++++++++++++++++++++++
 test/linear-gradient-one-stop.ref.png |  Bin 0 -> 468 bytes
 test/radial-gradient-one-stop.c       |  107 +++++++++++++++++++++++++++++++++
 test/radial-gradient-one-stop.ref.png |  Bin 0 -> 3772 bytes
 7 files changed, 376 insertions(+), 1 deletions(-)

commit 7d8359721b581845260c0442a174e48b061484a7
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jun 7 16:46:46 2010 +0200

    gl: Fix span renderer doing bad stuff for CLEAR and SOURCE
    
    SOURCE will fallback now, CLEAR is identical to DEST_OUT with white.

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

commit ef8fd1355ea03b8566ef31642b32133d3543e4e8
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jun 7 15:03:37 2010 +0200

    gl: Fix span renderer for unbounded spans
    
    The span renderer used to not output rects for the top and bottom rows
    when they didn't contain any spans.

 src/cairo-gl-surface.c |   72 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 49 insertions(+), 23 deletions(-)

commit 1d11af083f5368c88032a33ff40d0e21c139db18
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Jun 5 15:22:44 2010 +0200

    gl: Add a simple spans renderer for stroke/fill
    
    It's very simple as clipped polygons or ANTIALIAS_NONE still return
    UNSUPPORTED. Also, no optimizations are done, so even pixel-aligned
    rectangles use the full span rendering.
    
    Still, there are no performance regressions in the benchmark traces and
    firefox-talos-svg and swfdec-giant-steps both got ~15% faster.

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

commit 550335efeddf813c1bec493513254fdbd34a9ace
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Jun 5 15:19:44 2010 +0200

    Remove _cairo_surface_composite_trapezoids_as_polygon()
    
    The function computed the composite rectangles wrong and was only used
    in a gl fallback anyway. So instead of trying to fix it, just remove it
    and make sure gl doesn't fallback.

 src/cairo-gl-surface.c    |   14 --------
 src/cairo-spans-private.h |   12 -------
 src/cairo-spans.c         |   75 ---------------------------------------------
 src/cairoint.h            |   12 -------
 4 files changed, 0 insertions(+), 113 deletions(-)

commit 1e003fce8f7239aaf4608747d63287e0c715ee51
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Jun 5 14:58:32 2010 +0200

    gl: Fix vertex size changes not causing updates of the operands
    
    Check vertex size stays identical when setting up vertices.

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

commit 39143400ddd0d4e63a72ce91c423f764e466e405
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jun 4 12:25:52 2010 +0200

    gl: Add a gradient texture cache
    
    For firefox-planet-gnome, 19135 times a gradient gets rendered using
    only 10 different gradients. So we get a 100% hit rate in the cache.
    Unfortunately, texture upload is not the biggest problem of this test,
    as the performance increase is only moderate - at least on i965:
    34.3s => 33.5s

 src/cairo-gl-device.c           |   12 +++++++-
 src/cairo-gl-gradient-private.h |   18 +++++++++---
 src/cairo-gl-gradient.c         |   58 +++++++++++++++++++++++++++++++++++++--
 src/cairo-gl-private.h          |    2 +
 4 files changed, 81 insertions(+), 9 deletions(-)

commit 932ab2641ea3183171c3b5699c96c4709fc6bd49
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jun 3 18:54:18 2010 +0200

    device: flush before setting finished
    
    Otherwise APIs critical for flushing - in particular acquiring the
    device - do not work.

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

commit 35e219d08f1c202399655db183ca0105a1c2166f
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jun 3 17:50:59 2010 +0200

    gl: Make gradient textures a separate object
    
    This is necessary so we can do proper refcounting and don't delete the
    gradient texture prematurely.

 src/Makefile.sources            |    4 +-
 src/cairo-gl-composite.c        |  156 +++------------------------
 src/cairo-gl-gradient-private.h |   80 ++++++++++++++
 src/cairo-gl-gradient.c         |  223 +++++++++++++++++++++++++++++++++++++++
 src/cairo-gl-private.h          |    9 +-
 5 files changed, 327 insertions(+), 145 deletions(-)

commit 9c17a477d29f633a4850ef8b458cbca82a19afc4
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jun 3 17:40:56 2010 +0200

    gl: Use the generic functions for filter/extend in gradients

 src/cairo-gl-composite.c |   26 ++++++++------------------
 src/cairo-gl-private.h   |    2 ++
 2 files changed, 10 insertions(+), 18 deletions(-)

commit df93802765afcf883abef5549bd5dff3465e2d79
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jun 3 17:38:28 2010 +0200

    gl: Create separate functions for setting extend and filter

 src/cairo-gl-composite.c |   47 +++++++++++++++++++++++++++------------------
 1 files changed, 28 insertions(+), 19 deletions(-)

commit 10e71806d2e1929aa127642a397fa6ccef434b5b
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 2 20:04:57 2010 +0200

    gl: Switch to deferred rendering
    
    1) call _cairo_gl_composite_flush() or cairo_surface_flush() where
       needed
    2) Destroy texture operands when necessary
    3) get rid of _cairo_gl_composite_end()
    
    With this patch, vertices are not flushed immediately anymore, but only
    when needed or when a new set of vertices is emitted that requires an
    incompatible setup. This improves performance a lot in particular for
    text. (gnome-terminal-vim gets 10x faster)

 src/cairo-gl-composite.c |   40 ++++++++++++++++++++++------------------
 src/cairo-gl-glyphs.c    |    4 ----
 src/cairo-gl-private.h   |    4 ----
 src/cairo-gl-surface.c   |   12 ++++++------
 4 files changed, 28 insertions(+), 32 deletions(-)

commit f2f79ca1b3455000df4138ab500ae03b6584250c
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 2 19:57:47 2010 +0200

    gl: Make using shaders an explicit argument
    
    This is preparation for a followup patch

 src/cairo-gl-composite.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

commit 19c1d8316e22fc37c7cdaf6c3e56519c06d10561
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 2 18:14:28 2010 +0200

    gl: Special case blend mode for CAIRO_CONTENT_COLOR
    
    This ensures that alpha stays at 1 for RGB in all cases.

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

commit 1f249064cc5c19a39ffe0faaa8825c8f8b6a2175
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 2 18:11:04 2010 +0200

    gl: rework _cairo_gl_set_operator()
    
    1) store the current operator. This will be useful later to check if the
       operator changed.
    2) pass the context instead of the destination as first argument. The
       destination is known to be the current target.

 src/cairo-gl-composite.c |   16 +++++++++-------
 src/cairo-gl-device.c    |    3 +++
 src/cairo-gl-private.h   |    1 +
 3 files changed, 13 insertions(+), 7 deletions(-)

commit f66500d8b052251ea3ce06f06d2fa4c8dec2ff3b
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 2 15:53:48 2010 +0200

    gl: Only resetup textures if we need to

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

commit d9dcafd61ad6aeecb4538e9fd44e3443a8a50bf1
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 2 15:26:45 2010 +0200

    gl: Do not reset the current target on release
    
    This now also requires a call to cairo_device_flush().

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

commit ce36be5c67fa5b574eb11eb98cdd8c9cd7e09335
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 2 15:23:57 2010 +0200

    glx: When acquiring device, use the correct drawable

 src/cairo-glx-context.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

commit 5819bb07eb7ac64f0e2fbe6a46cc3db0de1d92ce
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 2 15:23:08 2010 +0200

    gl: Store the vertex offset in the operand

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

commit c75460c54d88ce9a50ac59c15a10684043ca4b0e
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 30 22:01:10 2010 +0200

    gl: Introduce a temporary texture unit
    
    ...and use it for image uploads. This makes sure that the texture units
    used for SOURCE and MASK get not clobbered when images get uploaded to
    textures.

 src/cairo-gl-composite.c |    2 ++
 src/cairo-gl-device.c    |   17 +++++++++++++++++
 src/cairo-gl-private.h   |    8 +++++++-
 src/cairo-gl-surface.c   |    2 ++
 4 files changed, 28 insertions(+), 1 deletions(-)

commit 1ddff8aba35466fe6689536bc5f2d7eeefaea02c
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 30 21:25:20 2010 +0200

    gl: Only allocate a framebuffer if we need one
    
    This way, we don't clobber the current target when creating textures for
    image surfaces.

 src/cairo-gl-device.c  |   26 ++++++++++++++++++++++++++
 src/cairo-gl-private.h |    2 +-
 src/cairo-gl-surface.c |   20 ++------------------
 3 files changed, 29 insertions(+), 19 deletions(-)

commit 1c15510c3d00553aba9ec4fd4e6764da3cdb0a41
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 30 20:12:31 2010 +0200

    Call cairo_surface_flush() before setting finished
    
    With the current code, the surface will never be flushed as the flush
    function checks if the surface is finished, and if so, doesn't call the
    vfunc. Ooops.

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

commit 467d5e7f90b9edfb62ca71e67608704424a10aca
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 21:56:57 2010 +0200

    gl: Flush properly in set_destination

 src/cairo-gl-device.c |   33 +++++++++++++++++----------------
 1 files changed, 17 insertions(+), 16 deletions(-)

commit e15348d8d0bbff6968b1f640e63315d159f143f5
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 21:55:26 2010 +0200

    gl: Don't reset vertex size

 src/cairo-gl-composite.c |   10 ++++++----
 src/cairo-gl-device.c    |    1 +
 2 files changed, 7 insertions(+), 4 deletions(-)

commit a8d6ac1efc3f1f5ff4f92f4e7a3492e62518f3f7
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 21:51:08 2010 +0200

    gl: Remove check if we're between begin/end
    
    This will be useless soon, because we will keep the current state alive as
    long as possible.

 src/cairo-gl-composite.c |    1 -
 src/cairo-gl-private.h   |    7 -------
 2 files changed, 0 insertions(+), 8 deletions(-)

commit 8f675fb801f7864aa52778d4d53d7ab68f4e664b
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 21:46:52 2010 +0200

    gl: Stop disabling the vertex array and the array buffer

 src/cairo-gl-composite.c |   12 ++++--------
 src/cairo-gl-device.c    |    4 ++++
 2 files changed, 8 insertions(+), 8 deletions(-)

commit bef0b541497eb5a621df0b5528e08adb0beff961
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 21:08:17 2010 +0200

    gl: Do not reset shaders on _end()
    
    Instead, keep the shader around until cairo_device_flush() is called.

 src/cairo-gl-composite.c |   35 ++++++++++++++++++++++-------------
 src/cairo-gl-device.c    |    3 +++
 src/cairo-gl-private.h   |    6 ++++++
 3 files changed, 31 insertions(+), 13 deletions(-)

commit 534c14729921cbc2f8e24575eb792de9ddb96e23
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 21:06:58 2010 +0200

    region: clarify docs of cairo_region_equal()

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

commit 0fc6f08981604ffdd0109362dcbbd9773501cd9a
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 20:45:52 2010 +0200

    gl: Make _shader_by_type() a getter
    
    And refactor code to do the current_shader assigning itself.

 src/cairo-gl-composite.c |   16 +++++++++++-----
 src/cairo-gl-private.h   |    5 +++--
 src/cairo-gl-shaders.c   |   13 ++++++++-----
 3 files changed, 22 insertions(+), 12 deletions(-)

commit 2971ca049881298cd171cf27cd3beb49d2c0572f
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 20:39:22 2010 +0200

    gl: bind all shader variables at the same place
    
    Avoids the need to bind the shader when creating it.

 src/cairo-gl-composite.c |   26 ++++++++++++++++++++------
 src/cairo-gl-shaders.c   |   11 -----------
 2 files changed, 20 insertions(+), 17 deletions(-)

commit e11d8370e0503f085beaa355d85fa6991cd497da
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 17:37:19 2010 +0200

    gl: Set GL_BLEND and GL_SCISSOR_TEST globally
    
    Note that we do set them unconditionally in _begin() because a flush
    might have cleared them.

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

commit 7747f6d9146c19419fdc4fbbdf72eed42dfa731d
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 17:19:56 2010 +0200

    gl: Introduce flush functions
    
    The flush functions will clear the state that will in the future be kep
    unconditionally.

 src/cairo-gl-composite.c |    6 +++---
 src/cairo-gl-device.c    |   22 +++++++++++++++++++++-
 src/cairo-gl-private.h   |    4 ++++
 src/cairo-gl-surface.c   |   36 ++++++++++++++++++++++++++++++++----
 4 files changed, 60 insertions(+), 8 deletions(-)

commit 5c74beaaa5dedd82f891f1cc109142f7b6e222a8
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 17:19:45 2010 +0200

    docs: fix typo

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

commit 92d7b1eee96e6b1448aaf3c95a44238fa0eeff48
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 16:19:12 2010 +0200

    device: Make flush vfunc return a cairo_status_t
    
    Mirror the behavior of the surface flush vfunc: Make it return a status
    and if it's an error set it on the device.

 src/cairo-device-private.h |    2 +-
 src/cairo-device.c         |    9 +++++++--
 src/cairo-xml-surface.c    |    4 +++-
 3 files changed, 11 insertions(+), 4 deletions(-)

commit 63e3cf3888d5b55295a04c4af28e876c04245b85
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 15:09:23 2010 +0200

    gl: Move unsetting the state into the operand destroy function

 src/cairo-gl-composite.c |   43 +++++++++++++++++++++++++++++--------------
 1 files changed, 29 insertions(+), 14 deletions(-)

commit b9b85dbf3706fe9e50f40b5fda655e71931c2d7f
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 13:42:11 2010 +0200

    gl: get rid of the operand's pattern variable
    
    Now someone just needs to teach cairo-gl to not use
    cairo_pattern_acquire_surface() and we could avoid the nasty hack in
    cairo_gl_operand_destroy().

 src/cairo-gl-composite.c |   21 ++++++++++-----------
 src/cairo-gl-private.h   |    2 --
 2 files changed, 10 insertions(+), 13 deletions(-)

commit ae9517a39fdddec389553a64116140e222970ef0
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 13:18:28 2010 +0200

    gl: Check mask's attributes for component alpha
    
    ... and don't duplicate that information into the cairo_gl_composite_t

 src/cairo-gl-composite.c |   14 ++++++++------
 src/cairo-gl-private.h   |    1 -
 2 files changed, 8 insertions(+), 7 deletions(-)

commit f72afc09d0b99030f5766e7bbbb05f6db606e195
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 13:14:09 2010 +0200

    gl: Merge fixed function setup into general texture setup

 src/cairo-gl-composite.c |   84 ++++++++++++++++++---------------------------
 1 files changed, 34 insertions(+), 50 deletions(-)

commit dd1faaf02e2a75ca8b9c484abd15726f5c6d3ac4
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 12:54:54 2010 +0200

    gl: Move function
    
    I wanna use it elsewhere and keep the diff small.

 src/cairo-gl-composite.c |   58 +++++++++++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 29 deletions(-)

commit d03800313623fb2b9e7d15c6a659ceaaee2882e8
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 12:51:08 2010 +0200

    gl: Simplify mask operand setup code
    
    Component alpha just has one different value

 src/cairo-gl-composite.c |   40 +++++++---------------------------------
 1 files changed, 7 insertions(+), 33 deletions(-)

commit e20261dddaa194ab4e980da8681e9378d7fd7ef1
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 12:48:59 2010 +0200

    gl: Get rid of operand argument to emit functions

 src/cairo-gl-composite.c |   34 +++++++++++++++-------------------
 src/cairo-gl-glyphs.c    |    2 +-
 src/cairo-gl-private.h   |    2 --
 src/cairo-gl-surface.c   |   11 +++--------
 4 files changed, 19 insertions(+), 30 deletions(-)

commit 8062fb352e6cd1d961f0fbc660779f4ad94c7508
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 11:03:09 2010 +0200

    gl: Add an enum for tex units
    
    Instead of hardcoding 0 for source and 1 for mask, use an enum. It's
    also clearer when functions take a cairo_gl_tex_t argument instead of a
    GLuint.

 src/cairo-gl-composite.c |   20 ++++++++++----------
 src/cairo-gl-private.h   |    5 +++++
 src/cairo-gl-shaders.c   |   34 ++++++++++++----------------------
 3 files changed, 27 insertions(+), 32 deletions(-)

commit 5db362dd6792af20282e0e9a2805ee6f1b921e44
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 28 10:24:33 2010 +0200

    gl: Keep a copy of the current operand in the context
    
    Note that they are currently only valid as long as the
    cairo_gl_composite_t exists, but that will be changed soon.

 src/cairo-gl-composite.c |   20 ++++++++++++++++----
 src/cairo-gl-private.h   |    2 ++
 2 files changed, 18 insertions(+), 4 deletions(-)

commit a05f062c806ac014d0daffa1d74bdb0dd90a8a26
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 19:23:18 2010 +0200

    gl: Move struct definitions in header

 src/cairo-gl-private.h |   66 ++++++++++++++++++++++++------------------------
 1 files changed, 33 insertions(+), 33 deletions(-)

commit 85d4c6c55b85c52d8f86247f00659e37354abd49
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 21:23:40 2010 +0200

    gl: operand->texture.surface cannot be NULL

 src/cairo-gl-composite.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

commit 9486ad5fbdad047b5194f6bed68a08bb4c594610
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 19:16:41 2010 +0200

    gl: Remove composite_t argument from _flush() function

 src/cairo-gl-composite.c |   17 +++++++----------
 src/cairo-gl-glyphs.c    |    2 +-
 src/cairo-gl-private.h   |    3 +--
 3 files changed, 9 insertions(+), 13 deletions(-)

commit 16e420b4dca5325ab295a27103299a916f334b05
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 19:13:53 2010 +0200

    gl: Remove dependency on composite_t in draw function

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

commit e46215ec6b94355b741acf5dfdd264d6396b4bc8
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 18:44:20 2010 +0200

    gl: Remove unneeded and broken workaround
    
    We now ensure the values are properly zeroed when setting the operator.

 src/cairo-gl-composite.c |   14 +-------------
 1 files changed, 1 insertions(+), 13 deletions(-)

commit b2d709b5c7e463437189b8e4a2c53a3317437825
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 17:41:01 2010 +0200

    gl: Switch src alpha handling to a tiny on/off function
    
    Instead of doing setup every time, we just set this one flag. Much
    nicer.

 src/cairo-gl-composite.c |   22 +++++++---------------
 1 files changed, 7 insertions(+), 15 deletions(-)

commit 53fd451f85974d2ed0d6f29a0a0549fd4c7035fe
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 17:32:14 2010 +0200

    gl: Avoid redundant mask setup
    
    The mask doesn't change, so no need to set it up twice

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

commit 1b3675fc4b9c7f6ad4d9edd9b27bee10c2502b81
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 17:28:05 2010 +0200

    gl: Split fixed-function operand setup into own function

 src/cairo-gl-composite.c |  151 +++++++++++++---------------------------------
 1 files changed, 42 insertions(+), 109 deletions(-)

commit 02da871050f6be02ba0231e545d6613a42c3a7e6
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 17:02:29 2010 +0200

    gl: Unify fixed function setup code

 src/cairo-gl-composite.c |   15 ++++-----------
 1 files changed, 4 insertions(+), 11 deletions(-)

commit 74f9094162fba54c29859e25ad5be085604aa0b6
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 15:46:39 2010 +0200

    gl: switch OPERAND0 and OPERAND1 in the fixed function path
    
    This should not change anything as we multiply the values.
    But it allows unifying parts of the code, which will happen in another
    patch.

 src/cairo-gl-composite.c |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)

commit c6aac5d0134f1473d3867c1b6a4b40753700ffcb
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 15:42:56 2010 +0200

    gl: Move the pre shader to the context, too
    
    It's required when flushing, too.

 src/cairo-gl-composite.c |   10 +++++-----
 src/cairo-gl-private.h   |    2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 61bc3067ca5fa4aeaef537c397c37826facc7621
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 15:28:32 2010 +0200

    gl: Store the clip region in the context
    
    This is necessary because we want to get rid of keeping the composite
    stuff around.

 src/cairo-gl-composite.c |   15 ++++++++++-----
 src/cairo-gl-device.c    |    2 ++
 src/cairo-gl-private.h   |    1 +
 3 files changed, 13 insertions(+), 5 deletions(-)

commit db79880d9a836d50e9202caa5c73e22a2b6b97b3
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 13:03:12 2010 +0200

    gl: Make gl_composite_begin() acquire the context
    
    Also remove the previous places for context acquisition. This completes
    fixing the potential ABBA deadlock I talked about a few commits ago.

 src/cairo-gl-composite.c |   21 +++++++++++++++++----
 src/cairo-gl-glyphs.c    |    7 ++++++-
 src/cairo-gl-private.h   |    4 ++--
 src/cairo-gl-surface.c   |   26 +++++---------------------
 4 files changed, 30 insertions(+), 28 deletions(-)

commit 1320a168fa5b73fd42438040a4bf8ee9ad222a0e
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 12:26:49 2010 +0200

    gl: Remove unused code
    
    We don't need to acquire/release the context, we're not using it.

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

commit 8f5c3b706b5bad6b0851a3e27752f7d1a3ca8a72
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 12:16:01 2010 +0200

    gl: Make composite_set_clip_region not require the context

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

commit ac6abcbac7f79e5717c44e251135dcba8ab00b27
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 12:14:24 2010 +0200

    gl: Make composite_set_source/mask/mask_spans not require a context

 src/cairo-gl-composite.c |   77 ++++++++++++++++++++++++----------------------
 src/cairo-gl-glyphs.c    |    5 +--
 src/cairo-gl-private.h   |    9 ++---
 src/cairo-gl-surface.c   |   13 +++----
 4 files changed, 51 insertions(+), 53 deletions(-)

commit 88a70d66fcdbca7e489baa48cd145bb69c3e28e0
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 11:59:36 2010 +0200

    gl: Add API for querying if we need GL_TEXTURE_RECTANGLE_EXT
    
    We need to do that querying outside of taking the lock, so we want to be
    able to query the device, not the context.

 src/cairo-gl-composite.c |   11 +++++------
 src/cairo-gl-glyphs.c    |    2 +-
 src/cairo-gl-private.h   |    6 ++++++
 3 files changed, 12 insertions(+), 7 deletions(-)

commit 9c6e1338a1c7d61b4cc84bcdc5c38573a34cd561
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 26 11:36:22 2010 +0200

    gl: Make cairo_gl_composite_t not require a gl context anymore
    
    First patch in a series.
    
    The idea is to make all gl operations in Cairo work like this:
    1) prepare cairo_gl_composite_t
    2) acquire device
    3) begin composite operation
    4) emit vertexes
    5) end operation
    6) release device
    7) cleanup composite operation
    
    This both reduces the time required with the device locked, cleans the
    API and more importantly avoids ABBA deadlocks, as we currently call
    acquire_pattern() with the device lock held.

 src/cairo-gl-composite.c |    6 ++----
 src/cairo-gl-glyphs.c    |    7 +++----
 src/cairo-gl-private.h   |    6 ++----
 src/cairo-gl-surface.c   |   19 ++++++++-----------
 4 files changed, 15 insertions(+), 23 deletions(-)

commit 60f0cb9c60556f94af903dd6f9da0628a05a1f7f
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 22 18:42:44 2010 +0200

    gl: Flush surface at the right times

 src/cairo-gl-composite.c |    2 ++
 src/cairo-gl-device.c    |    2 ++
 src/cairo-gl-surface.c   |    2 ++
 3 files changed, 6 insertions(+), 0 deletions(-)

commit ffeeae462ea0f8c7af326f3bcc66b88881bd8fdd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 6 16:50:34 2010 +0100

    Revert "gstate: reduce a couple more operators"
    
    This reverts commit a85c6c1e36273d534f01ade0714b0592b6bed5ab.
    
    Soeren found that this introduced a regression when displaying pages in
    evince, and since I'm not overly enthralled at the added complexity here
    for very little gain, remove the reduction and leave it clear for a more
    complete solution in the future.

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

commit 44e628a6f4e6b9b21ad67b08869186a779d0db5a
Author: Makoto Kato <m_kato@ga2.so-net.ne.jp>
Date:   Mon May 31 18:22:40 2010 +0900

    openvg: fix build break

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

commit cc080a1e2731a42045709d789587070da944145c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 27 20:51:55 2010 +0100

    gl: Unmap the vertex buffer prior to using in DaawArrays()
    
    "It is an INVALID_OPERTION error to source data from a buffer object
    that is currently mapped."
    
    mesa is currently lax in this regard, but the Nvidia libGL conforms to
    the spec and thus was causing failures.

 src/cairo-gl-composite.c |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 deletions(-)

commit b3e15bd5c307352065555c6c3ae5f0bd15b9a791
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 27 18:43:03 2010 +0100

    gl: _cairo_set_shader_by_type() cannot return UNSUPPORTED
    
    So remove the superfuous test.

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

commit 59bd34e6a3661483f60bb01be8b406a5c38e1131
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 27 18:35:40 2010 +0100

    gl: Check for an error device when creating surfaces.

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

commit 53f086105975c1c2bd4c43a1b0613ebde3580e95
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 27 18:27:53 2010 +0100

    gl: Make _cairo_gl_shader_(init|compile) static
    
    Only used within _cairo_gl_shaders.c, so remove the private symbol.

 src/cairo-gl-private.h |   10 ----------
 src/cairo-gl-shaders.c |   41 +++++++++++++++++++++++++----------------
 2 files changed, 25 insertions(+), 26 deletions(-)

commit dd0866cdc878a0be438a117051ccc64f12f81970
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 27 17:52:11 2010 +0100

    boilerplate: Exercise RENDER capable windows.
    
    Ensure that the drivers actually work when rendering to a normal window.

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

commit 2dc42af9422a15f902934a53c074e4194991a9e4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 17 16:32:20 2010 +0100

    script: Update csi-exec to match new interface.

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

commit 2f0f4ed0e2ae5657dedfe180b7be3a2496753ba8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 20 21:54:51 2010 +0100

    freed-pool: Don't access beyond the end of the array.
    
    Argh. This bug has been here for quite some time and only showed itself
    with a corrupt pointer on ppc32. Since the erroneous write is inside the
    block, it remained undetected by valgrind.

 src/cairo-freed-pool-private.h |    8 +++++---
 src/cairo-freed-pool.c         |    4 +++-
 2 files changed, 8 insertions(+), 4 deletions(-)

commit 97b4aeba44e5f4b23b3ed417b991570b46d4736e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 20 21:54:16 2010 +0100

    atomic: Add memory barriers if required for intel primitives

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

commit 24e684c267404528b40fa49b55272d73bd44167d
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu May 20 22:37:18 2010 +0200

    gl: spans need the dummy texture
    
    Thanks Eric. That took me half a day.

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

commit d7a564d8eed32b4417fdb4c8c5d91467e4ae1019
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 20 22:10:06 2010 +0200

    gl: Don't set is_clear
    
    1) It's wrong.
    2) The core functions set the flag correctly already.

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

commit f9cf07b126293d00df085d4fbfa337e1132e0258
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 20 16:08:38 2010 +0200

    gl: Fix coverage passing for spans not being endian safe.

 src/cairo-gl-composite.c |   29 ++++++++++++++++-------------
 src/cairo-gl-private.h   |    2 +-
 src/cairo-gl-surface.c   |    4 ++--
 3 files changed, 19 insertions(+), 16 deletions(-)

commit 2a0f34c6da2eb4f10b198d04894fc1413352e041
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 20 11:23:18 2010 +0200

    gl: Allow NONE and SPANS sampler for source, too

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

commit 1586f7740ad436447ac75c6b869da7446172a63c
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu May 20 13:17:52 2010 +0200

    gl: Refactor fixed function setup code
    
    In particular get rid of the _cairo_gl_set_tex_combine_constant_color()
    function by inlining it and move common glTexEnv calls out of the
    switch statement.

 src/cairo-gl-composite.c |  130 ++++++++++++++++-----------------------------
 1 files changed, 46 insertions(+), 84 deletions(-)

commit 4889090c76bdab5e4eb887593caf5d5a34f90864
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu May 20 12:13:43 2010 +0200

    gl: set the active texture before fiddling with with glTexEnv
    
    fixes the fixed function pipeline

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

commit 3cff2da912150868390bf4b9df166c88b3dfcf2e
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu May 20 12:03:18 2010 +0200

    gl: Remove unused variables

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

commit 4c7dd1be4526c85b47f1fe1d4663e7fbec0926b1
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 22:03:18 2010 +0200

    gl: Move vertex array setup code into the texture setup code

 src/cairo-gl-composite.c |   35 ++++++++++++++---------------------
 1 files changed, 14 insertions(+), 21 deletions(-)

commit d9d5976bdf333a5a7ea7707bc3076696f3c079d2
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 21:54:32 2010 +0200

    gl: Add an assertion that a context cannot call _begin() twice
    
    Evert _begin() call must be followed by an _end() call to avoid any
    nastiness. Just like GL. :)

 src/cairo-gl-composite.c |    2 ++
 src/cairo-gl-private.h   |    7 +++++++
 2 files changed, 9 insertions(+), 0 deletions(-)

commit 5b8b1fe1cb692530b40db330c3040cd85a8b6bd7
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 21:10:26 2010 +0200

    gl: Move vertex buffer handling from setup into context
    
    We can only emit one vertex buffer at a time anyway.

 src/cairo-gl-composite.c |   34 ++++++++++++++++++----------------
 src/cairo-gl-private.h   |    8 ++++----
 2 files changed, 22 insertions(+), 20 deletions(-)

commit 0d5f2eab77f055b063538dcd345a1e0db480f3bc
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 20:49:49 2010 +0200

    gl: Actuall do fall back to fixed function paths.
    
    Previously we were just returning UNSUPPORTED all the time. I guess that
    explains why my code got so slow...

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

commit bb7ca71c1af416ca084f03089f5fe762403635dd
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 20:47:31 2010 +0200

    gl: Don't store the shader in the composite_t anymore
    
    Now that we have ctx->current_shader, there's no need to keep it in the
    composite setup code.

 src/cairo-gl-composite.c |   30 ++++++++++++++----------------
 src/cairo-gl-private.h   |   10 ++++------
 src/cairo-gl-shaders.c   |   16 ++++++----------
 3 files changed, 24 insertions(+), 32 deletions(-)

commit 6c477b4a945a8f8b866bb2f5e125d4a0328d05f4
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 20:10:19 2010 +0200

    gl: Move shader checking in the TexEnv setup code
    
    As the previously generic setup code only contains non-shader code now,
    we can check in advance that no shader is in use and do all the other
    stuff without checks.

 src/cairo-gl-composite.c |  208 ++++++++++++++++++++++------------------------
 1 files changed, 101 insertions(+), 107 deletions(-)

commit 73262edd8201de8ab8a01e01f83af5b5d6470f9e
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 19:25:03 2010 +0200

    gl: Move texture setup code into its own file
    
    This ensures textures don't need to be (re)set when doing component
    alpha and running 2 shaders.

 src/cairo-gl-composite.c |  208 ++++++++++++++++++++--------------------------
 1 files changed, 92 insertions(+), 116 deletions(-)

commit 970c879dd897019f90b0c8ff5a18781be4935c55
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 18:34:00 2010 +0200

    gl: Binding variables only works for the current shader
    
    So make the code reflect that.

 src/cairo-gl-composite.c |   27 ++++++++++++---------------
 src/cairo-gl-private.h   |    6 ------
 src/cairo-gl-shaders.c   |   22 ++++++++--------------
 3 files changed, 20 insertions(+), 35 deletions(-)

commit 065969d78f23c634ebcb2b931cbb1fe184f2cedf
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 18:21:06 2010 +0200

    gl: Separate binding to shaders from setting operands
    
    That way we only need to bind to shaders when creating them, but not
    everytime we switch shaders on text output.

 src/cairo-gl-composite.c |  156 +++++++++++++++++++++++-----------------------
 src/cairo-gl-shaders.c   |    2 +-
 2 files changed, 79 insertions(+), 79 deletions(-)

commit c53f7778bcf274f64f801ef9ee1641a088842f60
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 16:50:57 2010 +0200

    gl: Use the mask, not the source
    
    Not that we'd ever have constant color component-alpha masks, but that's
    an entirely different topic.

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

commit 26e8e506b66022910c262da0618ef5be8c5a080e
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 13:19:56 2010 +0200

    gl: Add _cairo_gl_surface_is_texture()
    
    It's more explicit then just checking surface->fb != 0
    Also, it makes improving that check easier.

 src/cairo-gl-device.c  |    4 ++--
 src/cairo-gl-private.h |    6 ++++++
 src/cairo-gl-surface.c |   11 ++++++-----
 3 files changed, 14 insertions(+), 7 deletions(-)

commit e4cb46b50015f792b0e8c7b49f3b42f2c3c0ad00
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 12:10:10 2010 +0200

    gl: Implement texture upload to window with composite()
    
    Instead of custom code that does basically the same thing, use
    a temporary surface and _cairo_gl_surface_composite() to upload images.

 src/cairo-gl-shaders.c |    2 +-
 src/cairo-gl-surface.c |  131 +++++++++++++++++------------------------------
 2 files changed, 49 insertions(+), 84 deletions(-)

commit 7c8759e279f51ea722c07e4b0c70f4a49f34393d
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 11:46:12 2010 +0200

    gl: cache the current shader in the context

 src/cairo-gl-private.h |    4 +++-
 src/cairo-gl-shaders.c |    7 +++++++
 2 files changed, 10 insertions(+), 1 deletions(-)

commit 6864ca6c25aa8147a562d7f693a95025dde807a8
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 19 11:10:11 2010 +0200

    gl: Move _cairo_gl_set_operator() to the file it's used in
    
    Also make it a private function.

 src/cairo-gl-composite.c |   57 ++++++++++++++++++++++++++++++++++++++++++++++
 src/cairo-gl-private.h   |    4 ---
 src/cairo-gl-surface.c   |   57 ----------------------------------------------
 3 files changed, 57 insertions(+), 61 deletions(-)

commit 0d2d4c59026c31da084e6797d109a230341b396d
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 18 21:56:55 2010 +0200

    gl: Detect color-pattern clears of surfaces
    
    ... and use glClear() there.
    
    The common case here is a solid color and OPERATOR_OVER.

 src/cairo-gl-private.h |    3 ---
 src/cairo-gl-surface.c |   38 +++++++++++++++++++++++++++++---------
 2 files changed, 29 insertions(+), 12 deletions(-)

commit b70eb275c4aa54f7c90a985b5de67da12ac08a30
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 18 21:56:18 2010 +0200

    gl: detect image uploads and fast-path them

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

commit 8adbf3aa19fd9fb8200973ecd72cdebfd9a5364d
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 18 20:12:44 2010 +0200

    gl: Use _cairo_gl_surface_draw_image() when caching glyphs

 src/cairo-gl-glyphs.c |   47 ++++++++---------------------------------------
 1 files changed, 8 insertions(+), 39 deletions(-)

commit 915aa64ef077fe3b6094d0f1c8bd87ab5acc4868
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 18 13:01:30 2010 +0200

    gl: Actually check errors for _cairo_gl_composite_begin()

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

commit 0222cc7d76b0dc724630b660687f98a2460eb0b9
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 18 13:00:34 2010 +0200

    gl: Get rid of _cairo_gl_composite_set_mask_texture()
    
    Now that the glyph cache contains real surfaces, there's no longer a
    need to have a special function for it.

 src/cairo-gl-composite.c |   16 ----------------
 src/cairo-gl-glyphs.c    |   15 ++++++++-------
 src/cairo-gl-private.h   |    6 ------
 3 files changed, 8 insertions(+), 29 deletions(-)

commit 208d9f2a7e1f66ff2764c41fe67f65e27279b2ab
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 18 12:49:59 2010 +0200

    gl: Make glyph cache a real surface
    
    This has the huge advantage that we can use real surface functions on
    it.

 src/cairo-gl-glyphs.c  |   67 ++++++++++++++++++------------------------------
 src/cairo-gl-private.h |    3 +-
 2 files changed, 26 insertions(+), 44 deletions(-)

commit 050117996339cfe35add1f2cd44d0e5578d4a981
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 18 12:02:54 2010 +0200

    surface: Add _cairo_surface_release_device_reference() API
    
    See the API documentation for that function about its intended purpose.

 src/cairo-surface-private.h |    1 +
 src/cairo-surface.c         |   26 +++++++++++++++++++++++++-
 src/cairoint.h              |    3 +++
 3 files changed, 29 insertions(+), 1 deletions(-)

commit c489f67d1d1d6079f9b58b726ed42beea1dfc44e
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 17 20:45:42 2010 +0200

    gl: Make a bunch of functions static
    
    They are no longer used outside of cairo_gl_composite_t.

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

commit c8008e118a54d62690d6555c9ffabf734c39e69f
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 17 19:16:20 2010 +0200

    gl: Don't name the union in cairo_gl_operand_t
    
    Gets rid of ultra-long variable names.

 src/cairo-gl-composite.c |  152 +++++++++++++++++++++++-----------------------
 src/cairo-gl-private.h   |    2 +-
 2 files changed, 77 insertions(+), 77 deletions(-)

commit 53260148ea9abacdc510826765c1d63f486add6c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri May 14 21:04:22 2010 +0200

    quartz: fix repeating radial gradients on 64 bits
    
    Quartz API uses the type CGFloat, which is double on 64 bits,
    float on 32 bits architectures

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

commit 0104976dc853b60de14080a749a6f729852f1b22
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri May 14 21:03:19 2010 +0200

    quartz: silence compiler warnings
    
    All the possible enum values have to be explicitly handled in switch statements.

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

commit ac94a00a4d3acb36f011330b78d1311534fe90e0
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri May 14 19:33:15 2010 +0200

    quartz: fallback for A1 images on little endian archs
    
    Quartz uses a bit ordering that is consistent with cairo on big
    endian architectures, but isn't on little endian architectures.
    
    Fixes a1-mask and large-source-roi (on little endian)

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

commit f40e3b09a130a9ccbe310120fd5cfc7ad7828a4d
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu May 13 12:15:19 2010 +0200

    quartz-font: Silence 0x0 CGContext warning
    
    Silence Quartz complaints about operations on empty contexts:
    <Error>: CGContextSetFont: invalid context 0x0
    <Error>: CGContextSetFontSize: invalid context 0x0
    <Error>: CGContextSetTextMatrix: invalid context 0x0
    <Error>: CGContextSetAlpha: invalid context 0x0
    <Error>: CGContextShowGlyphsAtPoint: invalid context 0x0

 src/cairo-quartz-font.c |   77 +++++++++++++++++++++++++---------------------
 1 files changed, 42 insertions(+), 35 deletions(-)

commit 1687e6169463947554f5476674a577e67e2c543b
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu May 13 11:54:32 2010 +0200

    quartz-font: Conform context and antialias handling to quartz-surface
    
    A8 surfaces are now kAlphaOnly surfaces in quartz-font too.
    Subpixel font smoothing can be enabled.

 src/cairo-quartz-font.c |   38 ++++++++++++++++++++++++++++----------
 1 files changed, 28 insertions(+), 10 deletions(-)

commit d68bbc0fe5706634e4c025bdcb311905b7f008e4
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon May 17 20:57:08 2010 +0200

    gl: Add missing NULL-check in non-shader code

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

commit 7f22372edf10f5eab53ea132d9226f6d5b49eb9a
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 17 14:20:17 2010 +0200

    gl: Get rid of src and mask argument to composite_init()
    
    This was thought of as a way to detect self-painting, but it's better to
    check that later in _begin() - when we check it.

 src/cairo-gl-composite.c |    2 --
 src/cairo-gl-glyphs.c    |    2 +-
 src/cairo-gl-private.h   |    2 --
 src/cairo-gl-surface.c   |    9 ++++-----
 4 files changed, 5 insertions(+), 10 deletions(-)

commit 75f15babed8409fb1eaae514411de01d57072c80
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 17 14:17:47 2010 +0200

    gl: Implement fill_rectangles with composite
    
    Tiny performance improvement, but a lot less code.

 src/cairo-gl-surface.c |  204 ++++++++++--------------------------------------
 1 files changed, 41 insertions(+), 163 deletions(-)

commit e7c5b4f79fa24b75026c93bc9244115d2ee23930
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 17 13:56:22 2010 +0200

    gl: make _set_mask() accept NULL
    
    That way, it can be used to unset the mask.

 src/cairo-gl-composite.c |    3 +++
 src/cairo-gl-surface.c   |   14 ++++++--------
 2 files changed, 9 insertions(+), 8 deletions(-)

commit 145db7a427e594f1d68a6c0f4afe5e365e219cf0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 17 12:37:46 2010 +0100

    gl: Check status after composite_begin
    
    Skip the unnecessary work in _cairo_gl_surface_composite() if we fail
    to setup the GL composite operation.

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

commit 8695c41e80ce932fd5dd434307b92f323a937c7c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 17 12:36:54 2010 +0100

    gl: Throw a _cairo_error when detecting a GLerror
    
    This allows us to easily set an breakpoint and inspect cairo's state
    when we do something illegal.

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

commit 1c18ab02c8d41be8e5886cbb34aeda5099189fef
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 17 11:42:26 2010 +0100

    gl: Rename cairo_gl_shader_program_t to cairo_gl_shader_t
    
    And complete the move of the shaders into the cairo_gl_shader namespace.
    Of particular note, the bind_*_to_shader become
    _cairo_gl_shader_bind_*() and have proper types.

 src/cairo-gl-composite.c |  138 +++++++-------
 src/cairo-gl-device.c    |   14 +-
 src/cairo-gl-private.h   |   93 +++++----
 src/cairo-gl-shaders.c   |  508 +++++++++++++++++++++++++--------------------
 src/cairo-gl-surface.c   |   54 ++----
 5 files changed, 424 insertions(+), 383 deletions(-)

commit 2325d755b03958d8ead9a995c0d1d03e4f93af0c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 17 10:33:46 2010 +0100

    gl: Pretty print the error GLenum.

 src/cairo-gl-private.h |    3 ++-
 src/cairo-gl-surface.c |   19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletions(-)

commit 7ef1bd22ded512f4fad3959796d7f40c4ddc5824
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 17 01:12:34 2010 +0200

    gl: Update copyright statements
    
    - add 2010 Red Hat copyright for my code
    - include myself as author
    - update contributors list

 src/cairo-gl-composite.c |    5 ++++-
 src/cairo-gl-device.c    |    5 ++++-
 src/cairo-gl-glyphs.c    |    5 +++++
 src/cairo-gl-private.h   |    6 ++++--
 src/cairo-gl-shaders.c   |    8 +++++++-
 src/cairo-gl-surface.c   |    5 ++++-
 6 files changed, 28 insertions(+), 6 deletions(-)

commit 0b69e51b526a609a2dc5f1d2fb9c49f240feb57b
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 17 00:56:21 2010 +0200

    gl: Assert that binding values to shaders never fails
    
    As that would  be a programming error, we can use an assert and get rid
    of return values that we weren't checking anyway.

 src/cairo-gl-composite.c |  129 +++++++++++++++++++---------------------------
 src/cairo-gl-private.h   |   12 ++--
 src/cairo-gl-shaders.c   |  114 ++++++++++++++++-------------------------
 src/cairo-gl-surface.c   |   15 +++---
 4 files changed, 111 insertions(+), 159 deletions(-)

commit 0bb11e8f5bcdc8a6f8384197b39c2ad48eaab1cd
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 17 00:49:01 2010 +0200

    gl: Use GL_TRIANGLES instead of GL_QUADS
    
    It seems to increase performance by 1-2% on average and up to 30% in
    some cases (on i965).

 src/cairo-gl-composite.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

commit 2b771da47a87f86f378314bfe8033874d9444914
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 23:58:47 2010 +0200

    xlib: ensure variable isn't uninitialized

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

commit b768a33a602942825e5ec651ae7bafd6d5fc33ac
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 21:10:45 2010 +0200

    gl: Set composite->has_component_alpha based on mask
    
    Previously it was set when initing the composite structure, but that
    doesn't allow resetting it when a new mask is used.

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

commit 1cde4601df8a3689450e2a0e15888c53aff12983
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 21:05:16 2010 +0200

    gl: Replace _cairo_gl_operand_init() with setters for src/mask
    
    Now cairo_gl_operand_t is no longer exposed outside of
    cairo-gl-composite.c

 src/cairo-gl-composite.c |   34 +++++++++++++++++++++++++++++++++-
 src/cairo-gl-glyphs.c    |   10 +++++-----
 src/cairo-gl-private.h   |   25 ++++++++++++++++---------
 src/cairo-gl-surface.c   |   26 +++++++++++++-------------
 4 files changed, 67 insertions(+), 28 deletions(-)

commit 6575cb7a95e109ab39eda58603ed6a76581a41b0
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 20:39:00 2010 +0200

    gl: Convert glyphs path to use cairo_gl_composite_t

 src/cairo-gl-composite.c |  122 +++++++++++++-----
 src/cairo-gl-glyphs.c    |  331 +++++----------------------------------------
 src/cairo-gl-private.h   |   22 +++
 3 files changed, 150 insertions(+), 325 deletions(-)

commit 8937f2b4b5e4bcb8ada1e478df6a7329c0b80a5a
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 13:19:48 2010 +0200

    gl: Require ARB_vertex_buffer_object extension unconditionally
    
    <anholt> we shouldn't bother with non-vbo support. there's no
    justification for a driver not supporting it.

 src/cairo-gl-composite.c |    1 -
 src/cairo-gl-device.c    |    5 +++--
 src/cairo-gl-glyphs.c    |    3 ---
 src/cairo-gl-private.h   |    7 -------
 src/cairo-gl-surface.c   |   12 ++++--------
 5 files changed, 7 insertions(+), 21 deletions(-)

commit 29dfd5b488e16ec8be879b2415635df93b874afc
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 03:36:05 2010 +0200

    gl: Remove unused variables

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

commit 4144488f516214b675d25d48add8cbd83fd17025
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 03:29:04 2010 +0200

    gl: Convert span renderer to use cairo_gl_composite_begin/end()
    
    Adds two new APIs to the composite API:
    - _cairo_gl_composite_set_mask_spans()
      Tells the composite renderer to use the color values for spans.
    - _cairo_gl_composite_set_clip_region()
      Tells the composite renderer to use GL_SCISSORS_TEST to clip when
      drawing. This function is very unperformant, so if it can be avoided,
      it probably shouldn't be used.

 src/cairo-gl-composite.c |   72 +++++++++++++-
 src/cairo-gl-private.h   |   10 ++
 src/cairo-gl-surface.c   |  247 ++++++----------------------------------------
 3 files changed, 110 insertions(+), 219 deletions(-)

commit 6e81d85e3682f14e1c5dbe97dda2cc1fcd32df3a
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 03:27:28 2010 +0200

    gl: Change _cairo_gl_composite_emit_rect()
    
    Two changes:
    - The function now takes x1/y1,x2/y2 instead of x,y,width,height
    - The function takes a color uint32_t. This will be used by spans.

 src/cairo-gl-composite.c |   27 +++++++++++++++------------
 src/cairo-gl-private.h   |    9 +++++----
 src/cairo-gl-surface.c   |   10 ++++++----
 3 files changed, 26 insertions(+), 20 deletions(-)

commit f8398cc2d83eb9ac37874f71d4f8805dbf0df412
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 02:34:18 2010 +0200

    gl: remove unused variables from span renderer

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

commit f5c5077def47b91b57dfbc8c2622b4aaf5ca8fbb
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 02:06:43 2010 +0200

    gl: Support component alpha in gl_composite_t
    
    Use that to get rid of cairo_gl_surface_composite_component_alpha()

 src/cairo-gl-composite.c |  165 ++++++++++++++++++++++++++--
 src/cairo-gl-glyphs.c    |    2 +-
 src/cairo-gl-private.h   |    4 +
 src/cairo-gl-surface.c   |  280 +---------------------------------------------
 4 files changed, 167 insertions(+), 284 deletions(-)

commit 88c118f891ca9ba472b8acff33829de845bb507c
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 16 00:24:17 2010 +0200

    gl: Implement _composite_emit_rect() and _composite_end()
    
    And use it in cairo_gl_surface_composite()

 src/cairo-gl-composite.c |  164 ++++++++++++++++++++++++++++++++++++++++++++++
 src/cairo-gl-private.h   |   19 +++++
 src/cairo-gl-surface.c   |  107 +++---------------------------
 3 files changed, 192 insertions(+), 98 deletions(-)

commit b96735f7b465a16182c4c8555878ba16b947e8f9
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 15 22:12:12 2010 +0200

    gl: Add _cairo_gl_composite_begin() function
    
    This is the first step at adding the following function set:
    _cairo_gl_composite_begin()
    _cairo_gl_composite_emit_*()
    _cairo_gl_composite_end()
    which will take care of proiding a unified model for emitting vertexes
    using vbos instead of the 5 different methods we currently have.

 src/cairo-gl-composite.c |   30 ++++++++++++++++++++++++++++++
 src/cairo-gl-private.h   |    6 ++++++
 src/cairo-gl-surface.c   |   22 +---------------------
 3 files changed, 37 insertions(+), 21 deletions(-)

commit 211a8b8234d24dd8e00332cb0b0e625ac1ffef58
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 15 21:27:58 2010 +0200

    gl: make _cairo_operand_destroy private

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

commit bf1060252abaa97eb5ce149f8b99055b42096c67
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 15 21:26:55 2010 +0200

    gl: make show_glyphs use the cairo_composite_t API

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

commit 948290de12c5f451d361903f0f52e0cde5527180
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 15 20:33:00 2010 +0200

    gl: Make the span renderer use the new composite APIs

 src/cairo-gl-surface.c |   32 ++++++++++++++++++++------------
 1 files changed, 20 insertions(+), 12 deletions(-)

commit 7ad8c3b45691ce0c8a86180bb3c1117b9a9980c0
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 15 20:07:44 2010 +0200

    gl: Move composite code into own file
    
    This allows designing a cleaner interface for cairo_composite_t as there
    will not be static functions that get called outside of the "published"
    interfaces.

 src/Makefile.sources     |    3 +-
 src/cairo-gl-composite.c |  898 ++++++++++++++++++++++++++++++++++++++++++++++
 src/cairo-gl-private.h   |    8 +
 src/cairo-gl-surface.c   |  851 +-------------------------------------------
 4 files changed, 910 insertions(+), 850 deletions(-)

commit 3ff32b00f0f85a853163c20b101ac5dd6a07da77
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 15 18:20:56 2010 +0200

    gl: cairo_gl_compsite_setup_t => cairo_gl_composite_t

 src/cairo-gl-glyphs.c  |    4 ++--
 src/cairo-gl-private.h |   26 +++++++++++++-------------
 src/cairo-gl-surface.c |   46 +++++++++++++++++++++++-----------------------
 3 files changed, 38 insertions(+), 38 deletions(-)

commit c16edee26fb9f1669ee0ce1a61f0c54d802c6c7b
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 15 17:33:24 2010 +0200

    gl: use glBlendFuncSeparate()
    
    This way we can treat alpha-only textures correctly and don't have to
    emit different shaders for it. Also gets rid of
    GL_OPERAND_TEXTURE_ALPHA.

 src/cairo-gl-glyphs.c  |    9 +++------
 src/cairo-gl-private.h |    1 -
 src/cairo-gl-shaders.c |   37 -------------------------------------
 src/cairo-gl-surface.c |   37 +++++++++++++------------------------
 4 files changed, 16 insertions(+), 68 deletions(-)

commit 4f5221a834a883262cce607d247f607d6c200363
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 12 21:12:37 2010 +0200

    gl: acquire device manually in finish, as the default way will error
    
    We'll get CAIRO_STATUS_DEVICE_FINISHED, d'oh

 src/cairo-gl-device.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

commit 3f6300444928d12bf4a6e2f6f2c5fec1de7dba8e
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 12 20:53:20 2010 +0200

    gl: Put shaders into a cache
    
    This allows to grow the complexity of the shaders without enlarging the
    static array to unreasonable sizes.
    
    The cache size of 64 is essentially random.

 src/cairo-gl-device.c  |    2 +
 src/cairo-gl-private.h |    8 ++-
 src/cairo-gl-shaders.c |  111 ++++++++++++++++++++++++++++++++++++++++--------
 3 files changed, 100 insertions(+), 21 deletions(-)

commit 08b04caf52518f1672694341355b5f5418008e78
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 12 18:10:04 2010 +0200

    gl: Add cairo_gl_composite_setup_init/fini() functions
    
    Simplifies the main code paths, and can be extended to do dest copies.

 src/cairo-gl-private.h |   13 +++++++
 src/cairo-gl-surface.c |   91 +++++++++++++++++++++++++++--------------------
 2 files changed, 65 insertions(+), 39 deletions(-)

commit aa14df0db5e4f236a9668ceda4e148e7d3ba0e9f
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 12 17:01:47 2010 +0200

    gl: move operator check
    
    component alpha compositing checks the operator itself

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

commit a3ee0a7f113ed38df66580ff7e38a79759b0c933
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 12 16:57:32 2010 +0200

    gl: Programmatically generate fragment shaders

 src/cairo-gl-shaders.c |  428 +++++++++++++++++++++---------------------------
 src/cairo-gl-surface.c |    6 +-
 2 files changed, 186 insertions(+), 248 deletions(-)

commit fe43b13052f7063f880aeeebda1880a6a2097922
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 12 13:57:06 2010 +0200

    gl: Automatically generate the vertex shader source
    
    The idea is being able to generate shaders from the given input
    on-demand. This allows creating more advanced shaders, such as those
    that include the destination (for self-painting and
    unsupported-by-blending operator) or painting images in weird formats
    (extra translation step in shader, think YUV).

 src/cairo-gl-device.c  |    2 +-
 src/cairo-gl-private.h |   21 +++---
 src/cairo-gl-shaders.c |  195 +++++++++++++++++++++++++++++-------------------
 src/cairo-gl-surface.c |    3 +-
 4 files changed, 132 insertions(+), 89 deletions(-)

commit 405eee07ad9a5bc325b339b8588facb905fb28f5
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 12 00:02:28 2010 +0200

    gl: Get rid of cairo_gl_shader_source/mask_t
    
    Use the cairo_gl_operand_type_t instead. Those enums are pretty much
    identical.

 src/cairo-gl-glyphs.c  |   13 +++--
 src/cairo-gl-private.h |   67 ++++++++-------------
 src/cairo-gl-shaders.c |   60 ++++++++++---------
 src/cairo-gl-surface.c |  153 +++++++++++++++++++++++++++++-------------------
 4 files changed, 157 insertions(+), 136 deletions(-)

commit 5149bb87d7b547766ce6ff4976217454adbab562
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 11 21:35:13 2010 +0200

    gl: s/_cairo_gl_set_destination/_cairo_gl_context_set_destination/
    
    It's an operation on the context, so name it accordingly

 src/cairo-gl-device.c  |    2 +-
 src/cairo-gl-glyphs.c  |    2 +-
 src/cairo-gl-private.h |    2 +-
 src/cairo-gl-surface.c |   16 ++++++++--------
 4 files changed, 11 insertions(+), 11 deletions(-)

commit 9f34e403f38192d711304fbde4dedbaa8e15fd6e
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 11 13:15:16 2010 +0200

    gl: Share vertex shaders
    
    Previously, we created a new vertex shader for every shader program we
    used. Now the code shares identical vertex shaders between programs.

 src/cairo-gl-device.c  |   17 ++++-
 src/cairo-gl-private.h |   27 ++++++--
 src/cairo-gl-shaders.c |  179 +++++++++++++++++++++++++++--------------------
 src/cairo-gl-surface.c |    7 +--
 4 files changed, 142 insertions(+), 88 deletions(-)

commit 562c323ae8689907d7a62a7c2f5c10fb8d055608
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun May 16 17:47:13 2010 +0930

    cff: Use correct glyph advance when subsetting cff fonts
    
    Previously the glyph advance in font units was used for the widths in
    the PDF font dictionary. This only works for cff fonts that use a
    [0.001 0 0 0.001 0 0] font matrix.

 src/cairo-cff-subset.c                  |   38 +++++++++++++++++-------------
 src/cairo-pdf-surface.c                 |   19 ++++++++-------
 src/cairo-scaled-font-subsets-private.h |    6 ++--
 3 files changed, 34 insertions(+), 29 deletions(-)

commit edcefa87ed0a8ff59b54ef9251182ce68f9158ba
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed May 12 23:12:55 2010 +0930

    type1: Use correct glyph advance when subsetting type 1 fonts
    
    Previously the glyph advance in font units was used for the widths in
    the PDF font dictionary. This only works for Type 1 fonts that use a
    [0.001 0 0 0.001 0 0] font matrix.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=28061

 src/cairo-pdf-surface.c                 |   23 ++++++++++++-----------
 src/cairo-scaled-font-subsets-private.h |    6 +++---
 src/cairo-type1-fallback.c              |   18 +++++++++---------
 src/cairo-type1-subset.c                |    6 +++---
 4 files changed, 27 insertions(+), 26 deletions(-)

commit 34fd094b3be54138c20ea5c4aab1d9597d056f35
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun May 16 10:23:30 2010 +0100

    rtree: Actually pin the node when pinning.
    
    How embarrassing.

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

commit 63062511f6755af9ddd2985250465f94ebc5a3e8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun May 16 10:15:42 2010 +0100

    boilerplate: Exercise manual double-buffering to a window
    
    Shouldn't possibly go wrong, but the mix of fbo and Window might prove
    interesting.

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

commit 605be3182308ec7dfe15e9d89890c33800b1eea9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun May 16 10:11:02 2010 +0100

    cairo: Missing private markup for _cairo_format_to_pixman_format

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

commit 14d6c3e054da89e47fc82ea29a708290eefe1357
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun May 16 10:07:07 2010 +0100

    configure: Include PTHREAD_CFLAGS in CAIRO_LDFLAGS
    
    Required for successful linking of our programs. I am not sure what the
    impact this has upon other users of Cairo yet, I think we need to export
    the PTHREAD_CFLAGS via cairo.pc as well.

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

commit c3df7e6d58364f883d91567757ed999ea88e10ca
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun May 16 09:54:04 2010 +0100

    rtree: Replace undeclared TRUE/FALSE with 1/0

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

commit 465ceb330eada9937945f5c4d156169167d4bf8c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun May 16 09:41:12 2010 +0200

    test: improve copyright notices
    
    Conform copyright notices to a1-image-sample.c

 test/dash-offset.c              |   54 ++++++++++++++++-----------------------
 test/linear-gradient-extend.c   |   36 +++++++++++++------------
 test/radial-gradient-extend.c   |   36 +++++++++++++------------
 test/surface-pattern-operator.c |   36 +++++++++++++------------
 4 files changed, 79 insertions(+), 83 deletions(-)

commit e8bc25fdb21340b0a5a25f7193fd0bc5de540a50
Author: Andrea Canciani <ranma42@valium.area51.sns.it>
Date:   Fri May 14 21:40:13 2010 +0200

    test: add linear-gradient-extend and radial-gradient-extend
    
    Check that constant gradient to solid color optimization are only
    applied if the extents permit it.

 test/Makefile.sources               |    2 +
 test/linear-gradient-extend.c       |   90 +++++++++++++++++++++++++++++++++++
 test/linear-gradient-extend.ref.png |  Bin 0 -> 371 bytes
 test/radial-gradient-extend.c       |   90 +++++++++++++++++++++++++++++++++++
 test/radial-gradient-extend.ref.png |  Bin 0 -> 466 bytes
 5 files changed, 182 insertions(+), 0 deletions(-)

commit a9d821b7a0f582b3d1b0175adee3350c81061a94
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 14 21:06:18 2010 +0200

    gl: gl surfaces are only similar when they share the same device
    
    Fixes gl-surface-source test for gl target

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

commit 435329a70f172c8cec72831dd7a2b2cfc0496342
Author: Richard Procter <richard.n.procter@gmail.com>
Date:   Fri May 14 14:48:46 2010 -0400

    Bug 28100 - Font option CAIRO_HINT_METRICS_OFF unhonoured on win32
    
    Fix typo.  Ouch!

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

commit 3a550eb2253588372b2c071b3c3152d5271c1aa2
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 21:17:19 2010 +0200

    gl: Remove gradient optimizations
    
    These optimizations are done in cairo-gstate.c these days.

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

commit 3b1c0a4bd66660780095e6016e3db451f34503a3
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 14 15:56:17 2010 +0200

    fallback: Remove span renderer paths
    
    Those paths were broken, as they didn't properly translate the polygon
    to the destination size. And rather than adding lots of code that allows
    translation, it's easier to just delete this code.
    
    Note that the only user of the code was the GL backend anyway.

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

commit e3b2212bc5c4884eab356ae263b8318e10c379ac
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 15:14:29 2010 +0200

    build: Fix pthread detection
    
    Incorporate the pthread detection code from the autoconf archive. Should
    fix build on obscure archs that pretend to be UNIXy - like Mac OS X
    Tiger.
    
    http://www.gnu.org/software/autoconf-archive/
    http://www.gnu.org/software/autoconf-archive/ax_pthread.html

 build/ax-pthread.m4           |  283 +++++++++++++++++++++++++++++++++++++++++
 build/configure.ac.system     |   11 --
 configure.ac                  |   14 +-
 util/cairo-sphinx/Makefile.am |    5 +-
 util/cairo-trace/Makefile.am  |    2 +-
 5 files changed, 292 insertions(+), 23 deletions(-)

commit acfbf95a0c7620359fd917224b5b391702740190
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 14:21:21 2010 +0200

    test: Make global variables in new test static
    
    It seems there's no gcc flag that warns about this.

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

commit c69143e3f9c95ab3937a7efb8e4de170c4edb648
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 12 21:14:36 2010 +0200

    gl: Don't keep a temporary surface in the device
    
    We get circular references that way.
    If it turns out later such a cache is critical, we'll need to invent a
    way to avoid circling references. For now, just pretend it's not
    important.

 src/cairo-gl-glyphs.c  |   36 ++++++++----------------------------
 src/cairo-gl-private.h |    1 -
 2 files changed, 8 insertions(+), 29 deletions(-)

commit ec1ca17b71b41159ea8754d42954863b62623536
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 12:07:53 2010 +0200

    gl: Don't create 0x0 surfaces
    
    We get a very annoyed libGL if we try to create 0x0 textures, so we
    return an image surface instead.
    
    Tested by the zero-mask test.

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

commit 108e3f5031fc16843197382af78af299b19ef290
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 12:01:39 2010 +0200

    Use a solid color for 0xN and Nx0 surfaces
    
    This gets around the need to check for 0-sized surfaces in the backends.

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

commit 18c963824ebbb0e7054e682ecb5664a282a58552
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 11:56:22 2010 +0200

    Make _cairo_color_equal() work for unmultiplied colors, too
    
    Color stop colors are unmultiplied, and we use it there.

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

commit 7bd8d0db1f4ac448c93d6d342726f64a0d6300e3
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 11:23:33 2010 +0200

    image: Fix wholly unbounded fixup
    
    Tested by zero-mask test.

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

commit 8aa50b5a7873b8317d0593105497607dbb2fae1d
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 10:27:37 2010 +0200

    cairo_paint_with_alpha(cr, 0.0) is only a noop when bounded by mask

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

commit ee32dfb3de035e73cb8c2073c0826daf244e3845
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu May 13 10:04:49 2010 +0200

    test: Add a test for various zero mask operations

 test/Makefile.sources        |    3 +-
 test/zero-mask.c             |  199 ++++++++++++++++++++++++++++++++++++++++++
 test/zero-mask.ref.png       |  Bin 0 -> 402 bytes
 test/zero-mask.rgb24.ref.png |  Bin 0 -> 382 bytes
 4 files changed, 201 insertions(+), 1 deletions(-)

commit 986ae4232067d4f33931d98fb6324871a1025633
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Thu Feb 25 15:18:22 2010 -0500

    language bindings guide: clarify mapping for cairo_pattern_create_rgb[a]
    
    Clarify that cairo_pattern_create_rgb() and cairo_pattern_create_rgba()
    should be be overloaded as a single constructor for SolidPattern, but
    instead should be static methods.

 doc/public/language-bindings.xml |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

commit 18b48a6ebc044c07f08bafd0abcb68c595c5746c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 13 10:00:18 2010 +0100

    Make cairo_color_stop_t a unique type.
    
    Hopefully reduce the occurrence of the confusion between the
    premultiplied shorts in cairo_color_t and the non-premultiplied shorts
    in cairo_color_stop_t.
    
    The existence of the two separate types is debatable and open for
    review.

 src/cairo-color.c         |    4 ++--
 src/cairo-gstate.c        |    2 +-
 src/cairo-pattern.c       |    2 +-
 src/cairo-pdf-surface.c   |    9 ---------
 src/cairo-ps-surface.c    |   32 ++------------------------------
 src/cairo-svg-surface.c   |    4 ++--
 src/cairo-types-private.h |   17 ++++++++++++++++-
 src/cairoint.h            |    4 ++--
 8 files changed, 26 insertions(+), 48 deletions(-)

commit dfa2544f158930b002df74e676f3ef7aeeee1bd4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 13 09:52:39 2010 +0100

    color: Special case comparing color stops.
    
    color stops are not premultiplied so we need to handle them carefully
    when comparing. The next step will be to make cairo_color_stop_t a
    unique type to prevent this mistake again.

 src/cairo-color.c         |   30 ++++++++++++++++++++++++++++++
 src/cairo-gl-surface.c    |    4 ++--
 src/cairo-gstate.c        |    4 ++--
 src/cairo-pattern.c       |    6 +++---
 src/cairoint.h            |    4 ++++
 src/drm/cairo-drm-intel.c |    2 +-
 6 files changed, 42 insertions(+), 8 deletions(-)

commit 4741d33cf67409a6fddbc32a5d0c8d68224cd939
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 13 09:31:10 2010 +0100

    gstate: Don't reduce solid source and mask for SOURCE and CLEAR
    
    Not all operators are created equal, and this optimization breaks for
    SOURCE and CLEAR where the mask operates on the clip and not the source.

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

commit ee871940ffe229ed285e618566e45c7d28c5857c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Thu May 13 01:54:39 2010 +0200

    Revert bd672d080ca0036ef1b88d26583e6af36f541461
    on src/cairo-composite-rectangles.c
    
    The extent of the operation can be larger than the source if
    the operator is not bounded by the source.
    
    Fixes clip-unbounded, operator-source, surface-pattern-operator

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

commit 0870c6fb5b39dcc04fa376123848adde2d06d2ce
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 15 20:31:24 2010 +0100

    gcc-4.5 warnings and optimisation flags.

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

commit cf0933a05aedb66b5d8999c84b935349b25dd974
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Apr 12 10:42:14 2010 +0100

    gallium: Refresh.
    
    Catch up with changes in APIs, still no substance and the integration
    with winsys handles needs review.

 boilerplate/Makefile.win32.features |    8 -
 build/Makefile.win32.features-h     |    1 -
 src/Makefile.win32.features         |    8 -
 src/drm/cairo-drm-gallium-surface.c |  514 +++++++++++++++++++++-------------
 4 files changed, 317 insertions(+), 214 deletions(-)

commit bd672d080ca0036ef1b88d26583e6af36f541461
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Mar 26 19:37:08 2010 +0000

    drm: code dump, sorry.
    
    Lots upon lots of tiny fixes mixed in with experimental code. :(

 boilerplate/Makefile.win32.features     |   18 +
 boilerplate/cairo-boilerplate-drm.c     |   12 +-
 build/Makefile.win32.features           |    1 +
 build/Makefile.win32.features-h         |    4 +
 build/configure.ac.features             |    1 +
 configure.ac                            |   13 +
 src/Makefile.sources                    |    7 +
 src/Makefile.win32.features             |   22 +
 src/cairo-boxes-private.h               |    4 +
 src/cairo-boxes.c                       |   31 +
 src/cairo-composite-rectangles.c        |    7 +-
 src/cairo-drm-xr.h                      |   66 +
 src/cairo-drm.h                         |    4 +-
 src/cairo-fixed-private.h               |   18 +-
 src/cairo-freelist-private.h            |    1 -
 src/cairo-freelist.c                    |    7 +-
 src/cairo-image-surface.c               |    2 +-
 src/cairo-list-private.h                |   31 +-
 src/cairoint.h                          |    7 +
 src/drm/cairo-drm-i915-glyphs.c         |   82 +-
 src/drm/cairo-drm-i915-private.h        |  153 ++-
 src/drm/cairo-drm-i915-shader.c         |  866 +++++++-----
 src/drm/cairo-drm-i915-spans.c          |  146 ++-
 src/drm/cairo-drm-i915-surface.c        | 1698 +++++++++++++++++-----
 src/drm/cairo-drm-i965-glyphs.c         |   36 +-
 src/drm/cairo-drm-i965-private.h        |    2 +-
 src/drm/cairo-drm-i965-shader.c         |   11 +-
 src/drm/cairo-drm-i965-spans.c          |   16 +-
 src/drm/cairo-drm-i965-surface.c        |  146 ++-
 src/drm/cairo-drm-intel-debug.c         |    1 +
 src/drm/cairo-drm-intel-ioctl-private.h |   25 +
 src/drm/cairo-drm-intel-private.h       |   92 +-
 src/drm/cairo-drm-intel-surface.c       |   90 +-
 src/drm/cairo-drm-intel.c               |  530 ++++---
 src/drm/cairo-drm-private.h             |   10 +-
 src/drm/cairo-drm-radeon-surface.c      |   60 +-
 src/drm/cairo-drm-surface.c             |   37 +-
 src/drm/cairo-drm-xr.c                  | 2377 +++++++++++++++++++++++++++++++
 38 files changed, 5323 insertions(+), 1311 deletions(-)

commit c8fba4960339797521afbf8068fcbe62d064f5dc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 3 15:38:04 2010 +0100

    rtree: Remove the unused evict hook.

 src/cairo-gl-glyphs.c            |    3 +--
 src/cairo-rtree-private.h        |    4 +---
 src/cairo-rtree.c                |   13 +------------
 src/drm/cairo-drm-i915-surface.c |    3 +--
 src/drm/cairo-drm-intel.c        |    2 +-
 5 files changed, 5 insertions(+), 20 deletions(-)

commit 2a0726337368462046ef84d9be4cf59734b39806
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 3 15:30:18 2010 +0100

    rtree: defer propagating pinned nodes until eviction.
    
    Only during infrequent eviction do we require absolute knowledge of
    which graph of nodes are in use and thus pinned. So during the common
    use of querying the glyph cache, we just mark the leaf as used. Then we
    need to make space for a new glyph, we move the parents of the left
    nodes from the evictable list to the pinned list.

 src/cairo-rtree-private.h |   12 ++++++++++--
 src/cairo-rtree.c         |   33 +++++++++++----------------------
 2 files changed, 21 insertions(+), 24 deletions(-)

commit cbe8fd0794adaccdf3eb15eef780a030e3d51784
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 3 14:56:25 2010 +0100

    script: Avoid the expensive of the redundant memset.
    
    As we are about to immediately fill the entire image, allocate the
    memory ourselves to avoid the redundant memset performed by pixman.

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

commit b9f7a4b5261b6d4e7bdbb5cc56d78d50ad1bd4a7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 3 14:48:36 2010 +0100

    script: Don't hash the entire image.
    
    The reuse hit rate is very small, and most images are quickly
    distinguished in the first few bytes... Though perhaps not for video as
    in the swfdec-youtube case...

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

commit a85c6c1e36273d534f01ade0714b0592b6bed5ab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 3 14:09:56 2010 +0100

    gstate: reduce a couple more operators

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

commit a3cb52e4037db9e565d32f85d69c364b606555e9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 3 13:36:18 2010 +0100

    simplify pattern extents for translation matrices

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

commit d45c7dc62d6b036bbbe85c3c1951807e055930d9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 1 17:09:11 2010 +0100

    xcb: discard glyph mask and use dst directly when possible.

 boilerplate/cairo-boilerplate-xcb.c |   12 +++--
 src/cairo-gstate.c                  |   18 ++++++-
 src/cairo-pattern.c                 |    2 +-
 src/cairo-xcb-surface-render.c      |   85 ++++++++++++++++++++++++++++-------
 4 files changed, 92 insertions(+), 25 deletions(-)

commit a8b611ea8eb90f190ee3a9e7999e08e2d865ac43
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Mar 27 08:23:10 2010 +0000

    clip: Fill instead of creating intermediate surfaces.

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

commit fb53d05a69d0291fe68dfe8669b5c1f7636ede1a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 12 20:06:34 2010 +0100

    test: Remove pthread_yield()
    
    I accidentally pushed this debugging left-over from when I was tracking
    down a race in memfault. Remove it so that the test suite compiles on
    more minimal pthread setups.

 test/pthread-same-source.c |    2 --
 test/pthread-show-text.c   |    2 --
 test/pthread-similar.c     |    2 --
 3 files changed, 0 insertions(+), 6 deletions(-)

commit cdd98dba6a62360071aebb6dbbb6be2ab6be368f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 12 19:35:15 2010 +0100

    win32-printing: compile fix.
    
    Missing arg for _cairo_recording_surface_replay_region().

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

commit 35307fc66f649cc042ec07b7b79277d7ee5987f3
Author: Jonathan Kew <jfkthame@gmail.com>
Date:   Tue May 11 15:12:01 2010 -0400

    win32: Grow glyph extents to account for ClearType
    
    Add extra pixel on each side of the glyph's black box returned by
    GetGlyphOutlineW, to avoid clipping ClearType pixels.
    
    From https://bugzilla.mozilla.org/show_bug.cgi?id=445087

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

commit d65e8064c0bd3f2d5ad200493bfefb89aefbba55
Author: Robert O'Callahan <robert@ocallahan.org>
Date:   Tue May 11 13:59:58 2010 -0400

    Ensure the quartz backend returns the first stop for negative positions on the gradient line of a nonrepeating linear gradient.
    
    I discovered a small bug in cairo-quartz gradients. If you have multiple stops
    at position 0, then cairo-quartz pads with the *last* stop at position 0,
    instead of the first stop at position 0. This patch fixes that.
    
    From https://bugzilla.mozilla.org/show_bug.cgi?id=513395

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

commit ce27db9a558cbf4065b18aed55cc706fc0a6d128
Author: Robert O'Callahan <robert@ocallahan.org>
Date:   Tue May 11 13:59:52 2010 -0400

    Don't repeat a Quartz gradient more times than necessary, to avoid Quartz quality problems when there are lots of repeated color stops.
    
    -- Add a parameter to _cairo_quartz_setup_source so we can pass down the
    extents of the object we're drawing
    -- Compute fill/stroke/glyph extents and pass them down in the cases we need to
    (repeating/reflecting gradients)
    -- Pass those extents on down to where we set up the gradients
    -- Make _cairo_quartz_setup_linear_source fall back to pixman for the
    degenerate case where the linear gradient vector has no length
    -- In CreateRepeatingRadialGradientFunction and
    CreateRepeatingLinearGradientFunction, use the object extents (or surface
    extents, for the paint() case) instead of the clip box to calculate the
    parameters for the gradient
    -- I've changed the way CreateRepeatingLinearGradientFunction calculates the
    repetition count. The new approach gives much more precise bounds on the number
    of repetitions needed (and is very similar to what we do for radial gradients).
    This is important because if we specify a much larger input range than we
    really need for our gradient color function, Quartz samples it too coarsely
    over the range we actually care about, and the gradients look bad.
    
    For example, suppose start = (5,0), end = (6,10), the CTM is identity and the
    bounds we want to cover is (0,0)-(10,10). I think the current approach sets up
    the gradient to be repeated 10 times. In fact only 3 repetitions are needed.
    
    Also, using 'width' here didn't look right:
    -       y_rep_end = (int) ceil((surface->extents.width - MAX(mstart.y, mend.y))
    / dy
    
    From https://bugzilla.mozilla.org/show_bug.cgi?id=508730

 src/cairo-quartz-surface.c |  261 ++++++++++++++++++++++++++++++--------------
 1 files changed, 179 insertions(+), 82 deletions(-)

commit 7b4e63d5b8bda8e9ea1f6455d779070f64f07f6f
Author: Robert O'Callahan <robert@ocallahan.org>
Date:   Tue May 11 13:59:43 2010 -0400

    Clean up Quartz gradient code by moving some local variables to static const globals.
    
    From https://bugzilla.mozilla.org/show_bug.cgi?id=508730

 src/cairo-quartz-surface.c |   31 +++++++++++++------------------
 1 files changed, 13 insertions(+), 18 deletions(-)

commit 8302952dcff20a1d2de194152ace810c7056f994
Author: Robert O'Callahan <robert@ocallahan.org>
Date:   Tue May 11 13:58:10 2010 -0400

    quartz: Don't fallback to pixman for repeating radial gradients.
    
    Figuring out where the outer circle should move to is tricky. I hope the
    algebra in there is understandable.
    
    This is a nice performance improvement, probably because we avoid painting the
    gradient over the entire clipBox (which is usually the entire surface).
    
    I tried to write reftests that compared a repeating radial gradient to a
    non-repeating gradient with manually repeated stops, but it didn't work because
    the rasterization was slightly different --- I'm not sure why.
    
    This patch also forces us to use pixman for all degenerate cases where the
    circles intersect. This at least makes us consistent across platforms.
    
    From https://bugzilla.mozilla.org/show_bug.cgi?id=508227

 src/cairo-quartz-surface.c |  203 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 180 insertions(+), 23 deletions(-)

commit 1bda2334b32394a821e6286fbc76617e68da3895
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 11 13:51:38 2010 +0100

    trace: And for the bonus round... Make it compile.

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

commit b23f3bd20450aae764f9f9362c560b00bf68636b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 11 13:54:08 2010 +0100

    trace: Try wrapping FT_Open_Face()
    
    We have to be careful to disambuigate an internal call by FreeType from
    the application.

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

commit ee446910aa1db0ca0b54791a2ef3bb24b277c9a4
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Mon May 10 15:06:25 2010 -0400

    Add an additional set parantheses around the container_of macro
    
    The non-__GNUC__ version of the container_of macro would do wrong
    when used like container_of(...)-> because '->' binds tighter
    than the cast in the container_of macro. Adding an additional
    set of parantheses fixes this.

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

commit e540d040bddc717f17e0e2510cffc0bc3cb41ccd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 10 13:36:53 2010 +0100

    xcb: trivial memfault fixes.
    
    The first fixes required to kick-start memfault testing of the xcb
    backend.

 boilerplate/cairo-boilerplate-xcb.c |   22 +++++++++++--
 src/cairo-xcb-connection-render.c   |   35 ++++++++++++++++-----
 src/cairo-xcb-connection.c          |   57 ++++++++++++++++++++++++----------
 src/cairo-xcb-private.h             |    2 +-
 src/cairo-xcb-screen.c              |   15 +++++----
 src/cairo-xcb-surface-core.c        |    1 -
 src/cairo-xcb-surface-render.c      |   32 ++++++++++++++++---
 src/cairo-xcb-surface.c             |    5 ++-
 src/cairo-xlib-xcb-surface.c        |    1 -
 9 files changed, 123 insertions(+), 47 deletions(-)

commit 8b486db9a9d74b40df296382eb1833bc40ae791a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 10 12:45:31 2010 +0100

    region: _cairo_region_create_in_error()
    
    Avoid leaks when reporting memfault associated with constructing
    regions.

 src/cairo-path-fill.c      |    7 +---
 src/cairo-region-private.h |    3 ++
 src/cairo-region.c         |   63 ++++++++++++++++++++++++++++++++++++++-----
 3 files changed, 60 insertions(+), 13 deletions(-)

commit 9d863cd3942c3086c24d67305f7a5892604d0eeb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat May 8 18:20:11 2010 +0100

    xcb: Find the correct xcb_screen_t for faking Screen
    
    When choosing the xcb_screen_t to use for the xlib-xcb backing surface,
    it helps if it matches the screen used to generate similar surfaces and
    snapshots - otherwise we end up pulling the image back from the XServer
    every time we want to use the Picture.

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

commit 448d3571088463fc61641badcdfdc8c0002ae12a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat May 8 09:59:54 2010 +0100

    xcb: Upload images in place.
    
    A common operation is to store an image in a similar surface, so
    construct a fast path to avoid the allocation and double-blit through a
    temporary pixmap.

 src/cairo-xcb-private.h        |    5 +
 src/cairo-xcb-surface-render.c |  169 +++++++++++++++++++++++++++++++++++++++-
 src/cairo-xcb-surface.c        |   31 ++++---
 3 files changed, 189 insertions(+), 16 deletions(-)

commit e48cbd3b47a6e4f7c1f66b3085df41546460e477
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat May 8 09:56:46 2010 +0100

    xcb: Reset picture after failed snapshot.
    
    Clear the local picture variable if we cannot use the snapshot so that
    we are forced to create a new and valid picture.

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

commit 4e3c19833ef8631c1f1cd54870c0a86d88252886
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 7 21:30:13 2010 +0100

    test: Force cairo-test-suite to return SUCCESS
    
    Set the CAIRO_TEST_FORCE_PASS environment variable to run through the
    test suite and ignore errors. Useful for forcing distcheck to continue
    past a broken test suite.

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

commit ad8abc01105f02a05497969b6b5ec2c8742daeb2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 7 21:28:58 2010 +0100

    subsurface: Don't double apply device offset for deep subsurfaces.
    
    If we have a subsurface of a subsurface then the device offset has
    already been applied to the extents that we use to offset the new
    subsurface.

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

commit d2a250ad33dcd1a3960b07d2f0270266a3f3f106
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri May 7 20:36:33 2010 +0200

    gl: Make the shader implementation per-context, not global

 src/cairo-gl-device.c  |    8 +---
 src/cairo-gl-glyphs.c  |    4 +-
 src/cairo-gl-private.h |   37 ++++++++++++-----
 src/cairo-gl-shaders.c |  105 +++++++++++++++++++++++++-----------------------
 src/cairo-gl-surface.c |   89 +++++++++++++++++++++-------------------
 5 files changed, 131 insertions(+), 112 deletions(-)

commit 4571055c46e82cbb6d3ab47860d63e400b338238
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 19:36:46 2010 +0200

    gl: Print GL errors when releasing the device
    
    Don't scatter calls to error printing around everywhere, instead do it
    in the one place where it matters.
    
    Also, convert the functions to macros, so we can use __FILE__ and
    __LINE__ when printing a warning

 src/cairo-gl-private.h |   15 ++++++++++-----
 src/cairo-gl-surface.c |   22 +---------------------
 2 files changed, 11 insertions(+), 26 deletions(-)

commit 59b31aeed9b3ec2a1ac6da188ef5e86d20626662
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat May 8 15:09:39 2010 +0200

    gl: Make check_span_renderer() call not require a device lock
    
    Note that we didn't lock the device previously, so the function was
    broken.

 src/cairo-gl-device.c  |    1 +
 src/cairo-gl-private.h |    7 +++++++
 src/cairo-gl-surface.c |    5 +++--
 3 files changed, 11 insertions(+), 2 deletions(-)

commit 81f4dd65a32efae645b826b84e8382f7bf7a9b2d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 7 22:35:18 2010 +0100

    cairo: Special case cairo_t with NULL_POINTER
    
    Avoid allocation for the potential user error of attempting to use
    cairo_create(NULL).

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

commit a61570a55e70040ffcf8ff3cb2c7943e71a5e2a0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 7 22:18:52 2010 +0100

    test/copy-path: memfault status checks.

 test/copy-path.c |   61 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 38 insertions(+), 23 deletions(-)

commit e6180d1d5e29a91f1bfc20956bb017ab74fb8b8e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 7 22:18:10 2010 +0100

    surface-fallback: Only destroy the clip after it has been initialized.
    
    More memfault detected error path errors.

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

commit 01a208f7e3785254dc101f09a73943ec7cfb1d6e
Author: timeless <timeless@bemail.org>
Date:   Fri May 7 10:24:49 2010 -0400

    Remove useless null checks of a and b in _cairo_path_fixed_equal
    
    'a' and 'b' are dereferenced before being checked for null.
    
    From https://bugzilla.mozilla.org/show_bug.cgi?id=555706

 src/cairo-path-fixed.c |   22 ++++++++--------------
 1 files changed, 8 insertions(+), 14 deletions(-)

commit 0068d9b5cd09a7aa0c5a2ab4da97ca181934ff56
Author: Jonathan Kew <jfkthame@gmail.com>
Date:   Fri May 7 10:16:32 2010 -0400

    quartz: Work around bad glyph extents returned by CoreGraphics for empty glyphs in Al Bayan font
    
    This resolves the problem by checking for the crazy glyph bbox result from
    CoreGraphics, and replacing it with an empty rect.
    
    From https://bugzilla.mozilla.org/show_bug.cgi?id=534260

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

commit c5d9643417690380c102bf0b6ad195cb264d3feb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 7 11:24:28 2010 +0100

    doc: regen

 doc/public/tmpl/cairo-font-face.sgml    |    3 +++
 doc/public/tmpl/cairo-font-options.sgml |    4 ++++
 doc/public/tmpl/cairo-ft.sgml           |    3 +++
 doc/public/tmpl/cairo-image.sgml        |    5 +++++
 doc/public/tmpl/cairo-matrix.sgml       |    3 +++
 doc/public/tmpl/cairo-paths.sgml        |    3 +++
 doc/public/tmpl/cairo-pattern.sgml      |    3 +++
 doc/public/tmpl/cairo-pdf.sgml          |    3 +++
 doc/public/tmpl/cairo-png.sgml          |    3 +++
 doc/public/tmpl/cairo-ps.sgml           |    3 +++
 doc/public/tmpl/cairo-quartz-fonts.sgml |    3 +++
 doc/public/tmpl/cairo-quartz.sgml       |    3 +++
 doc/public/tmpl/cairo-scaled-font.sgml  |    3 +++
 doc/public/tmpl/cairo-status.sgml       |    6 ++++++
 doc/public/tmpl/cairo-surface.sgml      |    9 +++++++++
 doc/public/tmpl/cairo-svg.sgml          |    3 +++
 doc/public/tmpl/cairo-text.sgml         |    3 +++
 doc/public/tmpl/cairo-transforms.sgml   |    3 +++
 doc/public/tmpl/cairo-types.sgml        |    3 +++
 doc/public/tmpl/cairo-user-fonts.sgml   |    4 ++++
 doc/public/tmpl/cairo-version.sgml      |    5 +++++
 doc/public/tmpl/cairo-win32-fonts.sgml  |    3 +++
 doc/public/tmpl/cairo-win32.sgml        |    3 +++
 doc/public/tmpl/cairo-xlib-xrender.sgml |    3 +++
 doc/public/tmpl/cairo-xlib.sgml         |    3 +++
 doc/public/tmpl/cairo.sgml              |    3 +++
 26 files changed, 93 insertions(+), 0 deletions(-)

commit b9e9ff59348412a1f1f2c57d6185c84f77874c26
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 7 11:21:50 2010 +0100

    subsurface: Include device offset in extents
    
    Adjust the subsurface extents so that the user specifies the extents in
    world space rather than device space.

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

commit 5e3b28ffeac3fc7239c7ada6992e4794a27b0818
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu May 6 22:27:09 2010 -0400

    Remove comma from the end of the CAIRO_PATTERN_ACQUIRE enum

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

commit cc8442514ab15f08708ecb26f499c764a7d171f4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 21:50:16 2010 +0100

    gl: Enable fixed-function without glsl.
    
    Through a very simple mistake we were triggering fallbacks after
    detecting we were not able to perform the composite using GLSL -- we
    were just returning the UNSUPPORTED status instead of enabling the
    fixed-function path.

 src/cairo-gl-surface.c |   56 ++++++++++++++++++++++++++---------------------
 1 files changed, 31 insertions(+), 25 deletions(-)

commit 30d358e098353af24f16cdb7efe41f10f276f559
Author: Metal Sonic <kidlinux96@gmail.com>
Date:   Thu May 6 16:07:43 2010 -0400

    Update license blocks to use "Mozilla Foundation" instead of "Mozilla Corporation"
    
    From https://bugzilla.mozilla.org/show_bug.cgi?id=507387

 src/cairo-fixed-private.h        |    2 +-
 src/cairo-fixed-type-private.h   |    2 +-
 src/cairo-malloc-private.h       |    2 +-
 src/cairo-quartz-font.c          |    2 +-
 src/cairo-quartz-image-surface.c |    2 +-
 src/cairo-quartz-image.h         |    2 +-
 src/cairo-quartz-surface.c       |    2 +-
 src/cairo-quartz.h               |    2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

commit 506636e19edcdb656c94f61c915c9d49829dade8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 17:21:59 2010 +0100

    cairo: stash a number of contexts for use with NO_MUTEX
    
    The implementation is the same as the atomic one (bar the use of atomic
    primitives to manipulate the occupancy!).
    
    Patch based on the original by Jeff Muizelaar.

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

commit 91dfee420c3e9d85e5cd4f2cec6dc708c0e471a2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 17:03:56 2010 +0100

    device: Reorder finalization so that user data is destroyed last.
    
    As the user is likely to attach the underlying resources to the device
    for automatic collection upon finalization, it is important that the
    user data is then destroy last (so that those resources are still
    available in the surface and device cleanup routines).

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

commit 2658d7ef5f8f7e06929f4b1cae64e5312db24ec4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 17:02:39 2010 +0100

    test/gl-surface-source: Attach GLXContext to device user data.
    
    As we actually use the GLXContext to create the device, we only want to
    free those resources upon the final unreference of the device (and not
    the initial surface).

 test/gl-surface-source.c |   26 +++++++++++---------------
 1 files changed, 11 insertions(+), 15 deletions(-)

commit f5167dc2e1a13d8c4e5d66d7178a24b9b5e7ac7a
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Thu May 6 11:43:52 2010 -0400

    Add an implementation of ffs() for MSVC

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

commit a2a2bd62ff37e2642f671ca7ebf26954e1856abe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 14:39:30 2010 +0100

    surface-fallback: Handle memfaults during clipping.
    
    Don't be lazy, propagate the error rather than asserting.

 src/cairo-surface-fallback.c |   26 +++++++++++++++-----------
 1 files changed, 15 insertions(+), 11 deletions(-)

commit 2e3acee410ff127d4557ca8191625338cd225313
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 14:38:55 2010 +0100

    test: Add gl-surface-source
    
    Exercise using GL sources.

 test/Makefile.am                       |    7 ++
 test/Makefile.sources                  |    3 +
 test/gl-surface-source.argb32.ref.png  |  Bin 0 -> 377 bytes
 test/gl-surface-source.c               |  115 ++++++++++++++++++++++++++++++++
 test/gl-surface-source.image16.ref.png |  Bin 0 -> 305 bytes
 test/gl-surface-source.rgb24.ref.png   |  Bin 0 -> 301 bytes
 6 files changed, 125 insertions(+), 0 deletions(-)

commit 75d8550891b8b2c09200aaaa812c6c9332161cd7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 13:50:27 2010 +0100

    test/clip-contexts: Free secondary context

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

commit bf83bf00a75343f7d1dcd15dc4eeec1b1a4b9428
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 10:53:48 2010 +0100

    test: Add subsurface-image-repeat
    
    Test handling of source clipping with an image - principally to check
    handling of mime types and zero-copy image snapshotting in the vector
    surfaces and ensure that they work with subsurface patterns as well.

 test/Makefile.am                             |    2 +
 test/Makefile.sources                        |    1 +
 test/subsurface-image-repeat.c               |   70 ++++++++++++++++++++++++++
 test/subsurface-image-repeat.image16.ref.png |  Bin 0 -> 776 bytes
 test/subsurface-image-repeat.ref.png         |  Bin 0 -> 915 bytes
 5 files changed, 73 insertions(+), 0 deletions(-)

commit 88986fdbef795c61cd60231046663d3cd80b4947
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 10:46:49 2010 +0100

    xlib: Remove reference counting for cairo_xlib_screen_t
    
    The screen is owned by the cairo_xlib_display_t device, so we can
    simplify and close the refleak by removing the surplus reference
    counting.

 src/cairo-xlib-display.c |   84 ++++++++++-----------------------------------
 src/cairo-xlib-private.h |   22 +++---------
 src/cairo-xlib-screen.c  |   47 +++++--------------------
 src/cairo-xlib-surface.c |   38 ++++++---------------
 src/cairo-xlib-visual.c  |    2 +-
 5 files changed, 46 insertions(+), 147 deletions(-)

commit 632fabc77d89254e2e6915148fa870f23c2a5722
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 10:10:38 2010 +0100

    xlib: Convert visual array to a cairo_list_t
    
    It's simpler and more memory efficient.

 src/cairo-xlib-private.h |    4 ++-
 src/cairo-xlib-screen.c  |   76 ++++++++++++++--------------------------------
 2 files changed, 26 insertions(+), 54 deletions(-)

commit 20d75bdadc897be238ceb4d2d02f079e469144e4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 10:03:36 2010 +0100

    xlib: Remove screen->has_render
    
    Use the info from the display instead.

 src/cairo-xlib-private.h |    1 -
 src/cairo-xlib-screen.c  |   17 ++++-------------
 2 files changed, 4 insertions(+), 14 deletions(-)

commit 9e0b716ecf1b27d74e63f25a055d8120d8d53309
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 09:58:46 2010 +0100

    xlib: Remove obsolete comment, there is no race anymore
    
    The display lock is now held for the duration of the screen creation, so
    there is no race. Remove the false comment.

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

commit 62346c500a7421e30b3054fdcc07fc78a18da96e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 09:37:02 2010 +0100

    xlib: Ensure the global display mutex is initialized before use.

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

commit fb6caf08ae5ccf8f8c2c251d32fd98aacbcebdcc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 09:30:41 2010 +0100

    image: Propagate error instead of asserting.
    
    Apparently we can get to this point without evaluating the clip surface,
    so return the error status rather than assert.

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

commit 5e95c62bbb0cb28ee22af8f97267ce2da72cf47a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 6 09:09:22 2010 +0100

    clip: Propagate failure from retrieving the previous clip surface.

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

commit a6ee7aea8ac11a9e5a9b58e17e881db9666a2b24
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 10:52:39 2010 +0100

    test: Add xlib-expose-event.image16.ref.png

 test/Makefile.am                       |    1 +
 test/xlib-expose-event.image16.ref.png |  Bin 0 -> 30332 bytes
 2 files changed, 1 insertions(+), 0 deletions(-)

commit ded2dc8faaa3a48c84a31422a31c64595a6eaf8a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 14:44:55 2010 +0100

    scaled-font: Pluck last glyph from the most recent page.
    
    In converting to cairo_list_t, it helps to preserve the semantics of
    appending the page to the end of the list where it is expected to be
    plucked in the event of an allocation failure.

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

commit fa937913e06bc295750538be45aa83eb42332fb4
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed May 5 21:35:11 2010 +0930

    PS: Add missing 'q' when resetting clip path

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

commit 9c594d8b405eba09b07c0a438f5311f5c5e40313
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 12:28:59 2010 +0200

    gl: Get rid of ctx variable
    
    The code used renderer->ctx and ctx interchangably, that was confusing.

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

commit a354f1f92a17378f42d0b703482ae2b8168c7f68
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 12:28:24 2010 +0200

    gl: Another case of proper device acquiring
    
    This patch isn't strictly necessary, but it cleans up the code.

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

commit 36210ee51444979271f7ba1cc0ac452cd30df0af
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 12:24:43 2010 +0200

    gl: Get rid of another cast to cairo_gl_context_t

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

commit 58b03691d379979b50d74740748b8b8523e0cd0d
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 12:21:23 2010 +0200

    gl: Introduce _cairo_gl_device_has_glsl() function
    
    The function takes a cairo_device_t argument as it can be called on an
    unacquired device.
    
    This is the first patch in a process to try to rid cairo-gl-surface.c of
    casts from cairo_device_t to cairo_gl_context_t. As its members should
    usually only be accessed when the device is locked, the only way the
    cairo_gl_context_t should be acquired is using
    _cairo_gl_context_acquire().

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

commit 5223b654230d3074d0bc31eb74c415e50eced365
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 12:07:49 2010 +0200

    gl: Get rid of cairo_gl_surface_glfinish() from public API
    
    This is now done explicitly in the boilerplate code. It was not a useful
    public API to begin with.

 boilerplate/cairo-boilerplate-gl.c |   17 +++++++----------
 src/cairo-gl-surface.c             |    9 ---------
 src/cairo-gl.h                     |    3 ---
 3 files changed, 7 insertions(+), 22 deletions(-)

commit e071fa2c4f62b5ead39c6c6401f39360ea4dee1f
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 12:03:13 2010 +0200

    gl: Remove unused member variable

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

commit 90c64f60d853f1a6ea5febd362ef3528cc9d914b
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 12:01:59 2010 +0200

    gl: Move device-specific code into cairo-gl-device.c

 src/Makefile.sources   |    6 +-
 src/cairo-gl-device.c  |  205 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/cairo-gl-surface.c |  162 --------------------------------------
 3 files changed, 210 insertions(+), 163 deletions(-)

commit 0ff5a18fd5623b57c7493e6b67a6b1c75af82fb3
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 11:52:40 2010 +0200

    gl: Make _gl_set_destination() take the context as an argument
    
    Keeping with the API introduced for Xlib, functions that require an
    acquired context take this context as the first argument.

 src/cairo-gl-glyphs.c  |    2 +-
 src/cairo-gl-private.h |    2 +-
 src/cairo-gl-surface.c |   20 +++++++++-----------
 3 files changed, 11 insertions(+), 13 deletions(-)

commit e8c5b6b1c2099fc6a49d0a082f5e884d3fbd89df
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed May 5 10:05:30 2010 +0200

    Fix typo in docs

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

commit 53508e6e3047b4dac6d69d5d3ff2208178998fd4
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 4 19:28:45 2010 +0200

    gl: Acquire the context before destroying it.

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

commit c46aec489722bf09cd10c52d70bb4975eb1546d9
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 4 19:28:22 2010 +0200

    gl: acquire/release context during surface_finish()

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

commit 88801aabb34328746a53d3d59d036dada7ced756
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 4 19:23:08 2010 +0200

    gl: Acquire context when initing/destroying gl operands

 src/cairo-gl-glyphs.c  |   17 ++++++----
 src/cairo-gl-private.h |    3 +-
 src/cairo-gl-surface.c |   80 +++++++++++++++++++++++++-----------------------
 3 files changed, 54 insertions(+), 46 deletions(-)

commit c6d7d054ca44f3849ee1ab76de9032a4eaa210fe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 10:39:49 2010 +0100

    test: Add radial-gradient-mask
    
    Exercise using radial gradients as a mask.

 test/Makefile.am                                 |    6 +
 test/Makefile.sources                            |    2 +
 test/radial-gradient-mask-source.argb32.ref.png  |  Bin 0 -> 116311 bytes
 test/radial-gradient-mask-source.c               |  111 ++++++++++++++++++++++
 test/radial-gradient-mask-source.image16.ref.png |  Bin 0 -> 82800 bytes
 test/radial-gradient-mask-source.rgb24.ref.png   |  Bin 0 -> 129093 bytes
 test/radial-gradient-mask.argb32.ref.png         |  Bin 0 -> 116311 bytes
 test/radial-gradient-mask.c                      |  110 +++++++++++++++++++++
 test/radial-gradient-mask.image16.ref.png        |  Bin 0 -> 82800 bytes
 test/radial-gradient-mask.rgb24.ref.png          |  Bin 0 -> 129093 bytes
 10 files changed, 229 insertions(+), 0 deletions(-)

commit 5f878f917980cde145d4c385b0c0b66336c0f454
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 10:24:14 2010 +0100

    clip: Trivial compiler warning
    
    cairo-clip.c: In function ‘_cairo_clip_path_reapply_clip_path_translate’:
    cairo-clip.c:446: warning: suggest parentheses around assignment used as
    truth value

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

commit 840dad765febf7b807bbb75e401c159a8c5c4dfe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 09:46:03 2010 +0100

    test/mask-glyphs: Check for memfault

 test/mask-glyphs.c |   32 +++++++++++++++++++++++---------
 1 files changed, 23 insertions(+), 9 deletions(-)

commit ad541a1ec62e18bcaf74994affbdb0503e277f9c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 09:33:36 2010 +0100

    clip: Propagate memfault from translating clip region

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

commit 4bc54643f5cdeddf2145d28c317b55ca6b5949a5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 21:36:03 2010 +0100

    image: Propagate failure from pixman_image_set_clip_region()

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

commit 9ef33a1d8c0476f4f1eeba4f26523fdeb6f7d809
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 21:35:51 2010 +0100

    test/bitmap-font: Destroy FcPattern

 test/bitmap-font.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

commit fba4cf1d94b3ab676e0b62ae3574bf1ee4e69de0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 09:22:03 2010 +0100

    recording: Mark an empty recording surface as clear.

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

commit e5329805394c94c915e43a0040b51d5019b4a90e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 09:17:51 2010 +0100

    recording: Avoid refcycles by always copying the command array.
    
    Short-term solution to avoid the refleaks and to make the test suite
    happy. A more elegant solution would be to track the references and
    avoid the substantial memory overhead of copying the recording surfaces.
    
    Thanks to Benjamin Otte for pointing out the solution to avoiding
    refcycles.

 src/cairo-recording-surface-private.h |    1 -
 src/cairo-recording-surface.c         |   23 ++++++++++++-----------
 2 files changed, 12 insertions(+), 12 deletions(-)

commit 6a06e0ef7b534355d0f3b4885159ffc37dbc3867
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed May 5 09:17:33 2010 +0100

    test/subsurface-modify-parent: Free region.
    
    Minor refleak.

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

commit 4a46c715564c886e7434d65625fb84b5d87c0970
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 18:51:30 2010 +0100

    type3: Minor tweaks to remove a redundant check.

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

commit 11531b90a2317bb1113b187d6aa9c5083f5ecaa1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 18:50:58 2010 +0100

    ps: Force finish of the type3 glyph surfaces.

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

commit 5155ebeaa25815124124db2599336ab2ddbe7413
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 18:50:27 2010 +0100

    pdf: Assert that no other error can occur for an invertible matrix.

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

commit d9259bd06822c871a4c653f395cfc1f933caaeb7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 18:49:55 2010 +0100

    paginated: Mark as clear initially.

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

commit bc14e0e953630d47a65e701a377631e406eb080c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 3 14:18:33 2010 +0100

    scaled-font: Convert to cairo_list_t
    
    Convert the open-coded doubly-linked list of glyph pages for a font into
    the common cairo_list_t.

 src/cairo-scaled-font-private.h |    2 +-
 src/cairo-scaled-font.c         |   46 ++++++++++++++++++--------------------
 2 files changed, 23 insertions(+), 25 deletions(-)

commit 627527693c38c328fdb79058f5299609c0031029
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 3 13:41:41 2010 +0100

    ps: Remove the fill stroke command
    
    This is not supported by PostScript, so eliminate it from the prologue.

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

commit 4dd92ef2bc877eb197f096c3eb8fe74cb2e7b099
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun May 2 14:35:59 2010 +0100

    test: Add subsurface-pad
    
    Round out the subsurface tests with PAD.

 test/Makefile.am            |    1 +
 test/Makefile.sources       |    1 +
 test/subsurface-pad.c       |   76 +++++++++++++++++++++++++++++++++++++++++++
 test/subsurface-pad.ref.png |  Bin 0 -> 181 bytes
 4 files changed, 78 insertions(+), 0 deletions(-)

commit 85e3cffde164a5af444639dfd182fde2448809ee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 30 21:09:01 2010 +0100

    test: Add subsurface-modify-{child,parent}
    
    Add tests to ensure that modifications to the subsurface via the
    original surface are tracked by the subsurface, i.e. that any snapshots
    are detached upon modification of the parent as well as modification of
    itself and vice versa.

 test/Makefile.am                      |    2 +
 test/Makefile.sources                 |    2 +
 test/subsurface-modify-child.c        |   98 +++++++++++++++++++++++++++++++++
 test/subsurface-modify-child.ref.png  |  Bin 0 -> 197 bytes
 test/subsurface-modify-parent.c       |   77 ++++++++++++++++++++++++++
 test/subsurface-modify-parent.ref.png |  Bin 0 -> 197 bytes
 6 files changed, 179 insertions(+), 0 deletions(-)

commit 19ac81f50ba353400934bf112523b4257ad9de2f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 18:25:23 2010 +0100

    scaled-font: Remove MRU cache upon detection of error.

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

commit 6f2d4f5b2aba9344fee9375614dfd0c6236bfd7c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 18:09:11 2010 +0100

    image: Propagate failure from pixman_image_fill_boxes().

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

commit ded7be0b9ce12f8d4a84c8c9dd622d92fe347a34
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 17:01:35 2010 +0100

    test/user-font-rescale: Use after free and check for memfault.

 test/user-font-rescale.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

commit b0052c52153376400a30dca1d67f4aca9735cc09
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 17:01:17 2010 +0100

    test/bitmap-font: Propagate memfault

 test/bitmap-font.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

commit 9187c7532755dda8d2677ec792162c71029fb37d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 13:18:09 2010 +0100

    test/bitmap-font: Check for memfault error

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

commit 0fced9279227614ede6964e94ede9de49a3a3388
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 13:17:38 2010 +0100

    test/user-font-proxy: Check we install user data on the scaled font

 test/user-font-proxy.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

commit 38188961b996c97d344195749b7bec8c93f9bad7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 13:17:07 2010 +0100

    image: Check for pixman image allocation failure during glyphs

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

commit 4a181ebac416ec35e412ddbe9ed1392fb8b74ab7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 10:26:30 2010 +0100

    pdf: Cleanup local reference to source on error paths.

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

commit ba48edcd86ee1bca06b25587e56abcd2c1b19d79
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 10:26:13 2010 +0100

    ps: Always cleanup used font subsets.

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

commit 9a0958be012e097c239260fac0dec0b1e5679028
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 10:25:48 2010 +0100

    test: Cleanup after failed pthread_join().

 test/pthread-same-source.c |   17 +++++++++--------
 test/pthread-show-text.c   |   17 +++++++++--------
 test/pthread-similar.c     |   17 +++++++++--------
 3 files changed, 27 insertions(+), 24 deletions(-)

commit 08b9984da9f2119cd4ed03bbd656a349b49d1f12
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 08:19:41 2010 +0100

    image: Replace assert with error return
    
    It is possible to encounter an allocation failure here since we may have
    tweaked the clip since the last evaluation of the clip region.

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

commit 2c68fcace4ad47ad09e9699e45afb514be1381f9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 3 20:39:34 2010 +0100

    test: Embed the list pointer into cairo_test_t
    
    Reduce the amount of output printed by leak-detectors when a test
    crashes.

 test/cairo-test-runner.c |   31 +++++++++++++++----------------
 test/cairo-test.h        |    7 ++++---
 2 files changed, 19 insertions(+), 19 deletions(-)

commit 7002b824729885a9d579f677ecc665b620847480
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 4 13:52:09 2010 +0200

    xlib: Don't delete gradients in unbounded fixup code
    
    The fix is ugly, but for now it works.

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

commit af26560f258d93cc78782ddd0208128756874c11
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 3 19:21:59 2010 +0100

    test: Improve memfault behaviour.
    
    Various minor tweaks to convert asserts into error returns and to
    improve error checking on intermediate surfaces.

 boilerplate/cairo-boilerplate-svg.c |    2 +-
 test/cairo-test.c                   |   21 +++++++++++---
 test/png.c                          |   34 +++++++++++++++-------
 test/pthread-same-source.c          |    7 +++++
 test/surface-source.c               |   11 ++++++-
 test/toy-font-face.c                |   16 +++++++++--
 test/user-data.c                    |   51 ++++++++++++++++++++++++----------
 test/xlib-surface-source.c          |    7 ++++-
 8 files changed, 112 insertions(+), 37 deletions(-)

commit c549203c8d69474be4362037f702e4fb59c9929e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 3 19:21:18 2010 +0100

    scaled-font: Check for an error return when retrieving the implementation

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

commit c93e6f014d9678b1aea34fd7a30a1fc2f51c6347
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 3 19:20:42 2010 +0100

    paginated: propagate malloc failures more cleanly.

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

commit 8e9fd9c01732c3102c27c7dee50f6e494ba7cdd8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 3 19:20:07 2010 +0100

    image: A few missing tests for malloc failure

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

commit 87781ffbd914bca29b4d744fb48678ab06a07108
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon May 3 19:18:49 2010 +0100

    ft: Convert an assert into an unlikely error return.
    
    The assert depends upon good behaviour from fontconfig, which is no
    guaranteed under memfault, so return an error instead.

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

commit 5672b7a18a34456862977a1cf678bf6575dcc3f4
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 3 13:13:27 2010 +0200

    fallback: get src_x/y variables right when compositing traps

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

commit c10a5a9fb0463f254fb607a2260b540256f888cc
Author: Dave Yeo <daveryeo@telus.net>
Date:   Mon May 3 10:20:51 2010 +0200

    os2: Fix get_extents() segfaulting.
    
    bed2701e1c89095878d549cbca8f22d84f3dda3c removed one line too much.

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

commit 9df81fe4d3f0ccc5632d0e84e920fe1c448bd531
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 2 19:59:26 2010 +0200

    boilerplate: don't compile pdf test code when pdf is not tested
    
    Avoids gcc warnings when libpoppler version isn't good enough.

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

commit 358f57c8765f823f8e6db7629ea6ca48fcd392b8
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Apr 30 23:29:24 2010 +0200

    image: remove useless optimization
    
    The optimization is done way smarter inside
    _cairo_matrix_transform_bounding_box()

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

commit 94aa6d24b6d5ab4528a0b0a9b1b0c6eb7218f861
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Apr 30 23:24:41 2010 +0200

    fallback: Create pixman image for correct rectangle
    
    This was most prominently shown by the a1-image-sample test, but
    multiple tests exposed the problem with the xlib-fallback code.

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

commit 41fecf8e662c9ad2fe063754db8302f349a223ef
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Fri Apr 30 21:18:52 2010 +0200

    [configure] Bump poppler dependency to 0.13.3

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

commit 3294daf423e88b55aa13841dfa7c557ee9833f92
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Apr 30 20:14:54 2010 +0200

    Create cleared surface instead of a scratch surface in clone_similar()
    
    A cleared surface is needed when playing back a recording surface that
    has semi-transparent operations.
    As this only affects surface types where scratch surfaces aren't already
    cleared (ie it affected xlib but not image), the effect was only visible
    for those backends.
    This should not cause any performance regressions as the other backends
    set surface->clear = TRUE when creating the scratch surface, so the
    clear operation is effectively a no-op.
    
    Covered by the existing pdf-surface-source and svg-surface-source tests.

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

commit 0aeb612d2f822e8cda1f509b6a4f2995e24053fc
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Fri Apr 30 16:18:57 2010 +0200

    [test] Update pdf reference image for text-rotate

 test/text-rotate.pdf.ref.png |  Bin 16757 -> 16744 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit fe2844464721644b837816aa4dad4ead508f0b89
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Fri Apr 30 16:16:23 2010 +0200

    [test] Update pdf reference image for surface-pattern-scale-down

 test/surface-pattern-scale-down.pdf.ref.png |  Bin 1603 -> 2189 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit dba6f23318005a4cdbe7566519ce896278ea184a
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Fri Apr 30 16:11:52 2010 +0200

    [test] Update pdf reference image for leaky-dashed-rectangle

 test/leaky-dashed-rectangle.pdf.ref.png |  Bin 380 -> 377 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit 6b81187ac4870311a10c024af9f30c366be785cd
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Fri Apr 30 16:05:21 2010 +0200

    [test] Update pdf reference images for clip-operator

 test/clip-operator.pdf.argb32.ref.png |  Bin 9266 -> 9437 bytes
 test/clip-operator.pdf.rgb24.ref.png  |  Bin 5166 -> 5391 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

commit b485ae5b90bf72cde0c30c2350e03d1369ca6dcd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 30 14:14:01 2010 +0100

    atomic: Add Andrea's copyright notice
    
    Note Andrea's copyright for his contribution of platform agnostic
    fallbacks and the implementation for MacOS/X.

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

commit 4ee5119a3467ea086efccef2907b0c576d600b79
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 30 13:00:05 2010 +0100

    test: Expand pthread-show-text to cover all surfaces.
    
    In a similar fashion to pthread-same-source and pthread-similar, check
    that the texting handling is thread-safe for all surface and font
    backends.

 test/Makefile.am                       |    3 +
 test/pthread-show-text.c               |  118 ++++++++++++++++++++------------
 test/pthread-show-text.image16.ref.png |  Bin 0 -> 22167 bytes
 test/pthread-show-text.ps.ref.png      |  Bin 0 -> 16558 bytes
 test/pthread-show-text.ref.png         |  Bin 0 -> 29885 bytes
 5 files changed, 77 insertions(+), 44 deletions(-)

commit c6dc8ad7dc46d03899cd37fff40bd7f3a60339e2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 30 12:38:25 2010 +0100

    Revert "paginated: Call surface finish explicitly on recording surface"
    
    This reverts commit 5fc04bba9fa8ddda8cf7d7a97015f21a21429172.
    
    Whilst this fixes the self-referential reference leak, it however
    introduces use-after-finish into normal behaviour. Close, but not quite.

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

commit b972669c9ac87d1c2ca922e12024ef5da394aa6b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 30 12:37:16 2010 +0100

    boilerplate: Fix use after free from 3ae5723
    
    If we want to access the surface during the cleanup, we must hold our
    own reference to it. Make it so for the forced finish of the recording
    surface.

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

commit 905c345df1f828551af2ab0b751388428e4dfaf6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 30 10:31:50 2010 +0100

    recording: Check that we do not use a finished recording surface.
    
    User paranoia - as the replay is exposed to the user it is convenient to
    add the finish check in the core replay function so that we gain a
    paranoia check for the internal paths as well.

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

commit 5fe7c5842f3589efce765b3869c1dd55367a5aba
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 30 10:13:09 2010 +0100

    pdf; Emit subsurface patterns natively.
    
    Encode subsurface patterns into the PDF stream natively (when possible),
    similar to the cairo-ps backend.

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

commit 8ded35fd69ed0bbb07359c0278071a25af66571c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 28 14:26:21 2010 +0100

    ps: Enable native encoding of subsurface patterns.
    
    Carefully handle subsurfaces of a recording surface through the analysis
    and paginated surfaces so that we can generate a native pattern for the
    vector backends, demonstrated by the PostScript backend.
    
    Nothing remarkable, just a lot of bookkeeping to track the wrapped
    surface types and to apply the correct offsets when generating the
    subsurface pattern.

 src/cairo-analysis-surface.c           |   13 +-
 src/cairo-paginated-surface.c          |    1 +
 src/cairo-pdf-surface.c                |    4 +-
 src/cairo-ps-surface.c                 |  121 +++++++++++--
 src/cairo-recording-surface-private.h  |    1 +
 src/cairo-recording-surface.c          |   12 +-
 src/cairo-surface-private.h            |    4 +-
 src/cairo-surface-subsurface-private.h |    4 +-
 src/cairo-surface-subsurface.c         |  101 +++++++---
 src/cairo-surface-wrapper-private.h    |    7 +-
 src/cairo-surface-wrapper.c            |  314 ++++++++++++++++++++++++++------
 src/cairo-surface.c                    |   13 +-
 test/Makefile.am                       |    1 +
 test/Makefile.sources                  |    1 +
 test/subsurface-reflect.c              |   76 ++++++++
 test/subsurface-reflect.ref.png        |  Bin 0 -> 210 bytes
 test/subsurface-repeat.c               |    8 +-
 test/subsurface-similar-repeat.c       |    3 +
 test/subsurface.c                      |    7 +-
 test/subsurface.image16.ref.png        |  Bin 1430 -> 1643 bytes
 test/subsurface.ref.png                |  Bin 1597 -> 1811 bytes
 21 files changed, 565 insertions(+), 126 deletions(-)

commit 5fc04bba9fa8ddda8cf7d7a97015f21a21429172
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 29 21:51:29 2010 +0100

    paginated: Call surface finish explicitly on recording surface
    
    During show_page() when we destroy the recording surface after emitting
    the page, ensure that we actually call cairo_surface_finish() to dispose
    of any self-referential reference leaks.

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

commit 3ae57234644c3756785c551beffe584f837b0273
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 29 21:50:22 2010 +0100

    boilerplate: Ensure that the recording surfaces are finished.
    
    Be paranoid and explicitly call finish to cleanup self-referential leaks
    when using paginated/recording surfaces.

 boilerplate/cairo-boilerplate-pdf.c |    5 ++++-
 boilerplate/cairo-boilerplate-ps.c  |    5 ++++-
 boilerplate/cairo-boilerplate-svg.c |    5 ++++-
 boilerplate/cairo-boilerplate.c     |   10 +++++-----
 4 files changed, 17 insertions(+), 8 deletions(-)

commit f08cc311af1248b39c3e757ef192515ed8506862
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 29 20:34:56 2010 +0100

    boilerplate: Destroy the redundant image reference
    
    When using a script surface to record the recording surface, we replace
    the local reference to the image surface.

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

commit ab2776c9a16134c50b48fd202263421ec0f466e7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 29 18:50:32 2010 +0100

    snapshot: Attach the backend generated snapshot to the target
    
    Cache the result of snapshotting using the backend vfunc in the normal
    manner by attaching the snapshot to the target. This should reduce
    resource usage in these cases.

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

commit 07122f37d11eabe62bc9c81ccbf71bbe8b7a1005
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 29 15:19:18 2010 +0100

    surface: Convert snapshots from an array to a double-linked list.
    
    Saves the memory allocation for the array, and the overhead of
    maintaining the area for both insertions and more importantly deletes.

 src/cairo-recording-surface.c      |    6 +--
 src/cairo-surface-private.h        |    5 +-
 src/cairo-surface-snapshot.c       |   10 +--
 src/cairo-surface.c                |  132 +++++++++++++-----------------------
 src/cairo-vg-surface.c             |    8 +--
 src/cairo-xcb-surface-core.c       |    6 +--
 src/cairo-xcb-surface-render.c     |   10 +--
 src/cairo-xcb-surface.c            |   12 +--
 src/cairoint.h                     |    2 +-
 src/drm/cairo-drm-i915-shader.c    |   11 ++--
 src/drm/cairo-drm-i965-shader.c    |   11 ++--
 src/drm/cairo-drm-intel-surface.c  |    8 +--
 src/drm/cairo-drm-radeon-surface.c |    8 +--
 13 files changed, 78 insertions(+), 151 deletions(-)

commit 4cb733c28551f4a34cd4a225b8d797a55bf9b977
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 29 12:04:44 2010 +0100

    image: Simplify translation of pattern matrix for composite_trapezoids()

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

commit 3940b0e91c274de0cf2fca4b34d4025b92965c19
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 29 17:29:13 2010 +0100

    subsurface: s/region/rectangle/
    
    After a renewed discussion, it was pointed out that the API in Cairo was
    not restrictive and by using doubles we would be consisted with the rest
    of the API. Thus prompting the name change to
    
      cairo_surface_create_for_rectangle()
    
    similar to cairo_rectangle().
    
    And document the public API.

 src/cairo-surface-subsurface.c             |   39 +++++++++++++++++++++++-----
 src/cairo.h                                |   10 +++---
 test/subsurface-repeat.c                   |    4 +-
 test/subsurface-similar-repeat.c           |    2 +-
 test/subsurface.c                          |    4 +-
 util/cairo-script/cairo-script-operators.c |   12 ++++----
 util/cairo-trace/trace.c                   |   10 +++---
 7 files changed, 53 insertions(+), 28 deletions(-)

commit 4b6fa8d5a78731aca80f3c8c6320e7edc845c5b5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 30 09:47:51 2010 +0100

    test: Remove group-unaligned.*new.png
    
    Entirely misleading, looks like PDF is behaving the same as image and
    this remnant was thus giving the wrong impression.

 test/Makefile.am                 |    1 -
 test/group-unaligned.pdf.new.png |  Bin 427 -> 0 bytes
 2 files changed, 0 insertions(+), 1 deletions(-)

commit e3f990d84131f7bd1e64e54d02bac780b1e9f85e
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 22:34:35 2010 +0200

    test: Update reference images for last checkin
    
    Both tests now pas on all backends I tested: test, image, xlib and
    recording

 test/a1-traps-sample.ref.png      |  Bin 148 -> 120 bytes
 test/unantialiased-shapes.ref.png |  Bin 3969 -> 3968 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 6d36f06751377459e35afe1ac26c59d33b16c730
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 22:12:02 2010 +0200

    image: Round down when rendering antialiased boxes
    
    Matches Pixman's output when going via pixman_rasterize_trapezoid()

 src/cairo-fixed-private.h |    6 ++++++
 src/cairo-image-surface.c |    9 +++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

commit 95179a5de91b5c6f99dbccc3b6c950df58d4f2a7
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 20:45:23 2010 +0200

    Remove excessive semicolons
    
    s/;;/;/ basically

 src/cairo-image-surface.c       |    2 +-
 src/cairo-wideint.c             |    2 +-
 src/drm/cairo-drm-i965-shader.c |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 5d07307b691afccccbb15f773d5231669ba44f5a
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 18:20:59 2010 +0200

    xlib: Don't modify variables that are needed later
    
    In the XCopyArea region code, don't modify src_x/y when they are later
    used in the unbounded fixup code.
    
    Exposed by composite-integer-translate-source test.

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

commit 90160deb2a84f787dff46243471e37600b24799b
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 18:20:44 2010 +0200

    xlib: Constify some function arguments

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

commit 4da71d1a01c4d4cc84b5e31cc89dd7f297b23359
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 18:11:54 2010 +0200

    xlib: remove unused code

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

commit 758ffadcb1d0a0478d43ca40775687a37e5920a4
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 16:54:09 2010 +0200

    fallback: Only do _fill/compsoite_rectangles on bounded source
    
    For unbounded sources, these optimizations fail to take into account the
    regions outside the source.

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

commit 6288ad719da898c4a75cdc6527f5a41d4c900e57
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 15:37:32 2010 +0200

    fallback: translate extents regions properly
    
    The extents clip regions that were created for unbounded operators were
    not translated properly. This has been changed now.
    
    This is a followup to 9ce8bef9d6e6d773dd1f4b184916ed5c96c3541d.

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

commit b0760826f30f63637561b353e7eed1913036da2d
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 12:11:48 2010 +0200

    test: Set have_result for image matches
    
    Causes the log to contain information about the reference imagery used.

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

commit 8f85c2d77cc2ca7984f9771c0096fbad798dbde8
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 29 12:09:31 2010 +0200

    image: translate source pattern in composite_trapezoids()
    
    Fixes xlib fallback paths as exposed by the clip-push-group test.

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

commit aa495eac5a2db9b396eb1953eb112c733d0ababc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 29 10:04:18 2010 +0100

    atomic: Tweak for compilation x86.
    
    Missing definition of _cairo_atomic_ptr_get() used in the fallbacks.

 src/cairo-atomic-private.h |   27 ++++++++++++++++++++-------
 src/cairo-atomic.c         |   16 ++++++++--------
 2 files changed, 28 insertions(+), 15 deletions(-)

commit 248af38b3efa3f96225eea43f4ba5b94baff34a6
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Apr 28 17:23:47 2010 +0200

    atomic: Add MacOSX atomic implementation
    
    Enable atomic operation on MacOS X, using the functions provided by
    libkern/OSAtomic.h
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 build/aclocal.cairo.m4     |   10 ++++++++++
 src/cairo-atomic-private.h |   30 ++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 0 deletions(-)

commit 56a367a1626b2b7ec3d9e64e74f016867f294a34
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Apr 28 19:17:10 2010 +0200

    atomic: Correct implementation of _atomic_fetch ()
    
    _atomic_fetch() was expected to replace the content of a slot with
    NULL and return the old content, but it incorrectly returned the
    previous content even if it was unable to perform the exchange
    (because of conflicts with other threads accessing the pool).
    
    Fix suggested by Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-freed-pool-private.h |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

commit d66b1ca1cfda64088521581bc2bd494bff9f5d23
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Apr 28 16:23:15 2010 +0200

    atomic: Separate bool and old-value compare-and-exchange
    
    Some implementations only offer one version of compare-and-exchange,
    thus we expose both through cairo-atomic, implementing what is missing
    through appropriate fallbacks.
    *_cmpxchg() now return a boolean (this unbreaks _cairo_atomic_uint_cmpxchg)
    *_cmpxchg_return_old() return the old value
    Code is updated everywhere to reflect this, by using *_cmpxchg()
    wherever the returned value was only tested to check if the exchange
    had really taken place.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-atomic-private.h     |   68 ++++++++++++++++++++++++++++++++++++---
 src/cairo-atomic.c             |    4 +-
 src/cairo-freed-pool-private.h |    4 +-
 src/cairo-image-surface.c      |    6 ++--
 src/cairo.c                    |    4 +-
 src/drm/cairo-drm.c            |    2 +-
 6 files changed, 72 insertions(+), 16 deletions(-)

commit a0bf424b820b404947671b56f357a2cef71640fb
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Apr 28 15:29:32 2010 +0200

    atomic: Remove unused function _cairo_atomic_int_set()
    
    _cairo_atomic_int_set() was only used in the definition of
    CAIRO_REFERENCE_SET_VALUE, which was never used.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-atomic-private.h          |   10 ----------
 src/cairo-atomic.c                  |    8 --------
 src/cairo-reference-count-private.h |    1 -
 3 files changed, 0 insertions(+), 19 deletions(-)

commit 9ce8bef9d6e6d773dd1f4b184916ed5c96c3541d
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 28 18:34:20 2010 +0200

    fallback: Propagate extents properly
    
    Otherwise unbounded operators will clear the full surface.
    Improves the score for the unbounded-operator test, in particular the
    output for the test-fallback case.

 src/cairo-surface-fallback.c |  112 +++++++++++++++++++++++++++++-------------
 1 files changed, 78 insertions(+), 34 deletions(-)

commit 91fd97ae7c4de23c61d481c98c9352f0639d76dd
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 28 20:21:37 2010 +0200

    fallback: Pass the correct extents for unbounbded operations

 src/cairo-surface-fallback.c |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

commit 06e9caf86199e8261a07db6d4774628fa147728d
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 28 20:05:13 2010 +0200

    image: pixman_image_fill_rectangles() => pixman_image_fill_boxes()

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

commit bc49df322770b3bd1797c0e153b97f1f296fbd1e
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 28 19:56:36 2010 +0200

    pixman_image_composite => pixman_image_composite32
    
    Fix up the remaining callers

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

commit 393da364a7f26e696141c58d4fb6fdefb2ea245a
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 28 18:18:15 2010 +0200

    fallback: Sanitize code that queries surface extents
    
    The previous code was setting extents.is_bounded, but that value has a
    completely different meaning.

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

commit 13914039567d5e8269fc29c51018ce172a40f2e9
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 28 13:05:28 2010 +0200

    test: run xlib-expose-event test unconditionally

 test/Makefile.sources |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2ce1afa3222145e9c4f8c74a0034e0da9e93b70b
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 28 12:54:54 2010 +0200

    test-suite: add image_diff_is_failure() function
    
    This cleans the code and fixes a boolean logic error where this check
    was done manually.

 test/buffer-diff.c         |    8 ++++++++
 test/buffer-diff.h         |    4 ++++
 test/cairo-test-trace.c    |    3 +--
 test/cairo-test.c          |    9 +++------
 test/fallback-resolution.c |    3 +--
 test/xlib-surface.c        |    4 ++--
 6 files changed, 19 insertions(+), 12 deletions(-)

commit 2a91d425088cb8a93de76f2f91f32a7f23f0aecd
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 28 12:26:29 2010 +0200

    fallback: Fix clip_region handling in mask creation
    
    Fixes the xlib-expose-event test.

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

commit bb853916f3581af13cc1abff185ef5e0218f9f1e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 28 11:37:59 2010 +0100

    image: Generate clear/white/black images when !HAS_ATOMIC_OPS
    
    Andrea reported that b74cc0f broke compilation without atomic ops.

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

commit 45d4c6e0b2fe62a3c6f1fdb7f359c9771111b470
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 28 10:01:06 2010 +0100

    script: Replace the missing " " after pop
    
    I accidentally deleted the whitespace after popping the recording
    surface, thus causing the scripts to be broken.

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

commit 6a99e83c50d715ba1e47aa5c7be714a423568e57
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 28 09:55:20 2010 +0100

    subsurface: Mark the image as !clear after copying.

 src/cairo-surface-subsurface.c |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

commit ca3df75e8f876991f2dc9e85c9daa3fd96e826d2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 28 09:54:56 2010 +0100

    script: Reconstruct subsurfaces.

 src/cairo-script-surface.c |   84 ++++++++++++++++++++++++++++++-------------
 1 files changed, 58 insertions(+), 26 deletions(-)

commit 0f0d349a400e097856e6d9863e66c0a041e65c35
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 28 09:54:37 2010 +0100

    trace: Wrap cairo_surface_create_for_region()

 util/cairo-script/cairo-script-operators.c |   33 +++++++++++++++++++++++++
 util/cairo-trace/trace.c                   |   36 ++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 0 deletions(-)

commit 80fc2a8e49aa6ab4646b14eed9a4cf348a9149b4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 28 09:50:49 2010 +0100

    test: Expand xlib-expose-event to cover all backends
    
    Use a similar surface to create an equivalent backing surface for
    any backend, thus enabling the test to run against any target.
    
    The comment about forcing fallbacks has long since been false.

 test/xlib-expose-event.c |   76 +++++----------------------------------------
 1 files changed, 9 insertions(+), 67 deletions(-)

commit d3c4349730be991db0c85094103c744fc2d94836
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 27 21:04:52 2010 +0100

    test: Mark surfaces as finished if the data goes out of scope.
    
    The issue being that as the on-stack data is being referenced via a
    zero-copy snapshot outside of the functions scope as the surface is only
    finished and the source written long after the draw() returns. The
    correct procedure is that the user must call cairo_surface_finish()
    prior to any surface becoming inaccessible. In this case, this triggers
    the snapshot to preserve a copy of the data whilst it is still valid.

 test/bilevel-image.c                   |    4 +++-
 test/filter-nearest-offset.c           |    1 +
 test/mask-ctm.c                        |    4 +++-
 test/mask-surface-ctm.c                |    1 +
 test/move-to-show-surface.c            |    2 ++
 test/paint-repeat.c                    |    1 +
 test/paint-source-alpha.c              |    1 +
 test/paint-with-alpha.c                |    1 +
 test/rgb24-ignore-alpha.c              |    1 +
 test/scale-down-source-surface-paint.c |    1 +
 test/scale-source-surface-paint.c      |    1 +
 test/set-source.c                      |    1 +
 test/smask-image-mask.c                |    4 +++-
 test/smask.c                           |    4 +++-
 test/source-surface-scale-paint.c      |    1 +
 test/translate-show-surface.c          |    1 +
 test/zero-alpha.c                      |    1 +
 17 files changed, 26 insertions(+), 4 deletions(-)

commit a5f54e48e3136076f3c8c60fc068f6a2105d9a33
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 27 21:05:22 2010 +0100

    snapshot: The snapshot masquerades as the target surface type.
    
    Not wholly convinced this is a good idea, but it matches the behaviour
    of the other internal surface types.

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

commit 4a678afdf73d6f7b2b8a532ac7024976702c8aac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 27 18:57:56 2010 +0100

    snapshot: Simply memcpy if the cloned image matches the original.

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

commit b74cc0f6d5b71295c70d4c29e24ab252175f9a5b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 27 18:57:00 2010 +0100

    image: Convert 1x1 samples into solid colors.
    
    If the sampled extents of the operation on an image surface is just a
    single pixel, we can safely convert to a solid color.

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

commit f5cf131a9d8984bd6b3403396beed2ffbc26bded
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 27 18:56:23 2010 +0100

    surface: skip OVER is the source is clear.
    
    If the source has no alpha, the OVER operation becomes DST, i.e. a
    no-op.

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

commit 453b1cba11f71694cfe0c3d934ac1f5aabda67fd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 27 16:47:31 2010 +0100

    test: Update image ref images, and used fonts in README

 test/Makefile.am                            |    2 +-
 test/README                                 |    6 +++---
 test/finer-grained-fallbacks.argb32.ref.png |  Bin 0 -> 1068 bytes
 test/finer-grained-fallbacks.ref.png        |  Bin 1070 -> 0 bytes
 test/finer-grained-fallbacks.rgb24.ref.png  |  Bin 839 -> 837 bytes
 test/ft-text-vertical-layout-type1.ref.png  |  Bin 3644 -> 3591 bytes
 test/ft-text-vertical-layout-type3.ref.png  |  Bin 3608 -> 3616 bytes
 test/mask-glyphs.ref.png                    |  Bin 1189352 -> 1189351 bytes
 test/smask-text.ref.png                     |  Bin 1874 -> 1672 bytes
 test/smask.ref.png                          |  Bin 3423 -> 3396 bytes
 10 files changed, 4 insertions(+), 4 deletions(-)

commit 70656bba81e01eaf7b48817b2ca16fdf6d0b4bd5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 27 14:19:22 2010 +0100

    test: Add image16 refs

 test/Makefile.am                                   |  144 ++++++++++++++++++++
 test/big-line.image16.ref.png                      |  Bin 0 -> 988 bytes
 test/bug-bo-rectangular.image16.ref.png            |  Bin 0 -> 955 bytes
 test/caps-joins-alpha.image16.ref.png              |  Bin 0 -> 2268 bytes
 test/caps-joins-curve.image16.ref.png              |  Bin 0 -> 4928 bytes
 test/caps-joins.image16.ref.png                    |  Bin 0 -> 2587 bytes
 test/caps-sub-paths.image16.ref.png                |  Bin 0 -> 171 bytes
 test/caps.image16.ref.png                          |  Bin 0 -> 1936 bytes
 test/clear-source.image16.ref.png                  |  Bin 0 -> 909 bytes
 test/clip-disjoint.image16.ref.png                 |  Bin 0 -> 3886 bytes
 test/clip-fill-no-op.image16.ref.png               |  Bin 0 -> 153 bytes
 test/clip-fill-rule.image16.ref.png                |  Bin 0 -> 356 bytes
 test/clip-fill-unbounded.image16.ref.png           |  Bin 0 -> 1204 bytes
 test/clip-fill.image16.ref.png                     |  Bin 0 -> 904 bytes
 test/clip-image.image16.ref.png                    |  Bin 0 -> 2032 bytes
 test/clip-operator.image16.ref.png                 |  Bin 0 -> 3131 bytes
 test/clip-push-group.image16.ref.png               |  Bin 0 -> 159 bytes
 test/clip-shape.image16.ref.png                    |  Bin 0 -> 2488 bytes
 test/clip-stroke-no-op.image16.ref.png             |  Bin 0 -> 153 bytes
 test/clip-stroke-unbounded.image16.ref.png         |  Bin 0 -> 1255 bytes
 test/clip-stroke.image16.ref.png                   |  Bin 0 -> 1308 bytes
 test/clip-text.image16.ref.png                     |  Bin 0 -> 811 bytes
 test/clip-twice.image16.ref.png                    |  Bin 0 -> 1069 bytes
 test/clipped-group.image16.ref.png                 |  Bin 0 -> 281 bytes
 test/clipped-surface.image16.ref.png               |  Bin 0 -> 296 bytes
 test/close-path-current-point.image16.ref.png      |  Bin 0 -> 1804 bytes
 ...omposite-integer-translate-over.image16.ref.png |  Bin 0 -> 11570 bytes
 ...posite-integer-translate-source.image16.ref.png |  Bin 0 -> 11570 bytes
 test/copy-path.image16.ref.png                     |  Bin 0 -> 556 bytes
 test/culled-glyphs.image16.ref.png                 |  Bin 0 -> 426 bytes
 test/dash-caps-joins.image16.ref.png               |  Bin 0 -> 4491 bytes
 test/dash-curve.image16.ref.png                    |  Bin 0 -> 32445 bytes
 test/dash-scale.image16.ref.png                    |  Bin 0 -> 7748 bytes
 test/dash-state.image16.ref.png                    |  Bin 0 -> 7910 bytes
 test/degenerate-arc.image16.ref.png                |  Bin 0 -> 592 bytes
 test/degenerate-arcs.image16.ref.png               |  Bin 0 -> 120 bytes
 test/degenerate-curve-to.image16.ref.png           |  Bin 0 -> 278 bytes
 test/degenerate-pen.image16.ref.png                |  Bin 0 -> 954 bytes
 test/degenerate-rel-curve-to.image16.ref.png       |  Bin 0 -> 279 bytes
 test/extend-pad-border.image16.ref.png             |  Bin 0 -> 446 bytes
 test/extend-reflect-similar.image16.ref.png        |  Bin 0 -> 99786 bytes
 test/extend-reflect.image16.ref.png                |  Bin 0 -> 99786 bytes
 test/extend-repeat-similar.image16.ref.png         |  Bin 0 -> 83738 bytes
 test/extend-repeat.image16.ref.png                 |  Bin 0 -> 83738 bytes
 test/extended-blend-alpha.image16.ref.png          |  Bin 0 -> 4626 bytes
 test/extended-blend.image16.ref.png                |  Bin 0 -> 4145 bytes
 test/fill-alpha-pattern.image16.ref.png            |  Bin 0 -> 3380 bytes
 test/fill-alpha.image16.ref.png                    |  Bin 0 -> 2145 bytes
 test/fill-and-stroke-alpha-add.image16.ref.png     |  Bin 0 -> 536 bytes
 test/fill-and-stroke-alpha.image16.ref.png         |  Bin 0 -> 470 bytes
 test/fill-and-stroke.image16.ref.png               |  Bin 0 -> 251 bytes
 test/fill-degenerate-sort-order.image16.ref.png    |  Bin 0 -> 1753 bytes
 test/fill-image.image16.ref.png                    |  Bin 0 -> 1163 bytes
 test/fill-rule.image16.ref.png                     |  Bin 0 -> 1625 bytes
 test/filter-bilinear-extents.image16.ref.png       |  Bin 0 -> 895 bytes
 test/filter-nearest-transformed.image16.ref.png    |  Bin 0 -> 418 bytes
 test/finer-grained-fallbacks.image16.ref.png       |  Bin 0 -> 862 bytes
 test/font-matrix-translation.image16.ref.png       |  Bin 0 -> 852 bytes
 test/ft-show-glyphs-positioning.image16.ref.png    |  Bin 0 -> 2772 bytes
 test/ft-show-glyphs-table.image16.ref.png          |  Bin 0 -> 8052 bytes
 test/ft-text-vertical-layout-type1.image16.ref.png |  Bin 0 -> 3072 bytes
 test/ft-text-vertical-layout-type3.image16.ref.png |  Bin 0 -> 3141 bytes
 test/glyph-cache-pressure.image16.ref.png          |  Bin 0 -> 2453 bytes
 test/group-clip.image16.ref.png                    |  Bin 0 -> 193 bytes
 test/group-unaligned.image16.ref.png               |  Bin 0 -> 395 bytes
 test/huge-linear.image16.ref.png                   |  Bin 0 -> 1542 bytes
 test/huge-radial.image16.ref.png                   |  Bin 0 -> 17893 bytes
 test/image-surface-source.image16.ref.png          |  Bin 0 -> 305 bytes
 test/joins.image16.ref.png                         |  Bin 0 -> 5858 bytes
 test/large-font.image16.ref.png                    |  Bin 0 -> 5713 bytes
 test/large-twin-antialias-mixed.image16.ref.png    |  Bin 0 -> 14398 bytes
 test/leaky-dashed-rectangle.image16.ref.png        |  Bin 0 -> 367 bytes
 test/leaky-dashed-stroke.image16.ref.png           |  Bin 0 -> 8089 bytes
 test/leaky-polygon.image16.ref.png                 |  Bin 0 -> 329 bytes
 test/line-width-scale.image16.ref.png              |  Bin 0 -> 4721 bytes
 test/linear-gradient-reflect.image16.ref.png       |  Bin 0 -> 190 bytes
 test/linear-gradient-subset.image16.ref.png        |  Bin 0 -> 791 bytes
 test/linear-gradient.image16.ref.png               |  Bin 0 -> 941 bytes
 test/linear-uniform.image16.ref.png                |  Bin 0 -> 131 bytes
 test/long-dashed-lines.image16.ref.png             |  Bin 0 -> 1974 bytes
 test/mask-alpha.image16.ref.png                    |  Bin 0 -> 560 bytes
 test/mask-glyphs.image16.ref.png                   |  Bin 0 -> 1053144 bytes
 test/mask-transformed-image.image16.ref.png        |  Bin 0 -> 2748 bytes
 test/mask-transformed-similar.image16.ref.png      |  Bin 0 -> 2748 bytes
 test/mask.image16.ref.png                          |  Bin 0 -> 5533 bytes
 test/operator-alpha-alpha.image16.ref.png          |  Bin 0 -> 4140 bytes
 test/operator-source.image16.ref.png               |  Bin 0 -> 2756 bytes
 test/over-around-source.image16.ref.png            |  Bin 0 -> 491 bytes
 test/paint-source-alpha.image16.ref.png            |  Bin 0 -> 253 bytes
 test/paint-with-alpha.image16.ref.png              |  Bin 0 -> 253 bytes
 test/path-append.image16.ref.png                   |  Bin 0 -> 5252 bytes
 test/path-stroke-twice.image16.ref.png             |  Bin 0 -> 210 bytes
 test/pdf-surface-source.image16.ref.png            |  Bin 0 -> 305 bytes
 test/ps-surface-source.image16.ref.png             |  Bin 0 -> 305 bytes
 test/pthread-same-source.image16.ref.png           |  Bin 0 -> 1007 bytes
 test/push-group-color.image16.ref.png              |  Bin 0 -> 2277 bytes
 test/push-group.image16.ref.png                    |  Bin 0 -> 2286 bytes
 test/radial-gradient-source.image16.ref.png        |  Bin 0 -> 132037 bytes
 test/radial-gradient.image16.ref.png               |  Bin 0 -> 202415 bytes
 .../random-intersections-curves-eo.image16.ref.png |  Bin 0 -> 181565 bytes
 .../random-intersections-curves-nz.image16.ref.png |  Bin 0 -> 204090 bytes
 test/random-intersections-eo.image16.ref.png       |  Bin 0 -> 97747 bytes
 test/random-intersections-nonzero.image16.ref.png  |  Bin 0 -> 107644 bytes
 test/recording-surface-pattern.image16.ref.png     |  Bin 0 -> 2856 bytes
 test/reflected-stroke.image16.ref.png              |  Bin 0 -> 4254 bytes
 test/rotated-clip.image16.ref.png                  |  Bin 0 -> 3336 bytes
 test/rounded-rectangle-fill.image16.ref.png        |  Bin 0 -> 730 bytes
 test/rounded-rectangle-stroke.image16.ref.png      |  Bin 0 -> 732 bytes
 test/scale-offset-image.image16.ref.png            |  Bin 0 -> 7793 bytes
 test/scale-offset-similar.image16.ref.png          |  Bin 0 -> 7793 bytes
 test/select-font-face.image16.ref.png              |  Bin 0 -> 1962 bytes
 test/show-text-current-point.image16.ref.png       |  Bin 0 -> 1932 bytes
 test/smask-fill.image16.ref.png                    |  Bin 0 -> 925 bytes
 test/smask-mask.image16.ref.png                    |  Bin 0 -> 1358 bytes
 test/smask-paint.image16.ref.png                   |  Bin 0 -> 1469 bytes
 test/smask-stroke.image16.ref.png                  |  Bin 0 -> 1330 bytes
 test/smask-text.image16.ref.png                    |  Bin 0 -> 1206 bytes
 test/smask.image16.ref.png                         |  Bin 0 -> 2213 bytes
 test/spline-decomposition.image16.ref.png          |  Bin 0 -> 14064 bytes
 test/stroke-ctm-caps.image16.ref.png               |  Bin 0 -> 908 bytes
 test/stroke-image.image16.ref.png                  |  Bin 0 -> 1167 bytes
 test/subsurface.image16.ref.png                    |  Bin 0 -> 1430 bytes
 test/surface-pattern-operator.image16.ref.png      |  Bin 0 -> 1977 bytes
 test/surface-pattern-scale-down.image16.ref.png    |  Bin 0 -> 1313 bytes
 test/surface-pattern-scale-up.image16.ref.png      |  Bin 0 -> 3864 bytes
 test/surface-pattern.image16.ref.png               |  Bin 0 -> 11870 bytes
 test/svg-surface-source.image16.ref.png            |  Bin 0 -> 305 bytes
 test/text-antialias-gray.image16.ref.png           |  Bin 0 -> 895 bytes
 test/text-antialias-subpixel.image16.ref.png       |  Bin 0 -> 866 bytes
 test/text-glyph-range.image16.ref.png              |  Bin 0 -> 1731 bytes
 test/text-rotate.image16.ref.png                   |  Bin 0 -> 12599 bytes
 test/text-transform.image16.ref.png                |  Bin 0 -> 4469 bytes
 test/transforms.image16.ref.png                    |  Bin 0 -> 326 bytes
 test/trap-clip.image16.ref.png                     |  Bin 0 -> 4344 bytes
 test/twin-antialias-gray.image16.ref.png           |  Bin 0 -> 3005 bytes
 test/twin-antialias-mixed.image16.ref.png          |  Bin 0 -> 2049 bytes
 test/twin-antialias-subpixel.image16.ref.png       |  Bin 0 -> 3005 bytes
 test/twin.image16.ref.png                          |  Bin 0 -> 3005 bytes
 test/unbounded-operator.image16.ref.png            |  Bin 0 -> 1276 bytes
 test/user-font-mask.image16.ref.png                |  Bin 0 -> 4948 bytes
 test/user-font-proxy.image16.ref.png               |  Bin 0 -> 14460 bytes
 test/user-font-rescale.image16.ref.png             |  Bin 0 -> 12590 bytes
 test/user-font.image16.ref.png                     |  Bin 0 -> 5814 bytes
 test/xcomposite-projection.image16.ref.png         |  Bin 0 -> 1000 bytes
 test/xlib-surface-source.image16.ref.png           |  Bin 0 -> 305 bytes
 145 files changed, 144 insertions(+), 0 deletions(-)

commit ebe6f2ac6988991afde0d685bea9f207ed3360d8
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Apr 27 10:59:09 2010 +0200

    quartz: Assert success of path creation
    
    Path creation can only fail because of the callbacks, but in quartz
    they all return CAIRO_STATUS_SUCCESS. Therefore we can just assert
    that path creation was successful and simplify calling functions
    (as they don't have to handle potential errors anymore).

 src/cairo-quartz-surface.c |   35 +++++++++++++++--------------------
 1 files changed, 15 insertions(+), 20 deletions(-)

commit f67b6009278ef3dfe91ddbffb989dcfeed174352
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Apr 4 11:50:41 2010 +0200

    quartz: Simplify path creation
    
    If paths are created before changing the ctm (when stroking) no
    multiplication is needed in the path construction code.

 src/cairo-quartz-surface.c |   60 +++++++------------------------------------
 1 files changed, 10 insertions(+), 50 deletions(-)

commit 3b2ceff0502ba409c161e497ebe015e0a0a88847
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Apr 7 18:34:25 2010 +0200

    quartz: Stroke without ctm_inverse multiplication
    
    If the CTM is not changed before creating the path, no multiplication
    needs to be made between points and the inverse of the CTM.

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

commit 514d366cde689f8200b049834bebbd421d5d8bcb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 27 11:07:09 2010 +0100

    snapshot: propagate status on finish

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

commit a505104013a1db0c8b1092c8a1848d7f0b02e6bc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Apr 26 20:22:13 2010 +0100

    image: Compute sample extents
    
    In order to reuse the original image as the pixman pattern, then the
    entire operation must be wholly contained within the extents of the
    image (including subsurfaces) and be reducible to an untransformed
    REPEAT_NONE.

 src/cairo-image-surface.c |   72 +++++++++++++++++++++++++++++---------------
 src/cairo-pattern.c       |    2 +-
 src/cairoint.h            |    4 ++
 3 files changed, 52 insertions(+), 26 deletions(-)

commit b8a7f8621a84083735d0e2c8748f5fa2b7f4b36a
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Apr 27 10:17:23 2010 +0200

    Update FSF address
    
    I updated the Free Software Foundation address using the following script.
    
    for i in $(git grep Temple | cut -d: -f1 )
    do
      sed -e 's/59 Temple Place[, -]* Suite 330, Boston, MA *02111-1307[, ]* USA/51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA/' -i "$i"
    done
    
    Fixes http://bugs.freedesktop.org/show_bug.cgi?id=21356

 COPYING-LGPL-2.1                               |    4 ++--
 boilerplate/cairo-boilerplate-drm.c            |    2 +-
 boilerplate/cairo-boilerplate-gl.c             |    2 +-
 boilerplate/cairo-boilerplate-qt.cpp           |    2 +-
 boilerplate/cairo-boilerplate-vg.c             |    2 +-
 build/aclocal.pkg.m4                           |    2 +-
 doc/tutorial/src/include/cairo-tutorial-gtk.h  |    2 +-
 doc/tutorial/src/include/cairo-tutorial-pdf.h  |    2 +-
 doc/tutorial/src/include/cairo-tutorial-png.h  |    2 +-
 doc/tutorial/src/include/cairo-tutorial-xlib.h |    2 +-
 doc/tutorial/src/include/cairo-tutorial.h      |    2 +-
 src/cairo-analysis-surface-private.h           |    2 +-
 src/cairo-analysis-surface.c                   |    2 +-
 src/cairo-arc-private.h                        |    2 +-
 src/cairo-arc.c                                |    2 +-
 src/cairo-array.c                              |    2 +-
 src/cairo-atomic-private.h                     |    2 +-
 src/cairo-atomic.c                             |    2 +-
 src/cairo-base64-stream.c                      |    2 +-
 src/cairo-base85-stream.c                      |    2 +-
 src/cairo-bentley-ottmann-rectangular.c        |    2 +-
 src/cairo-bentley-ottmann-rectilinear.c        |    2 +-
 src/cairo-bentley-ottmann.c                    |    2 +-
 src/cairo-beos-surface.cpp                     |    2 +-
 src/cairo-beos.h                               |    2 +-
 src/cairo-botor-scan-converter.c               |    2 +-
 src/cairo-boxes-private.h                      |    2 +-
 src/cairo-boxes.c                              |    2 +-
 src/cairo-cache-private.h                      |    2 +-
 src/cairo-cache.c                              |    2 +-
 src/cairo-cff-subset.c                         |    2 +-
 src/cairo-clip-private.h                       |    2 +-
 src/cairo-clip.c                               |    2 +-
 src/cairo-color.c                              |    2 +-
 src/cairo-combsort-private.h                   |    2 +-
 src/cairo-compiler-private.h                   |    2 +-
 src/cairo-composite-rectangles-private.h       |    2 +-
 src/cairo-composite-rectangles.c               |    2 +-
 src/cairo-debug.c                              |    2 +-
 src/cairo-deflate-stream.c                     |    2 +-
 src/cairo-deprecated.h                         |    2 +-
 src/cairo-device-private.h                     |    2 +-
 src/cairo-device.c                             |    2 +-
 src/cairo-directfb-surface.c                   |    2 +-
 src/cairo-directfb.h                           |    2 +-
 src/cairo-drm.h                                |    2 +-
 src/cairo-egl-context.c                        |    2 +-
 src/cairo-error-private.h                      |    2 +-
 src/cairo-fixed-private.h                      |    2 +-
 src/cairo-fixed-type-private.h                 |    2 +-
 src/cairo-fixed.c                              |    2 +-
 src/cairo-font-face-twin.c                     |    2 +-
 src/cairo-font-face.c                          |    2 +-
 src/cairo-font-options.c                       |    2 +-
 src/cairo-freed-pool-private.h                 |    2 +-
 src/cairo-freed-pool.c                         |    2 +-
 src/cairo-ft-font.c                            |    2 +-
 src/cairo-ft-private.h                         |    2 +-
 src/cairo-ft.h                                 |    2 +-
 src/cairo-gl-glyphs.c                          |    2 +-
 src/cairo-gl-private.h                         |    2 +-
 src/cairo-gl-shaders.c                         |    2 +-
 src/cairo-gl-surface.c                         |    2 +-
 src/cairo-gl.h                                 |    2 +-
 src/cairo-glx-context.c                        |    2 +-
 src/cairo-gstate-private.h                     |    2 +-
 src/cairo-gstate.c                             |    2 +-
 src/cairo-hash-private.h                       |    2 +-
 src/cairo-hash.c                               |    2 +-
 src/cairo-hull.c                               |    2 +-
 src/cairo-image-info-private.h                 |    2 +-
 src/cairo-image-info.c                         |    2 +-
 src/cairo-image-surface.c                      |    2 +-
 src/cairo-list-private.h                       |    2 +-
 src/cairo-lzw.c                                |    2 +-
 src/cairo-malloc-private.h                     |    2 +-
 src/cairo-matrix.c                             |    2 +-
 src/cairo-misc.c                               |    2 +-
 src/cairo-mutex-impl-private.h                 |    2 +-
 src/cairo-mutex-list-private.h                 |    2 +-
 src/cairo-mutex-private.h                      |    2 +-
 src/cairo-mutex-type-private.h                 |    2 +-
 src/cairo-mutex.c                              |    2 +-
 src/cairo-os2-private.h                        |    2 +-
 src/cairo-os2-surface.c                        |    2 +-
 src/cairo-os2.h                                |    2 +-
 src/cairo-output-stream-private.h              |    2 +-
 src/cairo-output-stream.c                      |    2 +-
 src/cairo-paginated-private.h                  |    2 +-
 src/cairo-paginated-surface-private.h          |    2 +-
 src/cairo-paginated-surface.c                  |    2 +-
 src/cairo-path-bounds.c                        |    2 +-
 src/cairo-path-fill.c                          |    2 +-
 src/cairo-path-fixed-private.h                 |    2 +-
 src/cairo-path-fixed.c                         |    2 +-
 src/cairo-path-in-fill.c                       |    2 +-
 src/cairo-path-private.h                       |    2 +-
 src/cairo-path-stroke.c                        |    2 +-
 src/cairo-path.c                               |    2 +-
 src/cairo-pdf-operators-private.h              |    2 +-
 src/cairo-pdf-operators.c                      |    2 +-
 src/cairo-pdf-surface-private.h                |    2 +-
 src/cairo-pdf-surface.c                        |    2 +-
 src/cairo-pdf.h                                |    2 +-
 src/cairo-pen.c                                |    2 +-
 src/cairo-png.c                                |    2 +-
 src/cairo-polygon.c                            |    2 +-
 src/cairo-private.h                            |    2 +-
 src/cairo-ps-surface-private.h                 |    2 +-
 src/cairo-ps-surface.c                         |    2 +-
 src/cairo-ps.h                                 |    2 +-
 src/cairo-qt-surface.cpp                       |    2 +-
 src/cairo-qt.h                                 |    2 +-
 src/cairo-quartz-font.c                        |    2 +-
 src/cairo-quartz-image-surface.c               |    2 +-
 src/cairo-quartz-image.h                       |    2 +-
 src/cairo-quartz-private.h                     |    2 +-
 src/cairo-quartz-surface.c                     |    2 +-
 src/cairo-quartz.h                             |    2 +-
 src/cairo-recording-surface-private.h          |    2 +-
 src/cairo-recording-surface.c                  |    2 +-
 src/cairo-rectangle.c                          |    2 +-
 src/cairo-rectangular-scan-converter.c         |    2 +-
 src/cairo-reference-count-private.h            |    2 +-
 src/cairo-region-private.h                     |    2 +-
 src/cairo-region.c                             |    2 +-
 src/cairo-rtree-private.h                      |    2 +-
 src/cairo-rtree.c                              |    2 +-
 src/cairo-scaled-font-private.h                |    2 +-
 src/cairo-scaled-font-subsets-private.h        |    2 +-
 src/cairo-scaled-font-subsets.c                |    2 +-
 src/cairo-scaled-font.c                        |    2 +-
 src/cairo-script-surface.c                     |    2 +-
 src/cairo-script.h                             |    2 +-
 src/cairo-skia-surface.cpp                     |    2 +-
 src/cairo-skia.h                               |    2 +-
 src/cairo-slope-private.h                      |    2 +-
 src/cairo-slope.c                              |    2 +-
 src/cairo-spline.c                             |    2 +-
 src/cairo-stroke-style.c                       |    2 +-
 src/cairo-surface-clipper-private.h            |    2 +-
 src/cairo-surface-clipper.c                    |    2 +-
 src/cairo-surface-fallback-private.h           |    2 +-
 src/cairo-surface-fallback.c                   |    2 +-
 src/cairo-surface-offset-private.h             |    2 +-
 src/cairo-surface-offset.c                     |    2 +-
 src/cairo-surface-private.h                    |    2 +-
 src/cairo-surface-snapshot-private.h           |    2 +-
 src/cairo-surface-snapshot.c                   |    2 +-
 src/cairo-surface-subsurface-private.h         |    2 +-
 src/cairo-surface-subsurface.c                 |    2 +-
 src/cairo-surface-wrapper-private.h            |    2 +-
 src/cairo-surface-wrapper.c                    |    2 +-
 src/cairo-surface.c                            |    2 +-
 src/cairo-svg-surface-private.h                |    2 +-
 src/cairo-svg-surface.c                        |    2 +-
 src/cairo-svg.h                                |    2 +-
 src/cairo-system.c                             |    2 +-
 src/cairo-tee-surface-private.h                |    2 +-
 src/cairo-tee-surface.c                        |    2 +-
 src/cairo-toy-font-face.c                      |    2 +-
 src/cairo-traps.c                              |    2 +-
 src/cairo-truetype-subset-private.h            |    2 +-
 src/cairo-truetype-subset.c                    |    2 +-
 src/cairo-type1-fallback.c                     |    2 +-
 src/cairo-type1-private.h                      |    2 +-
 src/cairo-type1-subset.c                       |    2 +-
 src/cairo-type3-glyph-surface-private.h        |    2 +-
 src/cairo-type3-glyph-surface.c                |    2 +-
 src/cairo-types-private.h                      |    2 +-
 src/cairo-unicode.c                            |    2 +-
 src/cairo-user-font-private.h                  |    2 +-
 src/cairo-user-font.c                          |    2 +-
 src/cairo-version.c                            |    2 +-
 src/cairo-vg-surface.c                         |    2 +-
 src/cairo-vg.h                                 |    2 +-
 src/cairo-wideint-private.h                    |    2 +-
 src/cairo-wideint-type-private.h               |    2 +-
 src/cairo-wideint.c                            |    2 +-
 src/cairo-win32-font.c                         |    2 +-
 src/cairo-win32-printing-surface.c             |    2 +-
 src/cairo-win32-private.h                      |    2 +-
 src/cairo-win32-surface.c                      |    2 +-
 src/cairo-win32.h                              |    2 +-
 src/cairo-xcb-connection-core.c                |    2 +-
 src/cairo-xcb-connection-render.c              |    2 +-
 src/cairo-xcb-connection-shm.c                 |    2 +-
 src/cairo-xcb-connection.c                     |    2 +-
 src/cairo-xcb-private.h                        |    2 +-
 src/cairo-xcb-screen.c                         |    2 +-
 src/cairo-xcb-shm.c                            |    2 +-
 src/cairo-xcb-surface-cairo.c                  |    2 +-
 src/cairo-xcb-surface-core.c                   |    2 +-
 src/cairo-xcb-surface-private.h                |    2 +-
 src/cairo-xcb-surface-render.c                 |    2 +-
 src/cairo-xcb-surface.c                        |    2 +-
 src/cairo-xcb.h                                |    2 +-
 src/cairo-xlib-display.c                       |    2 +-
 src/cairo-xlib-private.h                       |    2 +-
 src/cairo-xlib-screen.c                        |    2 +-
 src/cairo-xlib-surface-private.h               |    2 +-
 src/cairo-xlib-surface.c                       |    2 +-
 src/cairo-xlib-visual.c                        |    2 +-
 src/cairo-xlib-xcb-surface.c                   |    2 +-
 src/cairo-xlib-xrender-private.h               |    2 +-
 src/cairo-xlib-xrender.h                       |    2 +-
 src/cairo-xlib.h                               |    2 +-
 src/cairo-xml-surface.c                        |    2 +-
 src/cairo-xml.h                                |    2 +-
 src/cairo.c                                    |    2 +-
 src/cairo.h                                    |    2 +-
 src/cairoint.h                                 |    2 +-
 src/drm/cairo-drm-bo.c                         |    2 +-
 src/drm/cairo-drm-gallium-surface.c            |    2 +-
 src/drm/cairo-drm-i915-glyphs.c                |    2 +-
 src/drm/cairo-drm-i915-shader.c                |    2 +-
 src/drm/cairo-drm-i915-spans.c                 |    2 +-
 src/drm/cairo-drm-i915-surface.c               |    2 +-
 src/drm/cairo-drm-i965-glyphs.c                |    2 +-
 src/drm/cairo-drm-i965-shader.c                |    2 +-
 src/drm/cairo-drm-i965-spans.c                 |    2 +-
 src/drm/cairo-drm-i965-surface.c               |    2 +-
 src/drm/cairo-drm-intel-ioctl-private.h        |    2 +-
 src/drm/cairo-drm-intel-private.h              |    2 +-
 src/drm/cairo-drm-intel-surface.c              |    2 +-
 src/drm/cairo-drm-intel.c                      |    2 +-
 src/drm/cairo-drm-private.h                    |    2 +-
 src/drm/cairo-drm-radeon-private.h             |    2 +-
 src/drm/cairo-drm-radeon-surface.c             |    2 +-
 src/drm/cairo-drm-radeon.c                     |    2 +-
 src/drm/cairo-drm-surface.c                    |    2 +-
 src/drm/cairo-drm.c                            |    2 +-
 src/test-fallback-surface.c                    |    2 +-
 src/test-fallback-surface.h                    |    2 +-
 src/test-fallback16-surface.c                  |    2 +-
 src/test-fallback16-surface.h                  |    2 +-
 src/test-null-surface.c                        |    2 +-
 src/test-null-surface.h                        |    2 +-
 src/test-paginated-surface.c                   |    2 +-
 src/test-paginated-surface.h                   |    2 +-
 src/test-wrapping-surface.c                    |    2 +-
 src/test-wrapping-surface.h                    |    2 +-
 test/dash-offset.c                             |    2 +-
 test/miter-precision.c                         |    2 +-
 test/operator-alpha-alpha.c                    |    2 +-
 test/pdiff/args.c                              |    2 +-
 test/pdiff/args.h                              |    2 +-
 test/pdiff/lpyramid.c                          |    2 +-
 test/pdiff/lpyramid.h                          |    2 +-
 test/pdiff/pdiff.c                             |    2 +-
 test/pdiff/pdiff.h                             |    2 +-
 test/pdiff/perceptualdiff.c                    |    2 +-
 util/backtrace-symbols.c                       |    2 +-
 util/cairo-script/cairo-script-file.c          |    2 +-
 util/cairo-script/cairo-script-hash.c          |    2 +-
 util/cairo-script/cairo-script-interpreter.c   |    2 +-
 util/cairo-script/cairo-script-interpreter.h   |    2 +-
 util/cairo-script/cairo-script-objects.c       |    2 +-
 util/cairo-script/cairo-script-operators.c     |    2 +-
 util/cairo-script/cairo-script-private.h       |    2 +-
 util/cairo-script/cairo-script-scanner.c       |    2 +-
 util/cairo-script/cairo-script-stack.c         |    2 +-
 262 files changed, 263 insertions(+), 263 deletions(-)

commit 9672aab6b7c3f1efc065a6e5eb69443a1ecaa723
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Apr 26 21:28:53 2010 +0200

    tests: Integrate xlib-expose-event test into usual tests
    
    Previously the test was using the preamble vfunc and generating output
    itself. Now it uses the draw function and ignores any but the xlib
    backends.

 test/xlib-expose-event.c |   63 +++++++++++-----------------------------------
 1 files changed, 15 insertions(+), 48 deletions(-)

commit 36e0a3d3a01f9962d97386ea2d3c60020e937a81
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Apr 26 18:18:27 2010 +0100

    trace: Remove unused functions
    
    trace.c:1154: warning: ‘_has_font_face_id’ defined but not used
    trace.c:1196: warning: ‘_get_pattern_id’ defined but not used
    trace.c:1870: warning: ‘_emit_font_face’ defined but not used
    trace.c:1882: warning: ‘_emit_scaled_font’ defined but not used

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

commit 3a2d9ffe0333090bb31ff01048ed506595f20cf9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Apr 26 18:17:49 2010 +0100

    trace: Check return value to suppress compiler warning
    
    trace.c: In function ‘get_prog_name’:
    trace.c:741: warning: ignoring return value of ‘fgets’, declared with
    attribute warn_unused_result

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

commit 37be183412eb35abc11e602857602aee05839fc7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Apr 26 18:12:05 2010 +0100

    trace: Trivial compiler warning fix
    
    trace.c:1665: warning: initialization from incompatible pointer type

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

commit 3c9e5d9792e101cfbd5a1116f06579539ed7b585
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Apr 26 18:13:36 2010 +0100

    region: Cast to remove const to suppress compiler warnings.
    
    airo-region.c: In function ‘cairo_region_intersect’:
    cairo-region.c:503: warning: passing argument 3 of
    ‘pixman_region32_intersect’ discards qualifiers from pointer target type
    /usr/local/include/pixman-1/pixman.h:518: note: expected ‘struct
    pixman_region32_t *’ but argument is of type ‘const struct pixman_region32_t *’
    
    cairo-region.c: In function ‘cairo_region_union’:
    cairo-region.c:566: warning: passing argument 3 of
    ‘pixman_region32_union’ discards qualifiers from pointer target type
    /usr/local/include/pixman-1/pixman.h:521: note: expected ‘struct
    pixman_region32_t *’ but argument is of type ‘const struct pixman_region32_t *’

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

commit 8c72122df51a10a32b56cdf20e5a1037ee59a958
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Apr 25 10:30:12 2010 +0100

    clip: Skip combining with solid pixel aligned boxes.

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

commit 240ebaf81a42c24c4d4267879c5ef8102e97017e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Apr 25 09:44:18 2010 +0100

    clip: Fix sign reverse when combining with the clip surface.
    
    Finally, found the reversed sign in the clipping code, thanks cu!
    
    Fixes: test/clip-shape

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

commit 4d3632761b928c14fb1ce257af077f45658d8537
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Apr 25 09:42:13 2010 +0100

    clip: Report the surface offset when retrieving the clip mask
    
    Stop the callers from guessing the origin of the clip surface by
    reporting it explicitly! This enables the clip to bypass any rectangles
    overlaid on top of the clip surface, which is common when the backends
    limit the clip to the extents of the operation -- but irrelevant to the
    actual content of the clip mask

 src/cairo-clip-private.h        |    2 +-
 src/cairo-clip.c                |   26 ++++++++++++++++++++------
 src/cairo-image-surface.c       |   39 +++++++++++++++++++++------------------
 src/cairo-surface-fallback.c    |   20 ++++++++++----------
 src/cairo-xcb-surface-render.c  |   31 +++++++++++++++----------------
 src/drm/cairo-drm-i915-shader.c |    9 ++++-----
 src/drm/cairo-drm-i965-shader.c |    7 ++++---
 7 files changed, 75 insertions(+), 59 deletions(-)

commit 241ce933f8fa44210015dcdc4a66b3f9d8ac56e8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Apr 25 09:37:50 2010 +0100

    test: Add clip-shape
    
    cu found a bug when using clipping and fills with the image backend, but
    it turns out to be the lost sign bug afflicting everything...
    
    To trigger the bug requires evaluating the clip surface prior to using
    in with _cairo_clip_combine_with_surface(). Which is taken along a
    particular path when using a clip mask with non-pixel geometry on image,
    but more easily hit by the fallback code.
    
    Reported-by: <cairouser@yahoo.com>

 test/Makefile.am                      |    4 ++
 test/Makefile.sources                 |    1 +
 test/clip-shape.c                     |   86 +++++++++++++++++++++++++++++++++
 test/clip-shape.ps.ref.png            |  Bin 0 -> 1797 bytes
 test/clip-shape.ref.png               |  Bin 0 -> 2935 bytes
 test/clip-shape.xlib-fallback.ref.png |  Bin 0 -> 2916 bytes
 test/clip-shape.xlib.ref.png          |  Bin 0 -> 2944 bytes
 7 files changed, 91 insertions(+), 0 deletions(-)

commit 1687c7b7d3074de8eeea1a5c339df9a12cc38da2
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Apr 23 22:22:28 2010 +0200

    xlib: Fix display closing to work properly
    
    Previously we free()'d the cairo_device's memory which was not good at
    all. Now the code causes cairo_device_finish() instead.

 src/cairo-xlib-display.c |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 deletions(-)

commit 637564c562de21c17c36d192d3ab1b3fe069754b
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Apr 23 22:10:32 2010 +0200

    xlib: Fix screen device handling
    
    Add a _cairo_xlib_device_create() function that could easily be exported
    as a replacement for _cairo_xlib_display_get(). This function returns a
    cairo_device_t instead of a cairo_xlib_display_t because the display
    isn't acquired.

 src/cairo-xlib-display.c |   33 ++++++++++++++++++---------------
 src/cairo-xlib-private.h |    4 ++--
 src/cairo-xlib-screen.c  |   23 ++++++++++++++++-------
 3 files changed, 36 insertions(+), 24 deletions(-)

commit 49b52a8946cbd5f785f71069313e4a204358887b
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 22 21:56:31 2010 +0200

    gl: Make drawing to windows work again
    
    The correct MIN/MAG_FILTER wasn't set.

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

commit 3efbc0c5c850d0cb5c5af5bcabbc7293670ea355
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Apr 20 21:58:59 2010 +0200

    gl: Only unref a surface if it exists
    
    Note: This will likely work for NULL clones, but I prefer not
    dereferencing NULLs. That gives people a wrong understanding of the code
    (i.e. me).

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

commit 64662be4ef3851d21658e5fdb2efb6806b45eba8
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 22 22:05:03 2010 +0200

    gl: Use GLfloat instead of float in gl*Array() functions

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

commit e4f84f97b2f5d37bc1fb7dd510df733053ffe624
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Apr 20 21:33:50 2010 +0200

    gl: Don't acquire the gl context twice

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

commit e40a2d1f5eeea139e29c27e38495b9c0bf9e39a1
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 22 22:03:29 2010 +0200

    gl: Use correct type when uploading images

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

commit 55cf323f963bbcc11bcc290eaf71656e1ba91efd
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 22 21:58:01 2010 +0200

    gl: fix typo in comment

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

commit 887d43578c3acc7d45c8b2e3ade5da29be804eeb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 23 20:14:03 2010 +0100

    xlib: Simply release the ref, not destroy, from CloseDisplay.
    
    Do not call the destroy function directly, but rely on the reference
    counting to call the notifier upon the last reference. Instead, simply
    release the reference we were holding for the cache and CloseDisplay
    callback.

 src/cairo-xlib-display.c |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

commit c63e3490a5fc2836837e7adcb5ecad62bdfd18ab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 22 20:33:06 2010 +0100

    cairo: Handle the all-clipped state in cairo_push_group()
    
    Yet another bug reported by Jeff Muizelaar, thanks!
    
    Fixes: test/clip-empty-group

 src/cairo.c |   81 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 46 insertions(+), 35 deletions(-)

commit 567e485f28716d7b72cbf864a0c573148be91cd8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 23 14:37:43 2010 +0100

    test: Add clip-empty-group
    
    Exercise a bug reported by Jeff Muizelaar whereby cairo_push_group() was
    broken by everything being clipped out.

 test/Makefile.am              |    1 +
 test/Makefile.sources         |    1 +
 test/clip-empty-group.c       |   65 +++++++++++++++++++++++++++++++++++++++++
 test/clip-empty-group.ref.png |  Bin 0 -> 103 bytes
 4 files changed, 67 insertions(+), 0 deletions(-)

commit 4438cc6a49e7e902dce045706f7125a2c3e2174b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 3 18:10:57 2010 +0100

    cairo: Use explicit device flushing.
    
    Now with the concept of a cairo_device_t and the ability to flush it,
    we now longer require the heuristic of automatically flushing on behalf
    of the user at the end of every context.

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

commit 0fc140abc3c848e72b1b2b959026355fdbd6a941
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 21 12:01:49 2010 +0100

    pdf: Suppress compiler warning.

 src/cairo-pdf-operators.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 1923a33a7277009b2898840d671fdc8f8d1b3922
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 21 11:59:33 2010 +0100

    cairoint.h: Change ASSERT_NOT_REACHED to remove compiler warning

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

commit d366da7d8c46b08673b9e36dd130608a311ded4b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 23 14:38:42 2010 +0100

    Win32 features update

 boilerplate/Makefile.win32.features |    8 --------
 src/Makefile.win32.features         |    8 --------
 2 files changed, 0 insertions(+), 16 deletions(-)

commit c1e51a0264d204716f7706fbc66c2a7786b7947c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 23 14:33:53 2010 +0100

    build: Spelling correction

 build/Makefile.win32.features-h |    1 -
 build/configure.ac.features     |    2 +-
 2 files changed, 1 insertions(+), 2 deletions(-)

commit e0306da1d73509e2cfd0fce81a1b4259e5e3fcef
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 21 22:51:53 2010 +0100

    configure: typo in check for xcb-shm

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

commit b7fbda276df52de6a5ac67397a8d49657233fcfa
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Apr 18 23:16:07 2010 +0200

    Revert "script: Another RGB16_565 warning."
    
    This reverts commit a9f506493371ac91494488e5ca38e57ceb5a10cb.
    
    The change was already applied in bdf8f50adae67498d5fe36727ed2cd34c0206509.

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

commit f74ad37e66bbdcc4d727ed6d931dde870d84c2f4
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Apr 18 23:20:02 2010 +0200

    xlib: Make display a cairo_device_t
    
    The code now uses the locking of the cairo_device_t instead of its own
    mutexes.
    
    The code was modified so that cairo_surface_t does no longer reference
    the display directly. Instead, it calls _cairo_xlib_display_acquire().
    If a function assumes an already acquired display, it now requires the
    caller to provide a cairo_xlib_display_t parameter. Functions that do
    not require an acquired display will not require the display parameter
    or they will take the cairo_device_t instead.

 src/cairo-xlib-display.c         |  234 +++++++----------
 src/cairo-xlib-private.h         |   66 +++--
 src/cairo-xlib-screen.c          |  161 ++---------
 src/cairo-xlib-surface-private.h |    2 -
 src/cairo-xlib-surface.c         |  557 ++++++++++++++++++++++---------------
 5 files changed, 494 insertions(+), 526 deletions(-)

commit 2bffa2467ed67517419e425fc34fb5b8294a9e96
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jan 27 10:56:22 2010 +0100

    Use pixman_image_composite32()
    
    Replace all occurences of pixman_image_composite()

 src/cairo-directfb-surface.c   |   16 +-
 src/cairo-image-surface.c      |  352 ++++++++++++++++++++--------------------
 src/cairo-pattern.c            |   16 +-
 src/cairo-surface-snapshot.c   |   12 +-
 src/cairo-surface-subsurface.c |   24 ++--
 src/cairo-xlib-surface.c       |   16 +-
 src/drm/cairo-drm-intel.c      |   12 +-
 7 files changed, 224 insertions(+), 224 deletions(-)

commit 567923d66a375259a6a8083aa4ef1051097a60c5
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jan 27 09:39:20 2010 +0100

    image: Make unbounded fixup code not use pixman_fill()
    
    The new pixman_image_fill_boxes() does proper fallbacks for weird pixman
    formats.

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

commit b648365cfa2d808b34b924a6b105718e0673bb9b
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jan 27 09:21:41 2010 +0100

    Require pixman 0.17.5
    
    We want pixman_image_composite32() and pixman_image_fill_boxes()

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

commit 0a19ad7c104cd81fa2b93aaf7ef9302f50b3f369
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 15 17:58:16 2010 +0200

    gl: Get rid of "return value not checked" warnings
    
    Assert that those functions only return successfully.

 src/cairo-gl-surface.c |   42 ++++++++++++++++++++++++------------------
 1 files changed, 24 insertions(+), 18 deletions(-)

commit 7745ea21e104d0a5eec1814f19bacb7334f42185
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 14 15:59:36 2010 +0200

    gl: acquire/release properly in _cairo_gl_draw_image()
    
    Fixes various testsuite failures, in particular ones related to masks.

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

commit 596d3017a1b11cb9844e69330cdece7441929725
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Apr 13 20:53:47 2010 +0200

    gl: acquire/release context when getting images
    
    Avoids Mesa complaining about no current context.

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

commit 46ef05c3d73af2b222602954b986832e77355a12
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Mar 29 12:58:18 2010 +0200

    glx: Add getters for device's Display and GLXContext

 src/cairo-gl.h          |    6 ++++++
 src/cairo-glx-context.c |   30 ++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+), 0 deletions(-)

commit 712919223d08f8b4c43f828322fdc285560c137f
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Mar 26 15:50:10 2010 +0100

    gl: Make code safe for multithreaded access
    
    The code callss the gl device's acquire/release in
    cairo_device_acquire/release(). This way, external APIs can use these
    functions to prepare for rendering GL.
    
    Also adds code to unset the glx context if it wasn't set when acquiring
    the device. This allows multithreaded apps to work fine with just using
    cairo APIs, but might introduce penalties in single-threaded
    applications.

 src/cairo-egl-context.c |    2 ++
 src/cairo-gl-private.h  |    5 ++++-
 src/cairo-gl-surface.c  |   20 +++++++++++++++++++-
 src/cairo-glx-context.c |   37 +++++++++++++++++++++++++++++++++++--
 4 files changed, 60 insertions(+), 4 deletions(-)

commit 8f2e82cea3405fa9a6591911c0d42ea3dd0c6180
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Apr 15 17:48:24 2010 +0200

    xcb: Make code not complain about every new format

 src/cairo-xcb-surface-render.c |   46 +++++++++++++++------------------------
 1 files changed, 18 insertions(+), 28 deletions(-)

commit 1d753b2f4d724c5ac3e452848ca4dda5891816a6
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Feb 23 21:53:31 2010 +0100

    xlib: Make code not complain about every new format

 src/cairo-xlib-surface.c |   46 ++++++++++++++++++----------------------------
 1 files changed, 18 insertions(+), 28 deletions(-)

commit ebc9cc46fe7740c6d97e02edc66bae383413764b
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Mar 5 15:08:34 2010 +0100

    gl: Use right format
    
    The internal format should always be GL_RGBA.

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

commit 4142f0836d6719dd136a5fc6ac1adaddd681a3f2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 15 09:09:31 2010 +0100

    gl: Handle component-alpha ADD
    
    A simple extension to the component-alpha OVER [as ca-ADD is just the
    second pass in ca-OVER] to support amalgamation of glyph masks. This
    speeds up firefox-36 by ~5% on g45.
    
    Before:
      firefox-36-20090611   76.185
    After:
      firefox-36-20090611   72.863

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

commit a4bae1956bee0be98a5a22bd82d417192776e7f0
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 14 22:46:34 2010 +0200

    gl: Really don't write error status to the inert object.

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

commit 5fed41ee2bb3097c1446c1cf2038c912d5932692
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 14 22:43:29 2010 +0200

    test: Add test checking that all setters properly check surface->status
    
    In particular, make sure that the setters when called on a const nil
    surface don't try to set surface->status.

 test/Makefile.sources |    1 +
 test/error-setters.c  |  109 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 110 insertions(+), 0 deletions(-)

commit 6826f020014fff566678a1ff92014211e2a21d4c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 19:33:34 2010 +0100

    gl: Don't write error status to the inert object.
    
    Reported-by: Benjamin Otte <otte@redhat.com>

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

commit 3814855a649ffca695ce31d97c291496e32d2e26
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 20:22:14 2010 +0100

    script: Flush prior to modifying the image data.

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

commit 03f7bfc351c27ab9d0b764a21bdcf2304e8c2e81
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 20:14:39 2010 +0100

    rtree: Remove the false assert upon collapse.

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

commit b0383d0cd2b40185b1676d9c88d3647cecc1d7fd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 19:33:34 2010 +0100

    svg: Don't write error status to the inert object.
    
    Reported-by: Benjamin Otte <otte@redhat.com>

 src/cairo-svg-surface.c |   37 +++++++++++++++++++++----------------
 1 files changed, 21 insertions(+), 16 deletions(-)

commit 5274b63adb9ad808f94e6ea04707991ec1192694
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 19:33:34 2010 +0100

    ps: Don't write error status to the inert object.
    
    Reported-by: Benjamin Otte <otte@redhat.com>

 src/cairo-pdf-surface.c |    2 -
 src/cairo-ps-surface.c  |   74 +++++++++++++++++-----------------------------
 2 files changed, 27 insertions(+), 49 deletions(-)

commit 45d23b8a791d5845025a1a4d93f99030ec9e0115
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 19:33:34 2010 +0100

    pdf: Don't write error status to the inert object.
    
    Reported-by: Benjamin Otte <otte@redhat.com>

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

commit 4351304b5110200b77e6851995cf533a929ba17e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 19:29:07 2010 +0100

    Win32 features update.

 boilerplate/Makefile.win32.features |    8 ++++++++
 build/Makefile.win32.features-h     |    1 +
 2 files changed, 9 insertions(+), 0 deletions(-)

commit bd17b898b1c249aa0dc443bc303bad4fea8690bc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 19:11:15 2010 +0100

    surface: Propagate the error status to _cairo_surface_get_device()
    
    If the surface is in error, the appropriate action is report the error
    using an inert error cairo_device_t.
    
    Reported-by: Benjamin Otte <otte@redhat.com>

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

commit 005596907fc9b62fa4bf72ec35e0d1a1a242ef93
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 14 19:05:09 2010 +0100

    xlib: Don't operate on an error object inside setters.
    
    Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=599574
    
    The backend API manipulated the surface prior to checking whether it was
    an inert error surface - and in the event of an error surface, tried to
    overwrite it's error status.

 src/Makefile.win32.features  |    8 ++++++++
 src/cairo-xcb-surface.c      |    3 +++
 src/cairo-xlib-surface.c     |    6 ++++++
 src/cairo-xlib-xcb-surface.c |    6 ++++++
 4 files changed, 23 insertions(+), 0 deletions(-)

commit 8afd4e4c3db53159d1e5b6f13d3355cb5fb1750b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 13 17:52:19 2010 +0100

    hull: _cairo_hull_vertex_compare() return 0 for identical elements
    
    Andreas Falkenhahn reported a bizarre situation with some
    implementations of qsort that actually compare the same elements and
    require the comparator to return 0. So be it.
    
    Reported-by: Andreas Falkenhahn <andreas@airsoftsoftwair.de>

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

commit d95037db9915033ef1eee24c2fc05e8a95af5457
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Apr 11 21:04:29 2010 +0100

    cache: Tidy _cairo_cache_shrink_to_accommodate()
    
    There is no need to shrink the cache if we add an entry of size 0, so
    don't by moving the guards in _cairo_cache_shrink_to_accommodate() to the
    callers.

 src/cairo-cache.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

commit e6309c6307179388c5de938bffdb44b83b694f28
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Apr 11 21:03:00 2010 +0100

    xcb: Use normal finish to decouple from surface cache.
    
    Hook into the standard finishing process for a more robust cache removal
    mechanism. firefox was able to trigger some double free asserts
    otherwise.

 src/cairo-xcb-screen.c         |    4 ++-
 src/cairo-xcb-surface-render.c |   57 +++++++++++++++++++---------------------
 2 files changed, 30 insertions(+), 31 deletions(-)

commit e425c44e9c4c1796ccc3557a0368cf3b3a685a31
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Apr 9 08:32:22 2010 +0200

    boilerplate: Compile xlib without xrender
    
    cairo_boilerplate_xlib_surface_disable_render() is not defined when
    compiling without XRender, but it was used nonetheless. Replace it
    with an empty stub when XRender is not available.

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

commit 061ea78ad2838450b20d5550a7285823e0d24e1b
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Apr 9 08:28:33 2010 +0200

    perf: Correct cairo-perf-diff syntax
    
    { cmd-list; } seems to literally be the required syntax. Blanks and
    ';' are both mandatory.

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

commit 6986970ea5197685274b1fd809d72fbd771c0bab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 10 17:05:38 2010 +0100

    clip: Compile fix for previous clip.
    
    PEBKAC.

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

commit 0899852c974099da9f8c5e493fa89b8d022646c5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 10 16:00:45 2010 +0100

    clip: Compare the whole clip when testing for equality.
    
    Should fix test/clip-contexts

 src/cairo-clip-private.h    |    4 ++++
 src/cairo-clip.c            |   40 +++++++++++++++++++++++++++++++++++++---
 src/cairo-surface-clipper.c |    5 +----
 3 files changed, 42 insertions(+), 7 deletions(-)

commit 557016a86a5a4487aeb6ab6392795eb709ee8bb5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Apr 10 15:59:13 2010 +0100

    test: Add clip-contexts
    
    This should exercise a bug found by Jeff Muizelaar that
    cairo-surface-clipper was mistakenly thinking that clip operations on a
    second context was a no-op as the topmost clip path matched that of the
    previous context.

 test/Makefile.am           |    1 +
 test/Makefile.sources      |    1 +
 test/clip-contexts.c       |   73 ++++++++++++++++++++++++++++++++++++++++++++
 test/clip-contexts.ref.png |  Bin 0 -> 98 bytes
 4 files changed, 75 insertions(+), 0 deletions(-)

commit a9f506493371ac91494488e5ca38e57ceb5a10cb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 7 22:44:02 2010 +0100

    script: Another RGB16_565 warning.

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

commit 42b5cac7668625c9761113ff72b47af5cfd10377
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Apr 7 19:10:15 2010 +0930

    PDF-operators: ensure text operations flushed before emitting clip

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

commit c004800fae362ae907ef9d1f822d02c598572161
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 7 22:46:38 2010 +0100

    script: Compile without FT_FONT

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

commit bdf8f50adae67498d5fe36727ed2cd34c0206509
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 7 22:44:02 2010 +0100

    script: Another RGB16_565 warning.

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

commit f5f64317874a3faa4f47688848a499b1e8836cf6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Apr 7 21:57:22 2010 +0100

    perf: Switch between micro and trace benchmarks for cairo-perf-diff

 perf/cairo-perf-diff |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

commit 70ca0040fda77b6865c20c94c1b7deaa6e63c481
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Apr 7 22:54:57 2010 +0200

    Actually check for memory allocation failure
    
    Clang static analyzer signals "Dereference of null pointer" in case
    the malloc returns NULL, as the code is checking the wrong pointer.

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

commit d7f71ac5c209376bacb45199a0eaa3b1937172e9
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Apr 7 21:57:38 2010 +0200

    region: Make the 2nd argument to intersect and union const

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

commit ded3a9639b33b1e637e99250a463bc227c9e60f4
Author: Kristian Rietveld <kris@gtk.org>
Date:   Tue Dec 29 08:47:09 2009 +0100

    quartz: Define cairo_quartz_float_t and use instead of float
    
    On Mac OS 10.6 and newer cairo_quartz_float_t is defined to be a
    CGFloat, resolving issues with the 64-bit builds.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=25814

 src/cairo-quartz-private.h |    6 ++++++
 src/cairo-quartz-surface.c |   40 +++++++++++++++++++++-------------------
 2 files changed, 27 insertions(+), 19 deletions(-)

commit 7c2c3f621f9b009b97c5f269bf313be926cc51c7
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Apr 3 22:54:57 2010 +0200

    Correct masking optimization
    
    In _cairo_surface_mask() there was an invaild optimization (it failed
    for surfaces without alpha content). Using _cairo_pattern_is_clear()
    is the correct way to evaluate if a pattern is clear.
    
    Fixes clear-source

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

commit 24fc36c10f5c1c34e3059a8334178743052d7ad2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 2 08:44:45 2010 +0100

    script: Fix endian encoding of '<|' length.
    
    Andrea found and fixed (and updated all the traces!) an endian bug where
    we were encoding a 32bit length inside the compressed string stream.
    However, this one inside the script backed escaped his notice.

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

commit 697094488c652ad351301696bba9a384cc70002c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 2 08:40:28 2010 +0100

    test: Add inverse text
    
    This is exercising a bug that I have introduced either in the xcb
    backend or in the driver in my experimental branches. So simple, yet so
    wrong.

 test/Makefile.am                  |    1 +
 test/Makefile.sources             |    1 +
 test/inverse-text.c               |   67 +++++++++++++++++++++++++++++++++++++
 test/inverse-text.image16.ref.png |  Bin 0 -> 1863 bytes
 test/inverse-text.ps.ref.png      |  Bin 0 -> 776 bytes
 test/inverse-text.ref.png         |  Bin 0 -> 2150 bytes
 6 files changed, 69 insertions(+), 0 deletions(-)

commit fe610d559c70ab67f782b122437908ac80788611
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 31 09:33:30 2010 +0100

    perf/micro: Show megapixel fill rate during paint.

 perf/micro/paint-with-alpha.c |    9 ++++++++-
 perf/micro/paint.c            |    8 +++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)

commit 8f7078eba71dcd2aa70bf97c03ed7b4341260143
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 1 20:42:44 2010 +0100

    boilerplate: Allox xlib-fallback to build without RENDER
    
    This surface doesn't use RENDER and should produce the same results
    when cairo-xlib is compiled without any support for RENDER.

 boilerplate/cairo-boilerplate-xlib.c |   72 ++--------------------------------
 1 files changed, 4 insertions(+), 68 deletions(-)

commit d209b40c64bddeb0d830678bc2f84e1016fed879
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 1 20:36:15 2010 +0100

    xlib: Rearrange xrender stubs to restore compilation without xrender.h

 boilerplate/Makefile.win32.features |    8 --------
 build/Makefile.win32.features-h     |    1 -
 src/Makefile.win32.features         |    8 --------
 src/cairo-xlib-xrender-private.h    |   14 +++++++-------
 4 files changed, 7 insertions(+), 24 deletions(-)

commit db4dbb38340e93da616319f00e0f4327d1c1d815
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Apr 1 01:53:22 2010 -0400

    Improve doc syntax check to allow inline macro docs

 src/check-doc-syntax.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 00101fa71614fb48de436d6618e26353cf44ef95
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 31 16:19:02 2010 +0100

    configure: check -lrt for shm_open()
    
    OS/X includes shm_open() in libc, and fails to link if -lrt is
    specified. So perform the appropriate configure time magic.

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

commit a81d347c2484e60ceec1d9dc81e1b88724496eaf
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Feb 5 22:34:51 2010 +0100

    perf: Fix timestamp computation on MacOS X
    
    The OIL routines don't work as expected on MacOS X. The operating
    system gives access to the timestamp counter through the function
    mach_absolute_time.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

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

commit 55ce0b774869e9fa614c6f9fec7905f7205cb5ff
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Feb 5 22:30:05 2010 +0100

    script: Fix script scanner endianness
    
    The script interpreter was reading the length of compressed data as
    an host-endian uint32_t, thus making cairo-script able to correctly
    read traces that were produced on the same endianness as the one they
    ran upon, but unsuitable for portabile cairo-scripts.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 util/cairo-script/cairo-script-scanner.c |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

commit 4f617eaf77540ba2140086bd5a19fe6d62503d62
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Feb 5 22:27:28 2010 +0100

    trace: Fix trace endianness
    
    Trace files were using host-endian to represent the length of
    compressed data, making the trace format not portable.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

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

commit 35f19bc084792bbad42b86a399103ebfbf407d05
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Mar 31 12:18:01 2010 +0200

    pattern: Fix _gradient_is_opaque() for zero stops
    
    _gradient_is_opaque() previously returned TRUE for gradient with
    no stops, triggering a false optimization in _cairo_gstate_mask().
    
    Fixes test/gradient-zero-stops-mask
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

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

commit 01e182194224e0eb7493b2ae3c8367ed455cfd54
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Mar 31 12:14:25 2010 +0200

    test: Add gradient-zero-stops-mask
    
    Add a test to check that gradient with no stops are not considered
    opaque by gstate (and thus masking with them is not optimized to
    paint).

 test/Makefile.am                             |    2 +
 test/Makefile.sources                        |    1 +
 test/gradient-zero-stops-mask.argb32.ref.png |  Bin 0 -> 86 bytes
 test/gradient-zero-stops-mask.c              |   59 ++++++++++++++++++++++++++
 test/gradient-zero-stops-mask.rgb24.ref.png  |  Bin 0 -> 86 bytes
 5 files changed, 62 insertions(+), 0 deletions(-)

commit ce3ad6f41edf86ed6914f4d7f364111eba42ca65
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 31 08:21:17 2010 +0100

    xlib: Avoid multiple evaluations inside bswap_*() macro.
    
    Fixes:
      Fonts are not readable if remote display to a machine with different
      endian.
      https://bugzilla.mozilla.org/show_bug.cgi?id=526977
    
    Reported-and-tested-by: Ginn Chen <Ginn.Chen@Sun.COM>

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

commit be4ffa9df275513de3175415ee889b7323499a37
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 28 19:40:54 2010 +0100

    doc: Fix some missing '%' in gtk-doc comments

 src/cairo-surface.c     |    4 ++--
 src/cairo-svg-surface.c |   10 +++++-----
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 7ab350378e8597e9872dbe390b8454d0a63bff28
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 28 19:38:24 2010 +0100

    Silence enumeration warnings following addition of RGB16_565

 src/cairo-debug.c                          |    3 ++
 src/cairo-gl-glyphs.c                      |    2 +
 src/cairo-png.c                            |    1 +
 src/cairo-qt-surface.cpp                   |    2 +
 src/cairo-scaled-font.c                    |    1 +
 src/cairo-script-surface.c                 |   15 ++++++++++++
 src/cairo-xcb-surface-render.c             |    5 ++++
 src/cairo-xlib-surface.c                   |    5 ++++
 src/cairo-xml-surface.c                    |    1 +
 src/drm/cairo-drm-i915-surface.c           |    3 ++
 src/drm/cairo-drm-i965-shader.c            |    4 +++
 src/drm/cairo-drm-i965-surface.c           |    1 +
 src/drm/cairo-drm-intel-surface.c          |    1 +
 src/drm/cairo-drm-intel.c                  |   12 ++++++++-
 src/drm/cairo-drm-radeon-surface.c         |    1 +
 util/cairo-script/cairo-script-operators.c |   35 ++++++++++++++++++++++++++++
 util/cairo-sphinx/sphinx.c                 |    1 +
 util/cairo-trace/trace.c                   |   25 +++++++++++++++++--
 18 files changed, 113 insertions(+), 5 deletions(-)

commit d901692a5550c51fd3eefd307609fb800ef02a95
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 30 15:31:32 2010 +0100

    scaled-glyph: Allow removal info fields.
    
    Pushed a fraction of a second too soon... Update the
    scaled_glyph->has_info if the backend clears any field as well.

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

commit 5c4b6d520bc7ce7d5193a89bbda44b91f5eb0d4d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 30 15:26:42 2010 +0100

    xcb: Cache whether we have already check a glyph for size.
    
    Avoid repeated cairo_scaled_glyph_lookup() and checking of sizes if we
    have already seen this glyph in this run.

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

commit 1c76e3e9ad1437662bf91ed1d21c4bda8fd50fb4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 30 15:24:08 2010 +0100

    scaled-font: Optimize cairo_scaled_font_lookup()
    
    By tracking which fields of information are already available on the
    scaled_glyph we can more efficiently determine if we already have the
    requested fields. This reduces from about 6 conditionals to one, and
    reduces the function overhead by ~20% -- which has a measurable
    improvement on glyph benchmarks.

 src/cairo-scaled-font.c   |   73 ++++++++++++--------------------------------
 src/cairo-types-private.h |    1 +
 2 files changed, 21 insertions(+), 53 deletions(-)

commit d2ec151e490b227e7f3d6879bf7a893577dfefa5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 30 15:23:18 2010 +0100

    perf/micro: Exercise different sizes and antialising modes with glyphs

 perf/micro/glyphs.c |   85 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 77 insertions(+), 8 deletions(-)

commit 72481acf0d1e8648c5d03ce51f84c639132475a9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 30 04:10:28 2010 +0100

    perf: Compute ops per second
    
    Provide a hook for the test to be able to compute the number of ops per
    second. For instance, the glyphs test uses it to report the number of
    kiloglyph per second Cairo is able to render.

 perf/cairo-perf-micro.c            |   47 +++++++++++++++++++++++-------------
 perf/cairo-perf.h                  |    9 +++++-
 perf/micro/box-outline.c           |    4 +-
 perf/micro/cairo-perf-cover.c      |    5 ++-
 perf/micro/composite-checker.c     |    2 +-
 perf/micro/dragon.c                |   10 ++++----
 perf/micro/fill.c                  |    6 ++--
 perf/micro/glyphs.c                |   35 +++++++++++++++++++++++++-
 perf/micro/intersections.c         |    8 +++---
 perf/micro/long-dashed-lines.c     |    2 +-
 perf/micro/long-lines.c            |    8 +++---
 perf/micro/mask.c                  |   18 +++++++-------
 perf/micro/mosaic.c                |    8 +++---
 perf/micro/paint-with-alpha.c      |    2 +-
 perf/micro/paint.c                 |    2 +-
 perf/micro/pattern_create_radial.c |    2 +-
 perf/micro/pythagoras-tree.c       |    2 +-
 perf/micro/rectangles.c            |    6 ++--
 perf/micro/rounded-rectangles.c    |    6 ++--
 perf/micro/spiral.c                |   28 ++++++++++----------
 perf/micro/stroke.c                |    4 +-
 perf/micro/subimage_copy.c         |    2 +-
 perf/micro/tessellate.c            |    6 ++--
 perf/micro/text.c                  |    2 +-
 perf/micro/twin.c                  |    2 +-
 perf/micro/unaligned-clip.c        |    2 +-
 perf/micro/world-map.c             |    2 +-
 perf/micro/zrusin.c                |    4 +-
 28 files changed, 142 insertions(+), 92 deletions(-)

commit 2a98d0586c19fbb2b555f471895d73f253c4943b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 15 18:23:23 2010 +0000

    drm/i915: Avoid using another unpreserved temporary
    
    As we may load from a sampler, we can not use on of the unpreserved
    temporaries to store the intermediate colour result.

 src/drm/cairo-drm-i915-shader.c |   26 +++++++++++++++-----------
 1 files changed, 15 insertions(+), 11 deletions(-)

commit 26f963557bf065fd25b9c4f6652a252735a0fb74
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 15 18:22:06 2010 +0000

    drm/i915: Normalize spans opacity value
    
    On the generic path I forgot to rescale the alpha value into [0,1].

 src/drm/cairo-drm-i915-spans.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit 97f8c20727eaeb2dfddb0d4796192cc042eb14fa
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Mar 27 21:52:16 2010 +0000

    boilerplate: Create an image16 target
    
    In order to exercise the newly restored r5g6g5 support, we need to
    create an appropriate surface and feed it through the test and
    performance suites.

 boilerplate/cairo-boilerplate-directfb.c       |    6 ++-
 boilerplate/cairo-boilerplate-drm.c            |    6 ++-
 boilerplate/cairo-boilerplate-gl.c             |   12 +++--
 boilerplate/cairo-boilerplate-pdf.c            |    4 +-
 boilerplate/cairo-boilerplate-ps.c             |    8 ++--
 boilerplate/cairo-boilerplate-quartz.c         |    3 +
 boilerplate/cairo-boilerplate-script.c         |    2 +-
 boilerplate/cairo-boilerplate-skia.c           |    6 ++-
 boilerplate/cairo-boilerplate-svg.c            |    8 ++--
 boilerplate/cairo-boilerplate-test-surfaces.c  |   21 ++++---
 boilerplate/cairo-boilerplate-vg.c             |   12 +++--
 boilerplate/cairo-boilerplate-win32-printing.c |    4 +-
 boilerplate/cairo-boilerplate-win32.c          |    6 ++-
 boilerplate/cairo-boilerplate-xcb.c            |   21 +++++---
 boilerplate/cairo-boilerplate-xlib.c           |   12 +++--
 boilerplate/cairo-boilerplate.c                |   39 ++++++++++++--
 boilerplate/cairo-boilerplate.h                |    1 +
 perf/cairo-perf-micro.c                        |   59 +--------------------
 perf/cairo-perf-trace.c                        |   67 +-----------------------
 19 files changed, 120 insertions(+), 177 deletions(-)

commit 022291be1cbddf4f6722f0bf76ebda6922780276
Author: Oleg Romashin <romaxa@gmail.com>
Date:   Wed Mar 24 13:12:25 2010 -0400

    Add back support for CAIRO_FORMAT_RGB16_565
    
    Due to slow memory speed, 16bpp color depth is still very popular on mobile
    devices. Maemo5 is also using 16bpp color depth.

 src/cairo-deprecated.h    |   14 --------------
 src/cairo-image-surface.c |   16 +++++++++++++++-
 src/cairo-xlib-display.c  |   28 +++++++++++++++++++++++++---
 src/cairo.h               |    7 ++-----
 src/cairoint.h            |    2 +-
 5 files changed, 43 insertions(+), 24 deletions(-)

commit 36e12b1952f9bdc52491c5a9bdf8ce155865c362
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 24 12:14:20 2010 +0000

    subsurface: Ignore return from _cairo_clip_init_copy()
    
    The return is just a hint that the clip is empty, however we are about
    to immediately apply the surface clip and so do not care for an
    'optimised' path.

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

commit e356e5d18b923d9b0ff83e9460582710f9e515d9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 24 11:38:19 2010 +0000

    recording: Fix leak of clip from snapshots of recording surfaces.

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

commit 5b4885f693c0d800da7160770b341166e3bdea61
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 24 11:25:29 2010 +0000

    clip: propagate the no-clip through the copy.

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

commit b3e0393161904c2fea62b0198dea551a77201c19
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 24 11:21:36 2010 +0000

    clip: Don't reduce all-clip to no-clip.

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

commit b12114f296e4e8db3207ab593a431fd0ca2ee67c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 24 11:08:38 2010 +0000

    snapshot: Finish the clone.
    
    Kill ref cycles from snapshots patterns by explicitly calling finish on
    the cloned surface.

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

commit db913d731e50505892697bdc919f9fe146eea6ab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 24 10:16:58 2010 +0000

    xcb: Ensure that we own the glyph cache before use.
    
    Sigh. One day, I will enable multiple glyph caches to be attached to a
    scaled font, but for today, simply avoid the crash.

 src/cairo-xcb-surface-render.c |   38 +++++++++++++++++++++++++++++---------
 1 files changed, 29 insertions(+), 9 deletions(-)

commit 6da3cea3564bd8c5de37bf2244a2dd656202e4ec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 20:53:11 2010 +0000

    scaled-font: Destroy the old surface when replacing scaled_glyph->recording

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

commit 548092fe8c9af1423a10e9566cbc4315d2f28efc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 20:08:04 2010 +0000

    script: Free the surface/font bitmaps.

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

commit 83d1bd9f37da93fbdc586788b6891d0eccdb7cee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 20:04:10 2010 +0000

    script: Manually unlink font entries upon destruction
    
    As the device is already finished, we can not lock it without raising an
    error, so we have to open code the destruction of the font entries.
    Fortunately we can make several simplifying assumptions about the
    required cleanup as we know the device is also being destroyed.

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

commit cccf6753ab68b0795351da2626f9e4ecd60c2a2e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 19:45:35 2010 +0000

    script: More acquire device fixes.
    
    We also need to acquire the device upon finish, similar surface creation
    and the pagination functions, i.e. the other times outside of the
    drawing ops that must modify the shared context/device.

 src/cairo-script-surface.c |   71 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 55 insertions(+), 16 deletions(-)

commit 25a77b263d170265a9acf1697793cbbfa07dd852
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 16:49:21 2010 +0000

    boilerplate: Cleanup the list of backends upon shutdown.

 boilerplate/cairo-boilerplate.c |   13 +++++++++++++
 boilerplate/cairo-boilerplate.h |    3 +++
 perf/cairo-perf-micro.c         |    2 ++
 perf/cairo-perf-trace.c         |    2 ++
 test/cairo-test.c               |    2 ++
 5 files changed, 22 insertions(+), 0 deletions(-)

commit 1ddcd5cf31bb47e9ff18ddf94d0a4648fa70a617
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 16:43:39 2010 +0000

    clip: Remove the redundant _cairo_clip_init_rectangle()
    
    As _cairo_clip_init_rectangle() is equivalent and more importantly more
    clearly written as:
      _cairo_clip_init(&clip);
      if (status = _cairo_clip_rectangle(&clip, &rect)) {
         _cairo_clip_fini(&fini);
         return status;
      }
    perform the transformation and in the process catch a few mistakes along
    error paths.

 src/cairo-clip-private.h      |    4 ----
 src/cairo-clip.c              |   30 +++++++++++-------------------
 src/cairo-paginated-surface.c |   18 +++++++++---------
 src/cairo-recording-surface.c |   11 +++++------
 src/cairo-surface-wrapper.c   |   14 +++++---------
 5 files changed, 30 insertions(+), 47 deletions(-)

commit 61ad28fe7d334c63197ae3881d5edd074d63cfec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 10:44:16 2010 +0000

    device: Add language binding interfaces.
    
    Damien Carbonne reported that cairo_device_t lacked the language binding
    hooks normally associated with cairo objects. So add the missing
    get_reference_count, get_user_data and set_user_data.

 src/cairo-device-private.h |    1 +
 src/cairo-device.c         |   78 ++++++++++++++++++++++++++++++++++++++++++++
 src/cairo.h                |   14 ++++++++
 3 files changed, 93 insertions(+), 0 deletions(-)

commit 8a8c2f6c282c1822dc1a638c2258c8449b1d678b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 10:34:06 2010 +0000

    cairo: Typos in docs.
    
    A couple of typos reported by Damien Carbonne.

 src/cairo-recording-surface.c |   10 ++++------
 src/cairo.h                   |    4 ++--
 2 files changed, 6 insertions(+), 8 deletions(-)

commit 4c55c87478a2595569f9c1f13657c3d309f31407
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 10:05:35 2010 +0000

    image: Free traps after conversion from boxes.

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

commit 07f7bddc30157fed8f9dced00fef44a2307b4b01
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 10:05:35 2010 +0000

    xcb: Free traps after conversion from boxes.

 src/cairo-xcb-surface-render.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

commit 181403fb534d0216123043bcd3ee6cff60e1e6fd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 09:38:59 2010 +0000

    test/clear-source: Free source after use.

 test/clear-source.c |   38 ++++++++++++++++++++++----------------
 1 files changed, 22 insertions(+), 16 deletions(-)

commit 35432e37c264e1ace764b4a1393d9b8579eb52c0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 09:35:51 2010 +0000

    xcb: Destroy reference to clip surface after use.

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

commit 98e3dfbb899f0228fc9987a56af93b012989a27a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 09:35:31 2010 +0000

    xcb: Relinquish the xcb connection on finish.

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

commit 638cae3bdeaf0b10d1fd59a519f5d7a05c5b179c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 08:25:13 2010 +0000

    xcb: Fix leak of clip rectangle during show-glyphs.

 src/cairo-xcb-surface-render.c |   15 ++++++---------
 1 files changed, 6 insertions(+), 9 deletions(-)

commit 1d4ad787747b5c92c3b062afde5b98c72ac4cc95
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 08:20:49 2010 +0000

    test/pthread-same-source: Free source after use.

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

commit bfc027ac6d05f489d0d26110c225d2871be0971c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 23 08:16:57 2010 +0000

    test/clip-image: Free image after use.

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

commit e214f09d633093ce9b2ca0bffce10bc68a6e30b0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 22:20:58 2010 +0000

    xcb: Consume the implicit reference for the cached connection on finish

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

commit c235543bdfd8b1495cb7ae8f2a82b6267c4d9b84
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 22:15:44 2010 +0000

    xcb: Destroy reference to local source picture in show-glyphs.

 src/cairo-xcb-surface-render.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

commit c42cdd2c9d883ef359ac57b65eba4ed15441181d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 20:14:09 2010 +0000

    xcb: Gracefully destroy any lingering fallback during finish.
    
    A fallback should never persist beyond the flush into the finish, but
    yet one remains in test/clip-shapes-unaligned-rectangles. For the time
    been, simply clean up the rogue surface.

 src/cairo-xcb-surface.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

commit fd96aa3de2218dcc6671636f35a24738e3cae996
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 19:07:31 2010 +0000

    gl: Hook in glyph cache finalisation.

 src/cairo-gl-glyphs.c  |   23 ++++++++++++-----------
 src/cairo-gl-private.h |    7 ++++---
 src/cairo-gl-surface.c |    4 ++++
 3 files changed, 20 insertions(+), 14 deletions(-)

commit c7511fa7ad932675c8cebba504d3c538ead3c44c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 17:21:38 2010 +0000

    drm/intel: Revoke glyph caches on device finish

 src/drm/cairo-drm-i915-glyphs.c   |    2 +-
 src/drm/cairo-drm-i965-glyphs.c   |    2 +-
 src/drm/cairo-drm-intel-private.h |    1 +
 src/drm/cairo-drm-intel.c         |   18 ++++++++++++------
 4 files changed, 15 insertions(+), 8 deletions(-)

commit 9ba73bdfc451d205f411e3dbc8073ae10d58b4f3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 17:17:08 2010 +0000

    gl: Decouple cache from scaled-font on context destruction

 src/cairo-gl-glyphs.c           |    8 +++++++-
 src/cairo-gl-private.h          |    4 ++++
 src/cairo-gl-surface.c          |   14 +++++++++++++-
 src/cairo-scaled-font-private.h |    2 ++
 src/cairo-scaled-font.c         |    1 +
 5 files changed, 27 insertions(+), 2 deletions(-)

commit 7812d095ab7657400be470af8fdc7f20eaedd6c5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 16:46:58 2010 +0000

    drm/intel: Replace open-coding of _cairo_rtree_node_remove()

 src/drm/cairo-drm-intel.c |   17 +++--------------
 1 files changed, 3 insertions(+), 14 deletions(-)

commit 48d847162558dc09388942a96ff443c253068d68
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 13:05:23 2010 +0000

    recording: Cleanup the clip on error.
    
    Whilst recording the commands, remember to cleanup the local clip after
    detecting an error.

 src/cairo-recording-surface.c |    5 +++++
 src/cairo-surface-snapshot.c  |    2 ++
 2 files changed, 7 insertions(+), 0 deletions(-)

commit c87737c2bf983a8555b08c526050423a5eab5642
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 13:04:19 2010 +0000

    ps: Skip surface emission if in error state.
    
    During finish, if we encountered an error during the construction of the
    surface, simply proceed to cleanup rather than emit the incomplete and
    potentially subtly broken output.

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

commit e961cdf568f4551bbd6bca6b7505fc9f9b0805f9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 10:48:48 2010 +0000

    image: Special case wholly unbounded fixups.
    
    In the event of an empty bounded rectangle, the computation of the
    unbounded - bounded rectangles leads to negative areas, integer overflow
    and death.
    
    [And similarly for the derived surfaces.]

 src/cairo-image-surface.c        |   24 ++++++++++
 src/cairo-xcb-surface-render.c   |   62 ++++++++++++++-----------
 src/drm/cairo-drm-i915-surface.c |   62 ++++++++++++++-----------
 src/drm/cairo-drm-i965-surface.c |   95 ++++++++++++++++++++-----------------
 4 files changed, 145 insertions(+), 98 deletions(-)

commit 844d8ea57d69c9a68fbec64f4438953850f7657f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 10:37:18 2010 +0000

    surface: Check pattern for error status.
    
    Ensure that the error status from patterns is propagated when used by
    doing so in the surface layer. Similarly check that a surface pattern
    has not been finished.

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

commit 213093f43770d078dd146d5a10b9a5803097b8a8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 22 10:36:47 2010 +0000

    ps: Free page on error path.

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

commit c8a8e57d6af7261d70103ddd46f8da409896b5e7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 21 20:42:34 2010 +0000

    script: Use a stack to push/pop recursed line numbers.
    
    Still not entirely helpful in the event of recursive parsing without a
    reference to the file as well as the line number in the event of an
    exception.

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

commit 4b4de940ee6e76ec9677b5468ebf709c6d2db982
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 21 20:41:18 2010 +0000

    script: Remove the version check.
    
    When compiling we can depend on whatever version of cairo we need, but
    we should be wary of checking for runtime compatibility when building
    standalone.

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

commit a7cb314b060f6ada855ec75b283ef64bf835824a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 21 20:40:54 2010 +0000

    test/any2ppm: Check for errors after executing script.

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

commit b73a33b89e43d63a437035a05cf91df5c3b4d186
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 21 20:40:19 2010 +0000

    script: Make the test suite run again!

 src/cairo-script-surface.c |  194 +++++++++++++++++++++++---------------------
 1 files changed, 103 insertions(+), 91 deletions(-)

commit 2a59f0af6aab5fe0ebb19195d4c018fc5221016c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 21 20:38:27 2010 +0000

    wrapper: Apply device transform inverse as appropriate.
    
    Fixes many failures of the paginated surfaces as they replayed through
    the recording surfaces.

 src/cairo-surface-wrapper.c |   89 +++++++++++++++----------------------------
 1 files changed, 31 insertions(+), 58 deletions(-)

commit 5720fff827e5149b201a9366179db93ce258b120
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 21 20:37:38 2010 +0000

    ps: Destroy the local surface on error.
    
    Minor leak of the intermediate surface when converting to an opaque
    source following an error.

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

commit 35f318a59cde9c635036cc14c90878400528882d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 21 20:36:26 2010 +0000

    paginated: Use common is_clear.
    
    As equivalent processing to the page_is_blank optimisation done inside
    the paginated surface is applied by the gstate, remove the redundant
    code.

 src/cairo-paginated-surface-private.h |    1 -
 src/cairo-paginated-surface.c         |   34 +--------------------------------
 2 files changed, 1 insertions(+), 34 deletions(-)

commit b101c7dab8cdbf7b9321355a8d2311b2f863f011
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 11 01:48:43 2010 +0000

    gl: Add EGL interface
    
    Enable the EGL backend for GL.

 boilerplate/Makefile.win32.features |    8 ++
 boilerplate/cairo-boilerplate-gl.c  |   98 ++++++++++++++++++++
 build/Makefile.win32.features-h     |    1 +
 configure.ac                        |   52 ++++++-----
 src/Makefile.sources                |    1 +
 src/Makefile.win32.features         |    8 ++
 src/cairo-egl-context.c             |  168 +++++++++++++++++++++++++++++++++++
 src/cairo-gl.h                      |   14 +++
 8 files changed, 327 insertions(+), 23 deletions(-)

commit ca6e4e1f91e0a90666551d2fa74cfc04484d4e80
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 11 01:48:08 2010 +0000

    spans: Initialise rects->is_bounded for polygon compat.

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

commit 6754f1db1716a6570c82e207e21b09a10de120ba
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 10 15:13:00 2010 +0000

    gstate: Account for undropped non-transformed glyphs.
    
    In the simplest case of pass-through glyphs we made a mistake in
    propagating the number of glyphs.
    
    Reported-by: Christophe de Dinechin <christophe@taodyne.com>

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

commit 5fb36fe5ab2a2b30da213557936122a829493906
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 8 15:32:15 2010 +0000

    drm/i965: Acquire device around commit.

 src/drm/cairo-drm-i915-surface.c |    4 +-
 src/drm/cairo-drm-i965-shader.c  |   13 +++--
 src/drm/cairo-drm-i965-surface.c |  106 ++++++++++++++++++++++++++------------
 3 files changed, 82 insertions(+), 41 deletions(-)

commit 4083f40fbd085dc2039fe62592cf1239373c7fca
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 7 16:59:57 2010 +0000

    glew: don't pull in GL/glu.h

 src/glew/GL/glew.h |   10 ----------
 1 files changed, 0 insertions(+), 10 deletions(-)

commit 473e006ad6ef0959c8a7059aba0689a16a937732
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Mar 6 18:12:36 2010 +0000

    test: Add a1-mask-sample
    
    Test sampling positions with a NEAREST mask.

 test/Makefile.am            |    1 +
 test/Makefile.sources       |    1 +
 test/a1-mask-sample.c       |   83 +++++++++++++++++++++++++++++++++++++++++++
 test/a1-mask-sample.ref.png |  Bin 0 -> 148 bytes
 4 files changed, 85 insertions(+), 0 deletions(-)

commit f79b2ceea4722b5059563be1eb55de617fecc004
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 4 19:52:58 2010 +0000

    drm/i915: Discard redundant solitary clips during fill

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

commit 7cea9ae290ba24e4d2f87cef4228cce5fcb3181b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 4 17:23:55 2010 +0000

    drm/i915: Apply more micro-optimisations when targetting CONTENT_ALPHA

 src/drm/cairo-drm-i915-shader.c |   51 ++++++++++++++++++++++++++++----------
 1 files changed, 37 insertions(+), 14 deletions(-)

commit dce8b028cd5b249054e8197a536c29f6ba4110da
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 4 17:13:53 2010 +0000

    drm/i915: Adjust clip matrix for clip origin.

 src/drm/cairo-drm-i915-shader.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

commit 8e702044b3816002011488c56f1ec9c6b9682eee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 4 17:13:02 2010 +0000

    drm/i915: Handle clip/combine coords for spans.

 src/drm/cairo-drm-i915-spans.c |   71 ++++++++++++++++++++++++----------------
 1 files changed, 43 insertions(+), 28 deletions(-)

commit e1f0c2e73fa8cda9e38ab182288201fa27a3b363
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 4 17:11:58 2010 +0000

    perf: Check for and include unistd.h
    
    isatty() and access() require unistd.h, so include it!

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

commit 271752b944ef0898b5d1be57f26de83c8e40ae3a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 4 08:24:08 2010 +0000

    gl: Pad the gradient texture.
    
    Fixes test/linear-gradient-subset

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

commit afe6f4f0519606c4bc7e9b705b0cae75692d7af2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 23:06:43 2010 +0000

    drm/i915: Use a preserved temporary to store the radial texcoord.

 src/drm/cairo-drm-i915-shader.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 4b2e0478822cb8415be4bac21950dbf03c0f01c8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 21:45:31 2010 +0000

    drm/i915: Eliminate redundant radial vertex shader.
    
    It is always equivalent to a simple texture transformation, so reduce it
    to the texture shader.

 src/drm/cairo-drm-i915-glyphs.c  |   13 -----------
 src/drm/cairo-drm-i915-private.h |    1 -
 src/drm/cairo-drm-i915-shader.c  |    8 +------
 src/drm/cairo-drm-i915-spans.c   |   42 +------------------------------------
 4 files changed, 3 insertions(+), 61 deletions(-)

commit 51610517982a4cf70ca8d396d0ad4c58a477c5e9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 21:56:56 2010 +0000

    drm/i915: Fix encoding of negated operand channels
    
    Long ago when converting the pixel shader structs into macros and
    reducing the code size by ~100k (the inlines were too depth for constant
    propagation and CSE), I broke the encoding of negated channels. So
    instead use a single bit to indicate a negation rather than 2s
    complement (with sign extension into neighbouring channels, oops). The
    disadvantage is that expressing the negated channel is a little more
    ugly.

 src/drm/cairo-drm-i915-private.h |   22 ++++++++++++++--------
 src/drm/cairo-drm-i915-shader.c  |   16 ++++++++--------
 2 files changed, 22 insertions(+), 16 deletions(-)

commit 5b973c670807bda2bb355c90ea817e2a2f092f0b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 21:25:11 2010 +0000

    drm/i915: Fix crash with linear-step-function
    
    Avoid the potential divide by zero by falling back to pixman rendered
    gradient textures for such troublesome input.

 src/drm/cairo-drm-i915-shader.c |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

commit 404ead7eebafa7ca077e1d012dde0a598b64245a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 21:01:49 2010 +0000

    drm/i915: Ensure simple alpha is written to green on alpha-only surfaces.
    
    The intricacies of h/w make convoluted s/w.

 src/drm/cairo-drm-i915-shader.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

commit 1f2daf652480ef768f847467d9171b5e4a7f01a3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 20:06:08 2010 +0000

    drm/i915: Avoid double multiplication of linear alpha.

 src/drm/cairo-drm-i915-shader.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

commit cdaef58c19a191632473fcbbe688e6231c02b9b2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 18:52:40 2010 +0000

    drm/i915: Acquire device before shader commit.

 src/drm/cairo-drm-i915-shader.c  |    2 +
 src/drm/cairo-drm-i915-surface.c |  111 +++++++++++++++++++++++++------------
 2 files changed, 77 insertions(+), 36 deletions(-)

commit dd6f96dd4aeb48262d5af8a3006e6404521c151b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 16:06:25 2010 +0000

    drm/i965: Ignore flushing on device finish.

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

commit 3692597567f62dd300e8ce8c43d43ac449616041
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 13:56:48 2010 +0000

    drm/i965: Merge the constants into the surface stream.
    
    As we can use an offset from the surface base for the constant buffers,
    we need to fold the constants into the surface stream.

 src/drm/cairo-drm-i965-private.h |   11 ++----
 src/drm/cairo-drm-i965-shader.c  |   26 +++-----------
 src/drm/cairo-drm-i965-surface.c |   70 +++-----------------------------------
 3 files changed, 14 insertions(+), 93 deletions(-)

commit cc585947574f6e17d299a5987ee69162f63d5a52
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 23:06:23 2010 +0000

    drm/intel: Set the 1D gradient texture to be untiled.

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

commit 543cf073643b259096ee2a95d91b9067395a7e09
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 21:19:41 2010 +0000

    drm/intel: Set default extend mode for rendering gradient subsets.

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

commit 521d1c1d2c51bca07db1aed3c7f62d860cece3f4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 20:25:54 2010 +0000

    surface: Simplify is_clear logic.
    
    As we pre-check whether the operation is a no-op on an already cleared
    surface, then for all but a paint with CLEAR and no clip, the result is
    a non-clear surface.

 src/cairo-surface.c |   22 ++++++++--------------
 1 files changed, 8 insertions(+), 14 deletions(-)

commit 017db956644fa1da22033653490f362d1e3e47e0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 20:06:30 2010 +0000

    gstate: Use _cairo_pattern_clear for CLEAR.

 src/cairo-gstate.c |  100 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 62 insertions(+), 38 deletions(-)

commit 70412bba0e9fd0ac6e7343d7aebe953355207aab
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 17:34:39 2010 +0000

    test: Avoid derefencing a NULL xcb connection

 test/xcb-surface-source.c |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

commit 5bfea8447b1b2333218295f51a9474d061192d49
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 3 21:32:13 2010 +0000

    test: Add references for rounded-rectangle-{fill,stroke}

 test/Makefile.am                      |    2 ++
 test/rounded-rectangle-fill.ref.png   |  Bin 0 -> 787 bytes
 test/rounded-rectangle-stroke.ref.png |  Bin 0 -> 871 bytes
 3 files changed, 2 insertions(+), 0 deletions(-)

commit 4126d580d8b9db9217ed17aadcce20b14e77a00b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 2 14:38:36 2010 +0000

    surface-fallback: Free traps on composite_trapezoids() error

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

commit 8a59522bbdc61d5c90f1ae55111b5408865755b3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 2 14:36:16 2010 +0000

    surface-fallback: Propagate NOTHING_TO_DO
    
    NOTHING_TO_DO is converted to SUCCESS by the surface layer, so clean up
    the code slightly by reducing the number of checks and conversions.

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

commit f07195860620959c27d43080a7b987e28222735a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 2 13:57:02 2010 +0000

    xlib: Handle a1 image uploads through converter
    
    Fixes test/large-source [xlib]

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

commit f979dd22d8f48e6ac7c50372c7d180c3b590dc74
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 2 11:20:11 2010 +0000

    image: Don't rely on clip regions being clipped to surface extents.
    
    Fixes a crash in test/clip-fill-unbounded [xlib-fallback].

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

commit 15d9c5fcd8881b4593ec23633450a4f629b6d42b
Author: Alexander Shulgin <alex.shulgin@gmail.com>
Date:   Sat Feb 20 20:59:32 2010 +0200

    Added new MIME type CAIRO_MIME_TYPE_URI and it's support in SVG backend
    
    The rationale behind this change is that when someone is trying to
    draw on a SVG surface using image surface patterns, the resulting SVG
    file can take up to ridiculous 20 megabytes for 3-4 typical
    photographic images in a single SVG file.  This also can take
    significant amount of CPU time to complete.
    
    The reason for this behaviour is that currently whenever SVG backend
    needs to emit an image tag for a surface pattern it takes a snapshot
    of the subject surface, encodes it in PNG, then Base64-encodes and
    emits the (huge) resulting string.  With use of
    cairo_surface_set_mime_data API this can be somewhat improved by
    associating JPEG image contents with the corresponding surfaces.
    Still this doesn't allow for post-processing of involved photographic
    images without regenerating the SVG file.
    
    As SVG specification allows URIs in the image tag's xlink:href
    attribute, it is possible instead of embedding encoded image data to
    simply link image files residing physically on the same medium as the
    generated SVG file: files on disk under common directory, files on a
    web server at common base URI, etc.
    
    To make this happen we add new (unofficial) MIME type "text/x-uri" and
    let users associate URIs with surfaces through
    cairo_surface_set_mime_data() API.  When SVG backend needs to emit
    surface contents and it sees "text/x-uri" attached to the surface, it
    emits this data instead of taking snapshot.  The URI data is emitted
    as is, so correctness check is left solely to the client code.

 doc/public/cairo-sections.txt      |    1 +
 doc/public/tmpl/cairo-surface.sgml |    7 +++
 src/cairo-surface.c                |   16 +++++++-
 src/cairo-svg-surface.c            |   72 ++++++++++++++++++++++++++++++++++--
 src/cairo.h                        |    1 +
 5 files changed, 92 insertions(+), 5 deletions(-)

commit d91bab565c54205f8dd7aa8a9de819dc4bc3551c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 2 08:12:52 2010 +0000

    test: Remove the double-clip from clip-group-shapes
    
    A push/pop is an implicit save/restore, so a clip applied inside the
    group is temporary, whereas a clip applied outside affects both the
    geometry inside *and* the application of the group when painted. So
    reset the clip afterwards to get the desired behaviour.

 test/clip-group-shapes.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit e8c819c5227d29dfdf503022339276eb725a3e97
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Mar 1 10:25:01 2010 +0000

    Warnings cleanup for CAIRO_FORMAT_INVALID.
    
    A few more fixes required case statements to handle the addition of
    CAIRO_FORMAT_INVALID.

 src/cairo-qt-surface.cpp           |    2 ++
 src/drm/cairo-drm-i915-surface.c   |    2 ++
 src/drm/cairo-drm-i965-shader.c    |    2 ++
 src/drm/cairo-drm-i965-surface.c   |    1 +
 src/drm/cairo-drm-intel-surface.c  |    1 +
 src/drm/cairo-drm-intel.c          |    3 +++
 src/drm/cairo-drm-radeon-surface.c |    1 +
 7 files changed, 12 insertions(+), 0 deletions(-)

commit 1a7ba1a8061c373cd66d15b3a1c8dfada92745ef
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Mar 1 01:23:17 2010 +0200

    xcb: Update minimum required versions of libxcb.
    
    The new xcb surface uses xcb_writev() and xcb_take_socket()
    which were introduced in libxcb 1.1.92.  The boilerplate
    in turn uses the major_code and minor_code fields in
    xcb_generic_error_t, which were introduced in 1.4.

 boilerplate/cairo-boilerplate-xcb.c |    6 ++++++
 configure.ac                        |    5 ++++-
 2 files changed, 10 insertions(+), 1 deletions(-)

commit 5b7f4bb241f3191c1589cd714f373719efded56e
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Feb 28 23:31:06 2010 +0200

    api: Introduce CAIRO_FORMAT_INVALID formally in the API.
    
    We were exposing the actual value of CAIRO_FORMAT_INVALID
    through API functions already, so it makes sense to just
    go ahead and put it in the cairo_format_t enum.

 boilerplate/cairo-boilerplate.c            |    2 +-
 src/cairo-debug.c                          |    1 +
 src/cairo-gl-glyphs.c                      |    6 ++++++
 src/cairo-image-surface.c                  |    6 +++++-
 src/cairo-png.c                            |    1 +
 src/cairo-scaled-font.c                    |    1 +
 src/cairo-script-surface.c                 |   22 ++++++++++++++--------
 src/cairo-win32-surface.c                  |    6 ++++++
 src/cairo-xcb-surface-render.c             |    3 +++
 src/cairo-xlib-display.c                   |    1 +
 src/cairo-xlib-surface.c                   |    3 +++
 src/cairo-xml-surface.c                    |   28 +++++++++-------------------
 src/cairo.h                                |   10 ++++++----
 src/cairoint.h                             |    4 ++--
 src/drm/cairo-drm-gallium-surface.c        |    1 +
 src/drm/cairo-drm-i915-surface.c           |    1 +
 src/drm/cairo-drm-intel-surface.c          |    2 +-
 src/drm/cairo-drm-intel.c                  |   11 ++++++++---
 src/drm/cairo-drm-radeon-surface.c         |    2 +-
 test/any2ppm.c                             |    1 +
 test/png.c                                 |    1 +
 util/cairo-script/cairo-script-operators.c |    5 +++++
 util/cairo-sphinx/sphinx.c                 |    9 ++++++---
 util/cairo-trace/trace.c                   |    4 ++++
 24 files changed, 88 insertions(+), 43 deletions(-)

commit 620cd9c2be4a6bef790e6818652470a5c53d578d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Feb 28 09:09:20 2010 +0000

    image: Allow reduction of repeat modes for unity scaled patterns.

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

commit 9ecb0f3cec491264041d0d3718595ad95164980a
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Feb 28 01:42:10 2010 +0200

    image: Fix bug optimizing surface pattern extend modes.
    
    The image surface tries to convert surface pattern's extend
    modes to EXTEND_NONE, if it can, when converting a cairo_pattern_t
    to a pixman_image_t. The check was not taking into account the
    transformation matrix on the pattern, so it was possible to
    trick it into using EXTEND_NONE by downscaling the source
    pattern enough.  This patch changes the optimization to only
    take if the pattern has no transformation.
    
    Fixes surface-pattern-scale-down-extend-{pad,reflect,repeat}
    failures in the test suite for the image backend.

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

commit 260d7f8ace9dea8ff6b3a70f481e433cf399a3d2
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sat Feb 27 17:41:28 2010 +0200

    test: Test downscaling and extending a surface pattern.
    
    Franz Schmid reported a regression in 1.9.6 when downscaling
    and using EXTEND_REPEAT for an image surface pattern.  This
    patch adds such tests for every extend mode.

 test/Makefile.sources                              |    1 +
 .../surface-pattern-scale-down-extend-none.ref.png |  Bin 0 -> 329 bytes
 test/surface-pattern-scale-down-extend-pad.ref.png |  Bin 0 -> 320 bytes
 ...rface-pattern-scale-down-extend-reflect.ref.png |  Bin 0 -> 328 bytes
 ...urface-pattern-scale-down-extend-repeat.ref.png |  Bin 0 -> 330 bytes
 test/surface-pattern-scale-down-extend.c           |  107 ++++++++++++++++++++
 6 files changed, 108 insertions(+), 0 deletions(-)

commit ebadc2ed0810d9941a2f44586016073fea90115b
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sat Feb 27 03:24:55 2010 +0200

    test: Add tests covering more clip fast paths in groups.
    
    The clip-group-shapes-* tests check that it doesn't
    matter whether the clip path is set before or after
    pushing a group using specific types of clip paths
    (aligned/unaligned rectangles and general paths.)

 test/Makefile.sources                              |    1 +
 test/clip-group-shapes-aligned-rectangles.ref.png  |  Bin 0 -> 378 bytes
 test/clip-group-shapes-circles.ref.png             |  Bin 0 -> 1510 bytes
 .../clip-group-shapes-unaligned-rectangles.ref.png |  Bin 0 -> 415 bytes
 test/clip-group-shapes.c                           |  189 ++++++++++++++++++++
 5 files changed, 190 insertions(+), 0 deletions(-)

commit e8d0b4fb39eba799e8649df6dd609f6100efb95e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 26 10:28:23 2010 +0000

    gl: Markup internal functions with cairo_private

 src/cairo-gl-private.h |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

commit ef807119ff8ee23c0444f1197f92b06a5caf6024
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Feb 25 13:58:53 2010 +0200

    compiler: Explain the slim hidden macros.
    
    The slim_hidden_* macro definitions are rather cryptic at first
    sight and I keep needing to rederive how they work just find out
    what they're supposed to do.  This patch adds a comment explaining
    how they're used and work.

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

commit dcf897967d54f579c737bbcc10af7fa295b586e5
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Feb 21 01:45:30 2010 +0200

    test: Fix a wrongly typed return value in scaled-font-zero-matrix.
    
    The test was returning a cairo_status_t, but should be returning
    a cairo_test_status_t instead.  When the test failed it was
    being reported as having crashed, rather than merely failed,
    because the enum value of CAIRO_TEST_CRASHED happened to be
    same as the cairo_status_t value of the cairo context at
    the end of the failing test.

 test/scaled-font-zero-matrix.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 8bb06915ed6628c6d8978b6c2fec474bbf08d7e9
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Feb 23 21:01:13 2010 +0100

    image: split cairo_image_surface_coerce()
    
    Split into a general cairo_image_surface_coerce() that coerces to one of
    the 3 supported formats (ARGB32, RGB24, A8) based on content and the
    more general cairo_image_surface_coerce_to_format() that coerces to a
    specified format.

 src/cairo-gl-glyphs.c           |    3 +--
 src/cairo-gl-surface.c          |    3 +--
 src/cairo-image-surface.c       |   14 ++++++++++++--
 src/cairo-png.c                 |    3 +--
 src/cairo-scaled-font.c         |    2 +-
 src/cairo-script-surface.c      |    4 +---
 src/cairo-svg-surface.c         |    4 ++--
 src/cairo-type3-glyph-surface.c |    2 +-
 src/cairo-xcb-surface-render.c  |   21 ++++-----------------
 src/cairoint.h                  |    8 ++++++--
 10 files changed, 30 insertions(+), 34 deletions(-)

commit b7c42b6aaa2dba09ed3ff9ae85eae27bec268713
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 23 19:27:16 2010 +0000

    drm: Add missing private headers
    
    Reported by: Thomas Jones <thomas.jones@utoronto.ca>

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

commit 6ab5f89571b0252496d58242ed3060a9486d68d4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 23 08:54:58 2010 +0000

    bo-rectangular: Fix incorrect skipping of colinear eo edges
    
    Fixes test/bug-bo-rectangular
    
    After skipping edges, we need to bd careful to only terminate the box on
    a closing edge.

 src/cairo-bentley-ottmann-rectangular.c |   31 ++++++++++++++-----------------
 1 files changed, 14 insertions(+), 17 deletions(-)

commit 1897156d96d77ff28f585794c1eb1baffa105488
Author: Benjamin Otte <otte@gnome.com>
Date:   Tue Feb 23 08:41:27 2010 +0000

    test: Add bug-bo-rectangular
    
    Exercises a bug found in the special case rectangular tessellator with
    colinear eo edges.

 test/Makefile.am                |    1 +
 test/Makefile.sources           |    1 +
 test/bug-bo-rectangular.c       |   67 +++++++++++++++++++++++++++++++++++++++
 test/bug-bo-rectangular.ref.png |  Bin 0 -> 950 bytes
 4 files changed, 69 insertions(+), 0 deletions(-)

commit 21b2457aabf7df2a9f040751cd48e396443262f1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Feb 22 15:26:37 2010 +0000

    fallback: Initialize rects.is_bounded for span renderer.

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

commit 6dd22b767808f721de5d00fe384711ffaa269453
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Feb 22 15:24:08 2010 +0000

    gl: Initialise glyphs mask to ensure allocation in absence of stash.

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

commit 668ac047e6c790b0f8f58c52f169c688caa81678
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Feb 22 14:57:01 2010 +0000

    gl: Avoid attempting to create a program on GLSL-incapable h/w for spans

 src/cairo-gl-shaders.c |   17 ++++++++++++-----
 src/cairo-gl-surface.c |    6 ++++++
 2 files changed, 18 insertions(+), 5 deletions(-)

commit 29df5c91d02276211962a083284feb9a424f0d97
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Feb 22 14:46:18 2010 +0000

    gl: Return unsupported for h/w that cannot handle shaders.
    
    Remove the ASSERT_NOT_REACHED and propagate the unsupported status so
    that we fallback to fixed-function gracefully.

 src/cairo-gl-shaders.c |   28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)

commit 9f46bad301eff967dc0790fc271d872f8a45cedb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Feb 22 14:20:34 2010 +0000

    bo-rectangular: Prevent invalid read during edge traversal
    
    Benjamin Otte tracked down an invalid read triggered by WebKit. The
    cause is that we attempt to dereference the list_head as an edge as we
    failed to check that during the skipping of colinear edges we advanced
    to the end, under the false assumption that there would always
    be a closing edge in a rectangle. This assumption is broken if the tail
    rectangles having colinear right edges.

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

commit 75db4f0ece194b7aa0455509785a300784778ec4
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Feb 22 02:26:47 2010 +0200

    text: Fix assert failure from compositing by SOURCE with a mask internally.
    
    Change the operator used to upgrade the format of a glyph mask from
    CAIRO_OPERATOR_SOURCE to CAIRO_OPERATOR_ADD.
    
    The _cairo_scaled_font_show_glyphs() function upgrades the pixel
    format of a glyph mask by calling _cairo_surface_composite() to copy
    the mask to an image surface of the upgraded destination.  The way it
    was doing it however was to use CAIRO_OPERATOR_SOURCE, a white source
    pattern and the glyph's rasterised glyph as the mask pattern.  This
    combination isn't supported by _cairo_surface_composite(), which
    asserts that no mask is present when the operator is SOURCE or CLEAR.
    
    Reported by Mikael Magnusson to #cairo on irc.freenode.net.

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

commit 20f8f17f0e494a57a6b413be76f9333b42d88014
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Feb 20 21:42:23 2010 +0100

    xcb: Fix compilation without dri2
    
    XCB should be able to compile without xcb-drm. To do so it
    can include xcb/dri2.h only if xcb-drm is enabled.

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

commit fc7be0014d91c8536db8a15ae98b5e78c354c160
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Feb 19 17:39:50 2010 -0800

    Update version to 1.9.7.
    
    Following the 1.9.6 snapshot.

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

commit cb090136b2b0b89bde69d9575f2f592b46e144e8
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Feb 19 17:28:29 2010 -0800

    Update REFERENCE_IMAGES list for "make distcheck".
    
    As usual, "make distcheck" does not work until we update this list.

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

commit 20cf7c92b332a5fd28227f0cdaa50e3f1080c038
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Feb 19 17:24:33 2010 -0800

    Update version to 1.9.6
    
    For a new cairo 1.9.6 snapshot.

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

commit 1c3d417c30bd60c51512d23440896a6a7f51bf23
Author: Carl Worth <cworth@cworth.org>
Date:   Fri Feb 19 17:23:16 2010 -0800

    NEWS: Add notes for the 1.9.6 snapshot.
    
    Based on a very brief reading of the git log. There's certainly
    a lot of interesting stuff missing here.

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

commit 9057c4b6be5f5cc6f8905e017dde534402ddedda
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 17 12:37:07 2010 -0800

    test: Add an option to explicitly specify a test name to the runner.

 test/cairo-test-runner.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

commit e0a948bd2ff3504f5d8b3b3f2136cd9b86cf8ec6
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 17 11:48:41 2010 -0800

    gl: Be sure to do linear interpolation on gradients.

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

commit f1e794956f60a935bfc38ae1c2c2d51d37aadee3
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 17 11:03:52 2010 -0800

    gl: Stop trying to handle first/last stop offset in the gradient shaders.
    
    Since moving to pixman for the gradient textures, first=0 and last=1,
    so there's no need to rescale to 0,1 any more.  Shaves 6 Gen4 ISA
    instructions, including 2 inverses, in the radial fragment shader.

 src/cairo-gl-private.h |    4 ---
 src/cairo-gl-shaders.c |   12 -----------
 src/cairo-gl-surface.c |   51 ++---------------------------------------------
 3 files changed, 3 insertions(+), 64 deletions(-)

commit f813a0243b90ea4151f60f3d13bb6c84d21270df
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 17 10:58:16 2010 -0800

    gl: Remove the old unused radial/linear gradients shaders.
    
    They're dynamically generated now for source/mask.

 src/cairo-gl-private.h |    6 ---
 src/cairo-gl-shaders.c |  117 ------------------------------------------------
 2 files changed, 0 insertions(+), 123 deletions(-)

commit 8da843e996bda7152abb217b3f461a8091dbc880
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 17 10:54:39 2010 -0800

    gl: Reduce complexity of radial fragment shaders.
    
    This shaves 1 Mesa IR instruction, and 6 Gen4 ISA instructions.

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

commit 89bdc2f8d55d951e15b77e6737c57b208d984b0a
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Feb 4 23:17:59 2010 -0800

    gl: Implement draw_image for window targets.
    
    Creates a texture and draws with it instead of doing TexSubImage.
    Open question is whether this wouldn't be better in general.  Fixes
    several failures with ARB_texture_rectangle path due to fallbacks to
    window drawing.

 src/cairo-gl-surface.c |  157 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 124 insertions(+), 33 deletions(-)

commit fcd29473ff71b74bf541199293a966df2232fd63
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 16 13:47:41 2010 -0800

    gl: Fix glyphs texture coordinates for ARB_texture_rectangle.
    
    Fixes most of the text testcases to match the
    ARB_texture_non_power_of_two results.

 src/cairo-gl-glyphs.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

commit e845450905f373e4fcb9ae4717cfd2c3e6472423
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 16 13:18:33 2010 -0800

    gl: Add GLSL support for ARB_texture_rectangle, and repeat/reflect fallbacks.
    
    Most testcases are now passing like the ARB_texture_non_power_of_two
    case.  EXT_texture_rectangle support is dropped in favor of
    ARB_texture_non_power_of_two.  If we have issues with drivers not
    having that but having EXT (which just lacks the GLSL part of the
    spec), we can split it out.  Right now non-GLSL support in cairo-gl is
    probably in bad shape anyway and will require someone that cares for
    it in order to get fixed up.

 src/cairo-gl-shaders.c |   44 ++++++++++++++++++++++++++++++++++++++++++++
 src/cairo-gl-surface.c |   21 +++++++++++++++------
 2 files changed, 59 insertions(+), 6 deletions(-)

commit 40294377cb26fab7bcf17ee98b8e4f5bf9778ca2
Author: Dave Airlie <airlied@redhat.com>
Date:   Sat Jan 30 19:24:31 2010 +1000

    gl: initial support for EXT_texture_rectangle extension
    
    The only issue is the repeat modes aren't supported for rectangular
    textures. In any case even with ARB_npot radeon's pre-r600 lie and
    fail to do repeats anyway.

 src/cairo-gl-glyphs.c  |   25 +++++-----
 src/cairo-gl-private.h |    1 +
 src/cairo-gl-surface.c |  124 +++++++++++++++++++++++++++++-------------------
 3 files changed, 89 insertions(+), 61 deletions(-)

commit 6542a515f04d52d10fdc89ee9abc76e54282a2d8
Author: Eric Anholt <eric@anholt.net>
Date:   Sun Feb 7 20:26:56 2010 +0100

    gl: Reduce the size of the gradient texture for small numbers of stops.
    
    This code is stolen straight from cairo-drm-intel.c.  This saves a
    bunch of time calculating interpolated points when we just do
    interpolation between points at sampling time anyway.  Reduces
    firefox-talos-svg from 47 seconds back to the 42 it was at before the
    pixman change.
    
    This regresses the reported result of huge-radial, but there's no
    visible difference.

 src/cairo-gl-surface.c |   63 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 18 deletions(-)

commit 3b678a88b0d026bb765fd9cdff92fe7235e19848
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 12 16:44:25 2010 +0000

    drm/i915: Set a source for unbounded fixups.

 src/drm/cairo-drm-i915-surface.c |   52 ++++++++++++++++++++++++++++++--------
 1 files changed, 41 insertions(+), 11 deletions(-)

commit 45a275ee29095b69c620ece868411885f4574be9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 12 14:12:24 2010 +0000

    drm/i915: Use correct linear mode for mask.

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

commit 37dbf157f354234d04cd4f0c5d069ff0d535e862
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 12 14:08:32 2010 +0000

    clip: Avoiding derefencing NULL clip_region

 src/cairo-image-surface.c      |   26 ++++++++++++++------------
 src/cairo-xcb-surface-render.c |   26 ++++++++++++++------------
 2 files changed, 28 insertions(+), 24 deletions(-)

commit 6995e1d982a3ad84a1b74730ce557840745fcd8e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 12 14:08:14 2010 +0000

    boilerplate: Include X11.h for GL/GLX

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

commit 5390df961f6dff8e25e5aac21062026a81710d88
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 12 12:20:35 2010 +0000

    clip: Restrict composite extents to clip extents
    
    Fixes test/clip-rectangle-twice.

 src/cairo-clip-private.h         |    6 +++
 src/cairo-clip.c                 |   84 ++++++++++++++++++++++++++++++++++++++
 src/cairo-image-surface.c        |   74 ++++++++-------------------------
 src/cairo-surface-fallback.c     |   71 +------------------------------
 src/cairo-xcb-surface-render.c   |   78 +++++++++--------------------------
 src/drm/cairo-drm-i915-surface.c |   47 +--------------------
 src/drm/cairo-drm-i965-surface.c |   47 +--------------------
 7 files changed, 137 insertions(+), 270 deletions(-)

commit 51047483f462a905567b42275ae061ead4df0a07
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 12 12:18:30 2010 +0000

    test: Add clip-twice-rectangle
    
    Jeff Muizeelar found another bug with clipping whereby the clip was
    been incorrectly discarded.

 test/Makefile.am                  |    1 +
 test/Makefile.sources             |    1 +
 test/clip-twice-rectangle.c       |   70 +++++++++++++++++++++++++++++++++++++
 test/clip-twice-rectangle.ref.png |  Bin 0 -> 323 bytes
 4 files changed, 72 insertions(+), 0 deletions(-)

commit 22b5f78c1c1ae7d289a99a3c52354bba3b9e817f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Feb 11 10:38:51 2010 +0000

    gl: Remove eagle support
    
    Eagle is no more, Kristian has superseded it with true EGL support. He
    is so happy...

 boilerplate/Makefile.win32.features |   10 --
 build/Makefile.win32.features       |    1 -
 build/Makefile.win32.features-h     |    3 -
 build/configure.ac.features         |    1 -
 configure.ac                        |   12 ---
 src/Makefile.sources                |    2 -
 src/Makefile.win32.features         |   14 ---
 src/cairo-eagle-context.c           |  185 -----------------------------------
 src/cairo-gl.h                      |   12 ---
 9 files changed, 0 insertions(+), 240 deletions(-)

commit ed4a30b38311e4ce0730ecd6026432f4a1e8ddf7
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Feb 10 22:10:23 2010 +0100

    build: Add -Wdeclaration-after-statement
    
    ... and fix the compile errors from it I get on my build.
    
    It's Cairo style to put declarations before the code, so better warn
    about it.
    Besides, it eases porting to old compilers like MSVC.

 build/configure.ac.warnings  |    2 +-
 src/cairo-gl-shaders.c       |    8 ++++----
 src/cairo-gl-surface.c       |    3 ++-
 src/cairo-xcb-surface-core.c |    3 ++-
 4 files changed, 9 insertions(+), 7 deletions(-)

commit 4113e455a317785b83324215a6b0156995665989
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Feb 10 21:09:56 2010 +0000

    drm/i965: fix use of uninitialized variable whilst dumping errors
    
    Cut'n'paste bug from i915 error path.

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

commit 5d34902c0cb9712179292112fbdb0f06be327fd8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Feb 10 12:10:16 2010 +0000

    script: Compile without mmap
    
    Should fix:
      Bug 26509 - Cairo fails to compile without mmap
      http://bugs.freedesktop.org/show_bug.cgi?id=26509
    
    As reported by Hib Eris, Cairo files to compile under a mingw32
    cross-compiler as we use a structure only defined if HAVE_MMAP
    unconditionally.

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

commit fb5af4ae407044d1c0d0144ec13f5951075426a3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Feb 10 12:00:59 2010 +0000

    drm/intel: An interrupted SET_TILING modifies the input parameters
    
    If a signal interrupts the SET_TILING ioctl, the tiling and stride
    values are updated to reflect the current condition of the buffer, so we
    need to restore those to the desired values before repeating the ioctl.

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

commit 3c66c721d1bb1db6052acf722f609dcbe56431f5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 9 08:48:42 2010 +0000

    qt: Fix compile error.
    
    Update after prototype changed for create_similar(), as pointed out by
    augzilla.

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

commit a1e5b07fa834819b8d9df9fa56758639a08262d7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Feb 7 20:26:27 2010 +0000

    ps: Initialise page bbox to page size

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

commit 44b6370cb04d27e1ae3e50558a9085d318990938
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Feb 7 19:36:29 2010 +0000

    ps: Propagate NOTHING_TO_DO
    
    The upper layers should know what to do if there is nothing to be done,
    so pass on that knowledge.

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

commit a4793d1331845b85a9c1810035119dfbcffa5082
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Feb 7 19:27:32 2010 +0000

    test: Add linear-gradient-subset
    
    It was observed that we never actually test the condition that the
    gradient is only defined for a portion of its range, i.e. the starting
    offset is >0 and the ending offset is <0. By definition the colour
    between 0 and start offset is the start color, so check that this
    behaviour is followed by all backends.

 test/Makefile.am                    |    1 +
 test/Makefile.sources               |    1 +
 test/linear-gradient-subset.c       |  127 +++++++++++++++++++++++++++++++++++
 test/linear-gradient-subset.ref.png |  Bin 0 -> 825 bytes
 4 files changed, 129 insertions(+), 0 deletions(-)

commit 0f99303cd6d68df79070200a843194a20ad1c597
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Feb 7 12:40:19 2010 +0000

    gl: Use pixman to create the gradient texture
    
    This is just for consistency as we know that pixman has to handle all
    the corner cases anyway...

 src/cairo-gl-surface.c |  147 ++++++++++++++++++++++++++---------------------
 1 files changed, 81 insertions(+), 66 deletions(-)

commit b028d287e6effe30833963f4df40db3846e7f4da
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Feb 5 07:25:04 2010 -0800

    [gl] Make the VBO once at startup instead of recreating per glyphs/spans.
    
    This shaves 2% off of firefox-talos-gfx.

 src/cairo-gl-glyphs.c  |   10 ++--------
 src/cairo-gl-private.h |    1 +
 src/cairo-gl-surface.c |    8 +++-----
 3 files changed, 6 insertions(+), 13 deletions(-)

commit 696a715702ed18bbe3f7d8b97654a055fa37444e
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 21:34:24 2010 -0800

    [gl] Add radial gradients acceleration.
    
    This is significantly cribbed from Zach Laine's work, but reworked so
    that gradients can be plugged in as either source or mask operands for
    any of the paths.

 src/cairo-gl-private.h |   13 +++++
 src/cairo-gl-shaders.c |   77 +++++++++++++++++++++++++++-
 src/cairo-gl-surface.c |  129 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 216 insertions(+), 3 deletions(-)

commit 297b0ab47fa63ef99e65b6834b731c260ea3e941
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Feb 4 23:57:43 2010 -0800

    [gl] When making a boilerplate GLX window, ensure it has alpha.
    
    cairo_gl_surface_create_for_window assumes CONTENT_COLOR_ALPHA, so
    make sure the fbconfig we choose is good enough.  Fixes gl-window
    testcase results to basically match the non-window testcases.

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

commit 6708bc0593a649d083ede429ae73f06691edc018
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Feb 4 23:47:33 2010 -0800

    [gl] When filling a gradient texture, multiply alpha after interpolating.
    
    Fixes gradient-alpha testcase.

 src/cairo-gl-surface.c |   20 +++++++++-----------
 1 files changed, 9 insertions(+), 11 deletions(-)

commit e426cdd56973ff1114dac5e8b1130180d43631b0
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 16:03:52 2010 -0800

    [gl] Implement linear gradients acceleration.
    
    This is significantly cribbed from Zach Laine's work, but reworked so
    that gradients can be plugged in as either source or mask operands for
    any of the paths.
    
    This cuts the runtime of firefox-talos-svg in half on my GM45, at the
    expense of gradient-alpha.  surface-pattern-operator also now fails
    due to small rasterization differences.

 src/cairo-gl-glyphs.c  |    1 +
 src/cairo-gl-private.h |   11 ++++
 src/cairo-gl-shaders.c |   39 ++++++++++++-
 src/cairo-gl-surface.c |  139 ++++++++++++++++++++++++++++++++++++++++++++----
 4 files changed, 176 insertions(+), 14 deletions(-)

commit 05b18fc09af0e0887c652bd482d68f00bec6d4d7
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Feb 4 00:12:58 2010 -0800

    [gl] Fix create_gradient_texture to premultiply alpha.

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

commit 31e706454b7f0fa510047f582250a7a2db24dd31
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 15:48:40 2010 -0800

    [gl] Pull the gradient operand setup out to its own function.
    
    Hopefully this clarifies what's going on, including the fallthrough to
    texture setup on failure.

 src/cairo-gl-surface.c |   77 ++++++++++++++++++++++++++---------------------
 1 files changed, 43 insertions(+), 34 deletions(-)

commit 745f263c1c2d263f7c5e78964bf7181f650301cc
Author: T. Zachary Laine <whatwasthataddress@gmail.com>
Date:   Wed Feb 3 15:38:02 2010 -0800

    [gl] Add function for creating a 1D texture to use for gradient lookups.
    
    Rather than have fragment shaders try to walk a variable-length set of
    stops and try to compute the interpolation between the nearest stops
    per fragment, we make a little texture representing the gradient along
    a line and have the shaders compute texture coordinates along the line
    and sample.  This should be a good tradeoff between CPU work and GPU
    work.
    
    [anholt: I pulled this set of code out of Zach Laine's tree to use for
    gradient acceleration, and wanted to make sure attribution was
    appropriate.  I applied only minor tweaking]

 src/cairo-gl-private.h |    1 +
 src/cairo-gl-surface.c |  117 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 118 insertions(+), 0 deletions(-)

commit 88c8304e9072e5a46890a0eb32fcdbc857eb1a12
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 17:06:45 2010 -0800

    [gl] Sanity check the sampler uniform binding.

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

commit 42597170f2303475bb0507f4c6e948eead28c7bd
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 16:55:45 2010 -0800

    [gl] Convert the spans code to using GLSL when available.

 src/cairo-gl-private.h |    1 +
 src/cairo-gl-shaders.c |   35 +++++++++++++++++++++++++++++--
 src/cairo-gl-surface.c |   52 +++++++++++++++++++++++++++++------------------
 3 files changed, 65 insertions(+), 23 deletions(-)

commit 8d16fb10ea9940c0c9f311ff08c51d572c068c17
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 15:31:57 2010 -0800

    [gl] Test for required EXT_bgra and explain what it's used for.

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

commit b2d8c9cbf2faec570450d163da140c54e64bbdc8
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 15:25:47 2010 -0800

    [gl] Use the shader source choice from operand setup instead of DIY.

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

commit 0fceac4d52d4b574b9c1f911b83d15dc7e01691d
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 12:24:41 2010 -0800

    [gl] Move the component alpha composite to using GLSL when available.

 src/cairo-gl-surface.c |  165 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 108 insertions(+), 57 deletions(-)

commit 8357336ed7be91ad359d205b1f223486d13215f2
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 11:54:24 2010 -0800

    [gl] Move normal composites to using GLSL when available.

 src/cairo-gl-private.h |    2 +
 src/cairo-gl-surface.c |   55 ++++++++++++++++++++++++++++++++++-------------
 2 files changed, 42 insertions(+), 15 deletions(-)

commit 106bc158bafa4eecfd7f79422fc19d267c20dcdb
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Feb 3 15:15:02 2010 -0800

    [gl] Move the glyphs shader construction to a more general location.

 src/cairo-gl-glyphs.c  |  213 ++++++++++--------------------------------------
 src/cairo-gl-private.h |   48 +++++++----
 src/cairo-gl-shaders.c |  200 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 273 insertions(+), 188 deletions(-)

commit f475351f75a3ec079628a2eb2643ebc09f0e5cc8
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 2 19:23:17 2010 -0800

    [gl] Use GLSL when available for glyph rendering.
    
    This reduces the CPU work in translating fixed function state to
    shaders, but currently is a slight cost on GM45 because we end up
    changing shaders more frequently since other parts of the pipeline are
    doing fixed function still.

 src/cairo-gl-glyphs.c  |  189 +++++++++++++++++++++++++++++++++++++++++++++---
 src/cairo-gl-private.h |   19 +++++
 src/cairo-gl-shaders.c |   10 ++-
 src/cairo-gl-surface.c |   58 +++++++++------
 4 files changed, 240 insertions(+), 36 deletions(-)

commit 672973caa0c3877b3b9f1c5f5966449ce0d7e239
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 2 11:17:43 2010 -0800

    [gl] Convert fill_rectangles to the new GLSL core/arb wrapper.

 src/cairo-gl-private.h |   12 +++---
 src/cairo-gl-shaders.c |  106 ++++++++++-------------------------------------
 src/cairo-gl-surface.c |   39 +++++++++---------
 3 files changed, 48 insertions(+), 109 deletions(-)

commit 416273db34a715a6fa180f52ddfd11b82b6e8b6c
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 2 10:37:42 2010 -0800

    [gl] Cut out the abstraction of GL_VERTEX_SHADER vs GL_VERTEX_SHADER_ARB.
    
    They're the same number, so just use the core 2.0 name.

 src/cairo-gl-shaders.c |   38 ++------------------------------------
 1 files changed, 2 insertions(+), 36 deletions(-)

commit 48a5a6eefc923db47c35ad7da3b635d205736716
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 2 10:36:16 2010 -0800

    [gl] Avoid macro obfuscation of the shader impl structures.

 src/cairo-gl-shaders.c |   52 ++++++++++++++++++++++++++++-------------------
 1 files changed, 31 insertions(+), 21 deletions(-)

commit 25ccc5dcb036554430b66fb1bf5f74766daa5612
Author: Zach Laine <whatwasthataddress@gmail.com>
Date:   Thu Jan 14 11:49:04 2010 -0600

    [gl] Add shader support code for GL versions < 3.0.
    
    Adds cairo_gl_shader_program_t, and functions to manipulate same.  Multiple GL
    entry points for shaders are provided -- one for the pre-GL 2.0 extenstions
    entry points, and one for GL 2.0.  This code is well tested, but currently
    unused in the GL backend.

 src/cairo-gl-private.h |   49 ++++
 src/cairo-gl-shaders.c |  623 +++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 671 insertions(+), 1 deletions(-)

commit a6897ad3867611bd74f8ab7de4b1e8d8d1c12c71
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 2 11:24:36 2010 -0800

    [gl] Check for GLSL support once at context init instead of per draw.

 src/cairo-gl-private.h |    1 +
 src/cairo-gl-surface.c |   11 ++++++++++-
 2 files changed, 11 insertions(+), 1 deletions(-)

commit b1829a47bff2b03a850d4049f228d2a41e14d6bd
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Feb 3 11:19:26 2010 +0100

    [quartz] Unbreak mask fallback path
    
    _cairo_quartz_surface_paint will never fail as it falls back to image
    when CoreGraphics can't handle the requested operation. This means that
    upon fallback the ClipImage set by the masking code gets ignored, thus
    the mask fallback path is broken. Using the _cg function ensures that
    masking is either completely done by CoreGraphics, or the fallback path
    passes the mask operation to image.

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

commit 597dd24ddcc763281c82790b7677e54dc2db8f92
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Feb 3 08:53:44 2010 +0000

    drm/i915: Free potential leak of cloned textures.

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

commit 913a31494ec4bd000dfa303e362d8273b6857cfe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 17:49:09 2010 +0000

    drm/i915: Increase batch buffer space.

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

commit 1315323b20398c7c4efa68e4e1c7f6fd6c1d8d91
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 17:38:06 2010 +0000

    drm/i915: check for batch buffer overflow.
    
    Oops, the check for sufficient batch space mysteriously disappeared
    during the rearrangement.

 src/drm/cairo-drm-i915-private.h |    3 --
 src/drm/cairo-drm-i915-shader.c  |   44 ++++++++++++++++++++++++++++++++++++++
 src/drm/cairo-drm-i915-surface.c |   35 ------------------------------
 3 files changed, 44 insertions(+), 38 deletions(-)

commit e2be50c722347734801468d7d9568a18dbbaaa17
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Jan 29 12:06:13 2010 +0100

    [quartz] Fix UNSUPPORTED operations
    
    The fallback path shouldn't be used anymore, thus fallbacks are now
    handled by passing unsupported ops to the image backend.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-quartz-surface.c |  234 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 198 insertions(+), 36 deletions(-)

commit 3e69c38fe642be467fee0cad166b83006741d55c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Jan 24 21:59:32 2010 +0100

    [quartz] Fix surface to CGImage conversion
    
    Snapshotting a surface doesn't produce a cairo_image_surface_t.
    Acquiring (and later releasing) the surface is needed to access
    its image data.

 src/cairo-quartz-surface.c |   75 ++++++++++++++++++++++---------------------
 1 files changed, 38 insertions(+), 37 deletions(-)

commit 7aba47e9d87bf09a5fa7e41a3c76c775f28b08f3
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Jan 25 15:09:51 2010 +0100

    [quartz] Silence compiler warnings

 src/cairo-quartz-surface.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

commit e9b07d194630f3f5e31eef3606f8e4c188a01d5f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 16:28:30 2010 +0000

    drm/i915: Don't tile page sized bo.
    
    Minor tweak from < to <= so that a page sized bo is also not tiled for
    those 32x32 pixmaps...

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

commit 70ca9dd170ce1cf8941311ec1f3dc117aef141b6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 16:28:09 2010 +0000

    drm/i915: Pass the correct length to dump the batchbuffer.

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

commit 3266a1a72be9c0a6b6c0014c4b64098507b6d385
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 16:27:52 2010 +0000

    drm: Handle absence of PCI_ID

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

commit 1ecefc53a1d370d9fffb323952dcabeef5b872c6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 16:26:54 2010 +0000

    pattern: Zero-length gradients are not necessary empty
    
    Fixes: test/linear-step-function
    
    If the extend mode is unbounded, then the gradient is also unbound.

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

commit 2a59220aa448cd7416f1851c4c62ca6ac396302d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 16:24:30 2010 +0000

    test: Add linear-step-function
    
    Another bug identified by Jeff Muizelaar was that the bounds for a
    zero-length (i.e. it started and stopped at the same point) were
    miscomputed. This test case exercises that bug.
    
    Note: I believe the output is wrong here when padding a zero-length
    gradient. On the left it should be red, and on the right it should be
    blue.

 test/Makefile.am                    |    1 +
 test/Makefile.sources               |    1 +
 test/linear-step-function.c         |   60 +++++++++++++++++++++++++++++++++++
 test/linear-step-function.xfail.png |  Bin 0 -> 116 bytes
 4 files changed, 62 insertions(+), 0 deletions(-)

commit 7b37ba8a49dca39a42b5395e0715d3d0a5a89972
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 16:17:13 2010 +0000

    clip: Propagate all-clipped when copying
    
    Fixes test/clip-empty-save.
    
    The all-clipped flag was not being copied to the new clip, which occurs
    for instance when an empty clip is pushed via a gstate save.

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

commit 7dc464bb2bd64d1469b7b03afaf2191ee6d9e28b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Feb 2 16:15:32 2010 +0000

    test: Add clip-empty-save
    
    Jeff Muizelaar found a bug in _cairo_clip_init_copy() which was not
    correctly propagating the all-clipped status when an empty clip was
    saved in the gstate. This test case exercises that bug.

 test/Makefile.am             |    1 +
 test/Makefile.sources        |    1 +
 test/clip-empty-save.c       |   68 ++++++++++++++++++++++++++++++++++++++++++
 test/clip-empty-save.ref.png |  Bin 0 -> 118 bytes
 4 files changed, 70 insertions(+), 0 deletions(-)

commit ab3dc7bb31f7f8b8c4d87c1ae62bd946b260c77e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jan 31 16:59:07 2010 +0000

    csi-replay: compile fix

 util/cairo-script/csi-replay.c |   32 +++++++++++++++++++++-----------
 1 files changed, 21 insertions(+), 11 deletions(-)

commit ab605214d151098ad153e8bf74ae0ca71a34c963
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Feb 1 09:27:16 2010 +0100

    Partially revert "Improve stroking of densely dashed styles"
    
    This reverts commit 26e9f149063b9e1fdb54fc54fccbefdf04a68190 on
    cairo-path-stroke.
    The changes in cairo-path-stroke are not needed anymore since dash
    pattern approximation is now done in gstate before passing the dash
    pattern to the backend.

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

commit 8ffe0fc3825f0f6bc4d06607f6819ea8c2c2040b
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Jan 30 09:29:48 2010 +0100

    Revert "[quartz] Approximate dense dashing patterns"
    
    This reverts commit 27701ed8447d4c21b7bf9709a2fc21690b3cdc96.
    Approximation is now done in gstate.

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

commit 2e91648bcba06832dfa92bd742c32b2f5c1ad989
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Jan 15 15:46:20 2010 +0100

    Approximate dash patterns in gstate
    
    Since approximation is only done when the pattern is sub-tolerance,
    it is acceptable to apply it even for vector backends.
    By doing it once and for all backends, backends are guaranteed to have
    non-degenerate input.
    Acked-by: Adrian Johnson <ajohnson@redneon.com>

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

commit 67f666896cbfd0ac2728c7aa1325a7d0b2c8282d
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Jan 24 22:17:18 2010 +0100

    Improve comments style consistency
    
    Each line of a multi-line comment should begin with '*'.

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

commit 45c795a1820e0317b123e7782cefed6ade8996d7
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Jan 15 10:44:58 2010 +0100

    Improve dash pattern approximation
    
    Dash pattern approximation was taking the caps style into account
    only for coverage computation, but not when computing the new
    pattern, thus the computed approximation had a higher coverage if
    the caps style was SQUARE or ROUND.
    
    Reviewed-by: M. Joonas Pihlaja <jpihlaja@cc.helsinki.fi>

 src/cairo-stroke-style.c |   56 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 2 deletions(-)

commit 8d7841048b079ce2a582ff17c90e82e0081e5f42
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Jan 17 19:00:47 2010 +0100

    Round caps coverage extimate explanation
    
    Comment on how the round caps coverage has been computed, explaining
    the complete procedure. The comments doesn't contain intermediate
    (verbose and ugly) results, but when executed in a symbolic math
    program (sage, for example) computes the expected results.
    
    Reviewed-by: M. Joonas Pihlaja <jpihlaja@cc.helsinki.fi>

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

commit 8558cd579059974758bda696c33f08399267d33e
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Jan 28 17:39:34 2010 -0800

    [gl] Use GL_MESA_pack_invert to flip get_image of windows around.
    
    This doesn't have any fallback for a GL that fails to implement the
    extension.  Fixes 120 testcases for gl-window.

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

commit 11a120fb8477910f5ac63dc1ebde45c276764783
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Jan 29 14:21:06 2010 +0100

    Silence autoconf on Mac OS X
    
    Autoconf was complaining that AC_COMPILE_IFELSE and AC_RUN_IFELSE
    were called before AC_GNU_SOURCE. Moving AC_GNU_SOURCE right after
    AC_INIT solves this.

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

commit 05d4f9b461749f129b17cc97d6e3e6b49fe8e8d9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 29 11:30:49 2010 +0000

    xlib: Compile fix for no fontconfig

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

commit e3e74641450481e7ad393bbc6fd1a7428be53de1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 29 11:22:26 2010 +0000

    atomic: Fix up compile on PPC with libatomic-ops

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

commit e11d2d0b4d646757fcba11631b6db169e2c183b0
Author: Alexander Shulgin <alex.shulgin@gmail.com>
Date:   Fri Jan 29 09:17:01 2010 +0000

    surface: Fix detach mime-data after ecda633f887a10da650b4cd3efb17c861a6f519f
    
    Hi,
    
    while browsing the git log I've noticed a small mistake in the above
    commit, where we reversed the order of init/fini required to reset the
    mime-data array.

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

commit 5f0a0088af784157d8efe149ed073c8fa010e648
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 28 13:23:39 2010 +0000

    drm-intel: Unmap a full glyph cache.
    
    When we swap a full glyph cache for a fresh one, be sure to unmap the
    old one prior to release.

 src/drm/cairo-drm-i915-glyphs.c |    2 +-
 src/drm/cairo-drm-intel.c       |    3 +++
 2 files changed, 4 insertions(+), 1 deletions(-)

commit 78cd9471200c69c8b3737e859260f4552145d958
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 27 23:45:17 2010 +0000

    drm: Paranoid assert that the fallback is released upon finish.

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

commit 5aa1191204e3eed6e3e97e23f37a52bbdfffcbce
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 27 23:42:26 2010 +0000

    drm-intel: flush in memory modifications to texture.
    
    If the surface was written to using a fallback, and so is mapped, we
    need to flush those modifications by relinquishing the map. So the next
    time the application tries to write to the surface, those writes are
    correctly serialised with our reads.

 src/drm/cairo-drm-i915-shader.c |   14 ++++++++++++++
 src/drm/cairo-drm-i965-shader.c |   12 ++++++++++++
 2 files changed, 26 insertions(+), 0 deletions(-)

commit a38accb694452fc5dfac63535648656885cd47eb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 27 23:27:46 2010 +0000

    drm-intel: The accumulation bo may be NULL, beware.
    
    If we are not accumulating but rendering directly to the output vbo,
    then the tail bo may not even be allocated, let alone mapped.

 src/drm/cairo-drm-i915-spans.c  |    2 +-
 src/drm/cairo-drm-i965-glyphs.c |    2 +-
 src/drm/cairo-drm-i965-spans.c  |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 44734b9d3ba60fb45abb0268a916e40cd688ef6a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 27 23:17:44 2010 +0000

    drm-intel: Assert that the bo is unmapped upon release.
    
    Check through error paths to catch a few more places where the mapped bo
    may have been leaked, and add an assert to abort in case we do leak a
    mapping.

 src/drm/cairo-drm-i915-spans.c  |    3 +++
 src/drm/cairo-drm-i965-glyphs.c |    4 ++++
 src/drm/cairo-drm-i965-spans.c  |    3 +++
 src/drm/cairo-drm-intel.c       |    6 +++++-
 4 files changed, 15 insertions(+), 1 deletions(-)

commit 6848c7c850aa0a710c1409d1fc2cb441d02a2b28
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 27 23:01:37 2010 +0000

    drm-i915: Don't tile temporary image textures.
    
    As uploading to a tiled buffer is much slower than linear memory, don't
    unless we expect to reuse the texture. This is not true for sub-image
    clones, which are single shot affairs.

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

commit f75b7c4c110e880f4bdd578d9180f9afbb1d0034
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 27 19:20:57 2010 +0000

    drm/i915: Ensure surface is initialized.
    
    Let's try that again, this time remembering to place it on the
    conjunction of the two branches, so *both* paths are initialized.

 src/drm/cairo-drm-i915-shader.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 02f20458d1dd48fc4589734fc4b3e0c8bea1ce5c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 27 19:02:21 2010 +0000

    drm-i915: Ensure surface size for clone is initialized.
    
    If the surface had a snapshot, then we would have not initialized the
    surface size and so compute a bogus normalization matrix.

 src/drm/cairo-drm-i915-shader.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

commit c82ff8cbcf27dc20d2b44a988eed1b676d996e8c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 27 18:48:32 2010 +0000

    configure: Enable AC_SYS_LARGEFILE for drm
    
    drm makes use of 64bit offsets when mmaping, and so we require the
    64bit file interfaces. I had presumed that it would be pulled in with
    AC_GNU_SOURCE, but no.

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

commit 6d2d338ac04b02200e009c9e97d3ce030d07eb6f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 22:47:10 2010 +0000

    drm: compile fix for cairo_always_inline
    
    s/always_inline/cairo_always_inline/

 src/drm/cairo-drm-i965-private.h  |    8 +-
 src/drm/cairo-drm-intel-brw-eu.h  |  132 ++++++++++++++++++------------------
 src/drm/cairo-drm-intel-private.h |    2 +-
 src/drm/cairo-drm-private.h       |    2 +-
 4 files changed, 72 insertions(+), 72 deletions(-)

commit 58980b4ad60a60923a59370c81d59bb0457a7922
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jan 27 09:56:14 2010 +0100

    build: Remove glitz surface
    
    glitz is unmaintained and the GL surface is far superior anyway.

 README                                    |    8 +-
 boilerplate/Makefile.am                   |   13 -
 boilerplate/Makefile.sources              |    5 -
 boilerplate/Makefile.win32.features       |   10 -
 boilerplate/cairo-boilerplate-glitz-agl.c |  191 ---
 boilerplate/cairo-boilerplate-glitz-glx.c |  265 ----
 boilerplate/cairo-boilerplate-glitz-wgl.c |  188 ---
 build/Makefile.win32.features             |    1 -
 build/Makefile.win32.features-h           |    3 -
 build/configure.ac.features               |    1 -
 configure.ac                              |   38 -
 doc/public/cairo-docs.xml                 |    1 -
 doc/public/cairo-sections.txt             |    1 -
 doc/public/tmpl/cairo-glitz.sgml          |   22 -
 src/Makefile.sources                      |    4 -
 src/Makefile.win32.features               |   14 -
 src/cairo-deprecated.h                    |    1 -
 src/cairo-glitz-private.h                 |   41 -
 src/cairo-glitz-surface.c                 | 2450 -----------------------------
 src/cairo-glitz.h                         |   57 -
 test/Makefile.am                          |    8 -
 test/Makefile.sources                     |    2 -
 test/glitz-surface-source.argb32.ref.png  |  Bin 377 -> 0 bytes
 test/glitz-surface-source.c               |  293 ----
 test/glitz-surface-source.ps2.ref.png     |  Bin 376 -> 0 bytes
 test/glitz-surface-source.ps3.ref.png     |  Bin 376 -> 0 bytes
 test/glitz-surface-source.rgb24.ref.png   |  Bin 301 -> 0 bytes
 util/cairo.modules                        |   10 +-
 28 files changed, 3 insertions(+), 3624 deletions(-)

commit 17ddb1598b3df374b6275d907441f34318b4257f
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jan 25 20:17:12 2010 +0100

    docs: appease make check

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

commit bac513a85dc8ef2915b2e60d034cf3dbc82a8e0c
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jan 25 20:05:56 2010 +0100

    build: Fix pthread detection
    
    THe pthread.h detection code didn't pass -lpthread or -pthread to Cairo.

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

commit 582604f7b6b5b2ab6e681245bc7cde64d4995307
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jan 25 19:22:33 2010 +0100

    [png] Simplify coercion code
    
    Call _cairo_image_surface_coerce() unconditionally to ensure coercion to
    one of the standard formats happens even when it's a format we support.

 src/cairo-png.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

commit 002e02715cac9a285fd97e1bb6b068ceebfae3d8
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jan 25 19:42:54 2010 +0100

    Remove useless pixman version checks
    
    We require pixman >= 0.15.16 in configure.ac, so checks for older
    versions aren't required anymore.

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

commit 5a690ad4acb3687c45c201b3ce92cd3e41bf3b30
Author: Benjamin Otte <otte@gnome.org>
Date:   Fri Jan 15 13:44:04 2010 +0100

    Give cairo_surface_mark_dirty() the slim hidden treatment
    
    Fixes test suite failure

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

commit 571ab1007571cb8d78fcb5206b43d6b964aa0df1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 18:22:03 2010 +0000

    xcb: Fix linking with xcb-drm

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

commit ecda633f887a10da650b4cd3efb17c861a6f519f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 18:17:28 2010 +0000

    mime-data: Detach existing alternate representations upon modification
    
    A major sore point in the current mime-data API is the choice to keep
    the alternate mime-data representations after the user has actually
    modifying the primary representation (i.e. has made it a target of a
    cairo_t and drawn to it). This has been rightly chastised as unexpected
    behaviour, and given that we already have the mechanism to detach
    snapshots upon modification, there is no reason not to behave as
    expected.

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

commit 123bdb086ad9c5725a51791458d31309c69a3f41
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 16:45:03 2010 +0000

    xcb: Make shm optional
    
    Trying to build xcb on a system without SHM wrapped by xcb. The right
    answer would be to build libxcb-shm. The quick answer is to compile out
    shm support.

 boilerplate/Makefile.win32.features |   10 ++++++++++
 build/Makefile.win32.features       |    1 +
 build/Makefile.win32.features-h     |    3 +++
 build/configure.ac.features         |    1 +
 configure.ac                        |   14 +++++++++++++-
 src/Makefile.sources                |    8 ++++++--
 src/Makefile.win32.features         |   14 ++++++++++++++
 src/cairo-xcb-connection.c          |   22 ++++++++++++++++++----
 src/cairo-xcb-private.h             |   21 +++++++++++++++++++++
 src/cairo-xcb-surface-core.c        |    2 ++
 src/cairo-xcb-surface-render.c      |    2 ++
 src/cairo-xcb-surface.c             |   14 ++++++++++++++
 12 files changed, 105 insertions(+), 7 deletions(-)

commit e1b3330376c173633e146eb6cf578592d424e4d5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 14:48:44 2010 +0000

    configure: dri2 is only required for xcb-drm
    
    Move the optional dependency on dri2 to the xcb-drm integration where it
    is required.

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

commit 8151c72307e8cb369fbb524de56f87f805efff2b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 12:14:39 2010 +0000

    xcb: compile errors with lockdep
    
    After moving the mutex to the superclass, I forgot to update the
    references from the lockdep asserts.

 src/cairo-xcb-connection.c |    6 +++---
 src/cairo-xcb-screen.c     |   16 ++++++++--------
 2 files changed, 11 insertions(+), 11 deletions(-)

commit be81d656c53c76032fd3fe11c81402d17ec56327
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 11:54:24 2010 +0000

    clip: Create a fallback clip surface
    
    If the destination cannot support a clip surface, then we will need to
    use an intermediate image surface and trigger fallbacks upon use.

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

commit c453d8ab704e5f41cb010241efe9bcb9ff886024
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 11:45:01 2010 +0000

    test: Erroneous ref image for big-line xlib-fallback.

 test/big-line.xlib-fallback.ref.png |  Bin 723 -> 0 bytes
 1 files changed, 0 insertions(+), 0 deletions(-)

commit 180aea76adbb6d5c5909652b7a8cafb7a693e982
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Jan 25 20:48:02 2010 +1030

    Fix printing of rotated user fonts
    
    b7550bf0 introduced a regression when user fonts are rendered to a
    rotated context.

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

commit abcb9d2c39178620b1847fe6ea6e144602464ecc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 09:35:09 2010 +0000

    image: Prevent deref of NULL clip_region
    
    Another stray from surface-fallback, spotted by Carlos:
    
    *INT_cairo_region_get_extents (region=0x0, extents=0xbfffce90) at
    cairo-region.c:385
    385         if (region->status) {
    (gdb) bt
    0  *INT_cairo_region_get_extents (region=0x0, extents=0xbfffce90) at
    cairo-region.c:385
    1  0x0013ba46 in _cairo_image_surface_composite_trapezoids
    (op=CAIRO_OPERATOR_OVER, pattern=0xbfffdda8, abstract_dst=0x837de10,
        antialias=CAIRO_ANTIALIAS_DEFAULT, src_x=486, src_y=45, dst_x=0,
    dst_y=0, width=15, height=25, traps=0x837f100, num_traps=30,
    clip_region=0x0)
        at cairo-image-surface.c:4102
    2  0x0015d846 in _cairo_surface_composite_trapezoids
    (op=CAIRO_OPERATOR_OVER, pattern=0xbfffdda8, dst=0x837de10,
    antialias=CAIRO_ANTIALIAS_DEFAULT,
        src_x=486, src_y=45, dst_x=0, dst_y=0, width=15, height=25,
    traps=0x837f100, num_traps=30, clip_region=0x0) at cairo-surface.c:2125
    3  0x001607ce in _cairo_surface_fallback_composite_trapezoids
    (op=CAIRO_OPERATOR_OVER, pattern=0xbfffdda8, dst=0x837db00,
        antialias=CAIRO_ANTIALIAS_DEFAULT, src_x=486, src_y=45, dst_x=486,
    dst_y=45, width=15, height=25, traps=0x837fd78, num_traps=30,
    clip_region=0x0)
        at cairo-surface-fallback.c:1641
    4  0x0015d8a4 in _cairo_surface_composite_trapezoids
    (op=CAIRO_OPERATOR_OVER, pattern=0xbfffdda8, dst=0x837db00,
    antialias=CAIRO_ANTIALIAS_DEFAULT,
        src_x=486, src_y=45, dst_x=486, dst_y=45, width=15, height=25,
    traps=0x837fd78, num_traps=30, clip_region=0x0) at cairo-surface.c:2137
    5  0x001623b0 in _composite_traps_draw_func (closure=0xbfffd350,
    op=CAIRO_OPERATOR_OVER, src=0xbfffdda8, dst=0x837db00, dst_x=0, dst_y=0,
        extents=0xbfffdc78, clip_region=0x0) at cairo-surface-fallback.c:546
    6  0x00161234 in _clip_and_composite (clip=0x0, op=<value optimized
    out>, src=0xbfffdda8, draw_func=0x162310 <_composite_traps_draw_func>,
        draw_closure=0xbfffd350, dst=0x837db00, extents=0xbfffdc78) at
    cairo-surface-fallback.c:463
    7  0x0016205b in _clip_and_composite_trapezoids (src=<value optimized
    out>, op=CAIRO_OPERATOR_OVER, dst=0x837db00, traps=0xbfffd7bc,
        antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0, extents=0xbfffdc78) at
    cairo-surface-fallback.c:853
    8  0x001626ef in _cairo_surface_fallback_stroke (surface=0x837db00,
    op=CAIRO_OPERATOR_OVER, source=0xbfffdda8, path=0x1b164c,
    stroke_style=0x1b1524,
        ctm=0x1b15b0, ctm_inverse=0x1b15e0, tolerance=0.10000000000000001,
    antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at
    cairo-surface-fallback.c:1173
    9  0x0015f2f4 in _cairo_surface_stroke (surface=0x837db00,
    op=CAIRO_OPERATOR_OVER, source=0xbfffdda8, path=0x1b164c,
    stroke_style=0x1b1524, ctm=0x1b15b0,
        ctm_inverse=0x1b15e0, tolerance=0.10000000000000001,
    antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0xbfffde88) at
    cairo-surface.c:2041
    10 0x00134629 in _cairo_gstate_stroke (gstate=0x1b1514, path=0x1b164c)
    at cairo-gstate.c:1133
    11 0x0012a706 in *INT_cairo_stroke_preserve (cr=0x1b13c0) at
    cairo.c:2234
    12 0x0012a732 in *INT_cairo_stroke (cr=0x1b13c0) at cairo.c:2207

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

commit 38ba696c483c289c2522b124ca628ef602c12126
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 09:20:11 2010 +0000

    surface-fallback: We no longer own a reference to the clip surface
    
    _cairo_clip_get_surface() now returns a borrowed reference to the cached
    surface on the clip, so we must not destroy it - as Carlos pointed out
    when he hit the assert:
    
    12:55 < KaL> ickle: cairo-surface.c:595: cairo_surface_destroy:
    Assertion `((*&(&surface->ref_count)->ref_count) > 0)' failed.
    12:56 < KaL> ickle: trying to render any pdf file with poppler glib demo
    after installing cairo from git master
    13:00 < KaL> ickle: well, it seems it has nothing ot do with poppler,
    since it crashes in clearlooks src/clearlooks_draw.c:347

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

commit b3ba610ec05f863a0830a1f30ed130649fbadfbb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 25 09:09:18 2010 +0000

    win32: Trivially fix the compile error with printing.
    
    _cairo_pattern_is_opaque() now takes the extents over which the
    operation is defined so that we make exclude the clear pixels that
    surround EXTEND_NONE surfaces when determining opacity. In order to take
    full advantage of this we need to start performing an extents query on
    the operation and pass that down to the analysis...
    
    This patch however is just the quick compile fix to pass a NULL and
    restore the old behaviour.
    
    Fixes (with previous commit):
      Bug 26197 - Cairo doesn't build on windows
      http://bugs.freedesktop.org/show_bug.cgi?id=26197

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

commit 386ca53f280652983870316593e510cfef59c559
Author: Haakon Sporsheim <haakon.sporsheim@gmail.com>
Date:   Sun Jan 24 16:43:42 2010 +0100

    win32: Compile fix, rename render_row to render_rows.

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

commit a9a73e5df42840148fd4db60cc0d1ba5d137b764
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Jan 24 23:26:28 2010 +0100

    Constrain subsurface creation
    
    Force the subsurface extents to be inside the target extents and
    compose subsubsurfaces offsets correctly.
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

 src/cairo-surface-subsurface.c |   36 +++++++++++++++---------------------
 1 files changed, 15 insertions(+), 21 deletions(-)

commit b7550bf0f1cafb5cc5df13da50b0cec80313038f
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Jan 24 22:23:26 2010 +1030

    Fix incorrect font scale and glyph position in Type 3 fonts
    
    The PDF file referenced by bug 26186 contains a Type 3 font with non
    identity font matrix and a "1/2" glyph created by drawing the "1" and
    "2" from a Type 1 font. This combination exposed a bug in the font
    scale and glyph position in _cairo_type3_glyph_surface_show_glyphs
    when printing user font glyphs.

 src/cairo-type3-glyph-surface.c |   21 +++++----------------
 1 files changed, 5 insertions(+), 16 deletions(-)

commit ea7fda442c169a159b2e3c51894a0f5e70a13984
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jan 22 16:26:38 2010 -0800

    [gl] Release the context acquired in surface_create.
    
    Fixes assertion failures in many testcases since
    cf9ea9f2f0ea1e1b42dc1507ed0dac4dfbf5d387

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

commit 20990365f3885457d66b4a8bef865f027a98333f
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jan 22 16:13:02 2010 -0800

    [gl] Emit rectanges a whole primitive at a time.
    
    Since the spans rework, we were emitting half a primitive at a time,
    and if we flushed our VBO full of quads out halfway through, we could
    end up dropping the primitive and then out of phase.

 src/cairo-gl-surface.c |   25 +++++++++++--------------
 1 files changed, 11 insertions(+), 14 deletions(-)

commit c8a61a3267ffd53d4b4d61e2e2bcb70448ea4d41
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Jan 23 18:25:11 2010 +0100

    Fix compilation on MacOS X
    
    Some functions declared in MacOS X headers use the always_inline
    attribute, thus defining it to be a different expression breaks the
    build.

 src/cairo-botor-scan-converter.c |    8 ++++----
 src/cairo-compiler-private.h     |    4 ++--
 src/cairo-gl-private.h           |    4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

commit 90ba1242b61e7b8e5ae2c2ca028d0058f6dabd88
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Jan 23 18:13:35 2010 +0100

    Fix image backend compilation
    
    When HAS_ATOMIC_OPS is not defined, cairo-image-surface.c does not
    compile because _pixman_white_image calls _pixman_image_for_solid
    which gets defined only later in the code.

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

commit 2a466ba07072cb394cfc955cfb0633b0cc278044
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 22:26:52 2010 +0000

    script: Encode octal values correctly.
    
    Oops, we were emitting the octal numerals in reverse order.

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

commit 87529198aa37f5eb5943eb80cc1aae858fdaadd0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 22:21:44 2010 +0000

    scaled-font: Mark an error site with _cairo_error()

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

commit 6544f3b25d2120b7bd04f6c956c2ea7b9c101c76
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 22:15:25 2010 +0000

    ps: Wean off the low-level image composite interface
    
    The low-level surface composite interface will disappear in the near
    future and results in much more ugly code than calling the high level
    interface - so use it when flattening images into the page background.

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

commit f57cb45fa9274351b36f96eb932a931493b5db94
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 22:18:35 2010 +0000

    ps: Arguments to fill_extents() were reversed.

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

commit 58540405d9bc6581c1d07f17bd5aee330f06d4a2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 22:05:37 2010 +0000

    pdf: Arguments to fill_extents() were reversed.

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

commit 34dd80632e4671f0ca245be9db4280db62bdb1f9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 21 18:39:26 2010 +0000

    glew: Silence compiler.

 src/glew/GL/glew.h |    2 +-
 src/glew/glew.c    |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit cf9ea9f2f0ea1e1b42dc1507ed0dac4dfbf5d387
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 21 18:39:12 2010 +0000

    gl: Acquire the context whilst creating surfaces.

 src/cairo-gl-private.h |    5 ++---
 src/cairo-gl-surface.c |   37 ++++++++++++++++++++++++-------------
 2 files changed, 26 insertions(+), 16 deletions(-)

commit a7e05bd602e7f8bee63f5d32cb95d65628e6e715
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 21 18:22:04 2010 +0000

    glew: Do not assume that UNIX == GLX

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

commit c0008242b0f162d8c7717009ba792ed61b2924d1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 21:35:23 2010 +0000

    misc: Only use custom lround() under DISABLE_SOME_FLOATING_POINT
    
    On my Core2, the library version of lround() is faster than our
    hand-rolled non-floating point implementation. So only enable our code
    if we are trying to minimise the number of floating point operations --
    even then, it would worth investigating the library performance first.
    
    [Just a reminder that optimisation choices will change over time as our
    hardware and software evolves.]

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

commit 1236c41072a7966eda7db48a381fd0508e5289be
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 21:26:26 2010 +0000

    xcb: Refresh.
    
    Still an experimental backend, it's now a little too late to stabilise
    for 1.10, but this should represent a major step forward in its feature
    set and an attempt to catch up with all the bug fixes that have been
    performed on xlib. Notably not tested yet (and expected to be broken)
    are mixed-endian connections and low bitdepth servers (the dithering
    support has not been copied over for instance). However, it seems robust
    enough for daily use...
    
    Of particular note in this update is that the xcb surface is now capable
    of subverting the xlib surface through the ./configure --enable-xlib-xcb
    option. This replaces the xlib surface with a proxy that forwards all
    operations to an equivalent xcb surface whilst preserving the cairo-xlib
    API that is required for compatibility with the existing applications,
    for instance GTK+ and Mozilla. Also you can experiment with enabling a
    DRM bypass, though you need to be extremely foolhardy to do so.

 boilerplate/Makefile.win32.features |   20 +
 boilerplate/cairo-boilerplate-xcb.c |  522 ++++-
 build/Makefile.win32.features       |    2 +
 build/Makefile.win32.features-h     |    6 +
 build/configure.ac.features         |    2 +
 configure.ac                        |   26 +-
 src/Makefile.sources                |   22 +-
 src/Makefile.win32.features         |   28 +
 src/cairo-list-private.h            |    7 +
 src/cairo-mutex-list-private.h      |    4 +
 src/cairo-pattern.c                 |   41 +-
 src/cairo-xcb-connection-core.c     |  482 ++++
 src/cairo-xcb-connection-render.c   |  969 ++++++++
 src/cairo-xcb-connection-shm.c      |  194 ++
 src/cairo-xcb-connection.c          |  867 +++++++
 src/cairo-xcb-private.h             |  760 ++++++
 src/cairo-xcb-screen.c              |  518 ++++
 src/cairo-xcb-shm.c                 |  576 +++++
 src/cairo-xcb-surface-cairo.c       |   94 +
 src/cairo-xcb-surface-core.c        |  613 +++++
 src/cairo-xcb-surface-private.h     |   37 +
 src/cairo-xcb-surface-render.c      | 4471 +++++++++++++++++++++++++++++++++++
 src/cairo-xcb-surface.c             | 3344 +++++++-------------------
 src/cairo-xcb-xrender.h             |   63 -
 src/cairo-xcb.h                     |   41 +-
 src/cairo-xlib-xcb-surface.c        |  515 ++++
 src/cairoint.h                      |   16 +
 test/xcb-surface-source.c           |    1 -
 28 files changed, 11689 insertions(+), 2552 deletions(-)

commit 77afe8491ed7038a8399c01f10d8f062a7239225
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 20:48:54 2010 +0000

    drm: Add backends for i915 and i965.
    
    As proof-of-principle add the nearly working demonstrations of using DRM
    to render directly with the GPU bypassing both RENDER and GL for
    performance whilst preserving high quality rendering.
    
    The basis behind developing these chip specific backends is that this is
    the idealised interface that we desire for this chips, and so a target
    for cairo-gl as we continue to develop both it and our GL stack.
    
    Note that this backends do not yet fully pass the test suite, so only
    use if you are brave and willing to help develop them further.

 boilerplate/cairo-boilerplate-drm.c       |    2 +-
 src/Makefile.sources                      |   17 +
 src/cairo-drm.h                           |   31 +-
 src/cairo-misc.c                          |   57 +
 src/cairoint.h                            |    2 +
 src/drm/cairo-drm-bo.c                    |   13 +-
 src/drm/cairo-drm-gallium-surface.c       |    3 +-
 src/drm/cairo-drm-i915-glyphs.c           |  534 ++++++
 src/drm/cairo-drm-i915-private.h          | 1169 ++++++++++++
 src/drm/cairo-drm-i915-shader.c           | 2674 +++++++++++++++++++++++++++
 src/drm/cairo-drm-i915-spans.c            |  708 +++++++
 src/drm/cairo-drm-i915-surface.c          | 1996 ++++++++++++++++++++
 src/drm/cairo-drm-i965-glyphs.c           |  500 +++++
 src/drm/cairo-drm-i965-private.h          |  742 ++++++++
 src/drm/cairo-drm-i965-shader.c           | 2852 +++++++++++++++++++++++++++++
 src/drm/cairo-drm-i965-spans.c            |  408 ++++
 src/drm/cairo-drm-i965-surface.c          | 1949 ++++++++++++++++++++
 src/drm/cairo-drm-intel-brw-defines.h     |  824 +++++++++
 src/drm/cairo-drm-intel-brw-eu-emit.c     | 1089 +++++++++++
 src/drm/cairo-drm-intel-brw-eu-util.c     |  121 ++
 src/drm/cairo-drm-intel-brw-eu.c          |  250 +++
 src/drm/cairo-drm-intel-brw-eu.h          | 1043 +++++++++++
 src/drm/cairo-drm-intel-brw-structs.h     | 1328 ++++++++++++++
 src/drm/cairo-drm-intel-command-private.h |  909 +++++++++
 src/drm/cairo-drm-intel-debug.c           | 1208 ++++++++++++
 src/drm/cairo-drm-intel-ioctl-private.h   |  417 +++++
 src/drm/cairo-drm-intel-private.h         |  427 ++++-
 src/drm/cairo-drm-intel-surface.c         |  421 ++---
 src/drm/cairo-drm-intel.c                 | 1240 +++++++++----
 src/drm/cairo-drm-private.h               |  101 +-
 src/drm/cairo-drm-radeon-private.h        |    3 -
 src/drm/cairo-drm-radeon-surface.c        |  281 ++--
 src/drm/cairo-drm-radeon.c                |    5 +-
 src/drm/cairo-drm-surface.c               |  235 +--
 src/drm/cairo-drm.c                       |  232 ++--
 35 files changed, 22675 insertions(+), 1116 deletions(-)

commit b9407af6a4bc792c1bcb52c90aa8a618627bb618
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 17:57:41 2010 +0000

    image: Implement high level interface.
    
    Write a dedicated compositor for pixman so that we avoid the
    middle-layer syndrome of surface-fallback. The major upshot of this
    rewrite is that the image surface is now several times quicker for glyph
    compositing, which dramatically improves performance for text rendering
    by firefox and friends. It also uses a couple of the new scan
    convertors, such as the rectangular scan converter for rectilinear
    paths.
    
    Speedups
    ========
    image-rgba          firefox-talos-gfx-0    342050.17 (342155.88 0.02%) -> 69412.44 (69702.90 0.21%):  4.93x speedup
    ███▉
    image-rgba                        vim-0    97518.13 (97696.23 1.21%) -> 30712.63 (31238.65 0.85%):  3.18x speedup
    ██▏
    image-rgba                  evolution-0    69927.77 (110261.08 19.84%) -> 24430.05 (25368.85 1.89%):  2.86x speedup
    █▉
    image-rgba                    poppler-0    41452.61 (41547.03 2.51%) -> 21195.52 (21656.85 1.08%):  1.96x speedup
    █
    image-rgba       firefox-planet-gnome-0    217512.61 (217636.80 0.06%) -> 123341.02 (123641.94 0.12%):  1.76x speedup
    ▊
    image-rgba             swfdec-youtube-0    41302.71 (41373.60 0.11%) -> 31343.93 (31488.87 0.23%):  1.32x speedup
    ▍
    image-rgba         swfdec-giant-steps-0    20699.54 (20739.52 0.10%) -> 17360.19 (17375.51 0.04%):  1.19x speedup
    ▎
    image-rgba                       gvim-0    167837.47 (168027.68 0.51%) -> 151105.94 (151635.85 0.18%):  1.11x speedup
    ▏
    image-rgba          firefox-talos-svg-0    375273.43 (388250.94 1.60%) -> 356846.09 (370370.08 1.86%):  1.05x speedup

 src/cairo-image-surface.c                 | 3893 ++++++++++++++++++++++++-----
 src/cairo-mutex-list-private.h            |    2 +
 src/cairo-xcb-surface.c                   |   10 +-
 src/cairoint.h                            |   21 +-
 test/clip-fill-unbounded.argb32.ref.png   |  Bin 1615 -> 1607 bytes
 test/clip-fill-unbounded.rgb24.ref.png    |  Bin 1312 -> 1304 bytes
 test/clip-stroke-unbounded.argb32.ref.png |  Bin 1703 -> 1694 bytes
 test/clip-stroke-unbounded.rgb24.ref.png  |  Bin 1383 -> 1372 bytes
 test/clip-stroke.ref.png                  |  Bin 1451 -> 1442 bytes
 test/clipped-group.ref.png                |  Bin 289 -> 289 bytes
 test/leaky-dashed-rectangle.ref.png       |  Bin 347 -> 357 bytes
 test/scale-offset-image.xfail.png         |  Bin 9960 -> 9961 bytes
 test/scale-offset-similar.xfail.png       |  Bin 9960 -> 9961 bytes
 test/self-intersecting.ref.png            |  Bin 213 -> 168 bytes
 14 files changed, 3295 insertions(+), 631 deletions(-)

commit ec7cc9dea16f94e1e56720be548cf5520ec4708b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 19:27:45 2010 +0000

    ft: Tidy computation of transformed bitmap, and mark if CA
    
    Discard a redundant clear as the image surface is guaranteed to return
    a cleared surface that meets pixman/xlib requirements for alignment, and
    more importantly add the ComponentAlpha flag on the pixman image
    generated as appropriate.

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

commit b713510f213d0a83cb0575d6870416a0f13786c9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 17:56:26 2010 +0000

    surface-fallback: Convert to composite rectangles

 src/cairo-surface-fallback.c |  396 ++++++++++++++----------------------------
 src/cairo-surface.c          |    3 +
 src/cairo-traps.c            |   47 +++---
 src/cairoint.h               |    3 +-
 4 files changed, 158 insertions(+), 291 deletions(-)

commit 498c10032ea3f8631a928cd7df96766f2c8ddca4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 16:39:29 2010 +0000

    clip: Implement clipping using only the high-level operators.
    
    Revamp clipping in preparation for the removal of the low-level interface
    and promote backend to use the higher levels. The principle here is that
    the higher level interface gives the backend more scope for choosing
    better performing primitives.

 src/cairo-clip-private.h     |    6 +-
 src/cairo-clip.c             |  257 ++++++++++++++++++++---------------------
 src/cairo-surface-fallback.c |    2 +-
 3 files changed, 131 insertions(+), 134 deletions(-)

commit 05bb43a00770f17566c80f28faf684597d1b6afb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 16:14:53 2010 +0000

    types: Move cairo_scaled_glyph_t to cairo-types-private.h
    
    Another step in bringing some sanity to our headers.

 src/cairo-types-private.h |   25 +++++++++++++++++++++++++
 src/cairoint.h            |   26 --------------------------
 2 files changed, 25 insertions(+), 26 deletions(-)

commit 9c98656fb1ac10a6085c5db5731b6b986af26165
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 16:11:48 2010 +0000

    color: Add enum value for the largest stock color.
    
    Useful if we wish to keep a cache of patterns for the very common stock
    colors...

 src/cairo-color.c         |   13 +++++++------
 src/cairo-types-private.h |    3 ++-
 2 files changed, 9 insertions(+), 7 deletions(-)

commit b7b65b5315836297f86c54121ea45e469f514312
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 16:07:25 2010 +0000

    stroke: Convert rectilinear paths to boxes.
    
    A quick and efficient method for extracting the set of boxes that
    represent the path when stroked.

 src/cairo-path-stroke.c |  170 +++++++++++++++++++++++++++++++++++++----------
 src/cairoint.h          |    7 ++
 2 files changed, 142 insertions(+), 35 deletions(-)

commit fe6a7f4c9e69c86588eca4925a9d65f3086f98bf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 16:02:07 2010 +0000

    fill: Convert rectilinear paths to boxes.
    
    A quick and efficient method for extracting the set of boxes that
    represent the path when filled.

 src/cairo-path-fill.c |   76 ++++++++++++++++++++++++++++++++++++++++++++++++-
 src/cairoint.h        |    5 +++
 2 files changed, 80 insertions(+), 1 deletions(-)

commit 6b77567b6ef28710c7707ab82c7fa95c810152d1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 15:54:45 2010 +0000

    path: Compute coarse bounds upon construction.
    
    Frequently we only need the coarse path bounds, so avoid walking over
    the list of points once more as we can cheaply track the extents during
    construction.

 src/cairo-debug.c              |    6 ++
 src/cairo-gstate.c             |   21 ++++-
 src/cairo-path-bounds.c        |  159 +++++++++++++++++++--------------------
 src/cairo-path-fixed-private.h |    4 +-
 src/cairo-path-fixed.c         |   83 +++++++++++++++++++--
 src/cairo.c                    |    2 +
 src/cairoint.h                 |    9 +-
 7 files changed, 184 insertions(+), 100 deletions(-)

commit 6bfcf3ea55964fee1c9b73818c3bb7cdacbc4f82
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 15:37:25 2010 +0000

    matrix: Do not need to iteratively refine conversion for unity matrices.
    
    If the scale factors on the matrix are unity, then the conversion from a
    cairo_matrix_t to a pixman_matrix_t is exact (within numerical
    restrictions).

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

commit 13c56800ca6c32a6d8251edec5d3976399b70ea4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 16:33:34 2010 +0000

    gstate: Reduce operators
    
    Some operators may be equivalent to simpler operations, so make the
    transformation in the gstate, before calling down into the surface
    backends.

 src/cairo-gstate.c |   86 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 72 insertions(+), 14 deletions(-)

commit 4d52be39bf36a3557f4e7c61dba764b1c6542c8f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 16:09:11 2010 +0000

    gstate: Skip ops with a clear mask.
    
    As pointed out by Benjamin Otte, these are expensive no-ops that we can
    trivially detect, just so long as we remember the semantics of extend
    modes.

 src/cairo-gstate.c  |    6 ++++++
 src/cairo-pattern.c |   23 +++++++++++++++++++++++
 src/cairoint.h      |    3 +++
 3 files changed, 32 insertions(+), 0 deletions(-)

commit c2ef45226d6801acb15854de55a5f5bc728ed65d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 14:33:53 2010 +0000

    gstate: Check for an invalid matrix before cairo_transform()
    
    Similar to the other checks that will generate an invalid matrix prior
    to performing the operation.

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

commit 22316a0c17cd3b49ec625814f4e737b3fdc6ca63
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 14:33:16 2010 +0000

    gstate: White space.
    
    A couple of minor coding style violations.

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

commit 29bedde904824098f73b978d73d36b3b5420ac32
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 16:19:31 2010 +0000

    pattern: Add convenience patterns for stock colours
    
    By preallocating in our data segment a couple of solid patterns for the
    stock colours, it becomes more convenient when using those in surface
    operations, such as when clearing.

 src/cairo-clip.c                   |   29 +++++++++++------------------
 src/cairo-gl-glyphs.c              |   10 +++-------
 src/cairo-gstate.c                 |    9 +++------
 src/cairo-pattern.c                |   24 ++++++++++++++++++++++++
 src/cairo-scaled-font.c            |    9 ++-------
 src/cairo-surface-fallback.c       |   14 +++-----------
 src/cairo-vg-surface.c             |    5 ++---
 src/cairo-win32-printing-surface.c |    8 ++------
 src/cairo-xcb-surface.c            |    7 +------
 src/cairo-xlib-surface.c           |    6 +-----
 src/cairoint.h                     |    3 ++-
 11 files changed, 54 insertions(+), 70 deletions(-)

commit 9eb98e1dc5af7eac896bf469e491063777e678be
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 14:14:51 2010 +0000

    scaled-font: Use tight glyph bounds when determining overlap.
    
    An issue that we currently have is that we have a pessimistic
    false-positive rate when determining whether glyphs within a string
    overlap. By using the tight bounds, the overlap detection is arguably
    less accurate presuming pixel-aligned opacity masks but we make the
    trade-off for performance.

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

commit 005b0c4eb2a1fe2c4de31ebe2a3244bea8bd2625
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 19:47:58 2010 +0000

    test: Add explicit device management to xlib-surface-source
    
    Mostly pedagogical example.

 test/xlib-surface-source.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit ca02b51ef6d058b6fb492258177f0396a5819e26
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 21:57:58 2010 +0000

    test: Add an xcb surface source test

 test/Makefile.am                       |    6 ++
 test/Makefile.sources                  |    3 +
 test/xcb-surface-source.argb32.ref.png |  Bin 0 -> 377 bytes
 test/xcb-surface-source.c              |  145 ++++++++++++++++++++++++++++++++
 test/xcb-surface-source.rgb24.ref.png  |  Bin 0 -> 301 bytes
 5 files changed, 154 insertions(+), 0 deletions(-)

commit f0678fb70ceec5db1b7c3f0eb1c5603039daf307
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 22 19:02:39 2010 +0000

    test: Tweak aligned of text-rotate
    
    Reset the rotation for every quadrant so that the starting rectangles
    are pixel-aligned.

 test/text-rotate.c       |   68 +++++++++++++++++++++++++++++++++-------------
 test/text-rotate.ref.png |  Bin 16738 -> 16722 bytes
 2 files changed, 49 insertions(+), 19 deletions(-)

commit 2edd2adafc471f4aa9c417d4bc76cc38466a9ed0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 22:45:59 2010 +0000

    test: Exercise scan converters with large rounded rectangles.
    
    Having added a specialised scan converter on the premise that it should
    be better at handling rounded rectangles, ensure that they are indeed
    rendered correctly.

 test/Makefile.am                           |    2 +
 test/Makefile.sources                      |    2 +
 test/rounded-rectangle-fill.c              |   65 ++++++++++++++++++++++++++++
 test/rounded-rectangle-fill.xlib.ref.png   |  Bin 0 -> 890 bytes
 test/rounded-rectangle-stroke.c            |   64 +++++++++++++++++++++++++++
 test/rounded-rectangle-stroke.xlib.ref.png |  Bin 0 -> 860 bytes
 6 files changed, 133 insertions(+), 0 deletions(-)

commit 5187501e997d6b8c0d135542d21accde9e311281
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 22:41:45 2010 +0000

    test: Add --track-origins=yes to valgrind flags.
    
    Enable origin tracking by default for make check-valgrind. This is
    slower and consumes more memory than regular valgrind, but the
    additional information provided about the source of the uninitialised
    data is often invaluable.

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

commit 3a5d71c431dfb251308c3e4e02d2ea4acec90a91
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 19:18:54 2010 +0000

    pattern: An EXTEND_NONE surface is not opaque if we sample outside
    
    Fixes test/clear-source as proposed by Benjamin Otte.

 src/cairo-gstate.c       |    2 +-
 src/cairo-pattern.c      |   33 +++++++-
 src/cairo-pdf-surface.c  |  219 +++++++++++++++++++++++++++------------------
 src/cairo-ps-surface.c   |  186 +++++++++++++++++++++++----------------
 src/cairo-xlib-surface.c |    8 ++-
 src/cairoint.h           |    3 +-
 6 files changed, 284 insertions(+), 167 deletions(-)

commit b07de014eba1a482747ac235670011972a82d19d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 18:44:34 2010 +0000

    spans: Add a rectangular scan converter
    
    This is a highly specialised scan converter for the relatively common
    case of where the input geometry is known to be a series of rectangles.
    Generally not device aligned (or else we would most likely have chosen
    an even higher performance path that does not require a coverage mask),
    this optimised converter can simply compute the analytical coverage by
    utilising a special case Bentley-Ottmann intersection finder.

 src/Makefile.sources                   |    1 +
 src/cairo-rectangular-scan-converter.c |  723 ++++++++++++++++++++++++++++++++
 src/cairo-spans-private.h              |   25 ++
 3 files changed, 749 insertions(+), 0 deletions(-)

commit e49855497e7214c21c85b03d7ab94e9e008f821b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 18:36:20 2010 +0000

    spans: Add a Bentley-Ottmann variant on the Tor scan converter
    
    This variant uses the Bentley-Ottmann algorithm to only maintain the
    active edge list upon edge events and so can efficiently skip areas
    where no change occurs. This means that it can be much quicker than the
    Tor algorithm (which is still used to compute the coverages from the
    active edges) for geometries consisting of long straight lines with few
    intersections. However due to the computational overhead of the
    Bentley-Ottmann event processing, for dense curvy paths, simply updating
    the active edge list in sync with computing the coverages is a win. Due
    to advantageous adaptive step size, the scan converter can be run at a
    much higher subsampling with little extra overhead compared with Tor,
    currently it uses a 256x256 subsampling grid to avoid any impedance
    mismatch with path precision.
    
    Given the current status of implementations, this scan converter [botor]
    is likely to be advantage where detecting large regions of unchanged
    span data will result in improved performance, for instance the drm
    backends which convert the scan data into rectangles.

 src/Makefile.sources             |    1 +
 src/cairo-botor-scan-converter.c | 2199 ++++++++++++++++++++++++++++++++++++++
 src/cairo-compiler-private.h     |   11 +
 src/cairo-fixed-private.h        |   22 +-
 src/cairo-freelist-private.h     |   16 +
 src/cairo-freelist.c             |   38 +-
 src/cairo-spans-private.h        |   23 +
 src/cairoint.h                   |    9 -
 8 files changed, 2299 insertions(+), 20 deletions(-)

commit 424dcf296378a107286a164aaf135a34e40c42ac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 19:11:31 2010 +0000

    boxes: Enable generation of boxes from rectilinear polygons.
    
    Extend the special case rectilinear tessellator to also produce boxes.

 src/cairo-bentley-ottmann-rectilinear.c |  122 ++++++++++++++++++++++++++-----
 src/cairoint.h                          |    5 +
 2 files changed, 108 insertions(+), 19 deletions(-)

commit b83f1c347dfd77139e9485745d43da946b086b74
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 19:09:10 2010 +0000

    boxes: Enable tessellation
    
    Extend the special case rectangular tessellator to handle generation of
    cairo_boxes_t.

 src/cairo-bentley-ottmann-rectangular.c |  778 ++++++++++++++++---------------
 src/cairoint.h                          |    5 +
 2 files changed, 416 insertions(+), 367 deletions(-)

commit 43beaa5873b9ad10620bfe7ed5f9212a3c44effd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 18:11:26 2010 +0000

    boxes: Efficient storage for an array of cairo_box_t.
    
    Currently we use cairo_traps_t to also pass around arrays of boxes. This
    is woefully inefficient in terms of storage, but also means that we
    repeatedly have to verify that the traps are a set of boxes. By
    explicitly passing around a cairo_boxes_t we avoid the semantic loss.
    
    This will be heavily used in pending commits.

 src/Makefile.sources      |    2 +
 src/cairo-boxes-private.h |   80 +++++++++++++
 src/cairo-boxes.c         |  269 +++++++++++++++++++++++++++++++++++++++++++++
 src/cairo-types-private.h |    1 +
 4 files changed, 352 insertions(+), 0 deletions(-)

commit ae25f1c360b79f0b7b1bb73e9ebc47eb794d8007
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 17:11:55 2010 +0000

    Alter definition of cairo_composite_rectangles_t
    
    This is a more useful definition that is able to individually track the
    rectangles that compose the composite operation. This will be used by
    the specialist compositors as a means to perform the common extents
    determination for an operation.

 src/Makefile.sources                     |    2 +
 src/cairo-composite-rectangles-private.h |  105 ++++++++++++++++
 src/cairo-composite-rectangles.c         |  197 ++++++++++++++++++++++++++++++
 src/cairo-gl-surface.c                   |   19 ++-
 src/cairo-image-surface.c                |   31 +++---
 src/cairo-misc.c                         |   41 ++++++
 src/cairo-rectangle.c                    |   21 ---
 src/cairo-spans.c                        |   29 +++--
 src/cairo-surface-fallback.c             |   13 +-
 src/cairo-types-private.h                |   24 +----
 src/cairo-win32-surface.c                |   21 ++--
 src/cairoint.h                           |   14 +-
 12 files changed, 417 insertions(+), 100 deletions(-)

commit 9cd9137843f8f1c3d32bedb6510259ab3638a2c5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 17:11:11 2010 +0000

    spans: Pass multiple rows of identical spans to the renders.
    
    It is quite common amongst our geometry to have rows of repeated span
    data, for example a rounded rectangle will have repeating data between
    the top and bottom rounded corners. By passing the repeat length to the
    renderers, they may be able to use that information more efficiently,
    and the scan converters can avoid recomputing the same span data.

 src/cairo-gl-surface.c         |  141 +++++++++--------
 src/cairo-image-surface.c      |   79 ++++------
 src/cairo-spans-private.h      |   24 ++--
 src/cairo-spans.c              |    6 +-
 src/cairo-tor-scan-converter.c |  343 +++++++++++++++++++++++++---------------
 src/cairo-win32-surface.c      |   13 ++-
 src/cairoint.h                 |    4 +-
 7 files changed, 349 insertions(+), 261 deletions(-)

commit a04873c0770df5eaed078493df5216ca28322de7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 23:40:00 2010 +0000

    qt: Trivial compile fix for boilerplate.

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

commit 0f09349dd85b15d5de14248e2f3f17a91fbcbb5e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 23:37:36 2010 +0000

    gl: Exercise Window destinations with boilerplate
    
    Add a gl-window boilerplate target to exercise using GL to render to a
    visible Drawable -- for instance, a window has a different coordinate
    system to a framebuffer...

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

commit ccea7fd7c1a2d7144e892c19615488e368529bc0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 23:37:11 2010 +0000

    gl: Port to cairo_device_t

 boilerplate/cairo-boilerplate-gl.c |   28 +++--
 src/cairo-eagle-context.c          |   25 +++--
 src/cairo-gl-glyphs.c              |   46 +++++---
 src/cairo-gl-private.h             |   44 +++++---
 src/cairo-gl-surface.c             |  222 ++++++++++++++++--------------------
 src/cairo-gl.h                     |   22 +---
 src/cairo-glx-context.c            |   25 +++--
 7 files changed, 211 insertions(+), 201 deletions(-)

commit 3acd520c9dec89e72d7ff61adb1ae30bab12e256
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 23:11:19 2010 +0000

    xml: Port to cairo_device_t

 src/cairo-xml-surface.c |  210 ++++++++++++++++++++++++-----------------------
 src/cairo-xml.h         |   13 +--
 util/trace-to-xml.c     |    7 +-
 3 files changed, 115 insertions(+), 115 deletions(-)

commit 49ab86772a44d7a044464d875324bd0af96af728
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 22:43:24 2010 +0000

    script: Port cairo_script_context_t to cairo_device_t
    
    Use the unifying cairo_device_t for cairo_script_context_t and replace.

 boilerplate/cairo-boilerplate-script.c |    6 +-
 boilerplate/cairo-boilerplate.c        |    6 +-
 src/cairo-script-surface.c             |  491 +++++++++++++++++---------------
 src/cairo-script.h                     |   35 +--
 test/cairo-test-trace.c                |    7 +-
 util/cairo-fdr/fdr.c                   |   10 +-
 util/cairo-script/csi-trace.c          |   11 +-
 util/cairo-sphinx/fdr.c                |    4 +-
 util/cairo-sphinx/sphinx.c             |   17 +-
 util/cairo-trace/trace.c               |    8 +-
 10 files changed, 312 insertions(+), 283 deletions(-)

commit f617d5fc982f749d0981c81c1de1be8dc3632717
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 21:53:42 2010 +0000

    Add cairo_device_t
    
    The device is a generic method for accessing the underlying interface
    with the native graphics subsystem, typically the X connection or
    perhaps the GL context. By exposing a cairo_device_t on a surface and
    its various methods we enable finer control over interoperability with
    external interactions of the device by applications. The use case in
    mind is, for example, a multi-threaded gstreamer which needs to serialise
    its own direct access to the device along with Cairo's across many
    threads.
    
    Secondly, the cairo_device_t is a unifying API for the mismash of
    backend specific methods for controlling creation of surfaces with
    explicit devices and a convenient hook for debugging and introspection.
    
    The principal components of the API are the memory management of:
    
      cairo_device_reference(),
      cairo_device_finish() and
      cairo_device_destroy();
    
    along with a pair of routines for serialising interaction:
    
      cairo_device_acquire() and
      cairo_device_release()
    
    and a method to flush any outstanding accesses:
    
      cairo_device_flush().
    
    The device for a particular surface may be retrieved using:
    
      cairo_surface_get_device().
    
    The device returned is owned by the surface.

 src/Makefile.sources                |    2 +
 src/cairo-analysis-surface.c        |    9 +-
 src/cairo-beos-surface.cpp          |    5 +-
 src/cairo-device-private.h          |   85 +++++++++++
 src/cairo-device.c                  |  265 +++++++++++++++++++++++++++++++++++
 src/cairo-directfb-surface.c        |    2 +
 src/cairo-gl-surface.c              |    1 +
 src/cairo-glitz-surface.c           |    4 +-
 src/cairo-image-surface.c           |    4 +-
 src/cairo-misc.c                    |    4 +
 src/cairo-os2-surface.c             |    1 +
 src/cairo-paginated-surface.c       |    4 +-
 src/cairo-pdf-surface.c             |    4 +-
 src/cairo-ps-surface.c              |    4 +-
 src/cairo-qt-surface.cpp            |    7 +-
 src/cairo-quartz-image-surface.c    |    1 +
 src/cairo-quartz-surface.c          |    6 +-
 src/cairo-recording-surface.c       |    9 +-
 src/cairo-script-surface.c          |    1 +
 src/cairo-skia-surface.cpp          |    1 +
 src/cairo-spans.c                   |    4 +
 src/cairo-surface-private.h         |    1 +
 src/cairo-surface-snapshot.c        |    1 +
 src/cairo-surface-subsurface.c      |    1 +
 src/cairo-surface.c                 |   29 ++++
 src/cairo-svg-surface.c             |    4 +-
 src/cairo-tee-surface.c             |    1 +
 src/cairo-type3-glyph-surface.c     |    4 +-
 src/cairo-types-private.h           |    1 +
 src/cairo-vg-surface.c              |    1 +
 src/cairo-win32-printing-surface.c  |    1 +
 src/cairo-win32-surface.c           |    8 +-
 src/cairo-xcb-surface.c             |    4 +-
 src/cairo-xlib-surface.c            |    4 +-
 src/cairo-xml-surface.c             |    1 +
 src/cairo.h                         |  117 +++++++++++++++
 src/cairoint.h                      |    1 +
 src/drm/cairo-drm-gallium-surface.c |    2 +
 src/drm/cairo-drm-intel-surface.c   |    5 +-
 src/drm/cairo-drm-radeon-surface.c  |    5 +-
 src/test-fallback-surface.c         |    4 +-
 src/test-fallback16-surface.c       |    1 +
 src/test-null-surface.c             |    5 +-
 src/test-paginated-surface.c        |    4 +-
 src/test-wrapping-surface.c         |    1 +
 util/cairo-trace/trace.c            |    2 +
 46 files changed, 607 insertions(+), 24 deletions(-)

commit 82f8aa548d70acf51b319000d7a5c176fc73da64
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 22:02:09 2010 +0000

    Recursive mutex.
    
    Implement a recursive mutex which will be needed for cairo_device_t.
    In particular only pthreads by default is a non-recursive mutex (to my
    knowledge) - both win32 critical sections and mutexes on Quartz are
    recursive.

 src/cairo-mutex-impl-private.h |   28 ++++++++++++++++++++++++++++
 src/cairo-mutex-type-private.h |    9 ++++++++-
 2 files changed, 36 insertions(+), 1 deletions(-)

commit d2f251f84b326c5f8825c9a631ea729f21891580
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 22:12:23 2010 +0000

    configure: Globally define AC_GNU_SOURCE
    
    We were using _GNU_SOURCE throughout the codebase, so simply define it
    once during configure. This is the easiest method to enable recursive
    mutexes using pthreads, as required in a pending patch.

 boilerplate/cairo-boilerplate-pdf.c |    4 ++++
 boilerplate/cairo-boilerplate-ps.c  |    4 ++++
 configure.ac                        |    3 +++
 src/cairo-gstate.c                  |    2 --
 src/cairo-matrix.c                  |    2 --
 src/cairo-scaled-font.c             |    2 --
 6 files changed, 11 insertions(+), 6 deletions(-)

commit 934d0d0d6585eb7638c7db597c40dd821092c034
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 19:05:34 2010 +0000

    Real zero-copy cow snapshotting
    
    The first iteration of COW snapshotting always made an initial copy when
    the snapshot was requested (and reused that copy until the surface was
    modified). However, in a few circumstances we can avoid even that copy
    so long as the surface is still alive and unmodified between the
    snapshotting and its use. In order to do so, we need a new proxy surface
    that can automatically perform the copy if the target should disappear
    prior to use.

 src/Makefile.sources                 |    2 +
 src/cairo-paginated-surface.c        |    7 +-
 src/cairo-surface-snapshot-private.h |   48 +++++++
 src/cairo-surface-snapshot.c         |  225 ++++++++++++++++++++++++++++++++++
 src/cairo-surface.c                  |  101 ++--------------
 src/cairo-types-private.h            |    2 +
 6 files changed, 291 insertions(+), 94 deletions(-)

commit 6b3e19aa434d159db7878b2a7fb28a026b2d1756
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 19:12:25 2010 +0000

    Remove content matching from snapshot lookup.
    
    This was never used, so remove the complexity from the interface.

 src/cairo-recording-surface.c      |    3 +--
 src/cairo-surface.c                |   23 +++++++----------------
 src/cairo-vg-surface.c             |    3 +--
 src/cairoint.h                     |    3 +--
 src/drm/cairo-drm-intel-surface.c  |    3 +--
 src/drm/cairo-drm-radeon-surface.c |    3 +--
 6 files changed, 12 insertions(+), 26 deletions(-)

commit dc8290814c0e98b38828953bac6dd0893c31c9ad
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 18:06:51 2010 +0000

    Add subsurface.
    
    A subsurface is a region of another surface that may be used either to
    restrict the writable area of a context or the readable extents of a
    source. Whilst writing, access to the exterior of the subsurface is
    prevented via clipping and when used as a source reads from the exterior
    of the subsurface are governed via the extend mechanism of the pattern.

 src/Makefile.sources                   |    2 +
 src/cairo-surface-subsurface-private.h |   48 ++++
 src/cairo-surface-subsurface.c         |  464 ++++++++++++++++++++++++++++++++
 src/cairo-types-private.h              |    4 +-
 src/cairo.h                            |    7 +
 test/Makefile.am                       |    3 +
 test/Makefile.sources                  |    3 +
 test/subsurface-repeat.c               |   72 +++++
 test/subsurface-repeat.ref.png         |  Bin 0 -> 197 bytes
 test/subsurface-similar-repeat.c       |   83 ++++++
 test/subsurface-similar-repeat.ref.png |  Bin 0 -> 197 bytes
 test/subsurface.c                      |   80 ++++++
 test/subsurface.ref.png                |  Bin 0 -> 1597 bytes
 13 files changed, 765 insertions(+), 1 deletions(-)

commit b8eacbfae1c155f412d84120411103cb610e383b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 18:09:11 2010 +0000

    Add surface-offset internal API.
    
    This is a simplified version of the wrapping surface where the target
    surface is just a subsurface onto which we wish to draw the current
    operation. In particular this is useful for the subsurface API as well
    as fallbacks.

 src/Makefile.sources               |    2 +
 src/cairo-surface-offset-private.h |   95 ++++++++++
 src/cairo-surface-offset.c         |  354 ++++++++++++++++++++++++++++++++++++
 3 files changed, 451 insertions(+), 0 deletions(-)

commit f2c32d01836379766bc287edf77381123767daeb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 18:06:54 2010 +0000

    Unify the two freed object pools
    
    Discard some duplicate code and shared a single freed object pointer
    pool between the pattern and clip.

 src/Makefile.sources           |    2 +
 src/cairo-clip.c               |   88 +----------------------------
 src/cairo-freed-pool-private.h |  121 ++++++++++++++++++++++++++++++++++++++++
 src/cairo-freed-pool.c         |   91 ++++++++++++++++++++++++++++++
 src/cairo-pattern.c            |  115 ++++++--------------------------------
 5 files changed, 234 insertions(+), 183 deletions(-)

commit cfd204824fada7d2b4bcf4994c4200ae9b5a8b26
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 18:20:16 2010 +0000

    Constify stroke style and matrices.
    
    As a simple step to ensure that we do not inadvertently modify (or at least
    generate compiler warns if we try) user data, mark the incoming style
    and matrices as constant.

 src/cairo-analysis-surface.c         |   12 +++---
 src/cairo-paginated-surface.c        |    6 ++--
 src/cairo-path-bounds.c              |    6 ++--
 src/cairo-path-stroke.c              |   60 +++++++++++++++++-----------------
 src/cairo-pdf-operators-private.h    |   24 +++++++-------
 src/cairo-pdf-operators.c            |   38 +++++++++++-----------
 src/cairo-pdf-surface-private.h      |   11 +++---
 src/cairo-pdf-surface.c              |   40 +++++++++++-----------
 src/cairo-ps-surface.c               |    6 ++--
 src/cairo-qt-surface.cpp             |   14 ++++----
 src/cairo-quartz-surface.c           |    6 ++--
 src/cairo-recording-surface.c        |    6 ++--
 src/cairo-script-surface.c           |    6 ++--
 src/cairo-stroke-style.c             |    2 +-
 src/cairo-surface-fallback-private.h |    6 ++--
 src/cairo-surface-fallback.c         |    6 ++--
 src/cairo-surface-wrapper-private.h  |   12 +++---
 src/cairo-surface-wrapper.c          |   12 +++---
 src/cairo-surface.c                  |   14 ++++----
 src/cairo-svg-surface.c              |   40 +++++++++++-----------
 src/cairo-tee-surface.c              |    6 ++--
 src/cairo-type3-glyph-surface.c      |    6 ++--
 src/cairo-win32-printing-surface.c   |    6 ++--
 src/cairo-xml-surface.c              |    6 ++--
 src/cairoint.h                       |   44 ++++++++++++------------
 src/drm/cairo-drm-private.h          |    6 ++--
 src/drm/cairo-drm-surface.c          |    6 ++--
 src/test-null-surface.c              |    6 ++--
 src/test-paginated-surface.c         |    6 ++--
 src/test-wrapping-surface.c          |    6 ++--
 30 files changed, 212 insertions(+), 213 deletions(-)

commit 3e17c559b04e2df208f28125746d7e0acfb4b476
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Dec 9 19:46:28 2009 +0100

    [test] Add pthread-same-source test
    
    Multiple threads render using the same source surface, but with
    different extend and filter.

 test/Makefile.am                 |    1 +
 test/Makefile.sources            |    1 +
 test/pthread-same-source.c       |  160 ++++++++++++++++++++++++++++++++++++++
 test/pthread-same-source.ref.png |  Bin 0 -> 1000 bytes
 4 files changed, 162 insertions(+), 0 deletions(-)

commit 30a12f802f4ff46f13dc36e60936cd857585a9ea
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Nov 25 18:55:05 2009 +0100

    [test] Add a simple multithreading test

 test/Makefile.am             |    1 +
 test/Makefile.sources        |    5 ++-
 test/pthread-similar.c       |  106 ++++++++++++++++++++++++++++++++++++++++++
 test/pthread-similar.ref.png |  Bin 0 -> 170 bytes
 4 files changed, 111 insertions(+), 1 deletions(-)

commit 038829eb84e53532a6e3c75225933ad85da50cfc
Author: Benjamin Otte <otte@gnome.org>
Date:   Sun Dec 6 17:47:50 2009 +0100

    [test] Add new test checking is_clear is handled properly
    
    This test does various operations with a clear source surface with
    various content types.
    The idea is to make sure optimizations done when surface->is_clear ==
    TRUE only happen in the proper cases.

 test/Makefile.sources     |    1 +
 test/clear-source.c       |  163 +++++++++++++++++++++++++++++++++++++++++++++
 test/clear-source.ref.png |  Bin 0 -> 881 bytes
 3 files changed, 164 insertions(+), 0 deletions(-)

commit bf7fb4e0e09d05f42425cc7969c64992d4dc9ff9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 17:18:08 2010 +0000

    script: Handle cache allocation failure more gracefully
    
    Instead of bailing out if we cannot store the glyph cache on the font,
    simply do not store the glyph cache on the font...

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

commit 2b312806f138da6f88d03bb3c0c3852b342eb220
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 17:14:24 2010 +0000

    script: Free the correct pattern after failure.
    
    The error path attempted to free the resolved pattern which it had just
    discovered was NULL and not the locally allocated pattern...

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

commit bc2d0ad114f8fc0b0579851154fe9d39c0aa0fc9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 27 17:30:51 2009 +0000

    script: Permit surface operations on the context
    
    By implicitly reference the target of the context instead, i.e.
    this reduces the use of:
    
      /target get (example.png) write-to-png pop
    
    as a common idiom where the context is kept on the stack and the surface
    forgotten.

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

commit 411c09eed7ebff7335948a7f96d2b29d82ed817a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Nov 1 08:40:41 2009 +0000

    perf: Enable a surface cache for perf-trace
    
    Real applications that control their Drawable externally to Cairo are
    'disadvantaged' by cairo-perf-trace when it creates a similar surface
    for each new instance of the same Drawable. The difficulty in
    maintaining one perf surface for every application surface is that the
    traces do not track lifetimes for the application surfaces, so we would
    just accumulate stale surfaces. The surface cache takes a different
    approach and returns the same surface for each active Drawable, and
    maintains a hold-over of the MRU 16 surfaces. This achieves 60-80% hit
    rate with firefox, which is probably as good as can be expected.
    Obviously for double-buffered applications we only every draw to freshly
    created surfaces (and Gtk+ bypasses cairo to do the final copy -- the
    ideal application would just use a push-group for double buffering, in
    which case we would capture and replay the entire expose event).
    
    To enable use of the surface cache whilst replaying use -c:
    
      ./cairo-perf-trace -c firefox-talos-gfx

 perf/Makefile.am                             |    3 +-
 perf/cairo-perf-trace.c                      |  141 +++++++++++++++++++++++++-
 test/any2ppm.c                               |    4 +-
 util/cairo-script/cairo-script-interpreter.h |    3 +-
 util/cairo-script/cairo-script-operators.c   |   13 ++-
 util/cairo-sphinx/sphinx.c                   |    3 +-
 6 files changed, 157 insertions(+), 10 deletions(-)

commit c50c8b90c0033686b465e6766fba4772c1d698c6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 16:58:40 2010 +0000

    Move _cairo_error() to a standalone header
    
    A pending commit will want to include some utility code from cairo and
    so we need to extricate the error handling from the PLT symbol hiding.

 src/Makefile.sources                    |    1 +
 src/cairo-analysis-surface.c            |    1 +
 src/cairo-array.c                       |    1 +
 src/cairo-base64-stream.c               |    1 +
 src/cairo-base85-stream.c               |    1 +
 src/cairo-bentley-ottmann-rectangular.c |    1 +
 src/cairo-bentley-ottmann-rectilinear.c |    1 +
 src/cairo-bentley-ottmann.c             |    1 +
 src/cairo-beos-surface.cpp              |    2 +
 src/cairo-cache.c                       |    1 +
 src/cairo-cff-subset.c                  |    1 +
 src/cairo-clip.c                        |    1 +
 src/cairo-deflate-stream.c              |    1 +
 src/cairo-directfb-surface.c            |    1 +
 src/cairo-eagle-context.c               |    1 +
 src/cairo-error-private.h               |   60 +++++++++++++++++++++++++++++++
 src/cairo-font-face-twin.c              |    1 +
 src/cairo-font-face.c                   |    1 +
 src/cairo-font-options.c                |    1 +
 src/cairo-freelist.c                    |    1 +
 src/cairo-ft-font.c                     |    1 +
 src/cairo-gl-glyphs.c                   |    2 +
 src/cairo-gl-shaders.c                  |    1 +
 src/cairo-gl-surface.c                  |    1 +
 src/cairo-glitz-surface.c               |    2 +
 src/cairo-glx-context.c                 |    2 +
 src/cairo-gstate.c                      |    1 +
 src/cairo-hash.c                        |    1 +
 src/cairo-hull.c                        |    1 +
 src/cairo-image-surface.c               |    1 +
 src/cairo-lzw.c                         |    1 +
 src/cairo-matrix.c                      |    1 +
 src/cairo-misc.c                        |    1 +
 src/cairo-os2-surface.c                 |    1 +
 src/cairo-output-stream.c               |    1 +
 src/cairo-paginated-surface.c           |    1 +
 src/cairo-path-fill.c                   |    1 +
 src/cairo-path-fixed.c                  |    1 +
 src/cairo-path-stroke.c                 |    1 +
 src/cairo-path.c                        |    1 +
 src/cairo-pattern.c                     |    1 +
 src/cairo-pdf-operators.c               |    1 +
 src/cairo-pdf-surface.c                 |    1 +
 src/cairo-pen.c                         |    1 +
 src/cairo-png.c                         |    2 +
 src/cairo-polygon.c                     |    1 +
 src/cairo-ps-surface.c                  |    1 +
 src/cairo-qt-surface.cpp                |    6 ++-
 src/cairo-quartz-font.c                 |    2 +
 src/cairo-quartz-image-surface.c        |    2 +
 src/cairo-quartz-surface.c              |    2 +
 src/cairo-recording-surface.c           |    3 +-
 src/cairo-region.c                      |    1 +
 src/cairo-rtree.c                       |    1 +
 src/cairo-scaled-font-subsets.c         |    1 +
 src/cairo-scaled-font.c                 |    1 +
 src/cairo-script-surface.c              |    1 +
 src/cairo-stroke-style.c                |    1 +
 src/cairo-surface-fallback.c            |    1 +
 src/cairo-surface-wrapper.c             |    1 +
 src/cairo-surface.c                     |    1 +
 src/cairo-svg-surface.c                 |    1 +
 src/cairo-tee-surface.c                 |    1 +
 src/cairo-tor-scan-converter.c          |    1 +
 src/cairo-toy-font-face.c               |    1 +
 src/cairo-traps.c                       |    1 +
 src/cairo-truetype-subset.c             |    1 +
 src/cairo-type1-fallback.c              |    1 +
 src/cairo-type1-subset.c                |    1 +
 src/cairo-type3-glyph-surface.c         |    1 +
 src/cairo-unicode.c                     |    1 +
 src/cairo-user-font.c                   |    1 +
 src/cairo-vg-surface.c                  |    3 +-
 src/cairo-win32-font.c                  |    1 +
 src/cairo-win32-printing-surface.c      |    1 +
 src/cairo-win32-surface.c               |    1 +
 src/cairo-xcb-surface.c                 |    3 +-
 src/cairo-xlib-display.c                |    1 +
 src/cairo-xlib-screen.c                 |    1 +
 src/cairo-xlib-surface.c                |    1 +
 src/cairo-xlib-visual.c                 |    2 +
 src/cairo-xml-surface.c                 |    1 +
 src/cairo.c                             |    1 +
 src/cairoint.h                          |   12 ------
 src/drm/cairo-drm-bo.c                  |    1 +
 src/drm/cairo-drm-intel-surface.c       |    1 +
 src/drm/cairo-drm-intel.c               |    1 +
 src/drm/cairo-drm-radeon-surface.c      |    1 +
 src/drm/cairo-drm-radeon.c              |    1 +
 src/drm/cairo-drm-surface.c             |    1 +
 src/drm/cairo-drm.c                     |    1 +
 src/test-fallback-surface.c             |    1 +
 src/test-fallback16-surface.c           |    1 +
 src/test-null-surface.c                 |    2 +
 src/test-paginated-surface.c            |    1 +
 src/test-wrapping-surface.c             |    1 +
 96 files changed, 170 insertions(+), 17 deletions(-)

commit 558f9501700ba569f04f345f7c64d16b1870e37c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 18 22:47:34 2010 +0000

    surface-wrapper: Avoid copying patterns and clips unless transformed.
    
    An older variant of the fixes for moving the device transformation out
    of the surface layer, but languished in a side branch. The only benefit
    of this patch is that it avoids the copy where possible.

 src/cairo-surface-wrapper.c |  134 ++++++++++++++++++++++++-------------------
 1 files changed, 75 insertions(+), 59 deletions(-)

commit 8f694817227366f4a4c6bbbf46e6cdddb4a065df
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 19 17:12:47 2010 +0000

    gitignore: refresh
    
    Add forgotten local targets to .gitignore

 .gitignore                   |    1 +
 perf/.gitignore              |    1 +
 util/.gitignore              |    2 ++
 util/cairo-script/.gitignore |    1 +
 4 files changed, 5 insertions(+), 0 deletions(-)

commit 5914e995723682e0b1f685d9ff5ea5abe05ae024
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jan 22 09:21:36 2010 -0800

    [gl] Cache a temporary glyph compositing mask for reuse later.
    
    Cuts firefox-talos-gfx time from 56 seconds to 43 seconds.

 src/cairo-gl-glyphs.c  |   29 ++++++++++++++++++++++-------
 src/cairo-gl-private.h |    4 ++++
 src/cairo-gl-surface.c |    4 +++-
 3 files changed, 29 insertions(+), 8 deletions(-)

commit 1bf0f64ee7783742fa777a496567e4da48e300dd
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Jan 21 14:08:11 2010 -0800

    [gl] Composite component-alpha glyphs directly instead of through a mask.
    
    Cuts gnome-terminal-vim time from 58 seconds to 20.

 src/cairo-gl-glyphs.c  |  190 +++++++++++++++++++++++++++++++-----------------
 src/cairo-gl-private.h |    4 +
 src/cairo-gl-surface.c |    2 +-
 3 files changed, 127 insertions(+), 69 deletions(-)

commit 12d521df8acc483b2daa844d4f05dc2fe2765ba6
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Jan 21 13:19:17 2010 -0800

    [gl] Use GL_RGBA textures even for CAIRO_CONTENT_COLOR.
    
    When the texture is GL_RGB, GL_CLAMP_TO_BORDER (EXTEND_NONE) fills the
    border color alpha channel with 1, when the whole reason we were using
    the border color was to get a color and alpha of 0.  We're forced to
    use GL_RGBA textures and do extra work to fill in the alpha channel of
    them to 1 to get cairo's desired behavior.
    
    This fixes a failure in rotate-image-surface-paint and 4 other
    testcases.  No performance difference in firefox-talos-gfx.

 src/cairo-gl-surface.c |  131 +++++++++++++++++++++++++++--------------------
 1 files changed, 75 insertions(+), 56 deletions(-)

commit e316cb9db57094359c28f6b740e73674e8dcc134
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Jan 20 13:33:56 2010 -0800

    [gl] Add support for component-alpha glyph rendering.
    
    This is done using a mask and the two-pass trick I did for EXA.  Fixes
    text-antialias-subpixel.

 src/cairo-gl-glyphs.c  |   60 ++++++--
 src/cairo-gl-private.h |    3 +-
 src/cairo-gl-surface.c |  384 ++++++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 424 insertions(+), 23 deletions(-)

commit ceeb7e7e703213a83ca43d80962519074a19364d
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Jan 19 13:43:16 2010 -0800

    [gl] Use the UNSUPPORTED() macro in more places for fallback debugging.

 src/cairo-gl-surface.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

commit 5d9e2fd84b4f66e5b121d95805ce34e2f482d1b0
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Jan 15 16:28:12 2010 +0100

    [quartz] Leftbehind change from a39075c88f9b2e12e19348ea11c9b3f739818265
    
    This commit completes the change in a39075c88f9b2e12e19348ea11c9b3f739818265.
    It removes unused variables and corrects the extents rect computation.

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

commit 6950b233e41a0c926465728c37f9bc5512f2844b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 15 14:25:16 2010 +0000

    qt: Make flush() robust.
    
    Hanno Meyer-Thurow reported in
    
      http://bugs.freedesktop.org/show_bug.cgi?id=26063
      [PATCH] various fixes to cairo-qt
    
    a few issues related to _cairo_qt_surface_flush() where firefox was
    crashing after being built to use cairo-qt.
    
    This is an amalgam of those patches that hopefully address the issue.

 src/cairo-qt-surface.cpp |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

commit 4e315d84723b27746a6a012ab7de429b2f2ef90b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 15 12:21:52 2010 +0000

    pattern: Premultiply color-stop when converting to solid
    
    Fixes: test/linear-uniform
           https://bugzilla.mozilla.org/show_bug.cgi?id=539165
           Bug 539165 - gradients with a single stop do not have their color
                        multiplied by the alpha.
    
    As reported by Jeff Muizelaar, we regressed in 2d790daa as the
    color-stops are not premultiplied and so could not be treated as an
    ordinary cairo_color_t. Instead we have to create a intermediate
    cairo_color_t from the original values in order for the
    premultiplication to be performed.

 src/cairo-gstate.c  |   26 +++++++++++++++++++-------
 src/cairo-pattern.c |   32 +++++++++++++++++++++-----------
 2 files changed, 40 insertions(+), 18 deletions(-)

commit f40560a9bb5b12d2584ed297bf4114baf2aa9cc1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 15 12:17:30 2010 +0000

    test: Add linear-uniform
    
    Jeff reported a regression found by Mozilla whereby a uniform gradient
    was not being premultiplied on conversion to a solid pattern.
    
      https://bugzilla.mozilla.org/show_bug.cgi?id=539165
      [Bug 539165] gradients with a single stop do not have their color
                   multiplied by the alpha.

 test/Makefile.am            |    1 +
 test/Makefile.sources       |    1 +
 test/linear-uniform.c       |   63 +++++++++++++++++++++++++++++++++++++++++++
 test/linear-uniform.ref.png |  Bin 0 -> 128 bytes
 4 files changed, 65 insertions(+), 0 deletions(-)

commit e22c02dbaeda6941083fc89b517508dc0c4386a0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 15 12:02:58 2010 +0000

    test: Add degenerate-arcs
    
    A simple test to ensure that using degenerate-arcs such as when drawing
    a rounded rectangle with radii=0 construct a proper path.

 test/Makefile.am             |    1 +
 test/Makefile.sources        |    1 +
 test/degenerate-arcs.c       |   57 ++++++++++++++++++++++++++++++++++++++++++
 test/degenerate-arcs.ref.png |  Bin 0 -> 120 bytes
 4 files changed, 59 insertions(+), 0 deletions(-)

commit a39075c88f9b2e12e19348ea11c9b3f739818265
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Jan 6 18:53:54 2010 +0100

    [quartz] Fix generic masking
    
    Masking with unbounded operators was broken because an incorrect
    transformation was applied to inverted mask used for the fixup.

 src/cairo-quartz-surface.c |   59 +++++++++++++++----------------------------
 1 files changed, 21 insertions(+), 38 deletions(-)

commit 27701ed8447d4c21b7bf9709a2fc21690b3cdc96
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Jan 5 19:42:23 2010 +0100

    [quartz] Approximate dense dashing patterns
    
    Quartz doesn't try to approximate dash pattern even if they are well
    beyond suface sampling frequency. Approximating dash patterns when their
    density is too high avoids looping indefinitely in these degenerate cases.

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

commit ad7ab00c10fc1adcf2ef4574fdd00b25dfcdafdd
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Jan 2 13:23:53 2010 +0100

    [quartz] Improve A8 and A1 support
    
    Use A8 images as alpha-only masks intread of greyscale images.
    Add support to A1 images (they were ignored before).

 src/cairo-quartz-surface.c |   59 ++++++++++++++++++++++++++------------------
 1 files changed, 35 insertions(+), 24 deletions(-)

commit f3b3a5c43f247f3e9019fa6c1fd2abb3b00dd9ea
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Jan 15 07:47:30 2010 +1030

    Fix bug in _cairo_ft_index_to_ucs4
    
    Previously it would miss the first character causing the space glyph to
    return 0x00A0 instead of 0x0020.

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

commit e26e2c8cc41b4e60462eacbd87894dc82beca883
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Jan 14 10:05:02 2010 -0800

    [gl] Fix the color bits of CAIRO_CONTENT_ALPHA surface patterns to be 0.
    
    Fixes surface-pattern-operator and alpha-similar.

 src/cairo-gl-private.h |    1 -
 src/cairo-gl-surface.c |   22 +++++++++++-----------
 2 files changed, 11 insertions(+), 12 deletions(-)

commit 520945603cdbacb90b3067f24a37b6dbd2ea6808
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Jan 14 10:00:37 2010 -0800

    [gl] Remove the special-casing of acquiring a pattern surface.
    
    _cairo_pattern_acquire_surface() should do fine at it, and matches
    what cairo-drm-i915 does.

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

commit dbf9faf8232e7bf279377b5f3fc08ed210ca4e51
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Jan 13 10:33:32 2010 -0800

    [gl] Use GLSL for fill_rectangles when available.
    
    Ultimately, we want all of our paths to use shaders when they are
    exposed -- it brings us closer to GL 3.0 compatibility and it should
    reduce the work that GL drivers have to do per operation to compute
    the required hardware state.

 src/Makefile.sources   |    2 +-
 src/cairo-gl-private.h |    6 ++
 src/cairo-gl-shaders.c |  117 ++++++++++++++++++++++++++++++++++++++++++++
 src/cairo-gl-surface.c |  125 ++++++++++++++++++++++++++++++++++++++++++++++--
 4 files changed, 244 insertions(+), 6 deletions(-)

commit 57341cf5ac4d16222da27856e3a1092a473597e8
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Jan 13 14:18:06 2010 -0800

    [gl] Use ADD instead of SOURCE when making a mask for overlapping glyphs.
    
    The whole point of making the mask was to avoid overwriting one glyph
    with the data from another.  Whoops.
    
    Fixes ft-show-glyphs-positioning, text-rotate, overlapping-glyphs,
    clip-text.

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

commit 6e0a63102e7e2d3fa3d5c993f2b94a2d6e40bdd8
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Jan 13 14:06:23 2010 -0800

    [gl] Clear the current_target cache when binding a framebuffer in creation.
    
    Failing to do so meant that we might not re-bind the framebuffer to
    the correct one if we didn't follow up surface creation with drawing
    to it.
    
    Fixes many testcases.  Thanks to T. Zachary Laine for tracking down
    that the current_target was the source of these issues.

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

commit ad0f4bee19b214b96fb07a45d1f059b362afee0f
Author: T. Zachary Laine <whatwasthataddress@gmail.com>
Date:   Thu Jan 7 17:24:31 2010 -0600

    [gl] Clear the is_clear flag on the temporary glyph mask we create.
    
    Normally is_clear is cleared by the caller of one of the 5 basic
    entrypoints, but in this temporary surface usage nobody else can do it
    for us.
    
    Fixes ft-show-glyphs-table, user-font-rescale, and select-font-face.

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

commit 384e50d858e9eec670f764c758fb3aa09b56caed
Author: T. Zachary Laine <whatwasthataddress@gmail.com>
Date:   Wed Jan 13 15:06:24 2010 -0600

    [gl] Removed repeated lines of source
    
    The two removed lines are redundant with code a few lines above them.

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

commit 515ccb63a67c88ddb2bc5adfd018cae55bc93185
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Jan 11 16:04:21 2010 -0800

    [gl] Fix the glyph cache full flush to really try again.
    
    Previously, the initial error handling would dump through to software
    fallback instead of retrying in the following code.

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

commit 4aae4bfa8f28a470ab18575670563ad28374e445
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 12 17:10:04 2010 +0000

    test: Fix typo in path-stroke-twice reference image
    
    Sigh. I committed the reference image with the name
    path-stroke-twice-ref.png.

 test/path-stroke-twice-ref.png |  Bin 206 -> 0 bytes
 test/path-stroke-twice.ref.png |  Bin 0 -> 206 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 74ea4c908067f5579b51d3dbaea387da8f343671
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 12 17:00:25 2010 +0000

    path: Do not remove anti-parallel line segments in case we are stroking
    
      Bug 26010 - cairo_line_to optimizes away path segments
      http://bugs.freedesktop.org/show_bug.cgi?id=26010
    
    As exercised by path-stroke-twice, we incorrectly optimise away a line
    segment if the path doubled back upon itself. This is very reminiscent
    of the optimisation bug for replacing curve-to with line-to.

 src/cairo-path-fixed.c    |    5 ++++-
 src/cairo-slope-private.h |    7 +++++++
 2 files changed, 11 insertions(+), 1 deletions(-)

commit a5dd5a6069c0d7435260a954d8d98483f5fbcc1c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jan 12 16:32:09 2010 +0000

    test: Add path-stroke-twice
    
    Exercises a bug found by alois@astro.ch, whereby we inadvertently remove
    a line segment when the path doubles back upon itself.
    
      Bug 26010 - cairo_line_to optimizes away path segments
      http://bugs.freedesktop.org/show_bug.cgi?id=26010

 test/Makefile.am                  |    2 +
 test/Makefile.sources             |    1 +
 test/path-stroke-twice-ref.png    |  Bin 0 -> 206 bytes
 test/path-stroke-twice.c          |   54 +++++++++++++++++++++++++++++++++++++
 test/path-stroke-twice.ps.ref.png |  Bin 0 -> 197 bytes
 5 files changed, 57 insertions(+), 0 deletions(-)

commit 4204605813d93e7e2f0d8761e90a6dd6b8089dcb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 8 11:58:15 2010 +0000

    type1: Destroy the output stream.
    
    mpsuzuki spotted that the output stream for the subset was not being
    destroyed on the error path - on closer inspection, it wasn't destroyed
    along the normal path either and may never have been correctly
    initialised to NULL on an earlier error.
    
    Reported-by: mpsuzuki@hiroshima-u.ac.jp

 src/cairo-type1-subset.c |   28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)

commit 41a24d822ac094f0841ba0c92ca86448ad062def
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 7 11:58:01 2010 +0000

    trace: Correctly encode octal values.
    
    How embarrassing.

 util/cairo-trace/trace.c |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

commit 3ae9d04c6ddd311ffab91170fb9342e37c5530a8
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jan 1 20:13:33 2010 +0200

    [stroker] Fix off-by-one memory allocation in _tessellate_fan().
    
    The number of points in a triangle fan was miscomputed because
    it was computing the number of line segments rather than points
    in the fan.  Now we include the final point of the fan correctly
    in the count.
    
    This fixes https://bugs.webkit.org/show_bug.cgi?id=33071 as
    reported by Benjamin Otte.  A derived test case was not added
    to the cairo test suite since the bug is difficult to trigger in
    a reliable way which causes visible results (as opposed to
    silent heap corruption.)
    
    The easiest way of triggering the bug is to stroke a line
    using a large line width and round caps or joins.

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

commit a0ea0b63fdd38a73d6696da5cd4800d9a7289240
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 30 16:21:50 2009 +0000

    arc: Just emit a line-to if radius is zero.
    
    In order to be consistent with the semantics of cairo_arc() using a
    radius of 0 should simply degenerate into a line-to.
    
    Reported-by: Benjamin Berg

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

commit 21560b3ec6d015004867207c5bdd90061b8a5d80
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Fri Dec 11 10:29:12 2009 +0100

    [trace] Fix compilation when FreeType is disabled
    
    cairo-trace needs some headers which are missing if freetype is
    not enabled. Adding them explicitly fixes compilation.

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

commit 393d2d9c9199c368916fb5412abaac163f57ff86
Author: Tim Janik <timj@gtk.org>
Date:   Mon Dec 28 13:34:43 2009 +0100

    Fixed documentation typo.

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

commit e2d75203c515f9740a8e0e9779391de0a1a54b07
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Nov 29 15:56:26 2009 +0200

    [dirty] Add more missing surface dirtying notifications.
    
    Now that the image surface actually cares about
    cairo_surface_mark_dirty() we're hitting cases where
    we've forgotten to mark surfaces dirty.

 boilerplate/cairo-boilerplate.c            |    1 +
 src/cairo-xlib-surface.c                   |    1 +
 util/cairo-script/cairo-script-operators.c |    2 ++
 3 files changed, 4 insertions(+), 0 deletions(-)

commit b76565d2f4a2510aabada4cef968b9b597bbef09
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Nov 29 15:40:30 2009 +0200

    [test] Don't use uninitialised data in surface-source.c
    
    The draw_pattern() function assumed the incoming surface
    was clear, but it's not.  Explicitly clear the surface first.

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

commit e09b754fdd43206e1668812be4ff11d25188148c
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Nov 29 01:11:29 2009 +0200

    [gstate] Change dash offset normalisation to preserve offsets in range.
    
    We have a test case get-and-set which wants to see whatever it puts
    into a cairo_t come back out again, but at the same time cairo-gstate
    wants to range reduce the dash offset it's given to a sane range.
    This patch changes the range reduction algorithm to always normalize
    to a non-negative dash offset and not touch dash offsets which are
    already in range.

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

commit b394240941dffa263776a62cf42dc9b7e477f7a2
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Nov 29 02:48:23 2009 +0200

    [test] Add missing mark_dirty() calls to test cases.
    
    A recent optimisation has added a flag to the image
    surface which is used to track whether the surface
    is clear or not.  This makes it imperative that clients
    call cairo_surface_mark_dirty() if they use cairo to
    allocate their pixel buffers and then proceed to
    initialize them without telling cairo about it.

 test/a1-mask.c        |    1 +
 test/large-source.c   |    2 ++
 test/user-font-mask.c |    1 +
 3 files changed, 4 insertions(+), 0 deletions(-)

commit 9ddf14cfd5c3bf0cf507cfc82b192f5c46f66f9a
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 29 10:40:18 2009 +1030

    PDF: Don't specify colorspace in JPEG2000 image dictionary
    
    PDF uses the colorspace specified in the JPEG2000 image.

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

commit d58560bda8361bd25f1b2207ecfab4b331601045
Author: Benjamin Otte <otte@gnome.org>
Date:   Fri Nov 27 21:04:55 2009 +0100

    Satisfy make check

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

commit 16fffc5c05857896c03decdcebff7f1b5e582390
Author: Benjamin Otte <otte@gnome.org>
Date:   Fri Nov 27 18:13:45 2009 +0100

    Apply device transform in surface wrapper

 src/cairo-surface-wrapper.c |   56 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 46 insertions(+), 10 deletions(-)

commit 02d7e123d640d62db46ef03d7faecbc7598444e1
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Nov 27 23:11:56 2009 +1030

    PDF: Remove extraneous \n from end of jpeg/jp2 data
    
    PDF requires a '\n' between the end of stream data and the "endstream"
    that is not included in the stream length. Ensure this is always added
    in _close_stream where it is not included in the stream length.
    
    Previously the jpeg/jp2 embedding functions were adding the '\n'. This
    resulted in the '\n' becoming part of the stream data.

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

commit 4fc7bdaed651a5c19eb89dddd88808468e0e7eb8
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Thu Nov 26 21:14:20 2009 +1030

    PS: Add some missing pdf-operators flushes

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

commit 3f0c9afa9760a90065c67927c63770f9bb8abe99
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Nov 25 15:57:46 2009 +0100

    [clip] Don't ignore outermost clip when it clips everything
    
    Fixes testcases clip-stroke-no-op and clip-fill-no-op added in
    0d8a04ef47426d87c7932f308a831e36b4ef7683

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

commit 0d8a04ef47426d87c7932f308a831e36b4ef7683
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Nov 25 10:48:39 2009 +0000

    test: Add cases to exercise clipping after no-ops
    
    Whilst investigating:
    
      Bug 31788: SVG <line> with y1 == y2 and both with fractional
                 part don't render
      https://bugs.webkit.org/show_bug.cgi?id=31788
    
    I found that it can be reduced to a no-op clip following a no-op stroke
    or fill. These conditions are exercised here and are shown to be a bug
    introduced in the 1.9.x development series.

 test/Makefile.am               |    2 +
 test/Makefile.sources          |    2 +
 test/clip-fill-no-op.c         |   66 ++++++++++++++++++++++++++++++++++++++++
 test/clip-fill-no-op.ref.png   |  Bin 0 -> 152 bytes
 test/clip-stroke-no-op.c       |   66 ++++++++++++++++++++++++++++++++++++++++
 test/clip-stroke-no-op.ref.png |  Bin 0 -> 152 bytes
 6 files changed, 136 insertions(+), 0 deletions(-)

commit 26e9f149063b9e1fdb54fc54fccbefdf04a68190
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Nov 10 23:09:56 2009 +0100

    Improve stroking of densely dashed styles
    
    Add some auxiliary functions to cairo-stroke-style to compute
    properties of the dashed patterns (period, "on" coverage) and to
    generate approximations when the dash pattern is sub-tolerance.
    These functions are used in cairo-path-stroke to simplify dash
    patterns stroked by cairo.
    Fixes dash-infinite-loop
    See http://bugs.freedesktop.org/show_bug.cgi?id=24702

 src/cairo-path-stroke.c  |   24 +++++++--
 src/cairo-stroke-style.c |  119 ++++++++++++++++++++++++++++++++++++++++++++++
 src/cairoint.h           |   20 ++++++++
 3 files changed, 157 insertions(+), 6 deletions(-)

commit 9c24288c820069e80b0feb5e99ece4c89e92c0c6
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Nov 11 00:09:08 2009 +0100

    Revert "[test] Reorder dash-infinite-loop to not hit a runaway allocation."
    
    The infinite loop problem in _cairo_stroker_dash_start is solved by
    commit ee02f3484899527380df94c00f40da87f41660ea, so hitting that
    problem is not possible anymore and dash-infinite stroke always
    hit the memory intensive loops.
    This reverts commit 29432d3d32bc84ec4a2e1815a84e4ac2089138fe.

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

commit cc2d2630669b084ec43e415d2806d94af00cf56c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Nov 10 22:58:59 2009 +0100

    Improve stroke offset computation
    
    The stroke offset was forced to be positive because stroking code
    wants to be able to decrement it until it finds the first dash to be
    drawn. This can lead to long (almost infinite) loops if the offset is
    positive but huge compared to the total length of the dash pattern.
    Computing the offset this way guarantees that it's always the smallest
    non-negative equivalent offset.

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

commit e436a57c22f2c2a87404cac27e2d5e3c404f8bf9
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Nov 10 13:29:28 2009 +0100

    Fix odd length dashing with negative offset
    
    When computing an equivalent offset, a wrong total dash length was
    used when the dash elements were odd and more than 1.
    Doubling the total dash length whenever they are odd is needed to
    correctly compute the new offset.
    Fixes dash-offset.

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

commit b1a76394655793fd698a1281b00a3d049f9e70f5
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Nov 10 13:09:50 2009 +0100

    Add dash-offset test
    
    Stroking a dash pattern of odd length with a negative offset is broken
    (except when the pattern is composed by a single dash).

 test/Makefile.am         |    1 +
 test/Makefile.sources    |    1 +
 test/dash-offset.c       |   95 ++++++++++++++++++++++++++++++++++++++++++++++
 test/dash-offset.ref.png |  Bin 0 -> 794 bytes
 4 files changed, 97 insertions(+), 0 deletions(-)

commit 7d8788b4ba5ae335a7bb77bd09e7ebd20376f632
Author: Robert O'Callahan <robert at ocallahan.org>
Date:   Mon Nov 9 18:58:59 2009 +0100

    [quartz] Cleanup fallback source
    
    Remove the transformation code as it's useless and confusing.
    The clipbox was transformed in a wrong way if the CTM
    was not the base one, otherwise the transformation did nothing.
    As long as _cairo_quartz_setup_fallback_source is only called
    with the base CTM, no transformation needs to be performed on the
    clipbox.
    Patch by Robert O'Callahan, see Mozilla bug #507939.

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

commit 248090e52b02f2b2dc424c6073489df32632b9d1
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Nov 9 21:38:00 2009 +0100

    [quartz] Fix compositing operators
    
    Fallback on SATURATE (since quartz doesn't support it) and on
    blending operators (to be implemented using CGContextSetBlendMode,
    after its availability has been assessed).
    Workaround the different behaviour of quartz operators on alpha
    masks.
    Fixes text in clip-operator and clip-text, blend modes in
    extended-blend, extended-blend-alpha, saturate in operator,
    operator-alpha and surface-pattern-operator.
    Changes the output of operator-alpha-alpha, but to really fix it
    pure-alpha surfaces needs to be treated as alpha masks and not as
    greyscale images.

 src/cairo-quartz-surface.c |  182 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 140 insertions(+), 42 deletions(-)

commit d44414191a685a23fd48bb32826366dfd113e1e5
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Nov 9 14:21:40 2009 +0100

    [quartz] Fix source-unbounded compositing of surface sources
    
    Surface sources were not respecting EXTEND_NONE when composited
    because the part outside of the surface rectangle was not changed.
    To correctly extend the source, it's sufficient to composite a
    transparent rectangle with a hole in the region covered by the surface.
    Fixes clip-unbounded and operator-source. Changes the output of
    surface-pattern-operator.

 src/cairo-quartz-surface.c |   62 ++++++++++++++++++++------------------------
 1 files changed, 28 insertions(+), 34 deletions(-)

commit 7ef611a67a2a68d0a50e2191804a8ef137c78b33
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Nov 9 20:17:35 2009 +0100

    [quartz] Fix stroking with unbounded operator
    
    Stroking was not fixed up correctly when the stroke trasform
    was not the identity and when the stroked path was dashed.
    Instead of building a mask image and clearing through it
    (forgetting to use the CTM and the dash setting), the code now
    simply fills the outside of the stroke with tranparent black.
    Additionally this commit moves the CTM composition so that the invocation
    of _cairo_quartz_setup_source is always done with the base CTM.
    This commit changes the result of clip-stroke-unbounded (the clip
    mask is now correctly aligned to the stroked path).

 src/cairo-quartz-surface.c |   36 +++++++++++++-----------------------
 1 files changed, 13 insertions(+), 23 deletions(-)

commit 577ac4fc6d810cae7ff6d460fdea1886cd97258c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Nov 9 14:24:13 2009 +0100

    [quartz] Fix implied colour of alpha-only surface sources
    
    If a fill colour was set, an alpha-only surface source would
    have used that colour instead of black.

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

commit 8b25e4a7fd839ac399d14460d2596037134c9801
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Oct 19 18:38:57 2009 +0200

    [quartz] Improve unbounded operators fixup
    
    Don't allocate a colorspace and use a 16-bytes aligned stride and
    an alpha-only image for the rendering of the fixup mask.

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

commit ed8bdcd59863964a3eb9c49ca1a9bfd5f544350c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Mon Oct 19 17:33:10 2009 +0200

    [quartz] Improve A8 image handling
    
    A8 images were cosidered grayscale, whereas they should behave like
    transparency mask. They are now alpha-only images and the stride is
    16-bytes aligned, as suggested.
    Fixes alpha-similar and mask-transformed-similar. Makes the patterns
    behave (as expected) as masks in surface-pattern-operator.
    Affects the output of operator-alpha-alpha, but the result is not
    correct because of wrong compositing.

 src/cairo-quartz-surface.c |   21 +++++++++------------
 1 files changed, 9 insertions(+), 12 deletions(-)

commit b32695c248b08289ce431d5f2fdab5205219c203
Author: Robert O'Callahan <robert at ocallahan.org>
Date:   Tue Oct 20 16:07:52 2009 +0200

    [quartz] Fix gradient pattern painting
    
    CTM was changed and not restored when painting gradients.
    Fixes the alignment of surface patterns in surface-pattern-operator.
    Patch by Robert O'Callahan, see Mozilla bug #507939.

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

commit 1ce096657b2d38956e3229042f87aea42b0d0d8c
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Nov 3 22:51:29 2009 +0100

    Fix compilation on MacOS X
    
    Enable "ld_preload" (DYLD_INSERT_LIBRARIES + DYLD_FORCE_FLAT_NAMESPACE)
    and build cairo-trace as a library instead of a module to make it
    work also on MacOS X.

 configure.ac                    |   17 ++++++++++++++++-
 util/cairo-trace/Makefile.am    |   22 +++++++++++-----------
 util/cairo-trace/cairo-trace.in |    6 +++++-
 util/cairo-trace/trace.c        |    2 +-
 4 files changed, 33 insertions(+), 14 deletions(-)

commit c181f9e9aeac375eed07aaab58d177e3476d5117
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sat Nov 7 19:29:30 2009 +0100

    Add new operator-alpha-alpha test
    
    Compositing of alpha-only sources is not throughly tested and
    as a consequence the misbehaviour of some backends is not
    shown by the test suite.
    
    [ickle: Added XFAILs for pdf, ps, svg.]

 src/cairo-xcb-surface.c                 |    4 -
 test/Makefile.am                        |    4 +
 test/Makefile.sources                   |    1 +
 test/operator-alpha-alpha.c             |  166 +++++++++++++++++++++++++++++++
 test/operator-alpha-alpha.pdf.xfail.png |  Bin 0 -> 3749 bytes
 test/operator-alpha-alpha.ps.xfail.png  |  Bin 0 -> 1338 bytes
 test/operator-alpha-alpha.ref.png       |  Bin 0 -> 3441 bytes
 test/operator-alpha-alpha.svg.xfail.png |  Bin 0 -> 838 bytes
 8 files changed, 171 insertions(+), 4 deletions(-)

commit cee3a6169bdf7f64c126c487b443dcb7a9f0586a
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 8 21:52:06 2009 +1030

    Type1-subset: Append "cleartomark" operator for binary fonts that don't include it
    
    Type 1 fonts embedded in PDF may omit the fixed-content portion of the
    font that contains the "cleartomark" operator.

 src/cairo-type1-subset.c |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

commit d962d6bae2681ea1f3c9533a83c8902d76e81c6a
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 8 21:46:16 2009 +1030

    PDF: Include Type 1 fixed-content portion in the embedded font
    
    Some fonts may contain additional PostScript code after the
    cleartomark.

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

commit ac59c7580894fc5fd424f7f6f8c1532d15048566
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Nov 8 21:38:58 2009 +1030

    Type1-subset: Check for binary eexec data
    
    Type 1 fonts embedded in PDF have the the encrypted portion in binary
    but the existing check for binary only works for Type 1 fonts in PFB
    format.
    
    Add an additional check based on the first 4 characters of eexec data.
    The Type 1 specification gurantees that at least one of the first 4
    bytes of ciphertext is not an ASCII Hex character.

 src/cairo-type1-subset.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

commit a4a59be600cbe17f43afa20422f9d05f3a5d5b52
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sat Nov 7 14:36:49 2009 +1030

    Type 1 subset: Don't add a new line when in binary mode
    
    At the end of the private dictionary a new line is appended so that
    the trailing zeros will not exceed 80 columns. In hex mode (used for
    PS embedding) extra white space is harmless as it is ignored when
    parsing the ascii hex encoded data. But in binary mode (used for PDF
    embedding) the new line must not be added as it corrupts the binary
    data.
    
    https://bugs.launchpad.net/ubuntu/+source/cups/+bug/419143

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

commit 9775f44436ffaf54931614d1867bcb7d147acd06
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 5 10:13:34 2009 +0000

    AUTHORS: Add Andrea Canciani

 AUTHORS |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit d51915f873da8d40740a908c86f02e972e358be9
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Wed Nov 4 16:15:48 2009 +0100

    xlib: Fix double free
    
    Both _cairo_xlib_call_close_display_hooks and _cairo_xlib_screen_destroy
    invoke _cairo_xlib_screen_close_display, which frees all the cached
    GCs, but (if HAS_ATOMIC_OPS is undefined) doesn't mark them as freed,
    thus freeing them agin upon the second invocation.

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

commit 7c1424a315b677ca119d11b7ced1d4c969dde568
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Sun Oct 18 08:59:33 2009 +0200

    quartz: Fix compilation
    
    The function _cairo_image_surface_create_for_content does not exist.
    The correct name of the function is instead _cairo_image_surface_create_with_content.

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

commit 8a10c25c3f4036d17e24852e7dc970fa06fcb4af
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Nov 5 10:02:54 2009 +0000

    test: Tweak Benjamin's xcomposite-projection
    
    Include Benjamin's advice on how to make the bug more visible inline
    with the code.

 test/xcomposite-projection.c |   69 +++++++++++++++++++++++++++++-------------
 1 files changed, 48 insertions(+), 21 deletions(-)

commit a9f37953c71e16f65122097462e51b035783a965
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Nov 4 13:59:58 2009 +0100

    [xlib] Use correct number when checking if points are out of range

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

commit aa1f245ea313a2f1f0dda3994f5b48073b0c385d
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Nov 4 13:56:15 2009 +0100

    [test] Add "target=raster" to test
    
    The test isn't useful on vector backends and fails there due to
    antialiasing issues.

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

commit 52afe9c77f2f54372fefeca50321a27e8dda0f63
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Nov 4 11:15:57 2009 +0100

    [xlib] Fix new Composite test
    
    When the reference point was tirggering _line_exceeds_16_16() and got
    adjusted, the code failed to compute the srcX and srcY arguments for the
    call to XRenderCompositeTrapezoids() correctly and caused the resulting
    source image to be misaligned.

 src/cairo-fixed-private.h |    9 +++++++++
 src/cairo-xlib-surface.c  |   22 +++++++++++-----------
 2 files changed, 20 insertions(+), 11 deletions(-)

commit 84bbf179c375622d2c7b4e21b1b8ce189b5a18f2
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Nov 4 11:06:57 2009 +0100

    [test] Add a test exposing bugs in XRenderComposite
    
    This test fills a slightly rotated surface slightly above the 0 line.
    This hits some corner cases in the XRenderComposite path.
    I discovered these issues while playing with video rendering onto the
    canvas in HTML5 (both Webkit and Mozilla have this problem).
    I used CAIRO_ANTIALIAS_NONE and a single-color source in the test to get
    rid of aliasing issues in the output images. This makes some issues
    slightly less visible, but still fails for all of them. If you want to
    get a clearer view, disable it and use romedalen.png instead - it has
    the same size as the red surface.
    
    (At least) 3 bugs are at work here:
    - if _line_exceeds_16_16() triggers for the reference point, the
      source surface will be misaligned.
    - the intel driver seems to have an off-by-one bug on my i945 when
      positioning the source surface, causing black seams at the top
      (not visible in the test unless using romedalen.png) and on the left
      of the image.
    - My Xvfb fails completely in picture up/download in the xlib-fallback
      path.

 test/Makefile.sources              |    1 +
 test/xcomposite-projection.c       |   81 ++++++++++++++++++++++++++++++++++++
 test/xcomposite-projection.ref.png |  Bin 0 -> 1112 bytes
 3 files changed, 82 insertions(+), 0 deletions(-)

commit 9b42b6156d9916e64e19f2ccb0b43f4d1df72e79
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 2 12:50:45 2009 +0000

    build: Add -pthread to real_pthread_CFLAGS

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

commit 3eecf2f60c85e0195360ff3c3a54d58ceaa4a6f1
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Nov 2 13:20:25 2009 +0100

    sphinx: Add required pthread libs
    
    Try again, this time for real hopefully.

 configure.ac                  |    2 +-
 util/cairo-sphinx/Makefile.am |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 837eb577b4707e447fafb0dfca378ecf4ea3fda5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 2 11:56:29 2009 +0000

    sphinx: Add required pthread libs
    
    Switching to pthread-stubs broke the build for sphinx on unbroken
    platforms [those that do not unnecessarily link against -lpthreads].

 configure.ac                  |    7 +++++++
 util/cairo-sphinx/Makefile.am |    5 +++--
 2 files changed, 10 insertions(+), 2 deletions(-)

commit 942a15ba9e85fa3297ad6e65270928ad3c1c0a42
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Nov 2 12:51:14 2009 +0100

    [test] Update upscale test to expose an Xlib failure
    
    By filling the background with grey, we can see that Xlib fills areas
    with black that it shouldn't. Xlib therefore now fails this test.

 test/surface-pattern-scale-up.c           |    4 +++-
 test/surface-pattern-scale-up.pdf.ref.png |  Bin 2793 -> 3482 bytes
 test/surface-pattern-scale-up.ps2.ref.png |  Bin 943 -> 913 bytes
 test/surface-pattern-scale-up.ps3.ref.png |  Bin 943 -> 913 bytes
 test/surface-pattern-scale-up.ref.png     |  Bin 4061 -> 4017 bytes
 5 files changed, 3 insertions(+), 1 deletions(-)

commit 19c411a5b8b84d31516d9c85642ad55ef5d29aba
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 30 07:58:45 2009 +0000

    path: Skip any secondary degenerate line-to segments.
    
    Only the very first line-to following a move-to can have any
    significance if degenerate whilst stroking, so skip all others.
    In other words,
    
      0 0 m 0 0 l stroke
    
    produces a capped degenerate path (i.e a dot),
    
      0 0 m 0 0 l 0 0 l stroke
    
    produces the same degenerate stroke, and
    
      0 0 m 0 0 l 1 0 l stroke
    
    produce a horizontal line.

 src/cairo-path-fixed.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

commit 23bcf91748c4bb04c16e503b913da3bfc237463f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 30 07:49:56 2009 +0000

    path: Misclassification of rectilinear after degenerate line-to
    
    Malte Nuhn reported hitting an assertion:
    
      cairo-path-stroke.c:1816: _cairo_rectilinear_stroker_line_to: Assertion `a->x == b->x || a->y == b->y' failed.
      http://bugs.freedesktop.org/show_bug.cgi?id=24797
    
    when stroking an apparently simple path:
    
      0 8.626485 m
      0 8.626485 l
      5.208333 2.5 l
      10.416667 2.5 l
      15.625 2.5 l
      20.833333 2.5 l
      26.041667 2.5 l
      31.25 2.5 l
      36.458333 2.5 l
      41.666667 2.5 l
      46.875 2.5 l
      52.083333 2.5 l
      57.291667 2.5 l
      62.5 2.5 l
      67.708333 2.5 l
      72.916667 2.5 l
      78.125 2.5 l
      83.333333 2.5 l
      88.541667 2.5 l
      93.75 2.5 l
      98.958333 2.5 l
      104.166667 2.5 l
      109.375 2.5 l
      114.583333 2.5 l
      119.791667 2.5 l
      125 2.5 l
      stroke
    
    which upon reduction becomes:
    
      0.000000 8.625000 m 5.207031 2.500000 l 125.000000 2.500000 l stroke
    
    The bug is that after spotting a repeated line-to we move the previous
    end-point without reclassifying the path, hence we miss the
    non-rectilinear step.

 src/cairo-path-fixed.c |  101 ++++++++++++++++++++++++-----------------------
 1 files changed, 52 insertions(+), 49 deletions(-)

commit 600dd833983bd85bf8aea487393ce156abb622bd
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Sep 28 19:14:46 2009 +0930

    Provide a builtin implementation of isspace() and isdigit()
    
    The glibc versions are slow in utf8 locales.

 src/cairo-output-stream.c |    7 +++----
 src/cairo-pdf-operators.c |    6 ++----
 src/cairo-type1-subset.c  |   16 +++++++---------
 src/cairoint.h            |   16 ++++++++++++++++
 4 files changed, 28 insertions(+), 17 deletions(-)

commit f571356d346565cae34f08d12c584c4bd40921d6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 27 20:27:09 2009 +0000

    xlib: Set has_component_alpha = FALSE for gradient Pictures
    
    Whilst creating the xlib surface wrapper for gradient Pictures, the
    corresponding attributes require ComponentAlpha disabled.

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

commit 1a80cd2aa00b232a9a2192a85d6264e44ffcbd69
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 26 11:05:38 2009 +0000

    scaled-font: Fix documentation examples with incorrect derefs
    
    Bug 24730 -- New: misleading use cases in cairo_scaled_font_text_to_glyphs's docs
    http://bugs.freedesktop.org/show_bug.cgi?id=24730
    
    An apparent copy'n'paste error from the code which has to deal with
    indirect pointers crept into the documentation for the same functions.

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

commit f648fcd2f91ea5c9ec318c2c0573ee82ac8c0ac9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 26 11:02:16 2009 +0000

    gitignore: Add forgotten cairo-perf-print

 perf/.gitignore |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 6911ba2f76d4ccdf228c029e2719461a72848824
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 26 11:01:01 2009 +0000

    perf: Fix comparisons
    
    The sort order was unstable resulting in incorrect ordering dependent
    upon libc version.

 perf/cairo-perf-diff-files.c |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

commit f955a4cba7784f97ef1dd978158e98176e03baf0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 25 11:04:17 2009 +0000

    wideint: Protect 64_32_div for non-HAVE_UINT16_T systems
    
    Peter Clifton spotted that we failed to properly wrap
    _cairo_int64_32_div() for systems without a native 64 bit type.

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

commit c701d7813b6d116c9db53f63f791928a407499c7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 23 14:42:48 2009 +0100

    [pattern] Compute zero extents for empty patterns
    
    If the pattern is for example a repeating 0x0 image, then treat it as
    having zero extents.
    
    This should workaround the bug presented here:
    
      https://bugs.freedesktop.org/show_bug.cgi?id=24693
      Attached PDF crashes evince with a Floating point exception

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

commit 43a775f60da57206b194039cd5d8b6a735284c45
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Oct 22 02:13:36 2009 +0300

    [meta] Rename cairo_meta_surface_t to cairo_recording_surface_t.
    
    The new name is more descriptive than the rather opaque meta surface.
    Discussed with vigour on the mailing list and #cairo:
    
    http://lists.cairographics.org/archives/cairo/2009-July/017571.html

 NEWS                                               |    7 +
 boilerplate/Makefile.win32.features                |   14 +-
 boilerplate/cairo-boilerplate-pdf.c                |    6 +-
 boilerplate/cairo-boilerplate-ps.c                 |    8 +-
 boilerplate/cairo-boilerplate-svg.c                |    8 +-
 boilerplate/cairo-boilerplate-test-surfaces.c      |    2 +-
 boilerplate/cairo-boilerplate-win32-printing.c     |    2 +-
 boilerplate/cairo-boilerplate.c                    |   46 +-
 boilerplate/cairo-boilerplate.h                    |    2 +-
 build/Makefile.win32.features-h                    |    2 +-
 configure.ac                                       |    2 +-
 doc/public/tmpl/cairo-surface.sgml                 |    2 +-
 perf/cairo-perf-micro.c                            |    4 +-
 perf/cairo-perf-trace.c                            |    4 +-
 src/Makefile.sources                               |    4 +-
 src/Makefile.win32.features                        |   14 +-
 src/cairo-analysis-surface.c                       |   48 +-
 src/cairo-meta-surface-private.h                   |  171 ---
 src/cairo-meta-surface.c                           | 1096 --------------------
 src/cairo-paginated-private.h                      |    6 +-
 src/cairo-paginated-surface-private.h              |    4 +-
 src/cairo-paginated-surface.c                      |   92 +-
 src/cairo-pattern.c                                |    2 +-
 src/cairo-pdf-surface.c                            |   56 +-
 src/cairo-ps-surface.c                             |   42 +-
 src/cairo-recording-surface-private.h              |  171 +++
 src/cairo-recording-surface.c                      | 1096 ++++++++++++++++++++
 src/cairo-scaled-font.c                            |   28 +-
 src/cairo-script-surface.c                         |   42 +-
 src/cairo-script.h                                 |    4 +-
 src/cairo-surface.c                                |   58 +-
 src/cairo-svg-surface.c                            |   46 +-
 src/cairo-tee-surface.c                            |    6 +-
 src/cairo-type3-glyph-surface.c                    |   14 +-
 src/cairo-types-private.h                          |    2 +-
 src/cairo-user-font.c                              |   42 +-
 src/cairo-vg-surface.c                             |   10 +-
 src/cairo-win32-printing-surface.c                 |   60 +-
 src/cairo-xml-surface.c                            |   32 +-
 src/cairo-xml.h                                    |    4 +-
 src/cairo.c                                        |    2 +-
 src/cairo.h                                        |   20 +-
 src/cairoint.h                                     |   12 +-
 test/Makefile.am                                   |   32 +-
 test/Makefile.sources                              |    2 +-
 test/cairo-test-trace.c                            |   48 +-
 test/cairo-test.c                                  |    6 +-
 test/meta-surface-pattern.c                        |  121 ---
 test/meta-surface-pattern.gl.argb32.ref.png        |  Bin 3130 -> 0 bytes
 test/meta-surface-pattern.pdf.argb32.ref.png       |  Bin 3908 -> 0 bytes
 test/meta-surface-pattern.pdf.rgb24.ref.png        |  Bin 3760 -> 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.svg.argb32.ref.png       |  Bin 3778 -> 0 bytes
 test/meta-surface-pattern.svg.rgb24.ref.png        |  Bin 3760 -> 0 bytes
 test/recording-surface-pattern.c                   |  121 +++
 test/recording-surface-pattern.gl.argb32.ref.png   |  Bin 0 -> 3130 bytes
 test/recording-surface-pattern.pdf.argb32.ref.png  |  Bin 0 -> 3908 bytes
 test/recording-surface-pattern.pdf.rgb24.ref.png   |  Bin 0 -> 3760 bytes
 test/recording-surface-pattern.ps2.argb32.ref.png  |  Bin 0 -> 3257 bytes
 test/recording-surface-pattern.ps2.rgb24.ref.png   |  Bin 0 -> 3873 bytes
 test/recording-surface-pattern.ps3.argb32.ref.png  |  Bin 0 -> 3257 bytes
 test/recording-surface-pattern.ps3.rgb24.ref.png   |  Bin 0 -> 3873 bytes
 test/recording-surface-pattern.quartz.ref.png      |  Bin 0 -> 4572 bytes
 .../recording-surface-pattern.quartz.rgb24.ref.png |  Bin 0 -> 4063 bytes
 test/recording-surface-pattern.ref.png             |  Bin 0 -> 3072 bytes
 test/recording-surface-pattern.rgb24.ref.png       |  Bin 0 -> 3162 bytes
 test/recording-surface-pattern.svg.argb32.ref.png  |  Bin 0 -> 3778 bytes
 test/recording-surface-pattern.svg.rgb24.ref.png   |  Bin 0 -> 3760 bytes
 test/scale-offset-similar.meta.xfail.png           |  Bin 10752 -> 0 bytes
 test/scale-offset-similar.recording.xfail.png      |  Bin 0 -> 10752 bytes
 util/cairo-fdr/fdr.c                               |    8 +-
 util/cairo-sphinx/sphinx.c                         |   38 +-
 util/cairo-trace/trace.c                           |   10 +-
 util/trace-to-xml.c                                |    4 +-
 81 files changed, 1845 insertions(+), 1838 deletions(-)

commit df357f26ff72571acb840715efa4930054d4fdbe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 16 16:48:54 2009 +0100

    Support component-alpha.
    
    Within our code base we carried a few hacks to utilize the component
    alpha capabilities of pixman, whilst not supporting the concept for our
    own masks. Thus we were setting it upon the pixman_image_t that we
    passed around through code that was blissfully unaware and indeed the
    component-alpha property was forgotten (e.g. upgrading glyph masks).
    
    The real issue is that without explicit support that a pattern carries
    subpixel masking information, that information is lost when using that
    pattern with composite. Again we can look at the example of compositing
    a sub-pixel glyph mask onto a remote xlib surface for further failure.

 src/cairo-ft-font.c              |    5 ---
 src/cairo-gl-glyphs.c            |   23 +++++++++---
 src/cairo-gl-surface.c           |   18 ++++++---
 src/cairo-gstate.c               |   17 ++++++---
 src/cairo-image-surface.c        |   55 ++++++++++++++++++++++-------
 src/cairo-pattern.c              |   22 +++++++++--
 src/cairo-pdf-surface.c          |   10 ++++--
 src/cairo-scaled-font.c          |   14 ++++---
 src/cairo-svg-surface.c          |   10 ++++--
 src/cairo-types-private.h        |   71 ++++++++++++++++++++++++++++++++++++++
 src/cairo-win32-font.c           |   10 ++---
 src/cairo-xlib-surface-private.h |    1 +
 src/cairo-xlib-surface.c         |   43 ++++++++++++++++++----
 src/cairoint.h                   |   69 +------------------------------------
 14 files changed, 234 insertions(+), 134 deletions(-)

commit f0cd20e6cec445eb627c2708c2230c8bad1b64ce
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 21 10:36:27 2009 +0100

    [gl] Do not clear internal surfaces.
    
    Create a scratch surface that will be initialised as required for
    internal use. External surfaces, i.e. those returned to the user, are
    cleared as normal.

 src/cairo-gl-surface.c |   46 +++++++++++++++++++++++++++++++---------------
 1 files changed, 31 insertions(+), 15 deletions(-)

commit 7c9ebd4a852ad709e57ed48b9610db00de79de7e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 21 09:04:30 2009 +0100

    Make the surface->is_clear logic common
    
    A nasty surprise whilst profiling is that performing redundant clear
    operations is extremely painful. We can mitigate this somewhat by
    tracking the cleared state of surfaces and skipping repeated attempts to
    clear a surface.

 src/cairo-gl-surface.c      |    2 +
 src/cairo-image-surface.c   |   47 ++----------------------------
 src/cairo-surface-private.h |    6 ++-
 src/cairo-surface.c         |   66 ++++++++++++++++++++++++++++++++++++++----
 src/cairoint.h              |    1 -
 5 files changed, 68 insertions(+), 54 deletions(-)

commit 723055722f1d9a133fe9e78bb19165f2c7be720e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 21 10:40:51 2009 +0100

    [doc] Add comments on when surfaces are cleared on construction.
    
    Or perhaps, more importantly, when the contents are left unmodified.

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

commit cef8194178b01eaa2d10c1ba8291a9a4c5a6d302
Author: Andrea Canciani <ranma42@gmail.com>
Date:   Tue Oct 20 14:37:28 2009 +0200

    [test] Add surface-pattern-operator
    
    Test the results of compositing ALPHA and COLOR_ALPHA surfaces
    with different operators.

 test/Makefile.am                                  |    4 +
 test/Makefile.sources                             |    1 +
 test/surface-pattern-operator.argb32.ref.png      |  Bin 0 -> 5217 bytes
 test/surface-pattern-operator.c                   |  117 +++++++++++++++++++++
 test/surface-pattern-operator.rgb24.ref.png       |  Bin 0 -> 1942 bytes
 test/surface-pattern-operator.xlib.argb32.ref.png |  Bin 0 -> 5171 bytes
 test/surface-pattern-operator.xlib.rgb24.ref.png  |  Bin 0 -> 1913 bytes
 7 files changed, 122 insertions(+), 0 deletions(-)

commit 710303ef15b9a1bf73b2b07b7aa51ec816d0aa07
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 19 10:42:51 2009 +0100

    [test] Update rotate-image-surface-paint
    
    Update this test case so the background is not the default border colour
    so that we spot when the backend pads out the transformed image surface.

 test/Makefile.am                              |    5 +-
 test/rotate-image-surface-paint.c             |   78 ++++++++++++++-----------
 test/rotate-image-surface-paint.pdf.xfail.png |  Bin 217 -> 358 bytes
 test/rotate-image-surface-paint.ps.ref.png    |  Bin 0 -> 236 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.ref.png       |  Bin 191 -> 220 bytes
 test/rotate-image-surface-paint.svg.xfail.png |  Bin 0 -> 387 bytes
 8 files changed, 45 insertions(+), 38 deletions(-)

commit ea39f0302a936711043aa6834ba0ab487736572b
Author: Luo Jinghua <sunmoon1997@gmail.com>
Date:   Mon Oct 19 22:21:00 2009 +0800

    atomic: correct libatomic_ops version of _cairo_atomic_int_cmpxchg
    
    AO_compare_and_swap_full() doesn't have the same semantic as
    _cairo_atomic_int_cmpxchg(). The former returns a TRUE on success
    FALSE otherwise while the later returns the atomic value.

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

commit a2254e56474fcdf5f25232812cdbef30a2b5ea60
Author: Benjamin Otte <otte@gnome.org>
Date:   Sun Oct 18 22:12:13 2009 +0200

    [gstate] Apply target device offsets to patterns immediately
    
    Previously target device offsets were applied in cairo-surface.c which
    could cause bugs when paths were taken as fallbacks, as for example
    pointed out by ade55037ffa596b690c6a1051394589f76eb1f48 and quick-fixed
    by 79190d89853958ee8252440d35a662fabf122afd. The quick-fix is now
    unnecessary and was removed.

 src/cairo-gstate.c           |    4 +++
 src/cairo-surface-fallback.c |   41 ++++-------------------------
 src/cairo-surface.c          |   59 ------------------------------------------
 3 files changed, 10 insertions(+), 94 deletions(-)

commit 4b720d56db72d314b3b7cedb05a53321b1d0adbe
Author: Benjamin Otte <otte@gnome.org>
Date:   Sun Oct 18 21:32:10 2009 +0200

    [clip] Remove non-existing functions from header

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

commit cacf9ccedffa0c804a56c76c8ab17bf81831b621
Author: Benjamin Otte <otte@gnome.org>
Date:   Sun Oct 18 21:30:22 2009 +0200

    [path] Fix compiler warnings

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

commit a70705b2ede8c0dc401f28405641e70f8a6d8d92
Author: Benjamin Otte <otte@gnome.org>
Date:   Sun Oct 18 21:30:06 2009 +0200

    [xlib] Fix compiler warnings

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

commit 96117c1212be2bf39a300a212dec85466f49f31e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Oct 17 10:36:10 2009 +0100

    [test] Add radial-gradient-source
    
    ranma42 found a bug in compositing with a radial gradient using the
    SOURCE operator with EXTEND_NONE, as exercised here.

 test/Makefile.am                           |    2 +
 test/Makefile.sources                      |    1 +
 test/radial-gradient-source.argb32.ref.png |  Bin 0 -> 272428 bytes
 test/radial-gradient-source.c              |  115 ++++++++++++++++++++++++++++
 test/radial-gradient-source.rgb24.ref.png  |  Bin 0 -> 193364 bytes
 5 files changed, 118 insertions(+), 0 deletions(-)

commit 54df07a3da2bfbbdbe2dde92ca298ac0d7b8d255
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 16 10:11:41 2009 +0100

    [surface] Don't AND in the desired content.
    
    Gah, that was a horrible mistake. It was a flawed hack to create Pixmaps
    of the correct depth when cloning patterns for blitting to the xlib
    backend. However, it had the nasty side-effect of discarding alpha when
    targeting Window surfaces. The correct solution is to simply correct the
    Pixmap of the desired depth and render a matching pattern onto the
    surface - i.e. a reversal the current acquire -> clone. See the
    forthcoming revised xcb backend on how I should have done it originally.

 src/cairo-directfb-surface.c         |    2 --
 src/cairo-gl-surface.c               |    4 +---
 src/cairo-glitz-surface.c            |    3 ---
 src/cairo-image-surface.c            |    4 ----
 src/cairo-pattern.c                  |   15 +++------------
 src/cairo-quartz-surface.c           |    1 -
 src/cairo-surface-fallback-private.h |    1 -
 src/cairo-surface-fallback.c         |    3 +--
 src/cairo-surface.c                  |   14 ++++----------
 src/cairo-xlib-surface.c             |   18 +-----------------
 src/cairoint.h                       |    4 ----
 src/test-fallback-surface.c          |    1 -
 src/test-fallback16-surface.c        |    2 --
 13 files changed, 10 insertions(+), 62 deletions(-)

commit 6a19a82efd3afe8fb8bd30e5362b247de8efe159
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 16 08:43:21 2009 +0100

    [image] Clone the format for a similar surface with identical content
    
    Honour the incoming surface format when we are asked to create a similar
    surface with identical content. The goal of
    cairo_surface_create_similar() is to create an intermediate with similar
    characteristics to the original that can be used in place of the
    original and be quick to copy to the original. Matching the format for
    the same content, ensures that the blits between the two need only be a
    memcpy.

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

commit ed94d7caad6b851f6f80fa4d67441ad0387a8cd4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 16 08:38:24 2009 +0100

    [fallback] Create intermediate surface with same content.
    
    The goal is to create a similar surface with an identical format to
    maximise performance in the subsequent blit, e.g. the xlib backend could
    make the similar surface with an identical depth and so use the core
    protocol, or the image surface could indeed make an identical copy so
    that pixman only has to do a fast memcpy. As there is no direct method
    to specify such a clone, we ask the backend for a similar surface of
    identical content, and trust that the semantics are clear enough for the
    intent to obvious.

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

commit c739940137c4ffc6cc727ea30afc0e92f7ab1e80
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 15 16:24:44 2009 -0700

    Increment version to 1.9.5
    
    Just after the 1.9.4 snapshot.

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

commit ad6334b9870c63e641b531d6e910c084b587d0f9
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 15 15:33:20 2009 -0700

    Add mising images to REFERENCE_IMAGES list.
    
    Again, the kind of thing that only gets fixed at release time.
    But at least we have a nice test for this.

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

commit cdad5e10768978b11088f82858a1e6e0037dc0a7
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 15 14:58:39 2009 -0700

    Mark in-fill-empty-trapezoid as an XFAIL test.
    
    Otherwise, it was disrupting my attempts to release a snapshot, (since
    it doesn't respect CAIRO_TEST_TARGET=" " and not run like most of the
    tests do).

 test/Makefile.am               |    5 +++++
 test/in-fill-empty-trapezoid.c |    4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

commit b0f309abb33fb7e068199c941835af0217d8d1fc
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 15 14:40:22 2009 -0700

    Update version to 1.9.4
    
    In preparation for the 1.9.4 snapshot.

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

commit 3b113275f8b081685227fc073c03f64bb1a229d3
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 15 14:17:30 2009 -0700

    Remove stale references to non-existant reference images.
    
    This is just one of those things that we don't get right until
    someone tries running "make distcheck".

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

commit 37078b262a268179f8b7a3dfdc263e1a403daa7d
Author: Carl Worth <cworth@cworth.org>
Date:   Thu Oct 15 14:11:04 2009 -0700

    NEWS: Update with correct data for 1.9.4 snapshot

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

commit d5609ca04ecc5f5e3d5cef8ca0e67fa98cd653de
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Oct 15 17:47:33 2009 +0300

    [build] Check compiler flags using AC_TRY_LINK instead of AC_TRY_COMPILE.
    
    Turns out we were passing suncc warning suppression flags to gcc
    by mistake since -e<entry point> is actually a valid option for
    gcc.  This caused the -erroff=E_ENUM_TYPE_MISMATCH_ARG and other
    -erroff options to be passed to the linker.  In the normal case
    of a GNU ld linker this doesn't matter since it ignores bogus
    entry points, but the GNU gold linker replaces a bogus entry
    point with NULL.  This patch makes the CAIRO_CC_TRY_FLAG()
    check stricter by testing that the flag doesn't interfere with
    linking executables.

 build/aclocal.cairo.m4 |   19 ++++++++-----------
 1 files changed, 8 insertions(+), 11 deletions(-)

commit 79190d89853958ee8252440d35a662fabf122afd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 15 14:05:37 2009 +0100

    [surface] Avoid double application of device offset when calling fill()
    
    _cairo_surface_fallback_paint() attempts to avoid a clipped operation if
    we can convert the paint into a fill of the clipmask. However by calling
    _cairo_surface_fill() we incur a double application of device offset to
    the source, triggering various failures.
    
    Company spotted this and managed to extract an excellent minimal test
    case, test/clip-device-offset. This commit fixes that failure.

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

commit ade55037ffa596b690c6a1051394589f76eb1f48
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Oct 15 13:19:11 2009 +0100

    [test] Add clip-device-offset
    
    Exercises a bug demonstrated by WebKit with clipping + device offsets.

 test/Makefile.am                       |    2 +
 test/Makefile.sources                  |    1 +
 test/clip-device-offset.argb32.ref.png |  Bin 0 -> 175 bytes
 test/clip-device-offset.c              |   79 ++++++++++++++++++++++++++++++++
 test/clip-device-offset.rgb24.ref.png  |  Bin 0 -> 168 bytes
 5 files changed, 82 insertions(+), 0 deletions(-)

commit dac73d260a9b9a848bb97436ad84081c51629511
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 15 12:18:47 2009 +0100

    [build] Link against pthread-stubs
    
    Avoid pulling in the real pthread library if the application is single
    threaded and not using pthreads, by linking against pthread-stubs
    instead.

 build/configure.ac.features    |    1 +
 configure.ac                   |    8 +++++++-
 src/cairo-mutex-impl-private.h |    2 +-
 test/Makefile.am               |    4 ++++
 test/cairo-test-trace.c        |   10 +++++-----
 test/cairo-test.c              |    6 +++---
 util/cairo-trace/Makefile.am   |    2 +-
 7 files changed, 22 insertions(+), 11 deletions(-)

commit ef9286751d8346ecb803bfb5916581ee4dfc84db
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 13 16:10:39 2009 +0100

    [atomic] Fallback to libatomic-ops-dev
    
    Use libatomic-ops-dev in preference to mutex-based atomics, if we do not
    have the builtin atomic intrinsics available.

 build/aclocal.cairo.m4     |   10 ++++++++++
 src/cairo-atomic-private.h |   41 ++++++++++++++++++++++++++++++++++++-----
 src/cairo-surface.c        |    4 ++--
 src/cairo-xlib-private.h   |    2 +-
 src/cairo-xlib-screen.c    |   16 +++++++++-------
 src/cairo.c                |   10 +++++-----
 6 files changed, 63 insertions(+), 20 deletions(-)

commit d85eda97dd9116f51e0255b29652f4b52ba4f8e9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 13 14:14:55 2009 +0100

    [pattern] Compute extents for gradients
    
    As noted in the comments we could also compute the pattern extents for
    gradients with CAIRO_EXTEND_NONE under certain circumstances, i.e.
    radial gradients and device axis aligned linear gradients.

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

commit 3a83bc8617dae3cc2bfea862f252338463871648
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Oct 2 23:28:10 2009 +0930

    PDF: Fix regression caused by 1ae5a419
    
        Bug 24240 acroread prints error message when printing

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

commit 91a4f59f135dd42a28e14be55d1f08712c0c3097
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Oct 2 23:11:54 2009 +0930

    PDF: Fix regression caused by 1ae5a419
    
    Bug 24240 first char missing when printing a PDF.

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

commit 39284159234d5318c90fa3a72178cd3d14fe0fbb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 30 20:11:12 2009 +0100

    [boilerplate/xcb] Fix pixmap depth
    
    All the error checking, finally pointed out that I was creating a pixmap
    with the wrong depth! Oops.

 boilerplate/cairo-boilerplate-xcb.c |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

commit e9bc2180d73acc7133d715ed4380ed20fb4364c0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 30 19:50:44 2009 +0100

    [xcb] Deferred error checking.
    
    XCB avoids the dreaded abort on XError mechanism by forcing the client
    to perform deferred error checking. So do so. This allows us to combine
    the fire-and-forget rendering model with accurate error checking,
    without killing the client or mixing our errors with theirs.
    
    XCB for the win!

 boilerplate/cairo-boilerplate-xcb.c |   17 +
 src/cairo-freelist-private.h        |    5 +
 src/cairo-freelist.c                |   33 ++
 src/cairo-xcb-surface.c             |  712 +++++++++++++++++++++++------------
 4 files changed, 521 insertions(+), 246 deletions(-)

commit 8e4e0aa7ee5b4e0963409cda825705a09aae61e1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 30 17:50:09 2009 +0100

    [boilerplate/xcb] Check for connection errors during test

 boilerplate/cairo-boilerplate-xcb.c |   51 ++++++++++++++++----
 test/cairo-test.c                   |   88 +++++++++++++++++-----------------
 2 files changed, 84 insertions(+), 55 deletions(-)

commit 395555b116a497c99b9e8365a202377c344c0c45
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 30 00:37:36 2009 +0100

    [xlib] Suppress warning that should never have been.

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

commit 42ea356c0393288eea16eb5c591fa51009f85cb9
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Wed Sep 30 21:21:42 2009 +0930

    Fix truetype subset crash
    
    Bug 24213

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

commit 6809e1216119e16c5be236418dc560d2e9bf854d
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Sep 30 08:54:19 2009 +0200

    [API] Make _cairo_meta_surface_replay() private again
    
    Replaying a meta surface can be achieved by using it as a source for a
    cairo_paint() so exporting a separate API is unnecesary and confusing.
    So after consulting Chris and Carl, we decided to remove the function
    again.

 NEWS                             |    1 -
 src/cairo-meta-surface-private.h |    5 +++-
 src/cairo-meta-surface.c         |   39 ++++++++++++++++---------------------
 src/cairo-paginated-surface.c    |    4 +-
 src/cairo-script-surface.c       |    6 ++--
 src/cairo-surface.c              |    4 +-
 src/cairo-svg-surface.c          |    2 +-
 src/cairo-type3-glyph-surface.c  |    4 +-
 src/cairo-user-font.c            |    2 +-
 src/cairo-vg-surface.c           |    2 +-
 src/cairo-xml-surface.c          |    2 +-
 src/cairo.h                      |    4 ---
 test/cairo-test-trace.c          |    8 +++++-
 util/cairo-trace/trace.c         |   22 ---------------------
 14 files changed, 40 insertions(+), 65 deletions(-)

commit f8c49b4187a32b60408b23b2c2abce1778a8dc95
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 29 03:02:40 2009 +0100

    [xlib] XRequest bread crumbing
    
    Add bread crumbs in the form of NoOperations that can be parsed by
    xtrace and very useful when debugging protocol/server errors.

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

commit 1c4f61ec5068a5935eb6d5dd1d6f2c0275b70529
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 29 03:01:37 2009 +0100

    [tessellator] Invalid conversion of list head to edge.
    
    When scanning for collinear right edges, we need to check that we do not
    go beyond the end of the array.

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

commit f23ae97e307f00a79cbf2e01f9ca20da29ea87c3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 24 16:30:57 2009 +0100

    [perf] Support parsing reports from stdin

 perf/cairo-perf-compare-backends.c |   22 ++++++++++++----------
 perf/cairo-perf-report.c           |   29 +++++++++++++++++++----------
 2 files changed, 31 insertions(+), 20 deletions(-)

commit 50163a9fafa77dd1135ca5b6b03c7ec5619687c1
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Sep 29 00:23:12 2009 +0200

    [xlib] Set proper bpp when computing format from masks
    
    Fixing omission in caa9eed4646e78a62ffb49d9c4f48c0b351c7a7f

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

commit a160c8c4009e069db53bec79abd8926231de9a7f
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Sep 28 23:52:14 2009 +0200

    [xlib] Handle 24bpp formats during dithering

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

commit 9e89de813516c48baed67a4d18325971cd42cd4a
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Sep 28 23:51:14 2009 +0200

    [image] Fix masks computation for BGRx format
    
    Patch originally by Mark Kettenis

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

commit 4b2c74e28531e403a9538f20a3ace7b114f9bbae
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Sep 28 22:57:10 2009 +0930

    PS: Use standard page size names for some common sizes
    
    Some PS viewers like gv use the label in the %PageMedia DSC comment as
    the displayed page size.
    
    The page names and sizes were obtained from the list at:
    
    http://www.gnu.org/software/gv/manual/html_node/Paper-Keywords-and-paper-size-in-points.html

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

commit db5e3db0a9b218bebad6921a95d5244047050348
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Sep 25 23:07:56 2009 +0930

    PS: Add DocumentMedia/PageMedia DSC comments
    
    Provide default DocumentMedia and PageMedia DSC comments if the user
    does not specify them using cairo_ps_surface_dsc_comment(). This is
    required so that PostScript viewers such as gv use the correct page
    size.

 src/cairo-ps-surface-private.h |    1 +
 src/cairo-ps-surface.c         |   88 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 89 insertions(+), 0 deletions(-)

commit caa9eed4646e78a62ffb49d9c4f48c0b351c7a7f
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Sep 24 23:42:05 2009 +0200

    [xlib] Handle case in draw_image() where pixman format is not RGB
    
    When an image cannot be expressed as masks, its data cannot be used in
    an XImage. In that case, we use pixman to copy the image to the desired
    format.

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

commit 9f5fe6711566ee34afe210f271f1c5a061efa745
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Sep 24 22:57:39 2009 +0200

    [image] Return cairo_bool_t from _pixman_format_to_masks
    
    Return FALSE when the pixman format does not support ARGB masks. In
    particular, return FALSE for YUV formats.

 src/cairo-image-surface.c |   21 ++++++++++-----------
 src/cairoint.h            |    2 +-
 2 files changed, 11 insertions(+), 12 deletions(-)

commit 120247ac55d92d9c9b24fad45c765d16e692f355
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Thu Sep 24 23:02:38 2009 +0930

    Add EPS test
    
    This test demonstrates a regression in the EPS output since 1.8.8.
    The ps-eps.ref.eps was created with 1.8.8.

 test/Makefile.am      |    2 +
 test/Makefile.sources |    1 +
 test/ps-eps.c         |   85 +++++++++++++++++++++++++++++++++++++++++++++++++
 test/ps-eps.ref.eps   |   84 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 172 insertions(+), 0 deletions(-)

commit c8a4f486712eba4ad0ccbf5ae3b18920137d5b1b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 23 18:08:34 2009 +0100

    [image] Do not trust user supplied data to be clear
    
    Gah, more important than the whitespace was the reversal of is_clear...

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

commit 03bce099eae68643979e5742b2703b2b2e835cca
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 23 17:56:00 2009 +0100

    [image] Tweak coding style
    
    Whitespace spam.

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

commit ab558fa843accc440686f7b8eda197277a6a4eb2
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Sep 23 17:40:17 2009 +0200

    [image] Move setting of is_clear to _create_with_pixman_format()
    
    Simplifies code and ensures other users of that function don't run into
    the same bug.

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

commit 07ee9cfbf07deba228e73d26b419a4e130de24e3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 23 15:33:23 2009 +0100

    [image] Do assumption initial user data is cleared.
    
    Benjamin Otte pointed out the error of my ways that a clear on a
    cairo_image_surface_create_for_data() was not working. This is because I
    modified the image surface to skip clears when it knows the target data
    has been cleared. This flag must be reset when the user interacts with
    the surface, such as providing the initial surface data.

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

commit 9948b5180aa4312b3184d9ba46e9ad6f0d8e700c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 22 18:20:03 2009 +0100

    [test] Revamp surface-source
    
    Include a translucent region in the source that exercises the xlib bug
    that I'm trying to fix. Hmm.

 test/Makefile.am                            |   18 ++++++++----
 test/glitz-surface-source.argb32.ref.png    |  Bin 0 -> 377 bytes
 test/glitz-surface-source.ref.png           |  Bin 268 -> 0 bytes
 test/glitz-surface-source.rgb24.ref.png     |  Bin 0 -> 301 bytes
 test/image-surface-source.argb32.ref.png    |  Bin 0 -> 377 bytes
 test/image-surface-source.ref.png           |  Bin 332 -> 0 bytes
 test/image-surface-source.rgb24.ref.png     |  Bin 0 -> 301 bytes
 test/pdf-surface-source.argb32.ref.png      |  Bin 0 -> 377 bytes
 test/pdf-surface-source.ref.png             |  Bin 268 -> 0 bytes
 test/pdf-surface-source.rgb24.ref.png       |  Bin 0 -> 301 bytes
 test/ps-surface-source.argb32.ref.png       |  Bin 0 -> 377 bytes
 test/ps-surface-source.ref.png              |  Bin 268 -> 0 bytes
 test/ps-surface-source.rgb24.ref.png        |  Bin 0 -> 301 bytes
 test/quartz-surface-source.argb32.ref.png   |  Bin 0 -> 377 bytes
 test/quartz-surface-source.ref.png          |  Bin 332 -> 0 bytes
 test/quartz-surface-source.rgb24.ref.png    |  Bin 0 -> 301 bytes
 test/surface-source.c                       |   37 +++++++++++++++++++++++++-
 test/svg-surface-source.argb32.ref.png      |  Bin 0 -> 377 bytes
 test/svg-surface-source.ref.png             |  Bin 268 -> 0 bytes
 test/svg-surface-source.rgb24.ref.png       |  Bin 0 -> 301 bytes
 test/test-fallback16-surface-source.ref.png |  Bin 268 -> 0 bytes
 test/xlib-surface-source.argb32.ref.png     |  Bin 0 -> 377 bytes
 test/xlib-surface-source.ref.png            |  Bin 268 -> 0 bytes
 test/xlib-surface-source.rgb24.ref.png      |  Bin 0 -> 301 bytes
 24 files changed, 47 insertions(+), 8 deletions(-)

commit 941d3693fac831c4ce8c61cbac7c77b566b97611
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 22 14:43:45 2009 +0100

    [test] Exercise push-group-color.
    
    Hunting for a known bug in the xlib backend where it invalidly converts
    an argb32 source to rgb24. However, this does not appear to be that bug,
    but still a useful exercise nevertheless.

 test/Makefile.am                   |    2 +
 test/Makefile.sources              |    1 +
 test/push-group-color.c            |  141 ++++++++++++++++++++++++++++++++++++
 test/push-group-color.ref.png      |  Bin 0 -> 2902 bytes
 test/push-group-color.xlib.ref.png |  Bin 0 -> 2964 bytes
 5 files changed, 144 insertions(+), 0 deletions(-)

commit 30f45ce5f7d639dd5a0b60f544b3535e3bc2105d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 22 15:15:47 2009 +0100

    [gl] Handle an absent visual.
    
    If we cannot find the correct visual for the fbconfig, return an error
    instead of crashing. The difference is subtle, granted.

 src/cairo-gl-surface.c  |    8 ++++++++
 src/cairo-glx-context.c |    7 ++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

commit e74cb7fa3eb9a9bcdeb298d969b70fd99ba50f3d
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Sep 22 22:44:34 2009 +0930

    win32-printing: correct the use of the CAIRO_HAS_WIN32_FONT #ifdef
    
    it was wrapping code required for non windows fonts.

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

commit 3dd2cc8f6d84253f93affecd3022c9fe4a25d60f
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Sep 22 22:40:53 2009 +0930

    win32-printing: fix meta surface pattern regression caused by bed2701e

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

commit 7658635c654b694b516e5dd44a43611d94e91abd
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Sep 22 22:36:20 2009 +0930

    win32-printing: Allow GDI CTM with scale < 1 to be set
    
    To better support creating EMF files with the win32-printing surface,
    allow a GDI CTM with scale < 1 to be used.
    
    http://lists.cairographics.org/archives/cairo/2009-September/018110.html

 src/cairo-win32-printing-surface.c |   90 ++++++++++++++++++++++++++++--------
 src/cairo-win32-private.h          |    2 +
 2 files changed, 73 insertions(+), 19 deletions(-)

commit 19c091670302fd23a676e680308df49a4ba06687
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Sep 22 22:35:33 2009 +0930

    Make win32 fonts work in EMF files created by win32-printing

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

commit f01a54266d57763635f984982bec001a393d8aa2
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Sep 22 22:34:56 2009 +0930

    Fix compiler warnings in win32-surface

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

commit 23663e2078e34659af43bd0e62bb1fb7a94cc71e
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Sep 22 22:34:21 2009 +0930

    Fix compiler error on cygwin

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

commit 7ecd413fab7c55918c6f3c4c272b5e8b5aa89aa7
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Sep 22 22:33:14 2009 +0930

    Add WINVER defines to cairo-mutex-impl-privaye.h
    
    The WINVER defines should always be defined before including windows.h

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

commit 605ec22ab5103e16052591517f86fe558133fb8e
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Tue Sep 22 22:17:27 2009 +0930

    Use _WIN32 to check for win32 mutex
    
    Commit 535bcaa1 moved pthread after win32 to fix mingw build
    problems. However this breaks cygwin builds.
    
    On cygwin HAVE_WINDOWS_H is defined but _WIN32 is not. This was
    causing windows.h to be included which defines _WIN32. As a result the
    win32 code in cairo-misc.c was being compiled but the win32 declaration
    in cairint.h was not included.
    
    Fix this by using _WIN32 to enable the win32 mutex functions since
    _WIN32 is defined by mingw, visual C++, and winegcc, but not
    cygwin. On cygwin, posix functions are preferred as it is a unix
    emulation environment.

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

commit e00d0627494a4b15ed3b74a704695ca8b81a350e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 21 13:50:00 2009 +0100

    [xlib] Fix recent bug in unbounded trapezoids
    
    Gah! I had believed that the dst extents and the clip were correct to
    enable unbounded fixup for the unbounded trapezoids. I was wrong, so I
    need to requery the trapezoid extents. As this information is already
    known, I should update the interface to pass along all relevant
    information.

 src/cairo-surface.c      |   23 ++++++++++-------------
 src/cairo-xlib-surface.c |   32 +++++++++++++++++++-------------
 2 files changed, 29 insertions(+), 26 deletions(-)

commit 378b1e73d9f27e9b54ea01b10e588b361848d0cd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 21 03:10:53 2009 +0100

    [fallback] Special case single composite rectangle
    
    Avoid the overhead of region-from-traps extraction for the very frequent
    case of using a single (possibly clipped) rectangle with a pattern source.

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

commit 35daf95db8aa4f0c254891f180aa4996dd464a60
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 21 03:31:22 2009 +0100

    [xlib] Trim a few redundant steps when uploading glyphs
    
    Cleanup the glyph coercion routines to avoid the temporary cairo_t (as
    we can just cairo_surface_paint() directly).

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

commit 9b7c5d95055c4ea5da46c53263050d6ec1331c08
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 20 18:46:19 2009 +0100

    [xlib] Cleanse creation of similar surfaces.
    
    Reduce two nearly identical routines to one.

 src/cairo-xlib-surface.c |  197 +++++++++++++++++++++-------------------------
 1 files changed, 91 insertions(+), 106 deletions(-)

commit 878cef62b525e9f13ab2a8ab562ba8b6628aaa1f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 20 18:45:09 2009 +0100

    [xlib] Interim CAIRO_DEBUG variable to specify xrender level
    
    Use CAIRO_DEBUG=xrender-version=x.y to override what the server reports.
    Useful to test cairo's behaviour against older servers.

 src/cairo-xlib-display.c |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

commit 531e8045980c966b8e51df933721f9b86c6b1539
Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
Date:   Fri Sep 18 12:17:46 2009 -0400

    Add a description of how we compute the spline_error_squared.

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

commit f4336352405ee7c184d45a73cdd6c1a0526843db
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Sep 16 15:46:14 2009 -0400

    Set LC_ALL=C instead of LANG=C

 doc/public/check-doc-coverage.sh |    4 +++-
 doc/public/check-doc-syntax.sh   |    3 ++-
 src/check-def.sh                 |    3 ++-
 src/check-doc-syntax.sh          |    3 ++-
 src/check-headers.sh             |    3 ++-
 src/check-plt.sh                 |    3 ++-
 src/check-preprocessor-syntax.sh |    3 ++-
 7 files changed, 15 insertions(+), 7 deletions(-)

commit 56c9b2de7a2b93b2e0c59cf98326d8c0d4d508ba
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Tue Sep 15 17:26:59 2009 +0200

    Use __uint128_t and __int128_t if available
    
    GCC uses a peculiar name for a real 128-bit integer on x86-64.
    
    Speedups, xlib on a gm45
    ========================
    poppler        41246.56 -> 35102.82: 1.18x speedup
    swfdec-youtube 12623.01 -> 11936.79: 1.06x speedup
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

 build/configure.ac.system        |    2 +-
 src/cairo-wideint-private.h      |    1 +
 src/cairo-wideint-type-private.h |    6 +++
 src/cairo-wideint.c              |   91 +++++++++++++++++--------------------
 4 files changed, 50 insertions(+), 50 deletions(-)

commit ccf84a8883ebb8d2ee8f55eb53da4dfc96887de0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 15 14:22:57 2009 +0100

    [perf] Reorganise cairo-perf
    
    In preparation to creating a new hub to control performance measuring
    and reporting, move the current cairo-perf out of the way.

 perf/.gitignore                    |    3 +
 perf/Makefile.am                   |   84 +-
 perf/box-outline.c                 |  102 -
 perf/cairo-perf-cover.c            |  339 ---
 perf/cairo-perf-diff               |    2 +-
 perf/cairo-perf-micro.c            |  596 +++++
 perf/cairo-perf.c                  |  596 -----
 perf/composite-checker.c           |  114 -
 perf/dragon.c                      |  249 --
 perf/fill.c                        |  119 -
 perf/glyphs.c                      |   99 -
 perf/intersections.c               |  157 --
 perf/long-dashed-lines.c           |   71 -
 perf/long-lines.c                  |  145 --
 perf/mask.c                        |  299 ---
 perf/micro/box-outline.c           |  102 +
 perf/micro/cairo-perf-cover.c      |  339 +++
 perf/micro/composite-checker.c     |  114 +
 perf/micro/dragon.c                |  249 ++
 perf/micro/fill.c                  |  119 +
 perf/micro/glyphs.c                |   99 +
 perf/micro/intersections.c         |  157 ++
 perf/micro/long-dashed-lines.c     |   71 +
 perf/micro/long-lines.c            |  145 ++
 perf/micro/mask.c                  |  299 +++
 perf/micro/mosaic.c                |  173 ++
 perf/micro/mosaic.h                | 4387 ++++++++++++++++++++++++++++++++++++
 perf/micro/paint-with-alpha.c      |   49 +
 perf/micro/paint.c                 |   48 +
 perf/micro/pattern_create_radial.c |  103 +
 perf/micro/pythagoras-tree.c       |   91 +
 perf/micro/rectangles.c            |  118 +
 perf/micro/rounded-rectangles.c    |  141 ++
 perf/micro/spiral.c                |  349 +++
 perf/micro/stroke.c                |   97 +
 perf/micro/subimage_copy.c         |   77 +
 perf/micro/tessellate.c            |  178 ++
 perf/micro/text.c                  |   66 +
 perf/micro/twin.c                  |   56 +
 perf/micro/unaligned-clip.c        |   70 +
 perf/micro/world-map.c             |  116 +
 perf/micro/world-map.h             |  196 ++
 perf/micro/zrusin-another.h        |  668 ++++++
 perf/micro/zrusin.c                |   95 +
 perf/mosaic.c                      |  173 --
 perf/mosaic.h                      | 4387 ------------------------------------
 perf/paint-with-alpha.c            |   49 -
 perf/paint.c                       |   48 -
 perf/pattern_create_radial.c       |  103 -
 perf/pythagoras-tree.c             |   91 -
 perf/rectangles.c                  |  118 -
 perf/rounded-rectangles.c          |  141 --
 perf/spiral.c                      |  349 ---
 perf/stroke.c                      |   97 -
 perf/subimage_copy.c               |   77 -
 perf/tessellate.c                  |  178 --
 perf/text.c                        |   66 -
 perf/twin.c                        |   56 -
 perf/unaligned-clip.c              |   70 -
 perf/world-map.c                   |  116 -
 perf/world-map.h                   |  196 --
 perf/zrusin-another.h              |  668 ------
 perf/zrusin.c                      |   95 -
 63 files changed, 9414 insertions(+), 9411 deletions(-)

commit 4152cd90e25ffa9d2a3683c790bd2891a58c52de
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Sep 14 14:29:01 2009 +0300

    [autoconf] Comment on the SIZEOF_VOID__ -> SIZEOF_VOID_P workaround.
    
    Explain where the weird SIZEOF_VOID__ comes from.

 src/cairo-atomic-private.h |    2 ++
 util/cairo-trace/trace.c   |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

commit cd94bf8bf30de9aa8dfec1a06a7ef3386944c974
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Sep 14 03:41:42 2009 -0600

    [trace] Look harder for the cairo-trace.so library.
    
    On OpenBSD the convention is to not use symlinks from
    unversioned library names to versioned library names.
    This breaks cairo-trace because it looks for cairo-trace.so
    explicitly, but on OpenBSD only cairo-trace.so.0.0 is
    installed.
    
    The right thing to do is probably to source the cairo-trace.la
    file and look for a file name there somehow.  Instead this commit
    just looks for a likely looking file or symlink in the install
    directory.

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

commit a343c8c42d3adc8f52afd09bdfbbcfd5299df49e
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Sep 14 02:33:26 2009 -0600

    [trace] Don't use pthread_key_delete.
    
    On OpenBSD libc doesn't provide pthread stubs like glibc on Linux
    or newer libcs from FreeBSD.  However libX11 does provide a stubs
    for a subset of the pthread functions (formerly in libXThrStub,
    now moved into libX11 proper), but pthread_key_delete() is not
    one of the stubbed ones.  So, on OpenBSD cairo's non-linking of
    libpthread accidentally works as long as the xlib-surface is enabled,
    which is nearly always the case.
    
    This patch makes trace.c stand at the same precipice as cairo itself
    by reverting to only a subset of the pthreads functions stubbed by
    libX11.

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

commit cf0fed2191c2b5ebce8855def1dd302ccf8e039a
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 17:35:29 2009 -0600

    [build] Check for dlsym in both libdl and libc.
    
    The BSDs have dlsym() in libc rather than libdl.

 boilerplate/cairo-boilerplate.c |    4 ++--
 configure.ac                    |   12 +++++++-----
 util/cairo-trace/Makefile.am    |    6 +++++-
 3 files changed, 14 insertions(+), 8 deletions(-)

commit 1c7ac6c47addd6825c4f49f514fe3ffb708e3813
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 17:56:56 2009 -0600

    [build] Work around autoconf void* -> VOID__ name conversion bug.
    
    The autoconf shipping with OpenBSD 4.5 converts sizeof(void*)
    to SIZEOF_VOID__ rather than SIZEOF_VOID_P.  Work around that
    by defining SIZEOF_VOID_P if required.

 src/cairo-atomic-private.h |    4 ++++
 util/cairo-trace/trace.c   |    4 ++++
 2 files changed, 8 insertions(+), 0 deletions(-)

commit 12470fd7010ea0748c8dcc9014d1cd0f52f51a3b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 14 10:36:08 2009 +0100

    [configure] Setup GL CFLAGS before checking for GLX

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

commit 9c2790ccc48392bfe039626ebb383070aa18fe56
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 14 10:08:57 2009 +0100

    [build] Add a default message for when GLEW isn't built
    
    And it appears I touched the build system again and autoregenerated the
    feature headers.

 boilerplate/Makefile.win32.features |    8 --------
 build/Makefile.win32.features-h     |    1 -
 configure.ac                        |    5 +++--
 src/Makefile.win32.features         |    8 --------
 util/cairo.modules                  |    1 +
 5 files changed, 4 insertions(+), 19 deletions(-)

commit 6d4f3c40eff7d070b1c9759038444928c6754efe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 14 09:19:10 2009 +0100

    Add a private copy of GLEW
    
    This appears to be the simplest mechanism to build libglew at the moment -
    should a system copy be unavailable.  Fortunately libglew is now distributed
    under a permissive licence.
    
    If you want to pass 'make -C src check' you have to use the system copy,
    or spend quite a bit of time cairo-fying libglew.

 boilerplate/Makefile.win32.features |    8 +
 build/Makefile.win32.features-h     |    1 +
 build/configure.ac.features         |    1 +
 configure.ac                        |   19 +-
 src/Makefile.am                     |    2 +
 src/Makefile.sources                |    3 +
 src/Makefile.win32.features         |    8 +
 src/glew/GL/glew.h                  |12262 +++++++++++++++++++++++++++++++++++
 src/glew/GL/glxew.h                 | 1397 ++++
 src/glew/LICENSE.txt                |   73 +
 src/glew/glew.c                     |12180 ++++++++++++++++++++++++++++++++++
 util/cairo.modules                  |   10 +-
 12 files changed, 25955 insertions(+), 9 deletions(-)

commit 9ad26f74b0059645d865a20c387fa4bd460cabc8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 13 23:16:57 2009 +0100

    [configure] Fallback to detect OpenGL headers
    
    When not using mesa, we can not rely on a pkgconfig file, so just rely on
    the presence of the OpenGL headers instead.

 configure.ac |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

commit 71c3b2888cc81e6d55782388d14bb8d806e77d07
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 20:24:29 2009 +0300

    [win32] Sync Makefile.win32.features.
    
    Ooops.. wasn't sure if I should commit this or not.

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

commit ba21f213560fa239a02ae28af4eb1d3a6b7254e5
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 18:21:38 2009 +0100

    [trace] Don't trace internal cairo calls on Solaris.
    
    On various configurations of Solaris cairo-trace likes to trace
    internal calls to the API from within cairo and cairo-trace itself. On
    Linux the slim_hidden_proto stuff avoids this by name mangling and
    symbol alias magic, but on Solaris that doesn't work so we're left
    with either no hidden symbols at all or using normal ELF hidden symbol
    attributes, but neither of those prevent internal calls to cairo from
    being traced of course.
    
    This commit provides a per-thread entry/exit trace counter for use
    when we can't use name mangling to hide internal API calls.  As a
    side-effect it may hide actual client API calls from callback
    functions called by cairo, but such use cases ought to be rare.

 util/cairo-trace/trace.c |  465 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 327 insertions(+), 138 deletions(-)

commit f5bcb2f36e7dba9cfba5d697e1401dcd00603812
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 12:47:19 2009 +0100

    [build] Enable building cairo-trace on Solaris.
    
    Solaris supports LD_PRELOAD too!

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

commit ce8c842a70d3f23527dcbd889b022103483341f2
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 12:53:07 2009 +0100

    [trace] Make cairo-trace and its symbol-lookup automatically configured.
    
    The build shouldn't fail if we can't make our optional performance
    tools.

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

commit 2fb59a69f4509c2116f16bd6d376f35e3e2eb709
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 14:27:03 2009 +0100

    [trace] Don't rely on the constructor attribute to initialise the tracer.
    
    Use pthread_once() at cairo API entry points to initialise the library
    if required.  This side steps the issues with the __constructor__
    attribute vs _init()/_fini() on Solaris and different tracer/tracee
    runtimes which result in the constructors not being run in
    cairo-trace.so.

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

commit 18a441984b649f558c6478f24a7987941acadbe1
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 13:53:27 2009 +0100

    [trace] Don't try and propagate a void result.
    
    The pattern
    
    	return <function returning void>( ... );
    
    is a gccism not supported by Sun Studio.

 util/cairo-trace/trace.c |  136 ++++++++++++++++++++++++----------------------
 1 files changed, 70 insertions(+), 66 deletions(-)

commit fee5c58c6caecdbdb387fe39bd6ed94faf7f6ae9
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sun Sep 13 13:09:47 2009 +0100

    [trace] Avoid warnings from assigning a void pointer to a function pointer.
    
    The Sun Studio compiler complains a *lot* when assigning the result
    of dlsym to a function pointer.  Cast the result to the proper
    type first.:w

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

commit 19881012cb31ec2aebf556e2c25b53e8387dc689
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 13 16:36:12 2009 +0100

    [image] Add pixel masks for BGRA formats
    
    pixman introduced the BGRA pixel type not too long ago, and so we need to
    update our pixman_format_code_t to cairo_format_masks_t translator.

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

commit f8a8f297f298d81899803a1b2bbca007418408b5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 13 10:58:59 2009 +0100

    [trace] Stray trailing ';' in bswap macros

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

commit f851009ec76ee2290ffbc3f55edbf3cc16aff488
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 13 10:57:42 2009 +0100

    [trace] Compile without lookup-symbol
    
    And check compilation with --disable-symbol-lookup

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

commit 6cb3ff9c1943c58f5b6892af3f18f6aaa24494b6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 13 10:52:14 2009 +0100

    [configure] --enable-symbol-lookup
    
    There you go Joonas, I don't always ignore your suggestions! This is
    simple patch to allow the user to disable symbol loops in case the
    auto-detection fails on some obscure (perhaps OpenBSD) platform. Or in
    case the user really wants to trim a few bytes from a library only used
    during tracing!

 boilerplate/Makefile.win32.features |    7 +++++++
 build/Makefile.win32.features       |    1 +
 build/Makefile.win32.features-h     |    3 +++
 build/configure.ac.features         |    1 +
 configure.ac                        |    6 ++++++
 src/Makefile.win32.features         |    7 +++++++
 util/cairo-trace/Makefile.am        |   14 +++++++++-----
 7 files changed, 34 insertions(+), 5 deletions(-)

commit 556d064f4eb3625022f0d99461929ff3fafc9c71
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 11 15:35:27 2009 +0100

    [test] Typos in README from previous commit

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

commit 43ecde2d22c5a8c591ac83f9a82c2bf83af484fd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 11 15:15:22 2009 +0100

    [test] Add Debian packages for fonts
    
    Mention which .deb provides the required fonts.

 test/README |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 33be73dfb76c26e3bb0ab59b2f570d00d9c7be62
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 11 14:59:58 2009 +0100

    [xlib] Fix big-line.
    
    Project lines that exceed the 16.16 limits onto the XFixedLine, as we know
    that top/bottom must fit within the confines of the surface and so will be
    less than 16 bits.
    
    Sadly this is a run-on patch that also does:
    1. Make FillTiled the default for new GCs.
    2. Stores extend mode as opposed to repeat, and thereby cleaning up some
    inconsistent code.
    3. Remove the special casing for unbounded trapezoids, as it is redundant
    with the polygon clipping.
    4. Tidy the logic for deciding when to use the core protocol
    (_categorize_composite_operation)

 src/cairo-xlib-screen.c          |    6 +-
 src/cairo-xlib-surface-private.h |    2 +-
 src/cairo-xlib-surface.c         |  402 +++++++++++++++-----------------------
 3 files changed, 164 insertions(+), 246 deletions(-)

commit 6960162c5eae30e2d48992023be35e3dbf502a03
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 11 14:56:17 2009 +0100

    [xlib] Discard clip if larger than glyph extents
    
    Implement cheap calculation of glyph extents to see whether we can discard
    the clip region. This is effective around 50% of the time for firefox (and
    makes the xtrace so much neater).

 src/cairo-scaled-font.c  |   36 ++++++++++++++++++++++++++++++++++++
 src/cairo-xlib-surface.c |   23 +++++++++++++++++++++++
 src/cairoint.h           |    6 ++++++
 3 files changed, 65 insertions(+), 0 deletions(-)

commit 6e78409417117ad4de1aec65bb4753ff32e1e7a6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 11 14:19:38 2009 +0100

    [test] Update big-line and remove XFAIL
    
    Now that we use polygon clipping, output geometry should no longer exceed
    the 2^16 limits imposed by pixman. For the image backend, we now use spans
    for stroking and for the xlib backend we have to double check the range on
    the output trapezoids. In short, cairo should pass this test.

 test/Makefile.am                    |    8 ++++----
 test/big-line.c                     |   16 ++++++++--------
 test/big-line.ps.argb32.ref.png     |  Bin 977 -> 0 bytes
 test/big-line.ps.rgb24.ref.png      |  Bin 709 -> 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 0 -> 977 bytes
 test/big-line.xlib-fallback.ref.png |  Bin 0 -> 723 bytes
 test/big-line.xlib.ref.png          |  Bin 0 -> 933 bytes
 9 files changed, 12 insertions(+), 12 deletions(-)

commit b495e7eb2ee2521a400d4b42e04242023bdb1e44
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 10 19:25:14 2009 +0100

    [surface] Early return for (region IN white)
    
    Fill a region using IN and a white source is a frequent reduction of a
    complex clip (viz a path that covers the whole operation extents will be
    reduced to a single rectangle), and we can simply discard the fill (as it
    always has bounded semantics).

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

commit 94aeae9b2ec563201a0e65705504d1d70c33a619
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 10 19:11:36 2009 +0100

    [clip] Simplify applying a box clip
    
    If the clip path is a simple box, then for many operations it is entirely
    representation by the alteration of extents and so we can skip a few steps
    during reconstruction.

 src/cairo-clip-private.h |    3 +-
 src/cairo-clip.c         |   84 +++++++++++++++++++++++++---------------------
 2 files changed, 48 insertions(+), 39 deletions(-)

commit 496e79b63762c70fd022b2d9e2d6107bcce1807a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 10 17:36:46 2009 +0100

    [xlib] Fix extraction of GC during XCloseDisplay()
    
    Jeff Muizelaar reported a bug from his firefox builds that was causing a
    double free during XCloseDisplay, and suggested it was related to
    c0e01d9cd. Reviewing the cleanup, suggested that the cause may just be a
    pair of missing parenthesis.

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

commit f34affaa1e0b52e255d882b84bf064f9a9d4a95d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 18:03:20 2009 +0100

    [util] And reuse the same name repository name.
    
    Completely confused by local caching of a broken cairo.modules by the
    jhbuild client. ARGH!

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

commit e1774185d6bb824a53465a037539b53fdc7af5d8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 17:52:10 2009 +0100

    [util] And back to a unique repo name for cairo.modules
    
    Gah, further experiments into the unknown and the unclear.

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

commit 2905ebc99e4cf8b8e94e16fcd3bc1566f51f4b57
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 17:24:43 2009 +0100

    [util] And restore the repository tag.
    
    jbhuild requires a local definition.

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

commit 4d7eb79d25bcfdc47abcae1fd51c7573043909fd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 17:12:14 2009 +0100

    [util] Inherit the repository from xorg.modules
    
    Experiment with inheriting the repository from xorg.module, in order to
    avoid having two entries for the same server.

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

commit f5ee785144a8ddb6056b21f6c28bc4a9f4870b32
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 13:59:50 2009 +0100

    [test] Disable the antialias testing for the vector surfaces.
    
    Only the raster bckends obey the font anti-alias options.

 test/large-twin-antialias-mixed.c |    2 +-
 test/twin-antialias-gray.c        |    2 +-
 test/twin-antialias-mixed.c       |    2 +-
 test/twin-antialias-none.c        |    2 +-
 test/twin-antialias-subpixel.c    |    2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit abaef9bfbe11302beb6481547632b44be9d5be8d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 13:57:06 2009 +0100

    [test] Compare a failure against the image output
    
    If a backend fails in exactly the same way as the image, then we can
    safely assume that the failure is systematic and not an error in the
    backend, so change the result to XFAIL.

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

commit 41fbea053a8feb201a4f11aaf4dff86fea0bcb01
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 12:19:51 2009 +0100

    [test] Typo in ft-show-glyphs-positioning
    
    Note to self: remember to sleep more often.

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

commit c61480a319bad55b0b4cf3f2be609bde9f2c5948
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 11:08:17 2009 +0100

    [test] An oversized twin test case.
    
    A larger variant of the twin mixed antialiasing test.

 test/Makefile.am                             |    2 +
 test/Makefile.sources                        |    1 +
 test/large-twin-antialias-mixed.c            |   97 ++++++++++++++++++++++++++
 test/large-twin-antialias-mixed.ref.png      |  Bin 0 -> 16668 bytes
 test/large-twin-antialias-mixed.xlib.ref.png |  Bin 0 -> 14655 bytes
 5 files changed, 100 insertions(+), 0 deletions(-)

commit 610b311a970877f3954ba829cf43caecce0ab72c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 09:48:24 2009 +0100

    [test] Variation of twin that intermixes antialiasing
    
    Check that we are substituting the right glyph depth and changing masks
    appropriately.

 test/Makefile.am                       |    2 +
 test/Makefile.sources                  |    1 +
 test/twin-antialias-mixed.c            |   97 ++++++++++++++++++++++++++++++++
 test/twin-antialias-mixed.ref.png      |  Bin 0 -> 2338 bytes
 test/twin-antialias-mixed.xlib.ref.png |  Bin 0 -> 1760 bytes
 5 files changed, 100 insertions(+), 0 deletions(-)

commit c218ff8cbec2cc7aa3efc4c7f7d8690fbdec5e9a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 09:52:18 2009 +0100

    [test] SUBPIXEL_ANTIALIAS varation of twin
    
    Force argb32 glyphs.

 test/Makefile.am                          |    2 +
 test/Makefile.sources                     |    1 +
 test/twin-antialias-subpixel.c            |   71 +++++++++++++++++++++++++++++
 test/twin-antialias-subpixel.ref.png      |  Bin 0 -> 3979 bytes
 test/twin-antialias-subpixel.xlib.ref.png |  Bin 0 -> 3863 bytes
 5 files changed, 74 insertions(+), 0 deletions(-)

commit 456484514f4dacfe95952e8c0b73eb6a9a1a9d27
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 09:38:18 2009 +0100

    [test] Variation of twin with ANTIALIAS_GRAY
    
    Force generation of a8 glyphs.

 test/Makefile.am                      |    2 +
 test/Makefile.sources                 |    1 +
 test/twin-antialias-gray.c            |   71 +++++++++++++++++++++++++++++++++
 test/twin-antialias-gray.ref.png      |  Bin 0 -> 3979 bytes
 test/twin-antialias-gray.xlib.ref.png |  Bin 0 -> 3863 bytes
 5 files changed, 74 insertions(+), 0 deletions(-)

commit 8555984b8e72ab5846783ed54afa1a857d70f241
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 09:29:42 2009 +0100

    [test] Add ANTIALIAS_NONE variation of twin
    
    I'm off hunting bugs. By using twin with ANTIALIAS_NONE we can construct
    a1 glyph images independently of the native font system.

 test/Makefile.am                      |    2 +
 test/Makefile.sources                 |    1 +
 test/twin-antialias-none.c            |   71 +++++++++++++++++++++++++++++++++
 test/twin-antialias-none.ref.png      |  Bin 0 -> 718 bytes
 test/twin-antialias-none.xlib.ref.png |  Bin 0 -> 745 bytes
 5 files changed, 74 insertions(+), 0 deletions(-)

commit 1820cb7fd648283a5b477fbc6bd654200ed190e6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 09:12:54 2009 +0100

    [test] Check for errors during ft-show-glyphs-positioning
    
    Do not blindly assume that we managed to construct a valid scaled-font
    before attempting to dereference the FT_Face. Consider a machine with
    no fonts which is substituting twin...

 test/ft-show-glyphs-positioning.c |   46 +++++++++++++++++++++++++++++++-----
 1 files changed, 39 insertions(+), 7 deletions(-)

commit 7fb0d5e2091a09ef7b01574f4ecf87236ef43fec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 01:45:16 2009 +0100

    [twin] Initialise all properties
    
    Left a couple of uninitialised properties along the non-toy font
    construction path.

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

commit 34778a883af806f77d0c89c85cebb315b43d7ef2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 01:16:08 2009 +0100

    [configure] Typo in test
    
    The have_dl clause was meant to have been removed from the requirements
    test for cairo-script-interpreter. Instead we left the test broken.

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

commit 4b221bd49a0c2c980a63779d905e8eb9b9cfa690
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 8 19:02:04 2009 +0100

    [spans] Correct offsets for trapezoids
    
    Pass on the destination offset from composite_trapezoids() to
    composite_polygon().

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

commit 9389cb78a8ea5b6579d091ab1030ab9f1b13efc2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 8 17:51:33 2009 +0100

    [build] Improve handling of missing test apparatus
    
    Improve detection, reporting and disabling of test backends when we lack
    the required libraries and utilities.

 boilerplate/Makefile.win32.features |    7 +++++++
 boilerplate/cairo-boilerplate-pdf.c |    2 ++
 boilerplate/cairo-boilerplate-ps.c  |    2 ++
 boilerplate/cairo-boilerplate-svg.c |    2 ++
 build/Makefile.win32.features       |    1 +
 build/Makefile.win32.features-h     |    3 +++
 build/configure.ac.features         |    3 ++-
 configure.ac                        |   20 +++++++++++++-------
 perf/cairo-perf-compare-backends.c  |    2 +-
 src/Makefile.win32.features         |    7 +++++++
 test/Makefile.am                    |    2 ++
 test/any2ppm.c                      |    8 ++++++++
 util/Makefile.am                    |    4 ++--
 13 files changed, 52 insertions(+), 11 deletions(-)

commit 45759e5a0fb20a632f66a8dd206833b55a95f840
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 8 09:19:53 2009 +0100

    [gl] Supply extents for acquire source image
    
    I have no idea how we survived for so long without supplying the source
    extents...

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

commit 67d40e5c7300c4082484dbda5c81808737bb2ac5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 6 10:17:40 2009 +0100

    [xlib] Protect ourselves from liars that claim to have a 64k window
    
    Found using webkit, who attempt to paint an width X page height window.
    Please, please clip large windows to the visible area. Thanks.

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

commit 310cebf194919cf3a7c37e724e64962ae47343cc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 5 15:21:50 2009 +0100

    [configure] Add option to disable trace.
    
    Some environments may be broken beyond our capabilities to detect, or
    maybe the user is just insane and doesn't want to build my nice shiny
    cairo-trace. Whatever, give them the option to choose:
    
      $ ./configure --disable-trace

 boilerplate/Makefile.win32.features |    7 +++++++
 build/Makefile.win32.features       |    1 +
 build/Makefile.win32.features-h     |    3 +++
 build/configure.ac.features         |    3 +++
 configure.ac                        |    8 +++++---
 src/Makefile.win32.features         |    7 +++++++
 util/Makefile.am                    |    2 +-
 7 files changed, 27 insertions(+), 4 deletions(-)

commit 9b932d7cd750b9bc61d108c80c4530352d952cfa
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 5 08:46:39 2009 +0100

    [perf] Move the calibration to its own function
    
    Improve code clarity and whatnot.

 perf/cairo-perf.c |   71 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 41 insertions(+), 30 deletions(-)

commit 270b2f1be0e600621647f2e2486618c134217941
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sat Sep 5 05:39:35 2009 +0300

    [perf] Add a fast-and-sloppy mode to cairo-perf.
    
    A new -f option to cairo-perf reverts to a fast run
    mode for quick performance overviews. The number of
    milliseconds each iteration of a test is run for can
    be overriden using the new CAIRO_PERF_ITERATION_MS
    environment variable. The default remains 2000 ms/iter.

 perf/cairo-perf.c |   59 +++++++++++++++++++++++++++++++++++------------------
 perf/cairo-perf.h |    3 ++
 2 files changed, 42 insertions(+), 20 deletions(-)

commit 7f91c4953ccfbb96d76ecd73715fa2e524be933e
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sat Sep 5 05:07:25 2009 +0300

    [boilerplate] Support wildcard ? in CAIRO_TEST_TARGET{,_EXCLUDE}.
    
    Useful for running tests only for a given content type.

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

commit b3bafbc5f9201662702cc0c0d1c96411e31bb7d3
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sat Sep 5 05:02:00 2009 +0300

    [boilerplate] Support giving content in CAIRO_TEST_TARGET{,_EXCLUDE}.
    
    Sometimes it's convenient to run the regression or performance tests
    against a given target with a given content.  Now we accept an optional
    content specifier as a suffix .<content> on a target name, where
    <content> is rgb or rgba.

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

commit 29432d3d32bc84ec4a2e1815a84e4ac2089138fe
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Sat Sep 5 02:25:01 2009 +0300

    [test] Reorder dash-infinite-loop to not hit a runaway allocation.
    
    This test is annoying enough as it is what with it wedging the
    test suite and all.  There's no reason why it should DOS the
    running box as well by sitting in a loop allocating like mad.

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

commit 20b0e7f95448e496b609212b9608f75e03f223f8
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Sep 4 23:54:21 2009 +0300

    [test] Add large-source-roi.ref.png to test/Makefile.am
    
    Oops.. forgot to add it to the build files too

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

commit 402a0539489cc01094b464109ae28ae78b85a294
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 4 09:47:10 2009 +0100

    [gl] compile fix.
    
    Compiled fine during testing -- only I forgot I hadn't enable the gl surface.

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

commit b065303740cc18fbcabfeef34d09c7d8b617647e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 4 09:35:22 2009 +0100

    [xlib] Enable pad_reflect by default
    
    If the XServer claims to support the required Render extension then send
    it the operations. However for the cases where we know it does not work,
    i.e. the current and previous generations (<=1.6) of Xorg servers, enable
    the buggy_pad_reflect fallbacks.

 src/cairo-xlib-display.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

commit 634fdb4afd15e2467979609b1af7c1c198fc83d4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 4 09:14:12 2009 +0100

    [test] Add unbounded variants of clip-{fill,stroke}
    
    Add a couple of tests to exercise a bug that Joonas spotted that I had
    introduced with the clip-reduction scheme - namely that I had
    incorrectly removed the clip on unbounded operations.

 test/Makefile.am                                   |   14 +++
 test/Makefile.sources                              |    2 +
 test/clip-fill-unbounded.argb32.ref.png            |  Bin 0 -> 1615 bytes
 test/clip-fill-unbounded.c                         |  105 ++++++++++++++++++++
 test/clip-fill-unbounded.rgb24.ref.png             |  Bin 0 -> 1312 bytes
 test/clip-fill-unbounded.svg12.argb32.xfail.png    |  Bin 0 -> 1601 bytes
 test/clip-fill-unbounded.svg12.rgb24.xfail.png     |  Bin 0 -> 1601 bytes
 ...clip-fill-unbounded.xlib-fallback.rgb24.ref.png |  Bin 0 -> 1429 bytes
 test/clip-fill-unbounded.xlib.argb32.ref.png       |  Bin 0 -> 1758 bytes
 test/clip-fill-unbounded.xlib.rgb24.ref.png        |  Bin 0 -> 1426 bytes
 test/clip-stroke-unbounded.argb32.ref.png          |  Bin 0 -> 1703 bytes
 test/clip-stroke-unbounded.c                       |  102 +++++++++++++++++++
 test/clip-stroke-unbounded.rgb24.ref.png           |  Bin 0 -> 1383 bytes
 test/clip-stroke-unbounded.svg12.argb32.xfail.png  |  Bin 0 -> 1697 bytes
 test/clip-stroke-unbounded.svg12.rgb24.xfail.png   |  Bin 0 -> 1697 bytes
 ...ip-stroke-unbounded.xlib-fallback.rgb24.ref.png |  Bin 0 -> 1429 bytes
 test/clip-stroke-unbounded.xlib.argb32.ref.png     |  Bin 0 -> 1792 bytes
 test/clip-stroke-unbounded.xlib.rgb24.ref.png      |  Bin 0 -> 1426 bytes
 18 files changed, 223 insertions(+), 0 deletions(-)

commit de99f841886de5cc6e5bc91f9d3e82076d838dee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 4 08:55:19 2009 +0100

    [fallback] Only eliminate the clip if the operation is bounded
    
    For unbounded operations we still need to pass along the clip in order to
    correctly limit the extents of the operation.

 src/cairo-surface-fallback.c |   57 +++++++++++++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 15 deletions(-)

commit 0ffca06d7feec6fdc56c47a378fcc37c1951a00a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 4 08:32:31 2009 +0100

    [perf] Use milliseconds by default in cairo-perf-diff-files
    
    Necessary when comparing performance reports from different machines (or
    even at different CPU states).

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

commit 00ca0780b8f06ec160d8f969e316c21fbbde04bc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 23:25:53 2009 +0100

    [win32] Remove unused clone_similar()
    
    The win32 backend handles surface sources directly and never calls
    _cairo_pattern_acquire_surface() which is the only other possible user of
    clone_similar().

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

commit 535bcaa1a1dac28fbe3106c6605949171bc36cb2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 20:10:55 2009 +0100

    [mutex] Hook into pthread last
    
    Check for native mutex types before hooking into pthread, as this
    workarounds broken builds on mingw that confuse us by including the
    pthread header file.

 src/cairo-mutex-impl-private.h |   47 ++++++++++++++++++++-------------------
 1 files changed, 24 insertions(+), 23 deletions(-)

commit 769f4a4f47ab4636ec5cca3e92ce2c0ff19d2f75
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 17:47:34 2009 +0100

    [gl] Allocate small number of rectangles on the stack
    
    FillRectangle is most frequently used to fill an entire imagee with the
    background colour, i.e. with just a single, or few, rectangle. Avoid
    heap allocation for this common case by allocating enough space for 4
    rectangles (vertices+colors) on the stack.

 src/cairo-gl-surface.c |   43 +++++++++++++++++++++++++++++--------------
 1 files changed, 29 insertions(+), 14 deletions(-)

commit 6ce200da9d01a85a1de576229e75732db65a8b70
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 17:38:00 2009 +0100

    [gl] Assert that the error is impossible.
    
    As we created the image, it should not need coercing into a suitable
    format and so we should be able to upload it without failure.

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

commit d3aeafb406da7bf69e9bf24e18a5975780a7a987
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 17:32:28 2009 +0100

    [gl] Remove reference to depth_stencil_tex
    
    We no longer use a depth-stencil, so remove the vestigial reference.

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

commit 316c1683ceb39eb652608adc360cb4da9c22256a
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Sep 3 21:38:31 2009 +0300

    [test] Fix the order of random points random-intersections-curves*.
    
    The calls to uniform_random() to get the curve points were in
    the function arguments, but argument order evaluation is compiler
    implementation dependent.

 test/random-intersections-curves-eo.c |   17 ++++++++++-------
 test/random-intersections-curves-nz.c |   17 ++++++++++-------
 2 files changed, 20 insertions(+), 14 deletions(-)

commit 9e45673e197d0f43e296483cc6b5ca6df94e7f02
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Sep 3 19:18:07 2009 +0300

    [image] Check for out of bounds image surface sizes in constructors.
    
    The image surface code doesn't reliably work on images larger than
    32767 in width or height.  This patch makes the image surface
    constructors fail by returning a surface in the CAIRO_STATUS_INVALID_SIZE
    state when given negative or too large dimensions so that client code
    gets a prompt and correct error rather than flaky rendering on large
    images.

 src/cairo-image-surface.c     |   27 +++++++++++++++++++++++++--
 test/large-source-roi.c       |    4 ++--
 test/large-source-roi.ref.png |  Bin 0 -> 112 bytes
 test/large-source.c           |    4 ++--
 4 files changed, 29 insertions(+), 6 deletions(-)

commit 12d0613210547b8a50dd7b21a12eb1485ee496b9
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Thu Sep 3 17:54:49 2009 +0300

    [test] Allow tests to XFAIL by putting the cairo_t into an error state.
    
    The test runner was extra strict about never letting a test put
    the cairo_t into an error state, and never would it check for
    the expectedness status of the failure.  This patch moves the
    check for a test being an XFAIL above the check on the cairo_t's
    final status.

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

commit a76c36f2edd16d8e2b8f49e6409134aceab38a42
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 14:29:20 2009 +0100

    [xlib] solid pictures should only be 1x1
    
    Creating an widthxheight solid picture for using with
    RenderCompositeTrapezoids defeats the optimization with the xserver that
    checks for a solid alpha pattern. The checks it performs are for
    CONTENT_ALPHA, Repeat, 1x1 and value == 0xff.

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

commit df067be863bf714f22db0392ab29926edfa8e917
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 08:45:40 2009 +0100

    [polygon] Compute the limit of the limits slightly more efficiently
    
    Initialize the bbox to the first limit, as frequently there will only be a
    single (or at least a small number) limit.

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

commit a1bac73f24069990842fa8f31e776b4d2c72546e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 09:20:46 2009 +0100

    [boilerplate] Handle errors whilst creating GL surface

 boilerplate/cairo-boilerplate-gl.c |   11 ++++++-----
 src/cairo-glx-context.c            |   16 ++++++++--------
 2 files changed, 14 insertions(+), 13 deletions(-)

commit f1d284f9976d38f636c6791f11479ae75d7bd199
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 01:00:59 2009 +0100

    [polygon] Fix discard with non-banded disjoint clip boxes
    
    The early discard checked if the line was below the last clip-box, or if
    above the first. However, the clip-boxes are only sorted on by the bottom
    (not the strict XY-banded sort of the regions) and so this was erroneously
    discarding lines.

 src/cairo-polygon.c       |   29 ++++++++++++++++++++++++-----
 src/cairo-types-private.h |    1 +
 2 files changed, 25 insertions(+), 5 deletions(-)

commit a6dfdeec82ec34d88276fd0bb0ddcc94405d89f3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 3 00:59:21 2009 +0100

    [test] Add clip-disjoint
    
    Soeren found another bug (thanks Soeren!) in the clipping code - as
    reproduced by this test case.

 test/Makefile.am                |    2 +
 test/Makefile.sources           |    1 +
 test/clip-disjoint.c            |   90 +++++++++++++++++++++++++++++++++++++++
 test/clip-disjoint.ref.png      |  Bin 0 -> 5520 bytes
 test/clip-disjoint.xlib.ref.png |  Bin 0 -> 5395 bytes
 5 files changed, 93 insertions(+), 0 deletions(-)

commit ff6bc1e132836c68d4f538799c2cd26a2d9cace4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 2 21:22:33 2009 +0100

    [script] Always create a fallback font
    
    In order to get a baseline for win32 performance testing, always create a
    font so that the trace can be replayed. Not ideal, but I feel this the
    pragmatic solution for judging the performance differentials before I can
    work out a better solution for loading typ42 fonts.

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

commit fcbb288e7cf2f5914c0d2b66ee6d81b694de6de6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 2 21:02:18 2009 +0100

    [script] Attempt to select a font if ! CAIRO_HAS_FT_FONT
    
    In order to enable replay of traces on machines that do not use FreeType
    as the native font system, we need to convert a type42 font into something
    similar. Currently the fallback is just to select a font with the same
    name - this ignores weight and slant, and many other details.

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

commit 2c03dfa0b406565fca798214a842bac69b042017
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 2 10:09:50 2009 +0100

    [boilerplate/test] Use numerical equality not string equality
    
    test == != -eq

 boilerplate/make-cairo-boilerplate-constructors.sh |    2 +-
 test/make-cairo-test-constructors.sh               |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f5df38ca5efcbc0cd3cc18d9fb67df49ec4859f8
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Wed Sep 2 04:38:52 2009 +0100

    [build] Fix typos in prototype warnings.
    
    The -Wstrict-prototypes and -Wmissing-prototypes warnings
    weren't actually in use due to typos.

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

commit c086b40a93057a6fd47d23c85c5026d6fe2f524a
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Wed Sep 2 04:29:18 2009 +0100

    [build] Hush the Solaris compiler about enum abuse.
    
    Sun Studio 12 doesn't like it when we mix our
    enum values and types.  We do that a lot on purpose
    so the warnings from compiles were very verbose.

 build/aclocal.cairo.m4      |   23 +++++++++++++++++++++--
 build/configure.ac.warnings |    6 ++++++
 2 files changed, 27 insertions(+), 2 deletions(-)

commit f081a5ff554267eebecea4652bb483eea11d1484
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Wed Sep 2 04:10:39 2009 +0100

    [build] Refine the -Wno-attribute test to check our use cases.
    
    We don't actually check that -Wno-attribute does what
    we think it does.  On clang it doesn't since it happily
    seems to recognize but ignore the attribute.
    
    This patch factors out a silent version of CAIRO_CC_TRY_FLAG
    which accepts an optional program argument and actually tests
    that the compiler doesn't produce any warning messages.  It
    is then used to check that -Wno-attribute doesn't complain
    when the __warn_unused_result__ attribute is applied to
    void functions or variables.

 build/aclocal.cairo.m4      |   42 ++++++++++++++++++++++++++++++++++--------
 build/configure.ac.analysis |    2 +-
 build/configure.ac.warnings |   10 ++++++----
 3 files changed, 41 insertions(+), 13 deletions(-)

commit c87b366bfec4eeda2646b33cb8a33822a301456c
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Wed Sep 2 04:09:46 2009 +0100

    [constructors] Guard against being called without any input files.
    
    The make-cairo-(test|boilerplate)-constructors scripts ought
    never to be called without arguments lest we are left constructorless.

 boilerplate/make-cairo-boilerplate-constructors.sh |    7 ++++++-
 test/make-cairo-test-constructors.sh               |    7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

commit b509b548b1e3ac5a9e3de2f9652cd1973d295fa3
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jul 24 09:12:10 2009 +0300

    [trace] Check for __builtin_return_address explicitly.
    
    Some other compilers such as clang and icc support the
    __builtin_return_address() intrinsic as well, so we don't
    need to check for __GNUC__ >= 3 only.

 build/configure.ac.system |   12 ++++++++++++
 util/cairo-trace/trace.c  |    2 +-
 2 files changed, 13 insertions(+), 1 deletions(-)

commit 2b0e070f6a6bee415b1036fd149f0c41bcf87abb
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jul 24 07:48:57 2009 +0300

    [trace] Replace an open coded test for matrix identity.
    
    The code has a _matrix_is_identity() function we can use
    instead of open coding the same test.

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

commit 70ea9e3ce1b0037999340e484e62d3a1484da41a
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jul 24 07:46:20 2009 +0300

    [trace] Don't crash on unknown enums values.
    
    If the tracer encounters an unknown enum value it
    ought not to crash. Theis patch replaces the idiom
    of looking up a name for an enumerated value directly
    from a table by a switch statement. As a bonus we get
    warnings from the compiler when the enums are updated
    in cairo.

 util/cairo-trace/trace.c |  313 +++++++++++++++++++++++++---------------------
 1 files changed, 172 insertions(+), 141 deletions(-)

commit 174c2620c82a47d067ec7b5062a4f513155a0b1f
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jul 24 07:42:57 2009 +0300

    [trace] Check for object stack underflow.
    
    If the tracer's object stack underflows we want to
    know about is as soon as possible. This patch adds
    checks against the stack overflowing and aborts the
    program with an object stack dump if it does.

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

commit bb480d235882d8e7d5748a3837f9b274a8b8ac86
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Jul 21 21:18:36 2009 +0300

    [NEWS] Thank the AuroraUX team for facilitating Solaris testing.

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

commit c64f6f8a15306cdcf5dd02480049b0f9112fd6ac
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jun 26 16:54:11 2009 +0300

    [trace] Get the tracee program name from the environment.
    
    Support non-Linux systems which don't have a /proc/self/cmdline
    by transferring the application name given to cairo-trace via
    an environment variable CAIRO_TRACE_PROG_NAME.

 util/cairo-trace/cairo-trace.in |    3 ++-
 util/cairo-trace/trace.c        |   31 +++++++++++++++++++------------
 2 files changed, 21 insertions(+), 13 deletions(-)

commit 17cdffafda04514f08e0f0f11d0a85b938282c38
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 2 00:41:18 2009 +0100

    [xlib] Remove stray code
    
    Grr. Should have spotted this before pushing - remove the addition of the
    superfluous code.

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

commit 59c4fe93ee30c8182ae1a29267b9c08602e2f6c5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 2 00:34:37 2009 +0100

    [xlib] Eliminate GC clipping
    
    Eradicate the use of clipping with GC. By never using clipping, we never
    have to worry about retrieving a dirty clip from the GC cache.

 src/cairo-xlib-private.h         |   12 +--
 src/cairo-xlib-screen.c          |   50 ++++------
 src/cairo-xlib-surface-private.h |    2 -
 src/cairo-xlib-surface.c         |  197 ++++++++++++++++++--------------------
 4 files changed, 116 insertions(+), 145 deletions(-)

commit 075fc5666abe006c434bf7ec28d2d4f0226a1d3a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 2 00:33:22 2009 +0100

    [test] Add clip-image
    
    Exercise the XCopyArea() paths under clipping - whilst modifying that code
    I noticed that it was not being exercised by the test suite.

 test/Makefile.am        |    1 +
 test/Makefile.sources   |    1 +
 test/clip-image.c       |   94 +++++++++++++++++++++++++++++++++++++++++++++++
 test/clip-image.ref.png |  Bin 0 -> 2679 bytes
 4 files changed, 96 insertions(+), 0 deletions(-)

commit 7d1eb259f93d3f2f2e754b2b8b90cb88359b477d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 23:12:43 2009 +0100

    [xlib] Make xlib_display_t private and rename xlib_screen_info_t
    
    The issue Joonas was trying to solve was the unwanted inclusion of
    the inlines via cairo-freelist-private.h. Unwittingly he included
    cairoint.h from cairo-xlib-private.h instead, a far more heinous crime as
    that causes the boilerplate to try to use the hidden, private symbols.
    Instead we resolve this issue by making the cairo_xlib_display_t structure
    private to cairo-xlib-display.c and provide functions to manipulate the
    abstract data type. Whilst in the vicinity, we rename
    cairo_xlib_screen_info_t to cairo_xlib_screen_t for consistency and
    cleanliness.

 src/cairo-xlib-display.c         |  126 ++++++++++++++++++++++++++-
 src/cairo-xlib-private.h         |   88 +++++++++++--------
 src/cairo-xlib-screen.c          |  155 +++++++++++++++-------------------
 src/cairo-xlib-surface-private.h |    3 +-
 src/cairo-xlib-surface.c         |  173 +++++++++++++++++++++-----------------
 5 files changed, 339 insertions(+), 206 deletions(-)

commit b8ddd66cf6e0d16383580c3c3398343f577b89fd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 21:49:01 2009 +0100

    Revert "[freelist] Make _cairo_freepool_alloc_from_new_pool static inline."
    
    This reverts commit 5a3fa29b370816acb3a08d60e4031ed82c1e4c73 as it breaks
    the boilerplate when linking with gcc.

 src/cairo-freelist-private.h |   29 ++---------------------------
 src/cairo-freelist.c         |   29 +++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 27 deletions(-)

commit 5a3fa29b370816acb3a08d60e4031ed82c1e4c73
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Tue Sep 1 20:57:01 2009 +0100

    [freelist] Make _cairo_freepool_alloc_from_new_pool static inline.
    
    The xlib boilerplate includes a cairo private header to be able
    to disable usage of the render extension.  This indirectly includes
    cairo-freelist-private.h which contains a bunch of static inline
    functions which use the private _cairo_freepool_alloc_from_new_pool
    function, but since that is not inline also, it causes an undefined
    extern which cannot be resolved.  The binutils linker doesn't care
    since the freelist function aren't actually used in the boilerplate
    but the Solaris linker does.  By making the .._alloc_from_new_pool
    function inline no dangling references are created and linking
    succeeds.

 src/cairo-freelist-private.h |   29 +++++++++++++++++++++++++++--
 src/cairo-freelist.c         |   29 -----------------------------
 2 files changed, 27 insertions(+), 31 deletions(-)

commit 68c8eb955d6d16872c2fa488f0960b974611865d
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Aug 31 23:57:20 2009 +0100

    [wrapper] Avoid a void return gccism.
    
    Returning void using the pattern "return func_returning_void(...)"
    is a gccism not supported by Sun Studio 12.

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

commit 6ddab64025eacd5000fa295c86c0fddc469bdc5f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 20:25:53 2009 +0100

    [ps] Clip meta-surface to desired extents.
    
    Ensure that the meta surface does not extend beyond the operation by
    forcing a clip to the extents of the operation.
    
    Fixes test/device-offset and test/device-offset-positive

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

commit 665f5829541703b29e33f80bebf579a17f47a892
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 18:24:42 2009 +0100

    [ps/pdf] Trim patterns to operation extents
    
    If we have to rasterise a pattern for use by PS/PDF (for example, to
    satisfy CAIRO_EXTENT_PAD) then only generate an image large enough to
    cover the operation extents. We ensure tight coverage by computing the
    extents afresh - we could do this lazily in the future, but we can not
    rely on the bounds as computed by the analysis surface as for native
    operations they may not be tight.

 src/cairo-pdf-surface.c |   67 +++++++++++++++++---
 src/cairo-ps-surface.c  |   76 +++++++++++++++--------
 src/cairo-surface.c     |  162 +++++++++++++++++++++++++++++++++++++++++++++++
 src/cairoint.h          |   49 ++++++++++++++
 4 files changed, 319 insertions(+), 35 deletions(-)

commit c4c7db96750337076b953a4938afc7b5f16815fc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 14:59:36 2009 +0100

    [boilerplate] Use xlib as fallback reference for xcb
    
    And exercise RGB code-paths.

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

commit e7a118d3f82f2cbefb4a1529cc90f76ed7371ecc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 14:31:38 2009 +0100

    [path] Standalone header-compilation
    
    Hmm, TRUE/FALSE apparently weren't defined before use. Odd.

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

commit 4f880deeabc36842b3b4b0d7ad16383db708cd42
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 14:24:59 2009 +0100

    Compiler warnings
    
    Add an impossible default condition to avoid a compiler warning. And tweak
    the code to avoid mismatching signed/unsigned comparisons.

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

commit 1bcc3a3fa00445667adc47d4852237271c7eec0f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 14:24:06 2009 +0100

    [tee] Rename 'append' to 'add' and add symmetric 'remove'

 src/cairo-tee-surface.c |   51 ++++++++++++++++++++++++++++++++++++++++++----
 src/cairo.h             |    8 +++++-
 util/cairo-fdr/fdr.c    |    2 +-
 util/cairo-sphinx/fdr.c |    2 +-
 4 files changed, 54 insertions(+), 9 deletions(-)

commit af82670dd3bfdb661de5a01a6856ec01bdf80040
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Sep 1 13:31:52 2009 +0100

    [pattern] Remove unused hidden symbol for cairo_pattern_status()

 src/cairo-pattern.c |    9 ++++-----
 src/cairoint.h      |    1 -
 2 files changed, 4 insertions(+), 6 deletions(-)

commit aca1dff25967940c36caee26977512484f1720ac
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Aug 31 22:28:26 2009 +0930

    PDF: Ensure operator is selected before painting surface

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

commit a402bdbd32d3ffe4b564318e6dd83831328257b1
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Aug 31 22:15:57 2009 +0930

    PDF: Flush operators before writing to the PDF stream

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

commit 119355b2a4d81c903720484adaeb7dea3929ca1f
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Aug 31 22:14:15 2009 +0930

    PDF: Reset alpha to 1.0 before painting a surface
    
    Fixes a test suite regression.

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

commit 20bd7d0edbb01a52bcc88bddcba4cc5237f3a673
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Aug 31 22:03:34 2009 +0930

    Update ref images

 test/meta-surface-pattern.pdf.argb32.ref.png  |  Bin 3835 -> 3908 bytes
 test/meta-surface-pattern.pdf.rgb24.ref.png   |  Bin 3682 -> 3760 bytes
 test/rotate-image-surface-paint.pdf.xfail.png |  Bin 207 -> 217 bytes
 test/scale-offset-image.pdf.argb32.ref.png    |  Bin 0 -> 9981 bytes
 test/scale-offset-image.pdf.ref.png           |  Bin 10099 -> 0 bytes
 test/scale-offset-image.pdf.rgb24.ref.png     |  Bin 0 -> 9981 bytes
 test/scale-offset-similar.pdf.argb32.ref.png  |  Bin 0 -> 11027 bytes
 test/scale-offset-similar.pdf.ref.png         |  Bin 10890 -> 0 bytes
 test/scale-offset-similar.pdf.rgb24.ref.png   |  Bin 0 -> 11027 bytes
 test/surface-pattern-scale-down.pdf.ref.png   |  Bin 1589 -> 1603 bytes
 test/surface-pattern-scale-up.pdf.ref.png     |  Bin 2712 -> 2793 bytes
 11 files changed, 0 insertions(+), 0 deletions(-)

commit 135912721f5791ad8eac773fd042c751122c8760
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Aug 30 23:58:53 2009 +0930

    PDF: Avoid using patterns when filling a surface with EXTEND_NONE
    
    The fill equivilant of the previous optimization.

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

commit 6512faeb9487dcc2d577b5fb3628cf7f13a25c0a
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Aug 30 23:38:17 2009 +0930

    PDF: Avoid using patterns when painting surfaces with EXTEND_NONE
    
    This is an optimization the PS surface has been using to improve
    printing speed and prevent printers from choking on large
    images. Applying this optimzation to PDF prevents the same problem
    occuring when the PDF is converted to PS.

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

commit 26d568a9ada523793b2e5855678922894e438ef4
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Sun Aug 30 23:50:53 2009 +0930

    PDF: Fix bug when when embedding surfaces

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

commit feaf38d0cdc5a79966d3a412b644705b0f38e75a
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Aug 31 16:25:08 2009 +0300

    [test] Use HAVE_FLOCKFILE instead of _POSIX_C_SOURCE.
    
    The _POSIX_C_SOURCE 2001.. #define requires C99 mode and
    clang on Solaris is strict about such things. Use configure
    tests for flockfile() instead.

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

commit 9bb469c51cf580e3ae18b21b3847488e8c4be051
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jul 24 06:15:46 2009 +0300

    [trace] Use HAVE_FLOCKFILE/FUNLOCKFILE since configure test for them.
    
    The trace source was using the flockfile() and funlockfile()
    functions directly.

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

commit b5cf24a4fb0e48a0067c4b5a706890d4c1f3f1ae
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Fri Jun 26 20:06:40 2009 +0300

    [build] Remove duplicate invocation of AC_CHECK_HEADERS.
    
    The fenv.h stuff was checked twice.

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

commit 3acccf0ea5ca1fde9cf6b91677588680a2644ee6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 30 12:33:40 2009 +0100

    [perf] Trim outliers from chart
    
    Use "mild outliers" method to remove exceptional speed-ups and slow-downs
    from the graph, so that the majority of information is not lost by the
    scaling. Add the timing labels to the bars so that the true factor is
    always presented.

 perf/cairo-perf-chart.c |  211 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 172 insertions(+), 39 deletions(-)

commit 687462be89fd0ddf6b5412f2cb7b4f7b1a80135c
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Sun Aug 30 12:07:28 2009 +0200

    [build] Fix a typo in configure.ac

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

commit a6bcb6260ec8982493ac3411436ec007b40e4501
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 30 10:09:51 2009 +0100

    [bo-rectangular] Fix assertion failure with insertion sort
    
    We remember the location of the last insert as the next edge is likely to
    be nearby. However, we need to be careful when the pointer rests upon the
    HEAD and ensure that we begin the search from the appropriate end.

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

commit 19ebf83b6717e1f02e7be14218007858edf14ef0
Merge: 40aefac a77f193
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 17:45:48 2009 +0100

    Merge branch 'stroke-with-spans'
    
    This branch brings self-intersection removal with virtually no
    performance regression. (Compare with the initial implementation that
    incurred a 5-10x slowdown due to having to tessellate whole strokes at a
    time.) The importance of self-intersection removal is the improved visual
    quality it brings - gone are those annoying sparkles on the outside of
    rounded-rectangles for instance. Most of the performance overhead
    associated with the self-intersection removal is avoided by switching from
    trapezoids to spans for strokes. Obviously we are not able to do so for
    the xlib backend as we do not yet have a polygon image type, and so the
    tessellators are overhauled instead, along with more special casing for
    frequent operations to avoid the increased complexity along the general
    paths.
    
    Speedups
    ========
     xlib-rgba             swfdec-youtube-0    11371.13 (11406.01 0.28%) -> 10450.00 (10461.84 0.66%):  1.09x speedup
    ▏
    image-rgba          firefox-talos-svg-0    73696.53 (73828.28 3.42%) -> 68324.30 (70269.79 1.36%):  1.08x speedup
    ▏
    image-rgba             swfdec-youtube-0    7843.08 (7873.89 2.57%) -> 7393.96 (7399.68 0.18%):  1.06x speedup
    
     xvfb-rgba             swfdec-youtube-0    9627.25 (9634.43 0.16%) -> 9020.55 (9040.97 0.27%):  1.07x speedup
    ▏
    Slowdowns
    =========
     xvfb-rgba         gnome-terminal-vim-0    7695.12 (7697.87 0.44%) -> 8569.45 (8588.29 0.19%):  1.11x slowdown
    ▏
     xvfb-rgba         swfdec-giant-steps-0    3811.77 (3815.06 0.23%) -> 4246.67 (4569.17 3.52%):  1.11x slowdown
    ▏
    image-rgba                       gvim-0    7150.90 (7181.96 29.36%) -> 14641.04 (14651.36 0.11%):  2.05x slowdown
    █
    
    One method for overcoming these regressions is to reduce the complexity of
    the polygons being fed into the tessellator (both in the number of edges
    and intersections). This should be feasible by coupling into Jeff Muizelaar's
    stroke-to-path work, which early indications suggest will bring a
    significant performance improvement. On top of this, our span
    implementation for the image backend is not as efficient as we would hope
    for - and Joonas promises a much faster implementation soon.

commit a77f1933afebe28e0651906c96fd098cd8267a9f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 14:23:41 2009 +0100

    Use the more generic is_box when doing simple extent checks
    
    is_rectangle() is far stricter than is_box(), and is only required for a
    very limited set of operations (essentially were the rectangle must
    conform to the motion as described by cairo_rectangle). For the general
    case where we just want to know whether we have a single rectangular path
    that covers a certain area,  is_box() is sufficient.

 src/cairo-pdf-surface.c    |    2 +-
 src/cairo-ps-surface.c     |    2 +-
 src/cairo-script-surface.c |    4 ++--
 src/cairo-svg-surface.c    |    2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit 0a548d08b5eae73a95fb41f41298c9c43379163e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 16:27:27 2009 +0100

    [clip] Correctly compute a geometric mask for a rectilinear + arbitrary
    
    Fix up the geometric clipper to handle intersecting a rectilinear path
    with an arbitrary path and inspecting the result to see if it becomes a
    a region.

 src/cairo-clip.c |   47 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 38 insertions(+), 9 deletions(-)

commit 8a323d7c8998f308fc222d65badb1289e3f7fb54
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 14:15:07 2009 +0100

    [clip] Apply surface offset when combining with clip mask
    
    In order to correctly combine the clip mask with the compositing mask the
    clip path must be offset so that it is relative to the destination
    surface.

 src/cairo-clip-private.h      |    2 +-
 src/cairo-clip.c              |   85 +++++++++++++++++++++--------------------
 src/cairo-region.c            |    8 +++-
 src/cairo-surface-fallback.c  |    8 +---
 src/cairo-traps.c             |    8 +---
 src/cairo.h                   |    2 +-
 test/clip-stroke.xlib.ref.png |  Bin 1563 -> 1490 bytes
 7 files changed, 56 insertions(+), 57 deletions(-)

commit 21225a7163bc93d34d3e395c840faaba24046bb6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 12:08:12 2009 +0100

    [clip] Pass in destination offset for combining with clip-mask
    
    When combining a clip-mask with a subsurface, as when used to combine with
    the composite mask, we need to pass the destination surface offset to the
    clip so that the paths can be corrected for the new surface.

 src/cairo-clip-private.h     |    4 ++-
 src/cairo-clip.c             |   45 ++++++++++++++++++++---------------------
 src/cairo-surface-fallback.c |   14 ++++++++----
 3 files changed, 34 insertions(+), 29 deletions(-)

commit ac6c6fe1d39effd5b6b382f0f1199af824868ef4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 12:07:20 2009 +0100

    [test] Add rotated clip.
    
    Exercise a bug found in not offsetting the clip mask when combining with
    the composite mask.

 test/Makefile.am               |    3 +
 test/Makefile.sources          |    1 +
 test/rotated-clip.c            |  110 ++++++++++++++++++++++++++++++++++++++++
 test/rotated-clip.ps.ref.png   |  Bin 0 -> 3378 bytes
 test/rotated-clip.ref.png      |  Bin 0 -> 3761 bytes
 test/rotated-clip.xlib.ref.png |  Bin 0 -> 3922 bytes
 6 files changed, 114 insertions(+), 0 deletions(-)

commit c60280782dfac7de1abe3230a500c7c98735dc02
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 09:59:36 2009 +0100

    [script] Implement invert
    
    Flesh out matrix inversion.

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

commit 06ca0b1475caf709fdf32b10a891dfb3b47cc6b1
Author: Damian Frank <damianf@ubuntu-vm.(none)>
Date:   Fri Aug 14 11:35:55 2009 -0500

    Fix build on systems with older Xrender headers.
    
    This patch revises xlib so that it doesn't depend on having recent
    Xrender headers to build.  In particular, some definitions were added
    to the private xrender header file, and an ifdef render version check
    CAIRO_SURFACE_RENDER_SUPPORTS_OPERATOR was changed to a run-time
    check using CAIRO_SURFACE_RENDER_HAS_PDF_OPERATORS.

 src/cairo-xlib-display.c         |    7 +++
 src/cairo-xlib-surface.c         |   30 ++-----------
 src/cairo-xlib-xrender-private.h |   90 ++++++++++++++++++++++++++++++++++---
 3 files changed, 93 insertions(+), 34 deletions(-)

commit 17ef949b6aaa812dd566f1db016055f8e1913320
Author: Damian Frank <damianf@ubuntu-vm.(none)>
Date:   Fri Aug 14 11:38:52 2009 -0500

    Rename cairo-script static func to avoid MinGW conflict
    
    cairo-script-operators.c's _dup function was colliding with one
    defined in io.h by MinGW (gcc 4.3.0 package).  I renamed it
    to _duplicate.

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

commit 3e7e0eacef650f1035cfbe15e306116ff711f99c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 17:07:41 2009 +0100

    Update reference images
    
    Refresh the test reference images to match the current output where
    acceptable.

 test/Makefile.am                                   |   14 ++++++++++++--
 test/clip-fill.xlib-fallback.ref.png               |  Bin 1039 -> 1063 bytes
 test/clip-operator.pdf.argb32.ref.png              |  Bin 9340 -> 9266 bytes
 test/clip-operator.pdf.rgb24.ref.png               |  Bin 5146 -> 5166 bytes
 test/clip-operator.ref.png                         |  Bin 8191 -> 8126 bytes
 test/clip-operator.rgb24.ref.png                   |  Bin 3279 -> 3244 bytes
 test/clip-operator.svg12.argb32.xfail.png          |  Bin 8404 -> 8378 bytes
 test/clip-operator.svg12.rgb24.xfail.png           |  Bin 4523 -> 4566 bytes
 test/clip-operator.xlib-fallback.ref.png           |  Bin 3226 -> 3228 bytes
 test/clip-push-group.svg.ref.png                   |  Bin 0 -> 175 bytes
 test/clip-stroke.ref.png                           |  Bin 1528 -> 1451 bytes
 test/clip-stroke.xlib-fallback.ref.png             |  Bin 1566 -> 1490 bytes
 test/clip-stroke.xlib.ref.png                      |  Bin 1563 -> 1563 bytes
 test/clip-text.svg.ref.png                         |  Bin 933 -> 946 bytes
 test/clipped-group.ref.png                         |  Bin 316 -> 289 bytes
 test/clipped-group.svg.ref.png                     |  Bin 0 -> 250 bytes
 test/device-offset-fractional.pdf.xfail.png        |  Bin 275 -> 270 bytes
 test/extended-blend-alpha.svg12.argb32.xfail.png   |  Bin 6857 -> 6658 bytes
 test/filter-nearest-offset.pdf.xfail.png           |  Bin 1926 -> 2152 bytes
 test/filter-nearest-transformed.pdf.xfail.png      |  Bin 488 -> 532 bytes
 test/ft-text-vertical-layout-type1.svg.ref.png     |  Bin 3609 -> 3607 bytes
 test/ft-text-vertical-layout-type1.xlib.ref.png    |  Bin 3640 -> 3639 bytes
 test/ft-text-vertical-layout-type3.svg.ref.png     |  Bin 3626 -> 3626 bytes
 test/ft-text-vertical-layout-type3.xlib.ref.png    |  Bin 3605 -> 3605 bytes
 test/group-unaligned.svg.argb32.xfail.png          |  Bin 522 -> 520 bytes
 test/leaky-dashed-rectangle.pdf.ref.png            |  Bin 347 -> 380 bytes
 test/mask-glyphs.svg.ref.png                       |  Bin 1211158 -> 1211144 bytes
 test/mask.pdf.argb32.ref.png                       |  Bin 7837 -> 7866 bytes
 test/mask.pdf.rgb24.ref.png                        |  Bin 7301 -> 7336 bytes
 test/mask.svg.argb32.xfail.png                     |  Bin 8613 -> 8641 bytes
 test/mask.svg.rgb24.xfail.png                      |  Bin 7189 -> 7199 bytes
 test/operator-source.svg12.argb32.xfail.png        |  Bin 2951 -> 2967 bytes
 test/operator-source.svg12.rgb24.xfail.png         |  Bin 2963 -> 2976 bytes
 test/overlapping-glyphs.svg.argb32.ref.png         |  Bin 0 -> 2338 bytes
 test/overlapping-glyphs.svg.rgb24.ref.png          |  Bin 0 -> 2338 bytes
 test/radial-gradient.pdf.ref.png                   |  Bin 277162 -> 280944 bytes
 test/radial-gradient.svg.xfail.png                 |  Bin 0 -> 264425 bytes
 test/random-intersections-curves-eo.ref.png        |  Bin 246996 -> 245762 bytes
 ...m-intersections-curves-eo.xlib-fallback.ref.png |  Bin 246243 -> 244255 bytes
 test/random-intersections-curves-eo.xlib.ref.png   |  Bin 246243 -> 244255 bytes
 test/random-intersections-curves-nz.ref.png        |  Bin 267589 -> 264545 bytes
 ...m-intersections-curves-nz.xlib-fallback.ref.png |  Bin 266364 -> 264288 bytes
 test/random-intersections-curves-nz.xlib.ref.png   |  Bin 266360 -> 264288 bytes
 test/scale-offset-image.pdf.ref.png                |  Bin 0 -> 10099 bytes
 test/scale-offset-image.pdf.xfail.png              |  Bin 10099 -> 0 bytes
 test/scale-offset-image.script.xfail.png           |  Bin 0 -> 9963 bytes
 test/scale-offset-similar.pdf.ref.png              |  Bin 0 -> 10890 bytes
 test/scale-offset-similar.pdf.xfail.png            |  Bin 11024 -> 0 bytes
 test/scale-offset-similar.script.xfail.png         |  Bin 0 -> 9963 bytes
 test/self-intersecting.ref.png                     |  Bin 301 -> 213 bytes
 test/smask-text.script.ref.png                     |  Bin 0 -> 1663 bytes
 test/smask.pdf.xfail.png                           |  Bin 4393 -> 2848 bytes
 test/smask.script.ref.png                          |  Bin 0 -> 3396 bytes
 test/text-pattern.pdf.argb32.ref.png               |  Bin 1831 -> 1810 bytes
 test/text-pattern.pdf.rgb24.ref.png                |  Bin 1598 -> 1559 bytes
 test/unbounded-operator.svg12.rgb24.xfail.png      |  Bin 1719 -> 1731 bytes
 test/user-font-proxy.svg.ref.png                   |  Bin 16817 -> 16814 bytes
 test/user-font.pdf.ref.png                         |  Bin 0 -> 6241 bytes
 58 files changed, 12 insertions(+), 2 deletions(-)

commit 155e10e632cb647df5c3d54a75975bc16591287d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 08:04:33 2009 +0100

    [script] Fix use of freed list
    
    A typo, I missed converting the user over to the freshly sorted list,
    leaving it iterating over original but checking the sorted for termination
    conditions.

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

commit 5393aa6d6c4676f20d316f3cd0a18bb497574e50
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 29 08:02:52 2009 +0100

    [path] Return the canonical box.
    
    When returning the single box that represents a path, always return it
    consistently wound.

 src/cairo-path-fill.c  |   32 --------------------------------
 src/cairo-path-fixed.c |   28 ++++++++++++++++++++++++----
 2 files changed, 24 insertions(+), 36 deletions(-)

commit afea5eb79d2159fe9a5dc1a1a7b9445e40fbb474
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 28 17:10:35 2009 +0100

    [scaled-font] Fix implementation-face refleak
    
    If we found the font via the holdover cache, or if we returned due to an
    error, we would leak a reference count on the implementaton face.

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

commit e5d44937f34d35606ad7f07415be7331cf146567
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 28 17:09:54 2009 +0100

    [ft] Improve error path handling.
    
    Specifically check for an error during resolving the font and do not cache
    the error object.

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

commit e76856e6ee563affc0a273ed6eef865866802dec
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 28 15:51:33 2009 +0100

    [scaled-font] Refleak on error path.
    
    Perform the destroy of the local font before returning along the error
    path.

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

commit d7d6f75ed26bc3ea040c618442ba71c89633ac7b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 28 15:50:13 2009 +0100

    [clip] Fix refleak of previous clipping surfaces.
    
    When combining previous clip masks, we leaked a referenced due to not
    destroying the returned reference.

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

commit 52e5ce3a36ab1cd7da25056df7f12ac0b23e410d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 27 17:25:08 2009 +0100

    [test] Add clip-stroke
    
    Soeren was the first to report a clipping regression in the xlib backend
    with strokes, and provided a test case to exercise the bug. This is an
    extension of his test to provide coverage of different clipping and
    stroking methods.

 test/Makefile.am                       |    3 +
 test/Makefile.sources                  |    1 +
 test/clip-stroke.c                     |  121 ++++++++++++++++++++++++++++++++
 test/clip-stroke.ref.png               |  Bin 0 -> 1528 bytes
 test/clip-stroke.xlib-fallback.ref.png |  Bin 0 -> 1566 bytes
 test/clip-stroke.xlib.ref.png          |  Bin 0 -> 1563 bytes
 6 files changed, 125 insertions(+), 0 deletions(-)

commit 20cdb99ae8ae0cc02193468e811b1b74b3f6d3b7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 27 16:21:30 2009 +0100

    [path-fixed] Distinguish cw and ccw boxes
    
    To correctly handle retessellating trapezods constructed from alternately
    wound boxes, then we need to pass that information from the path to the
    tessellator. We do this by switching the direction of the box if the first
    edge is horizontal as opposed to vertical.

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

commit 219d46a9ebc47f99fa8fe9c6e3f0aa440309f032
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 27 14:45:24 2009 +0100

    [scaled-font] Eliminate intermediate path when tracing glyphs
    
    Currently the tracing code for glyphs constructs an temporary path in
    order to replay and append to the output. This temporary allocation is
    extremely wasteful as we can just directly append the glyph path to
    the output path.

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

commit 2e05922737d63289a3f124699359b8d385315cbd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 27 13:58:43 2009 +0100

    [stroke] Handle degenerate stroke extents
    
    If the stroke is degenerate, i.e. the path consists only of a single
    move-to and no edges, then the stroke may be visible due to end-capping
    (as opposed to fills which are empty). So we also need to pad out the
    extents around the current point for the degenerate case.

 src/cairo-path-bounds.c |   31 +++++++++++++------------------
 1 files changed, 13 insertions(+), 18 deletions(-)

commit cfd78393f357bc69233d4d00d0fb3a2ff736f1a7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Aug 26 23:32:34 2009 +0100

    [path] Handle the implicit close for path_fixed_is_box()
    
    _cairo_path_fixed_is_box() is only called for filled paths and so must
    handle the implicit close (which was already being correctly handled by
    _cairo_path_fixed_iter_is_box).

 src/cairo-path-fixed.c |   33 ++++++++++++++++++---------------
 1 files changed, 18 insertions(+), 15 deletions(-)

commit f22045bb4b9e700ce223c259ad41403dc7efe81f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Aug 26 23:30:02 2009 +0100

    [fallback] Include implicit closes in the check for rectilinear paths
    
    Fixes test/implicit-close
    
    By forgetting the implicit-close when checking for rectilinear paths, we
    tried to feed the triangle (and other diagclose) into the specialised
    rectilinear tesselators which completely mishandled that final edge.

 src/cairo-path-fixed-private.h |   14 ++++++++++++++
 src/cairo-surface-fallback.c   |    6 ++++--
 2 files changed, 18 insertions(+), 2 deletions(-)

commit 92f6f275fcb5407baf908485ffd08b6787b2caf9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Aug 26 23:27:46 2009 +0100

    [test] Implicit close
    
    This is a simple test that broke with the determination of rectilinearity
    during path construction. I forgot the implicit close on fill and so the
    ignored the final diagonal edge and failed to draw the triangle.

 test/Makefile.am            |    1 +
 test/Makefile.sources       |    1 +
 test/implicit-close.c       |   54 +++++++++++++++++++++++++++++++++++++++++++
 test/implicit-close.ref.png |  Bin 0 -> 251 bytes
 4 files changed, 56 insertions(+), 0 deletions(-)

commit 8078cd194e95a10cf653c970d1ddd39049a511f2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 23 15:25:42 2009 +0100

    [boilerplate] Runtime library check
    
    For the purposes of benchmarking it is useful to run cairo-perf against a
    different library from the one it was compiled against. In order to do so,
    we need to check that the runtime library contains the required entry
    points for our targets - which we can check by using dlsym.

 boilerplate/Makefile.am                        |    3 ++
 boilerplate/cairo-boilerplate-directfb.c       |    2 +
 boilerplate/cairo-boilerplate-drm.c            |    2 +
 boilerplate/cairo-boilerplate-gl.c             |    2 +
 boilerplate/cairo-boilerplate-glitz-agl.c      |    2 +
 boilerplate/cairo-boilerplate-glitz-glx.c      |    2 +
 boilerplate/cairo-boilerplate-glitz-wgl.c      |    2 +
 boilerplate/cairo-boilerplate-pdf.c            |    2 +
 boilerplate/cairo-boilerplate-ps.c             |    4 +++
 boilerplate/cairo-boilerplate-quartz.c         |    2 +
 boilerplate/cairo-boilerplate-script.c         |    1 +
 boilerplate/cairo-boilerplate-skia.c           |    2 +
 boilerplate/cairo-boilerplate-svg.c            |    4 +++
 boilerplate/cairo-boilerplate-test-surfaces.c  |    8 ++++++
 boilerplate/cairo-boilerplate-vg.c             |    4 +++
 boilerplate/cairo-boilerplate-win32-printing.c |    2 +
 boilerplate/cairo-boilerplate-win32.c          |    2 +
 boilerplate/cairo-boilerplate-xcb.c            |    1 +
 boilerplate/cairo-boilerplate-xlib.c           |    4 +++
 boilerplate/cairo-boilerplate.c                |   29 +++++++++++++++++++++--
 boilerplate/cairo-boilerplate.h                |    1 +
 configure.ac                                   |    7 +++++
 22 files changed, 85 insertions(+), 3 deletions(-)

commit 7447915381fc64bd0c66f7110c1dd0b8a10d73f5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 22 22:20:35 2009 +0100

    [script] Conditionalise the build
    
    Allow the interpreter to be disabled if we can not satisfy its dependencies.

 configure.ac                  |    2 ++
 util/Makefile.am              |   11 +++++++++--
 util/cairo-script/Makefile.am |    2 +-
 3 files changed, 12 insertions(+), 3 deletions(-)

commit fcda9fc2f29c2ee7d0bb45c17a2261badfdf430c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 22 18:48:33 2009 +0100

    [scaled-font] Remove assert from cairo_scled_font_create()
    
    The assert() is only correct for the normal paths, but failed on the error
    path. It has been run for long enough for me to be confident that the code
    is self-consistent, so I think I can now safely remove it.

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

commit 93cfa7376fb505e676d113e8ef431bab9b497f56
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 22 18:45:54 2009 +0100

    [win32] Use the system scaled_font_done
    
    Pointless as both functions are empty, but lets be pedantically correct
    nevertheless.

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

commit 8654a4b35c060ab06860c124a643be912060c4a1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 22 18:16:20 2009 +0100

    [win32] Initialize clip_region
    
    Eek, I attempted to destroy an uninitialised region on the first use
    of a clip.

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

commit 9b33a2e1c794996cbe4cb0a5c773d50566d46bd4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Aug 22 17:40:12 2009 +0100

    [win32] Compiler warnings
    
    Innocuous warnings about the use of mismatching explicit casts (I'm really
    not convinced by the merits of this particular compiler warning, but it
    does cleanse the code slightly.)

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

commit d1740d8782d90edb5b5e20dc5bcadb7a9eeeb4cc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 20 21:11:11 2009 +0100

    [pattern] Ensure that no repeated pattern is clipped
    
    Previously the pattern_acquire_surface routine only had to worry about
    handling extend modes NONE or REPEAT and so the test for ! REPEAT
    sufficed when what was actually intended was a test for NONE.

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

commit 958f7ab1238b8242975d3ea774c26d23e090e70c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Aug 19 12:35:00 2009 +0100

    [script] Support running on cairo-1.8
    
    Pre 1.9 the application had to pass a resolved font to cairo -- so do so
    in the interpreter if the cairo version is less than 1.9

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

commit 87175334a574fa0f69679b1a0baeeb881eaa439b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 21 15:51:12 2009 +0100

    [gl] Use spans for trapezois.
    
    Always use spans, even for unaligned boxes. In the future (given a new
    interface) we may want to emit the common unaligned box code more
    efficient than a per-scanline computation -- but for now simply avoid the
    requirements to write a temporary CPU buffer.

 src/cairo-gl-surface.c       |   22 ++++++++++++++++++----
 src/cairo-image-surface.c    |    4 +---
 src/cairo-surface-fallback.c |   10 ++--------
 src/cairo-surface.c          |   27 ++++++++++-----------------
 src/cairo-win32-surface.c    |    4 +---
 src/cairoint.h               |   18 ++++++++++++++----
 6 files changed, 46 insertions(+), 39 deletions(-)

commit e65dfacab5d123913a4b2f59967f27c0b0af0692
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 21 15:50:24 2009 +0100

    [gl] Simplify acquire_dest_image()
    
    Remove redundant code: the intersection of surface extents and the copy to
    a temporary buffer.

 src/cairo-gl-surface.c |   53 ++++++++++-------------------------------------
 1 files changed, 12 insertions(+), 41 deletions(-)

commit 5a13396373180ceae31287441ef9c838c771849d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 21 15:48:38 2009 +0100

    [gl] Use common ARRAY_LENGTH macro
    
    Forgo the local ARRAY_SIZE macro where the common one will suffice.

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

commit efdb53425ee71b3bce6c92ce212f5baf3e2a43d7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 21 11:58:31 2009 +0100

    [qt] Discard impossible status return from path construction
    
    As we never return an error status during the path construction, we can
    use the return value for the QPainterPath instead, greatly simplifying the
    callers.

 src/cairo-qt-surface.cpp |  105 ++++++++++++++++++---------------------------
 1 files changed, 42 insertions(+), 63 deletions(-)

commit f2cde41cabaa0c190ef965f634cf2c73b6ba2334
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 21 10:29:39 2009 +0100

    [cairoint.h] Add missing cairo_private to debug prototypes.

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

commit b6d96bba8a4e9efe1033dd7fc875aba9bd8d0dc8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 20 20:31:49 2009 +0100

    [win32] Trust the clipping code to trim roi to our surface
    
    The higher level code ensures that the region of interest is trimmed to
    our declared surface extents, so performing the intersection again is
    redundant. Furthermore with the change in the clipping code, the
    fallback region is no longer clipped, especially as the clip that is
    currently set upon the DC is likely to be stale and incorrect for the
    fallback.
    
    Hopefully this resolves the assertion failure reported by Damian Frank,
    http://lists.cairographics.org/archives/cairo/2009-August/018015.html
    
    CC:  Damian Frank <damian.frank@gmail.com>

 src/cairo-win32-surface.c |   53 +++++++-------------------------------------
 1 files changed, 9 insertions(+), 44 deletions(-)

commit d7faec024ac9f702c9bb305599ef8960a972491a
Author: Vladimir Vukicevic <vladimir@pobox.com>
Date:   Mon Jun 15 11:15:22 2009 +0100

    Add skia backend
    
    Originally written by Vladimir Vukicevic to investigate using Skia for
    Mozilla, it provides a nice integration with a rather interesting code
    base. By hooking Skia underneath Cairo it allows us to directly compare
    code paths... which is interesting.
    
    [updated by Chris Wilson]

 boilerplate/Makefile.sources         |    1 +
 boilerplate/Makefile.win32.features  |   10 +
 boilerplate/cairo-boilerplate-skia.c |   50 ++
 build/Makefile.win32.features        |    1 +
 build/Makefile.win32.features-h      |    3 +
 build/configure.ac.features          |    1 +
 configure.ac                         |   13 +
 perf/cairo-perf-trace.c              |    3 +
 perf/cairo-perf.c                    |    3 +
 src/Makefile.sources                 |    3 +
 src/Makefile.win32.features          |   14 +
 src/cairo-skia-surface.cpp           | 1174 ++++++++++++++++++++++++++++++++++
 src/cairo-skia.h                     |   84 +++
 src/cairo.h                          |    4 +-
 14 files changed, 1363 insertions(+), 1 deletions(-)

commit af6df4af51ad75a956e3b73542647206ab534bd2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 20 12:54:12 2009 +0100

    [configure] Choose a better name for the 'temporary' egl iterator
    
    The problem is that it remains referenced by egl_NONPKGCONFIG_LIBS and so
    must not be subsequently overwritten, so give it an egl_ prefix.

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

commit 83c2f44dd954cb491d72834d0362d6d801ef7651
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 20 12:16:55 2009 +0100

    [test] Update REFERENCE_IMAGES

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

commit f99e1841448e98be6161be57551153a6d9e28a13
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 20 12:11:51 2009 +0100

    [build] Remove -Wcast-align
    
    Use -Wcast-align simply generates too much noise due to false-positive
    reports when casting pixels to uint32_t.

 build/configure.ac.warnings |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit 5fdf5b311e06e49843e924523e9bc91ba14da3bb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Aug 19 08:35:01 2009 +0100

    [fallback] Reduce paint + clipmask to fill
    
    Under simple, yet common, conditions using a bounded operator and painting
    with a single complex clip we can reduce the strength of that operation to
    a fill. In effect this removes the need for a temporary mask for some
    backends (GL, drm, xlib).

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

commit 425b0e35e2d7d44d99e22169b98fc3ca05763650
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Aug 18 14:25:25 2009 +0100

    Add xml surface
    
    A very simple surface that produces a hierarchical DAG in a simple XML
    format. It is intended to be used whilst debugging, for example with the
    automatic regression finding tools of cairo-sphinx, and with test suites
    that just want to verify that their code made a particular Cairo call.

 boilerplate/Makefile.win32.features      |   10 +
 build/Makefile.win32.features            |    1 +
 build/Makefile.win32.features-h          |    3 +
 build/configure.ac.features              |    1 +
 configure.ac                             |    4 +
 src/Makefile.sources                     |   18 +-
 src/Makefile.win32.features              |   14 +
 src/cairo-base64-stream.c                |  143 ++++
 src/cairo-base85-stream.c                |    3 -
 src/cairo-output-stream-private.h        |    4 +
 src/cairo-ps-surface.c                   |    4 +
 src/cairo-script-surface.c               |   18 +-
 src/cairo-xml-surface.c                  | 1153 ++++++++++++++++++++++++++++++
 src/cairo-xml.h                          |   72 ++
 src/cairo.h                              |    4 +-
 util/Makefile.am                         |   11 +-
 util/cairo-script/cairo-script-scanner.c |  113 +++
 util/trace-to-xml.c                      |   77 ++
 util/xml-to-trace.c                      |  263 +++++++
 19 files changed, 1902 insertions(+), 14 deletions(-)

commit 6e0b3be903a6c3ad948de95f490cff92430429a6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Aug 18 10:55:54 2009 +0100

    Add cairo-sphinx utility for regression analysis
    
    sphinx is an alternate version of the current cairo-test-trace. It's
    purpose is to replay a live application (which may just be a replay of a
    trace) against a backend and its reference. The improvement over the
    original cairo-test-trace is that the reference backend may be from an
    older version of cairo.

 configure.ac                  |    6 +
 util/Makefile.am              |    6 +
 util/cairo-sphinx/.gitignore  |    1 +
 util/cairo-sphinx/Makefile.am |   40 ++
 util/cairo-sphinx/fdr.c       |  260 +++++++
 util/cairo-sphinx/sphinx.c    | 1525 +++++++++++++++++++++++++++++++++++++++++
 6 files changed, 1838 insertions(+), 0 deletions(-)

commit c980affce05590f5f52273ba340463f00773c776
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Aug 18 10:54:26 2009 +0100

    [script] Apply device offset when replaying meta surface
    
    As we set the size of the surface to fit the ink extents of the meta
    surface, we also need to ensure that the origin  of the script lies at the
    origin of the ink extents.

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

commit eb33f842dc9a2555ba8f7948f49a8335db951959
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Aug 17 11:38:52 2009 +0100

    [meta] Missing status check
    
    We need to check the status on the created image before use.

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

commit ce6a2cc5d2cb8a299759d764de2e7d2b6b655cb4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Aug 17 10:31:47 2009 +0100

    [wrapper] Always copy clip
    
    We always need to make a local copy of the clip as the backends are free
    to modify it as they process the operation.

 src/cairo-surface-wrapper.c |   60 +++++++++++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 16 deletions(-)

commit 6ff711b6305a9cf65e584d92258a6fa4e78c31ef
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Aug 17 10:11:32 2009 +0100

    [matrix] Improve bbox finding for translation matrix
    
    If the matrix is a pure translation matrix than we can skip determination
    of the extents and just translate the input bbox.

 src/cairo-matrix.c |   56 ++++++++++++++++++++++++++-------------------------
 1 files changed, 29 insertions(+), 27 deletions(-)

commit cd7b27ff5c01a533c2c065c4b455ad19df2be3bb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 16 21:08:22 2009 +0100

    Add 'flight-data-recorder' utility.
    
    This is a simple variation on cairo-trace that wraps records the last 16
    contexts by wrapping the target surface inside a tee surface, along with a
    meta/recording surface. Then on receipt of a SIGUSR1, those last 16
    contexts are played via a script-surface into /tmp/fdr.trace.
    
    Mostly proof-of-concept, it seems to be causing a number of rendering
    glitches whilst testing with firefox -- otherwise, it seems to works.

 configure.ac                    |    1 +
 src/cairo-scaled-font-private.h |    3 +
 src/cairo-scaled-font.c         |   16 ++
 src/cairo-script-surface.c      |   58 +++++++-
 src/cairo-script.h              |    4 +
 src/cairo.h                     |    4 +
 util/Makefile.am                |    3 +
 util/cairo-fdr/Makefile.am      |   13 ++
 util/cairo-fdr/fdr.c            |  304 +++++++++++++++++++++++++++++++++++++++
 9 files changed, 400 insertions(+), 6 deletions(-)

commit 658cdc7c9aac23f82f3ea5db8df10844aeb3ac75
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 16 18:04:54 2009 +0100

    Introduce cairo_tee_surface_t
    
    Add a new surface type that multiplies it input onto several output
    surfaces. The only limitation is that it requires a master surface that is
    used whenever we need to query surface options, such as font options and
    extents.

 boilerplate/Makefile.win32.features |    8 +
 build/Makefile.win32.features-h     |    1 +
 build/configure.ac.features         |    1 +
 configure.ac                        |    1 +
 src/Makefile.sources                |    6 +-
 src/Makefile.win32.features         |    8 +
 src/cairo-surface-wrapper-private.h |    4 +
 src/cairo-surface-wrapper.c         |    7 +
 src/cairo-surface.c                 |   11 +
 src/cairo-tee-surface-private.h     |   47 +++
 src/cairo-tee-surface.c             |  558 +++++++++++++++++++++++++++++++++++
 src/cairo.h                         |   13 +-
 12 files changed, 662 insertions(+), 3 deletions(-)

commit 4ae7186719b25f052b875549cc5377e16a557512
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 16 17:07:00 2009 +0100

    [script] Correct emission of get_target() for a popped context
    
    If the context is no longer on the operand stack, then we need to recall
    the surface via a definition.

 src/cairo-script-surface.c |   53 ++++++++++++++++++++++++++-----------------
 1 files changed, 32 insertions(+), 21 deletions(-)

commit 8d1bf830c0137eac837091bda92a636c0fcb0456
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 16 14:20:35 2009 +0100

    Fix errors found by clang
    
    Shadowed variables, unused writes and some dead code.

 src/cairo-pdf-surface.c                    |    2 --
 src/cairo-xlib-surface.c                   |    5 ++---
 util/cairo-script/cairo-script-file.c      |   10 +++-------
 util/cairo-script/cairo-script-operators.c |   23 ++++++++++++++++-------
 util/cairo-trace/trace.c                   |   14 ++++++++------
 5 files changed, 29 insertions(+), 25 deletions(-)

commit d8dbce021a4493330864154e67ca6e4a1f2f50b2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 16 13:26:59 2009 +0100

    [script] recursive active (type3 glyphs)
    
    The assumption that an active surface could not recurse into another
    operation was invalid - due to the complexity of handling type3 glyphs.

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

commit eba6b5126a55c84706e677b3fc88743f64cc28d7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 16 12:47:14 2009 +0100

    [build] Add options for warning about bad casts
    
    -Wbad-function-cast in particular. Triggers quite a few warnings where we
    have explicitly cast to an integer.

 build/configure.ac.warnings                |    9 +-
 src/cairo-arc.c                            |    2 +-
 src/cairo-pdf-surface.c                    |    8 +-
 src/cairo-ps-surface.c                     |   20 ++--
 src/cairo-svg-surface.c                    |    4 +-
 util/cairo-script/cairo-script-objects.c   |    4 +-
 util/cairo-script/cairo-script-operators.c |  172 +++++++++++++++++++---------
 util/cairo-script/cairo-script-private.h   |    6 +-
 8 files changed, 143 insertions(+), 82 deletions(-)

commit 33ef32af4e7adce41f035ee378279c19577469b0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 16 12:46:20 2009 +0100

    [clip] Use the rectangular tessellator to extract boxes

 src/cairo-clip.c             |   17 ++++++++++-------
 src/cairo-path-fill.c        |   29 ++++++++++++++++++++++-------
 src/cairo-surface-fallback.c |    8 ++++----
 3 files changed, 36 insertions(+), 18 deletions(-)

commit ab035ab2c7bec254fc94d6391398905b5039e777
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 28 10:06:04 2009 +0100

    [tessellate] Rectangular special case
    
    Add an even simpler sweep-line tessellator for rectangular trapezoids (as
    produced by the rectilinear stoker and box filler).
    
    This is so simple it even outperforms pixman's region validation code for the
    purposes of path-to-region conversion.

 src/Makefile.sources                    |    1 +
 src/cairo-bentley-ottmann-rectangular.c |  733 +++++++++++++++++++++++++++++++
 src/cairo-clip.c                        |   26 +-
 src/cairo-path-fill.c                   |   40 +--
 src/cairo-path-stroke.c                 |    3 +-
 src/cairo-surface-fallback.c            |   95 ++++-
 src/cairo-traps.c                       |   28 +-
 src/cairoint.h                          |    5 +
 8 files changed, 883 insertions(+), 48 deletions(-)

commit d7b0c3b784faba756b10b66b9757e6e4c3fce38c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 22:03:06 2009 +0100

    [script] Track scaled-font
    
    Instead of emitting the (font-face, matrix and options) elements when
    setting up the desired font on the matrix, simply restore the scaled-font.

 src/cairo-script-surface.c |   39 ++++++++++++++++++++++-----------------
 1 files changed, 22 insertions(+), 17 deletions(-)

commit 7306305cc898c9f27957c6c6717028cbdcff6a5a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 21:59:12 2009 +0100

    [script] Emit surface content
    
    Include the desired content with the creation info.

 boilerplate/cairo-boilerplate-script.c |    2 +-
 src/cairo-script-surface.c             |   34 +++++++++++++++++++------------
 src/cairo-script.h                     |    1 +
 util/cairo-trace/trace.c               |    5 +++-
 4 files changed, 27 insertions(+), 15 deletions(-)

commit 052211b072788f0977dccebdcf681d4874f2487a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 20:16:51 2009 +0100

    [script] Garbage collect contexts on context switch
    
    Previously the contexts were permanently associated with the surface and
    only destroyed along with the final reference to the surface. This meant
    that we kept a large number of unwanted contexts in memory. Most
    applications only have a few contexts active at any time, so remove
    inactive contexts from the operand stack every time we perform an
    operation on a different context.

 src/cairo-script-surface.c |  262 +++++++++++++++++++++++++++++++-------------
 1 files changed, 184 insertions(+), 78 deletions(-)

commit 8f8b91d9049433c9210e0b3aad574cf659862ae0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 18:37:01 2009 +0100

    [script] Wrap snapshot.
    
    Use the snapshot of our target surface if available.

 src/cairo-script-surface.c          |   20 ++++++++++++++++----
 src/cairo-surface-wrapper-private.h |    3 +++
 src/cairo-surface-wrapper.c         |    6 ++++++
 3 files changed, 25 insertions(+), 4 deletions(-)

commit fee647c98506eedad0fea667a9442786cb0804b7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 18:35:48 2009 +0100

    [script] Read from a FILE stream
    
    For ease of implementing the interpreter inside a pipeline, add a method
    to execute a FILE *.

 util/cairo-script/cairo-script-interpreter.c |   22 ++++++++++++++++++++++
 util/cairo-script/cairo-script-interpreter.h |    4 ++++
 2 files changed, 26 insertions(+), 0 deletions(-)

commit a9d997fecd54cea7dcd71487a24dbae14d0073a8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 17:21:05 2009 +0100

    [script] Introduce cairo_script_context_t
    
    cairo_script_context_t is an encapsulation object for interfacing with the
    output - multiple surfaces can share the same context, meaning that they
    write to the same destination file/stream.

 boilerplate/cairo-boilerplate-script.c |    5 +-
 boilerplate/cairo-boilerplate.c        |   26 +---
 src/cairo-script-surface.c             |  225 ++++++++++++++------------------
 src/cairo-script.h                     |   47 ++++---
 test/cairo-test-trace.c                |    5 +-
 util/cairo-script/csi-trace.c          |   13 +-
 util/cairo-trace/trace.c               |   20 +--
 7 files changed, 145 insertions(+), 196 deletions(-)

commit 28887ac272c8a36a41da4d6d58044164b94da6f3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 16:38:08 2009 +0100

    [trace] Fix emission of similar (track operands)

 util/cairo-trace/trace.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

commit dbd9438f5d01666ea118254427c0dc66a519ec3e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 15:57:30 2009 +0100

    [stroke] Only mark traps as having intersection if non-empty.
    
    We were hitting an assertion attempting to eliminate intersections inside
    the rectilinear tessellator for empty strokes. We can avoid this
    assertion, by only marking the traps as having potential intersections iff
    it is non-empty.

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

commit 60d73da9f2e148e982254c78773f0b925be184ff
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Aug 24 08:04:12 2009 +0100

    [clip] Cache intermediate clip masks.
    
    As we now superimpose a per-operation clip, this defeats the current
    top-level caching mechanism. Instead we need to cache the mask for
    each path. This still seems quite wasteful, and an avenue would be to
    avoid caching if the path is rectilinear and reduce the number of
    required composite operations. (However, first find test case...)

 src/cairo-clip.c |  165 +++++++++++++++++++++++++++++++++---------------------
 src/cairoint.h   |    3 +
 2 files changed, 104 insertions(+), 64 deletions(-)

commit 50c7d637f3a97031c5f4e2bc8d41d17e5397db45
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Aug 13 15:49:11 2009 +0100

    [trace] Emit an 'index' for an undefined surface
    
    Larry Ewing hit a bug in cairo-trace whereby it tried to create a similar
    surface referencing an undefined object. This fix checks whether the
    object has yet to be defined, and if not issues an index in order to copy
    the appropriate operand from the stack.

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

commit 3a483c2896c28142a90bd0e282af3862e066adfe