summaryrefslogtreecommitdiff
path: root/libs/cairo-1.16.0/ChangeLog.pre-1.10
diff options
context:
space:
mode:
Diffstat (limited to 'libs/cairo-1.16.0/ChangeLog.pre-1.10')
-rw-r--r--libs/cairo-1.16.0/ChangeLog.pre-1.1043602
1 files changed, 43602 insertions, 0 deletions
diff --git a/libs/cairo-1.16.0/ChangeLog.pre-1.10 b/libs/cairo-1.16.0/ChangeLog.pre-1.10
new file mode 100644
index 0000000..9721459
--- /dev/null
+++ b/libs/cairo-1.16.0/ChangeLog.pre-1.10
@@ -0,0 +1,43602 @@
+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 file 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 file changed, 61 insertions(+)
+
+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 file changed, 2 insertions(+)
+
+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
+
+ ...rgb24.ref.png => clip-fill-eo-unbounded.image16.ref.png} | Bin
+ ...rgb24.ref.png => clip-fill-nz-unbounded.image16.ref.png} | Bin
+ 2 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 file changed, 5 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 4 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 6 insertions(+)
+
+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 file changed, 7 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 11 insertions(+), 1 deletion(-)
+
+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 file changed, 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 file changed, 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 file changed, 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 file 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 file changed, 1 deletion(-)
+
+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 file 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 file changed, 3 insertions(+)
+
+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 file 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 file 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 file changed, 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 file 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 file changed, 1 insertion(+)
+
+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(+)
+
+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 file 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 file changed, 9 insertions(+), 1 deletion(-)
+
+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 | 62 +++++++++++++++++++++----------------------------
+ 1 file changed, 27 insertions(+), 35 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file 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 | 116 ++++++++++++++++++++++++++++--------------------
+ 2 files changed, 68 insertions(+), 49 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 file changed, 8 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 27 insertions(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 file changed, 5 insertions(+)
+
+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 file changed, 4 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 deletion(-)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 56 insertions(+)
+
+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 file changed, 3 insertions(+)
+
+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 file changed, 22 insertions(+)
+
+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(+)
+
+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 file 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 file 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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 32 insertions(+)
+
+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 file changed, 1 insertion(+), 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 insertion(+), 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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, 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(+)
+
+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 file 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 file changed, 32 insertions(+)
+
+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 file changed, 86 insertions(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 42 insertions(+)
+
+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 file changed, 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(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 19 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 deletion(-)
+
+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 file changed, 3 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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(+)
+
+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 file changed, 2 insertions(+)
+
+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(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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(+)
+
+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 file changed, 6 insertions(+)
+
+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 file changed, 27 insertions(+)
+
+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 file 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 file 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 file changed, 91 insertions(+)
+
+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 file changed, 103 insertions(+)
+
+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 file changed, 10 insertions(+)
+
+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 file 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 file changed, 10 insertions(+)
+
+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 file changed, 10 insertions(+)
+
+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 file changed, 11 insertions(+), 1 deletion(-)
+
+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 file changed, 38 insertions(+), 1 deletion(-)
+
+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 file changed, 15 insertions(+)
+
+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 file changed, 44 insertions(+)
+
+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 file changed, 36 insertions(+)
+
+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 file changed, 36 insertions(+)
+
+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 file 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 file changed, 35 insertions(+)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 2 insertions(+)
+
+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 file 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(+)
+
+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 file changed, 1 insertion(+)
+
+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, 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 file changed, 30 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file 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 file changed, 5 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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 file changed, 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 file 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 file 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 28 insertions(+)
+
+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, 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 file 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 file 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 file 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(+)
+
+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 file changed, 3 insertions(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 9 insertions(+)
+
+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 file changed, 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 112 insertions(+)
+
+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 file changed, 4 insertions(+)
+
+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 file 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 file 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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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 insertion(+), 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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 file 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 ++++++++++++
+ ...ro-boilerplate-gl.c => cairo-boilerplate-glx.c} | 91 --------
+ boilerplate/cairo-boilerplate-wgl.c | 236 +++++++++++++++++++++
+ build/Makefile.win32.features-h | 1 +
+ src/Makefile.win32.features | 8 +
+ 7 files changed, 397 insertions(+), 92 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 file 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 file 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 file 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(+)
+
+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 file changed, 36 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 file 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 file 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 file changed, 4 insertions(+)
+
+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(+)
+
+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(+)
+
+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 file 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(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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
+ ....ref.png => clip-nesting.quartz.argb32.ref.png} | Bin 1067 -> 1048 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
+ ...rtz.ref.png => fill-rule.quartz.argb32.ref.png} | Bin 2079 -> 2060 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
+ ...ng => over-around-source.quartz.argb32.ref.png} | Bin 612 -> 593 bytes
+ test/over-around-source.quartz.rgb24.ref.png | Bin 491 -> 0 bytes
+ ...g => over-between-source.quartz.argb32.ref.png} | Bin 570 -> 551 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
+ 171 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 file 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 file 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 file changed, 19 insertions(+)
+
+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 file 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 insertion(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 20 insertions(+)
+
+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 file 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(+)
+
+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 file 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 file 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
+ test/scale-source-surface-paint.pdf.argb32.xfail.png | Bin 0 -> 157 bytes
+ test/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(+)
+
+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 deletion(-)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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(+)
+
+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 file 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 file 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(+)
+
+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 file 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 file 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 file changed, 8 insertions(+), 1 deletion(-)
+
+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 file 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 file 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(+)
+
+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(+)
+
+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 file changed, 27 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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(+)
+
+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 file 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 file 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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+), 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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 file changed, 7 insertions(+)
+
+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 file 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 file 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, 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 file 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 file 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 file 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 file 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 file changed, 2 insertions(+)
+
+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 file changed, 45 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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, 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file 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 file 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 file 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 file 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 file changed, 1 insertion(+), 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 file 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 file changed, 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 file 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 file 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 file 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 file changed, 1 insertion(+), 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(+)
+
+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 file changed, 1 insertion(+), 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 3 insertions(+)
+
+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 file changed, 107 insertions(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 16 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 8 insertions(+)
+
+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 file changed, 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 file 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(+)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 | 129 ++++++++++++++++++-------------------------------
+ 2 files changed, 48 insertions(+), 83 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 deletion(-)
+
+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 file changed, 23 insertions(+)
+
+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 file 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 file changed, 2 insertions(+)
+
+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 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 2 insertions(+)
+
+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 file 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 file 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 file 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 file 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 file changed, 2 insertions(+)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 file 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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 1 insertion(+), 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 file changed, 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 insertion(+), 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 file 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 file 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 117 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+)
+
+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 file 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 | 48 ++++++++++++++++-------------------------
+ test/linear-gradient-extend.c | 36 ++++++++++++++++---------------
+ test/radial-gradient-extend.c | 36 ++++++++++++++++---------------
+ test/surface-pattern-operator.c | 36 ++++++++++++++++---------------
+ 4 files changed, 76 insertions(+), 80 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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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 file changed, 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 file 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 file changed, 4 insertions(+)
+
+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 file changed, 15 insertions(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 file 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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 | 1884 ++++++++++++++++++------
+ 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, 5416 insertions(+), 1404 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 file 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 file 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 file changed, 14 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 3 insertions(+), 1 deletion(-)
+
+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, 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 13 insertions(+)
+
+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 file 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 file 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 file 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 file 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 10 insertions(+)
+
+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 file 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 file changed, 23 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file changed, 10 insertions(+)
+
+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(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 32 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 15 insertions(+)
+
+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 file 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(+)
+
+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 file changed, 2 insertions(+)
+
+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(+)
+
+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 file changed, 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 file changed, 2 insertions(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 insertion(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file changed, 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file changed, 8 insertions(+), 1 deletion(-)
+
+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(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 6 insertions(+)
+
+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 file changed, 8 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 6 insertions(+)
+
+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 file changed, 1 insertion(+)
+
+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 file 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 file changed, 2 insertions(+)
+
+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 file changed, 1 insertion(+), 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 file changed, 2 insertions(+)
+
+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 file changed, 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(+)
+
+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(+)
+
+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 file changed, 14 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file 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 file 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 file 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 file changed, 2 insertions(+)
+
+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 file 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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 8 insertions(+)
+
+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 file 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 file changed, 11 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 3 insertions(+)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file 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 file changed, 2 insertions(+)
+
+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 file changed, 1 deletion(-)
+
+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 file 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 file changed, 4 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 1 insertion(+)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 20 insertions(+), 1 deletion(-)
+
+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 | 130 ++++++++++++++-----------------------
+ 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, 77 insertions(+), 150 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 file changed, 1 insertion(+), 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, 1 deletion(-)
+
+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 file 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 file 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 file changed, 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 file 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 file 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 file 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 file changed, 7 insertions(+), 1 deletion(-)
+
+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(+)
+
+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 file changed, 7 insertions(+), 1 deletion(-)
+
+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, 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 file 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 file 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 15 insertions(+), 1 deletion(-)
+
+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 file changed, 10 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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(+)
+
+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 file 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 file changed, 2 insertions(+)
+
+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 file 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 file 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 file changed, 24 insertions(+)
+
+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(+)
+
+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 file 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 file 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 file 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 file 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 file 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 file changed, 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 file changed, 4 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 6 insertions(+)
+
+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 file 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(+)
+
+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 file 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 file changed, 2 insertions(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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(+)
+
+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 file changed, 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 file 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 file changed, 1 insertion(+), 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, 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 insertion(+), 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 7 insertions(+)
+
+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(+)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 3 insertions(+)
+
+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(+)
+
+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 file changed, 3 insertions(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 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 file 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 file 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(+)
+
+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 file changed, 3 insertions(+)
+
+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(+)
+
+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 file changed, 7 insertions(+)
+
+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 file 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 file changed, 6 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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(+)
+
+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 file changed, 6 insertions(+)
+
+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 file changed, 6 insertions(+)
+
+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 file changed, 8 insertions(+), 1 deletion(-)
+
+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 file changed, 6 insertions(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 8 insertions(+), 1 deletion(-)
+
+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(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 file changed, 7 insertions(+)
+
+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 file 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 file changed, 15 insertions(+)
+
+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 file changed, 3 insertions(+)
+
+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(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 10 insertions(+)
+
+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 file 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 file 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 file 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 file 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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+)
+
+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 file 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 file 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 file changed, 13 insertions(+)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 | 69 ++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 54 insertions(+), 15 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(+)
+
+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(+)
+
+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 file 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 file 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 file 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 file changed, 3 insertions(+)
+
+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 file changed, 7 insertions(+)
+
+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 file 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 file changed, 6 insertions(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 5 insertions(+)
+
+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 file 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 file 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 file 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(+)
+
+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 file changed, 4 insertions(+)
+
+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 | 93 +++++++++++++++++++++-------------------
+ 4 files changed, 144 insertions(+), 97 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 file 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 file changed, 1 insertion(+)
+
+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 file 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 file changed, 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 file 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 file 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 file 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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 insertion(+), 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 file changed, 2 insertions(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 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(+)
+
+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 file changed, 10 insertions(+)
+
+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 file 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 file 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 file 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 file changed, 8 insertions(+)
+
+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 file changed, 1 insertion(+)
+
+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 file 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 file 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 file 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 file 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 file changed, 3 insertions(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+)
+
+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 file 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 file 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 file 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(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file 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 file 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(+)
+
+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 deletion(-)
+
+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 file 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 file changed, 4 insertions(+)
+
+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(+)
+
+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(+)
+
+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 file 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 file changed, 30 insertions(+)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+)
+
+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 file 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(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+)
+
+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 file 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 file changed, 6 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 3 insertions(+), 1 deletion(-)
+
+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, 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 file 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 file 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 file 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 file 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 file 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 file 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 file changed, 3 insertions(+)
+
+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(+)
+
+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, 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 file 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 file 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 file 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 file changed, 1 deletion(-)
+
+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 file changed, 5 insertions(+)
+
+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 file 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(+)
+
+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 | 145 +++++++++++++++++++++++++++----------------------
+ 1 file changed, 80 insertions(+), 65 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 file 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 file 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 file changed, 3 insertions(+)
+
+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 file 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(+)
+
+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 file 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 file changed, 8 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 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 file 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 | 56 +++++++++------
+ 4 files changed, 239 insertions(+), 35 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 file 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 file 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 deletion(-)
+
+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 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 6 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 file 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(+)
+
+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 file 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 file 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 file 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 file changed, 12 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 16 insertions(+)
+
+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 file changed, 4 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 file changed, 2 insertions(+)
+
+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(+)
+
+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 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 1 insertion(+)
+
+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 file 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 file 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 file 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(+)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 20 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 5 insertions(+)
+
+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 file 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 file 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 file changed, 9 insertions(+), 1 deletion(-)
+
+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 file changed, 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file changed, 2 insertions(+)
+
+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 file 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 file changed, 3 insertions(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 5 insertions(+)
+
+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 +++
+ ...o-xcb-xrender.h => cairo-xcb-surface-private.h} | 42 +-
+ src/cairo-xcb-surface-render.c | 4471 ++++++++++++++++++++
+ src/cairo-xcb-surface.c | 3382 ++++-----------
+ src/cairo-xcb.h | 41 +-
+ src/cairo-xlib-xcb-surface.c | 515 +++
+ src/cairoint.h | 16 +
+ test/xcb-surface-source.c | 1 -
+ 27 files changed, 11679 insertions(+), 2542 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 | 3987 ++++++++++++++++++++++++-----
+ 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, 3342 insertions(+), 678 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 file 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 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 file changed, 3 insertions(+)
+
+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 file 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 file 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 file changed, 5 insertions(+)
+
+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(+)
+
+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(+)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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(+)
+
+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(+)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 99 insertions(+)
+
+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 deletion(-)
+
+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 deletion(-)
+
+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(+)
+
+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(+)
+
+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 deletion(-)
+
+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(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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(+)
+
+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 file 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 file 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 file changed, 1 insertion(+), 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 file 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(+)
+
+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(+)
+
+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 file 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 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 file 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.
+
+ ...{path-stroke-twice-ref.png => path-stroke-twice.ref.png} | Bin
+ 1 file 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 deletion(-)
+
+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(+)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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 file changed, 3 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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(+)
+
+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 file changed, 4 insertions(+)
+
+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 file changed, 6 insertions(+), 1 deletion(-)
+
+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(+)
+
+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 file changed, 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 1 insertion(+), 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 file changed, 15 insertions(+)
+
+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 file changed, 1 insertion(+), 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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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(+)
+
+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 file changed, 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 file 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 file 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 file 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 file changed, 2 insertions(+)
+
+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 file 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 file 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 file changed, 2 insertions(+)
+
+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 file 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 file 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 file changed, 7 insertions(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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(+)
+
+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 deletion(-)
+
+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 file 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 file 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 file changed, 1 insertion(+)
+
+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 file 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 file changed, 1 insertion(+)
+
+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 file 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 file changed, 5 insertions(+)
+
+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 file 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-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 +-
+ ...private.h => cairo-recording-surface-private.h} | 54 +--
+ ...ro-meta-surface.c => cairo-recording-surface.c} | 460 ++++++++++-----------
+ 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 +-
+ ...rface-pattern.c => recording-surface-pattern.c} | 8 +-
+ ...=> recording-surface-pattern.gl.argb32.ref.png} | Bin
+ ...> recording-surface-pattern.pdf.argb32.ref.png} | Bin
+ ...=> recording-surface-pattern.pdf.rgb24.ref.png} | Bin
+ ...> recording-surface-pattern.ps2.argb32.ref.png} | Bin
+ ...=> recording-surface-pattern.ps2.rgb24.ref.png} | Bin
+ ...> recording-surface-pattern.ps3.argb32.ref.png} | Bin
+ ...=> recording-surface-pattern.ps3.rgb24.ref.png} | Bin
+ ...ng => recording-surface-pattern.quartz.ref.png} | Bin
+ ...recording-surface-pattern.quartz.rgb24.ref.png} | Bin
+ ...n.ref.png => recording-surface-pattern.ref.png} | Bin
+ ...png => recording-surface-pattern.rgb24.ref.png} | Bin
+ ...> recording-surface-pattern.svg.argb32.ref.png} | Bin
+ ...=> recording-surface-pattern.svg.rgb24.ref.png} | Bin
+ ...ng => scale-offset-similar.recording.xfail.png} | Bin
+ util/cairo-fdr/fdr.c | 8 +-
+ util/cairo-sphinx/sphinx.c | 38 +-
+ util/cairo-trace/trace.c | 10 +-
+ util/trace-to-xml.c | 4 +-
+ 64 files changed, 718 insertions(+), 711 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 file 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 file changed, 9 insertions(+)
+
+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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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 file 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 file 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(+)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 8 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 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 file changed, 1 insertion(+), 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 file 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 file 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(+)
+
+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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 | 86 ++++++++++++++++++-------------------
+ 2 files changed, 83 insertions(+), 54 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 57 insertions(+)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 10 insertions(+)
+
+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 file 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 file 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(+)
+
+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 file 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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file 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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 37 insertions(+)
+
+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 file 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 file changed, 1 insertion(+)
+
+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 file changed, 9 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 42 insertions(+)
+
+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 file 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 file 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 file 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 file 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/cairo-perf-diff | 2 +-
+ perf/{cairo-perf.c => cairo-perf-micro.c} | 0
+ perf/{ => micro}/box-outline.c | 0
+ perf/{ => micro}/cairo-perf-cover.c | 0
+ perf/{ => micro}/composite-checker.c | 0
+ perf/{ => micro}/dragon.c | 0
+ perf/{ => micro}/fill.c | 0
+ perf/{ => micro}/glyphs.c | 0
+ perf/{ => micro}/intersections.c | 0
+ perf/{ => micro}/long-dashed-lines.c | 0
+ perf/{ => micro}/long-lines.c | 0
+ perf/{ => micro}/mask.c | 0
+ perf/{ => micro}/mosaic.c | 0
+ perf/{ => micro}/mosaic.h | 0
+ perf/{ => micro}/paint-with-alpha.c | 0
+ perf/{ => micro}/paint.c | 0
+ perf/{ => micro}/pattern_create_radial.c | 0
+ perf/{ => micro}/pythagoras-tree.c | 0
+ perf/{ => micro}/rectangles.c | 0
+ perf/{ => micro}/rounded-rectangles.c | 0
+ perf/{ => micro}/spiral.c | 0
+ perf/{ => micro}/stroke.c | 0
+ perf/{ => micro}/subimage_copy.c | 0
+ perf/{ => micro}/tessellate.c | 0
+ perf/{ => micro}/text.c | 0
+ perf/{ => micro}/twin.c | 0
+ perf/{ => micro}/unaligned-clip.c | 0
+ perf/{ => micro}/world-map.c | 0
+ perf/{ => micro}/world-map.h | 0
+ perf/{ => micro}/zrusin-another.h | 0
+ perf/{ => micro}/zrusin.c | 0
+ 33 files changed, 46 insertions(+), 43 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(+)
+
+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 file changed, 16 insertions(+), 1 deletion(-)
+
+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 file changed, 1 deletion(-)
+
+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(+)
+
+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 file changed, 3 insertions(+)
+
+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 file 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file 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 file changed, 9 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 5 insertions(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 3 insertions(+), 1 deletion(-)
+
+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(+)
+
+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 file changed, 7 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 2 insertions(+)
+
+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 file changed, 1 insertion(+), 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 file changed, 46 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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(+)
+
+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(+)
+
+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(+)
+
+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(+)
+
+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(+)
+
+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 file 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 file changed, 2 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 5 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 1 insertion(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 file 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 file 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 file 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 file 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 file 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, 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 file 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 file changed, 106 insertions(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 deletion(-)
+
+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 file changed, 1 insertion(+), 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 file 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 file 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 file changed, 5 insertions(+)
+
+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 file 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(+)
+
+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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file changed, 12 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 4 insertions(+)
+
+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 file changed, 7 insertions(+), 1 deletion(-)
+
+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 file changed, 19 insertions(+)
+
+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 file changed, 58 insertions(+)
+
+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 file changed, 2 insertions(+), 1 deletion(-)
+
+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 file 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 file changed, 4 insertions(+)
+
+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 file changed, 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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 4 insertions(+)
+
+commit 19ebf83b6717e1f02e7be14218007858edf14ef0
+Merge: 40aefac5d a77f1933a
+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 file 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(+)
+
+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 file changed, 25 insertions(+), 1 deletion(-)
+
+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 file 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
+ ...df.xfail.png => scale-offset-image.pdf.ref.png} | Bin 10099 -> 10099 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
+ 57 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file changed, 8 insertions(+), 1 deletion(-)
+
+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 file 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 file 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 file 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(+)
+
+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 file 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 file 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 file 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 file 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(+)
+
+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 file changed, 4 insertions(+), 1 deletion(-)
+
+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 file changed, 4 insertions(+), 1 deletion(-)
+
+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 file changed, 3 insertions(+)
+
+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 file 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 file changed, 1 insertion(+), 1 deletion(-)
+
+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 file 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 file 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 file changed, 1 insertion(+), 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 file 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 file 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 file 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 deletion(-)
+
+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 file 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 file 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 file changed, 4 insertions(+), 1 deletion(-)
+
+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 file 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(+)
+
+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 file changed, 2 insertions(+)
+
+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 file changed, 2 insertions(+)
+
+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 file 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 file 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 file 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 file 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 file 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 file 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(+)
+
+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 file 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 file 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 file changed, 10 insertions(+), 11 deletions(-)
+
+commit 3a483c2896c28142a90bd0e282af3862e066adfe
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 13 00:19:03 2009 +0100
+
+ [gstate] Convert simple mask() into a paint()
+
+ As using mask() prevents various optimisations in the backends (for
+ example the use of geometric clips) and for some may trigger fallbacks,
+ perform the simplifications usually done (too late) by the pattern layer
+ in the generic gstate layer. This allows us on the odd occasion to
+ transform a mask() into a paint() but perhaps more importantly removes the
+ need for identical transformations in each backend.
+
+ src/cairo-gstate.c | 101 ++++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/cairoint.h | 9 ++---
+ 2 files changed, 98 insertions(+), 12 deletions(-)
+
+commit e2c31183e96f84e7d40a9e5e2b6b8802d47628d0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 23:45:30 2009 +0100
+
+ [script] Handle zero-length strings
+
+ Not sure where the zero length string is coming from, but we should
+ nevertheless handle it.
+
+ util/cairo-script/cairo-script-scanner.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 4c215162d24453788b3a461aa47ccf2e638db35e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 23:40:54 2009 +0100
+
+ [script] Off-by-one in allocation of string length.
+
+ We need pass in the real number of bytes in the string, excluding the NUL
+ terminator which is already accounted for.
+
+ util/cairo-script/cairo-script-scanner.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 55eddb7ef4b6b561d6692a6f074834d5d5fb94fa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 23:40:04 2009 +0100
+
+ [script] A little utility to convert a trace into a trace
+
+ Replay the trace using the interpreter onto a script surface - useful for
+ checking idempotency.
+
+ util/cairo-script/Makefile.am | 6 ++++++
+ util/cairo-script/csi-trace.c | 40 ++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 46 insertions(+)
+
+commit 4f129863df6392f3deaf6e76fd15adeba98e41b8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 23:38:42 2009 +0100
+
+ [script] Store the current stroke matrix
+
+ We can skip re-emitting stroke parameters if the values are unchanged and
+ the scaling matrix is unaltered.
+
+ src/cairo-script-surface.c | 46 +++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 37 insertions(+), 9 deletions(-)
+
+commit 858211f3944507362b2a18d56a65e9a478ccd305
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 22:43:31 2009 +0100
+
+ [script] Suppress resetting stroke-style elements after matrix switch
+
+ If the user is just using the default values, there is no point re-emitting
+ them.
+
+ src/cairo-script-surface.c | 42 ++++++++++++++++++++++++++----------------
+ 1 file changed, 26 insertions(+), 16 deletions(-)
+
+commit b6db3053dcde99e26471fdeaedcadd4a6f93b5ef
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 22:30:58 2009 +0100
+
+ [script] Hide the implicit CLEAR for similar surfaces
+
+ Do emit the clear that is performed by the surface layer on similar
+ surfaces.
+
+ src/cairo-script-surface.c | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 43 insertions(+)
+
+commit 005b195f062d896d76a87d608ce313b169f99201
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 22:07:12 2009 +0100
+
+ [pattern] Ignore matrix/filter/extend when comparing solids
+
+ Solid patterns do not use their matrices, filter or extend properties so
+ ignore them for the purposes of comparing and hashing.
+
+ src/cairo-pattern.c | 25 ++++++++++++++++---------
+ 1 file changed, 16 insertions(+), 9 deletions(-)
+
+commit bb919584c0054bb3e3c547f65c91cfe48302ac86
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 21:40:37 2009 +0100
+
+ [script] Use a compact representation for horizontal offsets between glyphs
+
+ Kerning is quite frequent, that is to apply a horizontal but no vertical
+ offset to a glyph. For instance by discarding the vertical coordinate
+ where it remains the same and only encoding the horizontal offset we
+ reduce the file size by ~12.5% when tracing poppler.
+
+ src/cairo-script-surface.c | 56 +++++++++++++++++++++---------
+ util/cairo-script/cairo-script-operators.c | 22 ++++++++----
+ 2 files changed, 55 insertions(+), 23 deletions(-)
+
+commit cbee97f0e3e784b4482429790fc3f42c81908557
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 21:26:11 2009 +0100
+
+ [script] Preserve '{}' whilst translating
+
+ util/cairo-script/cairo-script-private.h | 1 +
+ util/cairo-script/cairo-script-scanner.c | 67 +++++++++++++++++---------------
+ 2 files changed, 37 insertions(+), 31 deletions(-)
+
+commit 24b23200025166e8343425f77a53bedd08790367
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 21:12:59 2009 +0100
+
+ [script] Fix list handling during font destruction
+
+ Use cairo_list to unhook the font correctly during the fini callback.
+
+ src/cairo-script-surface.c | 33 +++++++++++++--------------------
+ 1 file changed, 13 insertions(+), 20 deletions(-)
+
+commit 4032438625819cfa5d1928d653f404364529a2e1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 17:02:41 2009 +0100
+
+ [path] Eliminate redundant line-to before a close
+
+ As the close implicitly issues a line-to to the initial point, remove an
+ identical line-to if present.
+
+ src/cairo-path-fixed.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+commit 111f2be71b1e51fac551fd9214d13899a8ec7909
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 17:01:50 2009 +0100
+
+ [path] Discard redundant line-to
+
+ Eliminate repeated line-to to the current point.
+
+ src/cairo-path-fixed.c | 49 ++++++++++++++++++++++++++++---------------------
+ 1 file changed, 28 insertions(+), 21 deletions(-)
+
+commit a2d5f59e2158651ac85dcc8a2b8f49cd2861044e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 17:01:07 2009 +0100
+
+ [debug] Path printer
+
+ src/cairo-debug.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/cairoint.h | 3 +++
+ 2 files changed, 70 insertions(+)
+
+commit 4bf96bad9697cbe67907df69d40f46d8d7f24325
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 15:37:35 2009 +0100
+
+ [fill] Use trivial rectilinear_to_traps
+
+ Avoid a small amount of unnecessary overhead by performing a simple
+ conversion of the path to traps when it consists solely of simple boxes.
+
+ src/cairo-path-fill.c | 74 ++++++++++++++++++++++++++++++++++++++++++++
+ src/cairo-surface-fallback.c | 14 +++++++++
+ src/cairoint.h | 5 +++
+ 3 files changed, 93 insertions(+)
+
+commit 30e5fa0ce06b2572f09f3d47ee10b692f18ba0ae
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 15:36:11 2009 +0100
+
+ [polygon] Return status from path ops
+
+ This tidies the common case which was to call, for example,
+ _cairo_polygon_line_to(); _cairo_polygon_status();
+
+ src/cairo-path-fill.c | 26 ++++----------------------
+ src/cairo-polygon.c | 18 ++++++++++++------
+ src/cairoint.h | 6 +++---
+ 3 files changed, 19 insertions(+), 31 deletions(-)
+
+commit 3fcac1ef21de9526bc1abca902db5755abe463ae
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 13:43:32 2009 +0100
+
+ [slope] Inline _cairo_slope_init()
+
+ Move the definition to a separate header file and allow callers to inline
+ the simple function.
+
+ src/Makefile.sources | 1 +
+ src/cairo-hull.c | 2 ++
+ src/cairo-path-fixed.c | 1 +
+ src/cairo-path-stroke.c | 2 ++
+ src/cairo-pen.c | 2 ++
+ src/cairo-polygon.c | 2 ++
+ src/cairo-slope-private.h | 65 +++++++++++++++++++++++++++++++++++++++++++++++
+ src/cairo-slope.c | 9 +------
+ src/cairo-spline.c | 2 ++
+ src/cairo-traps.c | 1 +
+ src/cairoint.h | 17 -------------
+ 11 files changed, 79 insertions(+), 25 deletions(-)
+
+commit a1e0c4b30980d624bb3e015b7dcf39b4a2ef8c56
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 11 13:34:29 2009 +0100
+
+ [clip] Combine directly onto target
+
+ Where it is unlikely that we will reuse the temporary clip surface,
+ combine the clip directly with the mask.
+
+ src/cairo-clip-private.h | 3 ++
+ src/cairo-clip.c | 118 ++++++++++++++++++++++++++++++++++++++++---
+ src/cairo-surface-fallback.c | 26 +---------
+ 3 files changed, 115 insertions(+), 32 deletions(-)
+
+commit 3f12d9ec5db1ac372742c3c03408bdaeaffdc1e4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Aug 28 10:05:52 2009 +0100
+
+ [clip] Use geometric clipping for unaligned clips
+
+ For the simple cases where the clip is an unaligned box (or boxes), apply
+ the clip directly to the geometry and avoid having to use an intermediate
+ clip-mask.
+
+ src/cairo-bentley-ottmann.c | 285 +++----------------------------------
+ src/cairo-clip-private.h | 5 +
+ src/cairo-clip.c | 296 ++++++++++++++++++++++++++++++++++++--
+ src/cairo-gstate.c | 15 +-
+ src/cairo-path-fill.c | 8 +-
+ src/cairo-path-stroke.c | 22 +--
+ src/cairo-polygon.c | 329 ++++++++++++++++++++++++-------------------
+ src/cairo-rectangle.c | 23 +++
+ src/cairo-surface-fallback.c | 267 +++++++++++++++++++----------------
+ src/cairo-traps.c | 210 +++++++++++++++------------
+ src/cairo-types-private.h | 4 +-
+ src/cairoint.h | 28 +++-
+ 12 files changed, 830 insertions(+), 662 deletions(-)
+
+commit 2457c4bedef0447f7bff9b54dba96126010917ac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 14:48:03 2009 +0100
+
+ traps-as-spans
+
+ Add an interface to spans that accepts trapezoids. This allows backends
+ that have an efficient span-line interface but lack efficient handling
+ of boxes (partly due to the current poor compositor interface) to
+ redirect composite_trapezoids() to composite_polygon() and the
+ span-renderer.
+
+ src/cairo-spans-private.h | 19 ++++++++++
+ src/cairo-spans.c | 82 ++++++++++++++++++++++++++++++++++++++++++
+ src/cairo-tor-scan-converter.c | 27 +++++++++++++-
+ 3 files changed, 127 insertions(+), 1 deletion(-)
+
+commit 3023330706b1237b0fbd697d015cad9a23c250b7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 10:57:41 2009 +0100
+
+ [fill] Early check for empty path/polygon
+
+ src/cairo-path-fill.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 9ba37a85d2f6c033d68eb547be6c63382164519e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 10:57:01 2009 +0100
+
+ [gstate] Discard trivial all-clipped regions
+
+ Avoid assertion failures later that we have a valid region.
+
+ src/cairo-gstate.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 85094c4eee4e50ec724bf1bb54ecff6f7c1014bf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 24 07:06:32 2009 +0100
+
+ [clip] Eliminate redundant clips
+
+ First perform a simple geometric clip to catch the majority of cases where
+ an unaligned clip has been set outside the operation extents that can be
+ discarded without having to use an image surface.
+
+ This causes a dramatic increase of over 13x for the poppler-bug-12266
+ trace and little impact elsewhere for more sensible clippers.
+
+ src/cairo-clip-private.h | 8 +-
+ src/cairo-clip.c | 187 ++++++++++++++++++++++++++++++++++---------
+ src/cairo-gstate.c | 106 +++++++++++++++---------
+ src/cairo-path-fill.c | 3 +
+ src/cairo-surface-fallback.c | 111 ++++++++++++++++++-------
+ 5 files changed, 309 insertions(+), 106 deletions(-)
+
+commit ff0ca6d02a2e8901e9cfca31326c3fdc16e77e2f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 5 17:54:48 2009 +0100
+
+ [test] Stress the intersection handling by feeding spans/traps random curves
+
+ Another stress test for the fill/stroke and intersection finders.
+
+ test/Makefile.am | 10 +++
+ test/Makefile.sources | 2 +
+ test/random-intersections-curves-eo.c | 81 ++++++++++++++++++++
+ test/random-intersections-curves-eo.pdf.ref.png | Bin 0 -> 246507 bytes
+ test/random-intersections-curves-eo.ps.ref.png | Bin 0 -> 151676 bytes
+ test/random-intersections-curves-eo.ref.png | Bin 0 -> 246996 bytes
+ ...m-intersections-curves-eo.xlib-fallback.ref.png | Bin 0 -> 246243 bytes
+ test/random-intersections-curves-eo.xlib.ref.png | Bin 0 -> 246243 bytes
+ test/random-intersections-curves-nz.c | 82 +++++++++++++++++++++
+ test/random-intersections-curves-nz.pdf.ref.png | Bin 0 -> 266977 bytes
+ test/random-intersections-curves-nz.ps.ref.png | Bin 0 -> 134732 bytes
+ test/random-intersections-curves-nz.ref.png | Bin 0 -> 267589 bytes
+ ...m-intersections-curves-nz.xlib-fallback.ref.png | Bin 0 -> 266364 bytes
+ test/random-intersections-curves-nz.xlib.ref.png | Bin 0 -> 266360 bytes
+ 14 files changed, 175 insertions(+)
+
+commit 6dfe050d6360409161418d853df3d7d7dfb216af
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 4 15:32:25 2009 +0100
+
+ [polygon] Amalgamate collinear edges
+
+ Combine sequential collinear edges into a single edge, this benefits
+ immensely by feeding fewer edges into either the tessellator or spans.
+
+ src/cairo-polygon.c | 58 +++++++++++++++++++++++++++++++++++++++++------
+ src/cairo-types-private.h | 3 +++
+ 2 files changed, 54 insertions(+), 7 deletions(-)
+
+commit dc886450ac7c04252cff77729e0653c6ea2768db
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 4 13:14:38 2009 +0100
+
+ [util] Show total edge length in show-edges
+
+ util/show-edges.c | 54 +++++++++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 43 insertions(+), 11 deletions(-)
+
+commit 0f8af054841c2d6dfe4bfeb3d13a7bab0cfbe2f3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 3 08:27:01 2009 +0100
+
+ [fallback] Avoid tessellating empty polygons
+
+ I added an assert inside the tessellator to ensure that empty polygon were
+ not being propagated that far...
+
+ src/cairo-surface-fallback.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+commit 09377a716334df3683912747067cd396768cfab6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 2 13:09:30 2009 +0100
+
+ [freelist] Lazy initialisation of pools
+
+ src/cairo-freelist-private.h | 31 ++++++++++++++++--
+ src/cairo-freelist.c | 75 +++++++++++++++++---------------------------
+ 2 files changed, 56 insertions(+), 50 deletions(-)
+
+commit 6f0340e2e5079eba597c0a3a7d39da21cf2b5e7a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 29 21:47:11 2009 +0100
+
+ [clip] Use the rectilinear tessellator
+
+ We can ensure that we always produce a clip region when possible by using
+ the rectilinear tessellator to convert complex, device-aligned polygons to
+ regions. Prior to using the tessellator, we relied on pixman's region code
+ which could only handle a union of rectangles.
+
+ src/cairo-clip.c | 9 ++----
+ src/cairo-path-fill.c | 79 +++++++++++++++++++++++++++++++++++++++++----------
+ 2 files changed, 66 insertions(+), 22 deletions(-)
+
+commit e3820bef20fdd77ab804b9832f47dc286e4887c4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 2 15:17:51 2009 +0100
+
+ [fill] Short-circuit extents on an empty path.
+
+ If the path is empty, avoid redundant polygonisation and tessellation by
+ simply returning the empty extents.
+
+ src/cairo-gstate.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+commit 4051ed328b618e28cf1df276899eefa225225c76
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 25 20:51:06 2009 +0100
+
+ [tessellator] Special case rectilinear tessellation
+
+ For the frequent cases where we know in advance that we are dealing with a
+ rectilinear path, but can not use the simple region code, implement a
+ variant of the Bentley-Ottmann tessellator. The advantages here are that
+ edge comparison is very simple (we only have vertical edges) and there are
+ no intersection, though possible overlaps. The idea is the same, maintain
+ a y-x sorted queue of start/stop events that demarcate traps and sweep
+ through the active edges at each event, looking for completed traps.
+
+ The motivation for this was noticing a performance regression in
+ box-fill-outline with the self-intersection work:
+
+ 1.9.2 to HEAD^: 3.66x slowdown
+ HEAD^ to HEAD: 5.38x speedup
+ 1.9.2 to HEAD: 1.57x speedup
+
+ The cause of which was choosing to use spans instead of the region handling
+ code, as the complex polygon was no longer being tessellated.
+
+ src/Makefile.sources | 1 +
+ src/cairo-bentley-ottmann-rectilinear.c | 582 +++++++++++++++++++++++++++++
+ src/cairo-bentley-ottmann.c | 5 +-
+ src/cairo-combsort-private.h | 4 +-
+ src/cairo-path-fill.c | 100 +----
+ src/cairo-path-stroke.c | 1 +
+ src/cairo-surface-fallback.c | 34 +-
+ src/cairo-traps.c | 2 +
+ src/cairoint.h | 18 +-
+ test/ft-text-vertical-layout-type1.ref.png | Bin 3647 -> 3644 bytes
+ test/ft-text-vertical-layout-type3.ref.png | Bin 3607 -> 3608 bytes
+ 11 files changed, 631 insertions(+), 116 deletions(-)
+
+commit 82ccb4c70cbf28167c280e590017b221a406b5c3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 29 18:47:29 2009 +0100
+
+ [clip] Use special-purpose fill_to_region()
+
+ Avoid the creation of temporary traps when generating a region, by calling
+ the to_region() directly.
+
+ src/cairo-clip.c | 26 +++++++++-----------------
+ 1 file changed, 9 insertions(+), 17 deletions(-)
+
+commit 41adeac9880d011278f083c620a42b849471a92f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 25 21:25:07 2009 +0100
+
+ [fallback] Avoid going through traps for trivial regions.
+
+ src/cairo-path-fill.c | 129 ++++++++++++++++++++++++++++++
+ src/cairo-surface-fallback.c | 184 ++++++++++++++++++++++++++++++++-----------
+ src/cairoint.h | 5 ++
+ 3 files changed, 272 insertions(+), 46 deletions(-)
+
+commit 55bd590561880136c54da0db1f7f095a426d96a9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 24 20:45:56 2009 +0100
+
+ [tessellator] Use a priority queue for the events
+
+ The skip list was suffering from severe overhead, so though the search was
+ quick, the extra copies during insertion and deletion were slow.
+
+ src/Makefile.am | 5 +-
+ src/Makefile.sources | 2 -
+ src/cairo-bentley-ottmann.c | 341 +++++++++++++++++++++---------------
+ src/cairo-freelist.c | 8 +-
+ src/cairo-skiplist-private.h | 118 -------------
+ src/cairo-skiplist.c | 399 -------------------------------------------
+ 6 files changed, 212 insertions(+), 661 deletions(-)
+
+commit ebfcc2ce8fb6fcaf28d1c59cf7a5b13168cbeb70
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 24 16:50:33 2009 +0100
+
+ [tessellator] Remove the skiplist for the active edges
+
+ The active edge list is typically short, and the skiplist adds significant
+ overhead that far outweigh the benefit of the O(n lg n) sort. Instead we
+ track the position of the last insertion edge, knowing that the start
+ events are lexicographically sorted, and begin a linear search from there.
+
+ src/cairo-bentley-ottmann.c | 230 +++++++++++++++-----------------------------
+ 1 file changed, 75 insertions(+), 155 deletions(-)
+
+commit 36480fe531f19d9c692ee1f8cf09accd4b2c0ad8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 25 07:38:04 2009 +0100
+
+ [traps] Increase exponential expansion factor.
+
+ Grow the traps more rapidly, as the allocations are very short-lived so
+ the over-allocation is less of an issue.
+
+ src/cairo-traps.c | 8 +++-----
+ src/cairoint.h | 8 +++-----
+ 2 files changed, 6 insertions(+), 10 deletions(-)
+
+commit 9d51c03bad5f10257e248f43375062902482c0c4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 24 13:51:23 2009 +0100
+
+ [traps] Compute extents on demand.
+
+ src/cairo-region-private.h | 5 -
+ src/cairo-region.c | 47 ++---
+ src/cairo-surface-fallback.c | 10 -
+ src/cairo-traps.c | 440 +++++++++++++------------------------------
+ src/cairoint.h | 9 -
+ 5 files changed, 144 insertions(+), 367 deletions(-)
+
+commit f8bb3617c3a7ec598c42eff1f8562e3ccc95127f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 17 09:32:16 2008 +0000
+
+ Eliminate self-intersecting strokes.
+
+ We refactor the surface fallbacks to convert full strokes and fills to the
+ intermediate polygon representation (as opposed to before where we
+ returned the trapezoidal representation). This allow greater flexibility
+ to choose how then to rasterize the polygon. Where possible we use the
+ local spans rasteriser for its increased performance, but still have the
+ option to use the tessellator instead (for example, with the current
+ Render protocol which does not yet have a polygon image).
+
+ In order to accommodate this, the spans interface is tweaked to accept
+ whole polygons instead of a path and the tessellator is tweaked for speed.
+
+ Performance Impact
+ ==================
+
+ ...
+ Still measuring, expecting some severe regressions.
+ ...
+
+ NEWS | 18 +
+ src/Makefile.am | 2 +
+ src/cairo-bentley-ottmann.c | 1833 ++++++++++++--------
+ src/cairo-clip.c | 14 +-
+ src/cairo-fixed-private.h | 52 +-
+ src/cairo-fixed-type-private.h | 5 +
+ src/cairo-gstate.c | 4 +-
+ src/cairo-hash.c | 6 -
+ src/cairo-matrix.c | 27 +-
+ src/cairo-path-fill.c | 109 +-
+ src/cairo-path-stroke.c | 1025 ++++++-----
+ src/cairo-pen.c | 191 --
+ src/cairo-polygon.c | 269 ++-
+ src/cairo-skiplist-private.h | 4 +-
+ src/cairo-skiplist.c | 8 +-
+ src/cairo-slope.c | 4 +-
+ src/cairo-spans-private.h | 45 +-
+ src/cairo-spans.c | 179 +-
+ src/cairo-surface-fallback.c | 208 ++-
+ src/cairo-tor-scan-converter.c | 492 +++---
+ src/cairo-toy-font-face.c | 3 +-
+ src/cairo-traps.c | 72 +-
+ src/cairo-types-private.h | 15 +-
+ src/cairo-wideint-private.h | 47 +-
+ src/cairo-wideint.c | 34 -
+ src/cairoint.h | 102 +-
+ test/Makefile.am | 90 +-
+ test/Makefile.sources | 3 +-
+ test/caps-joins-alpha.ref.png | Bin 2463 -> 2570 bytes
+ test/caps-joins-alpha.xlib.ref.png | Bin 0 -> 2278 bytes
+ test/caps-joins-curve.ref.png | Bin 5132 -> 5725 bytes
+ test/caps-joins-curve.xlib.ref.png | Bin 0 -> 5126 bytes
+ test/clear.pdf.argb32.ref.png | Bin 0 -> 790 bytes
+ test/clear.ps.argb32.ref.png | Bin 0 -> 790 bytes
+ test/clip-operator.svg12.argb32.xfail.png | Bin 8406 -> 8404 bytes
+ test/clip-operator.svg12.rgb24.xfail.png | Bin 4540 -> 4523 bytes
+ test/clipped-group.pdf.ref.png | Bin 310 -> 334 bytes
+ test/clipped-trapezoids-ref.png | Bin 0 -> 1055 bytes
+ test/clipped-trapezoids.c | 95 +
+ test/clipped-trapezoids.ref.png | Bin 0 -> 963 bytes
+ test/close-path-current-point.ref.png | Bin 1916 -> 1893 bytes
+ test/dash-caps-joins.ref.png | Bin 4718 -> 4520 bytes
+ test/dash-curve.ref.png | Bin 39696 -> 41284 bytes
+ test/dash-curve.xlib.ref.png | Bin 0 -> 40109 bytes
+ test/dash-scale.ref.png | Bin 8058 -> 7616 bytes
+ test/degenerate-arc.ref.png | Bin 544 -> 646 bytes
+ test/degenerate-dash.ref.png | Bin 2005 -> 2086 bytes
+ test/degenerate-dash.xlib.ref.png | Bin 0 -> 1898 bytes
+ test/degenerate-path.argb32.ref.png | Bin 0 -> 240 bytes
+ test/degenerate-path.ref.png | Bin 257 -> 0 bytes
+ test/degenerate-path.rgb24.ref.png | Bin 224 -> 210 bytes
+ test/degenerate-pen.ref.png | Bin 1139 -> 997 bytes
+ test/degenerate-pen.xlib.ref.png | Bin 0 -> 997 bytes
+ test/device-offset-fractional.pdf.xfail.png | Bin 275 -> 275 bytes
+ test/fill-and-stroke-alpha-add.ref.png | Bin 591 -> 562 bytes
+ test/fill-and-stroke-alpha-add.svg12.xfail.png | Bin 614 -> 631 bytes
+ test/fill-and-stroke-alpha.ref.png | Bin 519 -> 515 bytes
+ test/fill-and-stroke.argb32.ref.png | Bin 0 -> 313 bytes
+ test/fill-and-stroke.ref.png | Bin 279 -> 0 bytes
+ test/fill-and-stroke.rgb24.ref.png | Bin 257 -> 287 bytes
+ test/fill-and-stroke.xlib.argb32.ref.png | Bin 0 -> 322 bytes
+ test/fill-and-stroke.xlib.rgb24.ref.png | Bin 0 -> 291 bytes
+ test/filter-nearest-offset.pdf.xfail.png | Bin 1867 -> 1926 bytes
+ test/filter-nearest-transformed.pdf.xfail.png | Bin 482 -> 488 bytes
+ test/ft-text-vertical-layout-type1.ps.ref.png | Bin 0 -> 1634 bytes
+ test/ft-text-vertical-layout-type1.ps2.ref.png | Bin 1846 -> 0 bytes
+ test/ft-text-vertical-layout-type1.ps3.ref.png | Bin 1846 -> 0 bytes
+ test/ft-text-vertical-layout-type1.ref.png | Bin 3643 -> 3647 bytes
+ test/ft-text-vertical-layout-type1.svg.ref.png | Bin 3607 -> 3609 bytes
+ test/ft-text-vertical-layout-type1.xlib.ref.png | Bin 3980 -> 3640 bytes
+ test/ft-text-vertical-layout-type3.ps.ref.png | Bin 0 -> 1636 bytes
+ test/ft-text-vertical-layout-type3.ps2.ref.png | Bin 1804 -> 0 bytes
+ test/ft-text-vertical-layout-type3.ps3.ref.png | Bin 1804 -> 0 bytes
+ test/ft-text-vertical-layout-type3.ref.png | Bin 3608 -> 3607 bytes
+ test/ft-text-vertical-layout-type3.svg.ref.png | Bin 3626 -> 3626 bytes
+ test/ft-text-vertical-layout-type3.xlib.ref.png | Bin 3934 -> 3605 bytes
+ test/group-unaligned.svg.argb32.xfail.png | Bin 520 -> 522 bytes
+ test/joins.ref.png | Bin 5879 -> 5708 bytes
+ test/leaky-dashed-rectangle.pdf.ref.png | Bin 347 -> 347 bytes
+ test/leaky-dashed-rectangle.xlib.ref.png | Bin 0 -> 347 bytes
+ test/leaky-dashed-stroke.ref.png | Bin 9214 -> 9387 bytes
+ test/leaky-dashed-stroke.xlib.ref.png | Bin 0 -> 9305 bytes
+ test/line-width-scale.ref.png | Bin 6445 -> 5716 bytes
+ test/long-dashed-lines.ref.png | Bin 2116 -> 2070 bytes
+ test/mask-glyphs.svg.ref.png | Bin 1211147 -> 1211158 bytes
+ test/meta-surface-pattern.pdf.argb32.ref.png | Bin 3919 -> 3835 bytes
+ test/meta-surface-pattern.pdf.rgb24.ref.png | Bin 3867 -> 3682 bytes
+ test/meta-surface-pattern.svg.argb32.ref.png | Bin 3930 -> 3778 bytes
+ test/meta-surface-pattern.svg.rgb24.ref.png | Bin 3910 -> 3760 bytes
+ test/new-sub-path.argb32.ref.png | Bin 0 -> 421 bytes
+ test/new-sub-path.pdf.argb32.ref.png | Bin 0 -> 512 bytes
+ test/new-sub-path.ref.png | Bin 386 -> 0 bytes
+ test/new-sub-path.rgb24.ref.png | Bin 355 -> 381 bytes
+ test/operator-source.svg12.argb32.xfail.png | Bin 2967 -> 2951 bytes
+ test/operator-source.svg12.rgb24.xfail.png | Bin 2976 -> 2963 bytes
+ test/over-around-source.pdf.argb32.ref.png | Bin 585 -> 576 bytes
+ ...m-intersections.c => random-intersections-eo.c} | 2 +-
+ test/random-intersections-eo.ps.ref.png | Bin 0 -> 78806 bytes
+ ....png => random-intersections-eo.quartz.ref.png} | Bin
+ test/random-intersections-eo.ref.png | Bin 0 -> 136018 bytes
+ test/random-intersections-eo.xlib.ref.png | Bin 0 -> 134655 bytes
+ test/random-intersections-nonzero.c | 79 +
+ test/random-intersections-nonzero.ps.ref.png | Bin 0 -> 77299 bytes
+ test/random-intersections-nonzero.ref.png | Bin 0 -> 141154 bytes
+ test/random-intersections-nonzero.xlib.ref.png | Bin 0 -> 141548 bytes
+ test/random-intersections.ps2.ref.png | Bin 89253 -> 0 bytes
+ test/random-intersections.ps3.ref.png | Bin 89253 -> 0 bytes
+ test/random-intersections.ref.png | Bin 133462 -> 0 bytes
+ test/random-intersections.xlib.ref.png | Bin 148722 -> 0 bytes
+ test/reflected-stroke.ref.png | Bin 5704 -> 4978 bytes
+ test/rel-path.ref.png | Bin 212 -> 198 bytes
+ test/rel-path.rgb24.ref.png | Bin 228 -> 214 bytes
+ test/scale-offset-image.meta.xfail.png | Bin 8599 -> 0 bytes
+ test/scale-offset-image.pdf.xfail.png | Bin 8694 -> 10099 bytes
+ test/scale-offset-image.xfail.png | Bin 8599 -> 9960 bytes
+ test/scale-offset-image.xlib-fallback.xfail.png | Bin 8580 -> 8706 bytes
+ test/scale-offset-image.xlib.xfail.png | Bin 9100 -> 9132 bytes
+ test/scale-offset-similar.meta.xfail.png | Bin 9095 -> 10752 bytes
+ test/scale-offset-similar.pdf.xfail.png | Bin 9368 -> 11024 bytes
+ test/scale-offset-similar.xfail.png | Bin 8599 -> 9960 bytes
+ test/scale-offset-similar.xlib-fallback.xfail.png | Bin 8580 -> 8706 bytes
+ test/scale-offset-similar.xlib.xfail.png | Bin 8570 -> 8696 bytes
+ test/self-intersecting.argb32.xfail.png | Bin 235 -> 0 bytes
+ test/self-intersecting.c | 3 +
+ test/self-intersecting.pdf.argb32.xfail.png | Bin 285 -> 0 bytes
+ test/self-intersecting.pdf.rgb24.xfail.png | Bin 269 -> 0 bytes
+ ...gb32.xfail.png => self-intersecting.ps.ref.png} | Bin
+ test/self-intersecting.ps.rgb24.xfail.png | Bin 186 -> 0 bytes
+ test/self-intersecting.ref.png | Bin 242 -> 301 bytes
+ test/self-intersecting.rgb24.ref.png | Bin 304 -> 0 bytes
+ test/self-intersecting.rgb24.xfail.png | Bin 240 -> 0 bytes
+ test/self-intersecting.xlib.argb32.xfail.png | Bin 235 -> 0 bytes
+ test/self-intersecting.xlib.ref.png | Bin 0 -> 252 bytes
+ test/self-intersecting.xlib.rgb24.xfail.png | Bin 240 -> 0 bytes
+ test/smask-stroke.ref.png | Bin 1845 -> 1714 bytes
+ test/smask-stroke.xlib.ref.png | Bin 0 -> 1707 bytes
+ test/smask.ps.ref.png | Bin 0 -> 3430 bytes
+ test/smask.ps2.ref.png | Bin 3669 -> 0 bytes
+ test/smask.ps3.ref.png | Bin 3669 -> 0 bytes
+ test/smask.ref.png | Bin 3417 -> 3423 bytes
+ test/smask.svg.ref.png | Bin 3458 -> 3457 bytes
+ test/smask.xlib.ref.png | Bin 3393 -> 3386 bytes
+ test/spline-decomposition.pdf.ref.png | Bin 19156 -> 19540 bytes
+ test/spline-decomposition.ps.ref.png | Bin 9090 -> 9028 bytes
+ test/spline-decomposition.ref.png | Bin 19107 -> 19569 bytes
+ test/spline-decomposition.svg.ref.png | Bin 19156 -> 19540 bytes
+ test/spline-decomposition.xlib.ref.png | Bin 0 -> 19158 bytes
+ test/stroke-ctm-caps.ref.png | Bin 1057 -> 873 bytes
+ test/stroke-image.pdf.ref.png | Bin 1554 -> 1475 bytes
+ test/stroke-image.ps.ref.png | Bin 0 -> 1641 bytes
+ test/stroke-image.ps2.ref.png | Bin 2121 -> 0 bytes
+ test/stroke-image.ps3.ref.png | Bin 2121 -> 0 bytes
+ test/stroke-image.ref.png | Bin 1866 -> 1344 bytes
+ test/stroke-image.xlib.ref.png | Bin 0 -> 1440 bytes
+ test/surface-pattern.pdf.xfail.png | Bin 10528 -> 10532 bytes
+ test/text-rotate.pdf.ref.png | Bin 16639 -> 16757 bytes
+ test/text-rotate.ref.png | Bin 17775 -> 16738 bytes
+ test/text-rotate.svg.ref.png | Bin 17024 -> 17118 bytes
+ test/text-rotate.xlib.ref.png | Bin 0 -> 16646 bytes
+ test/twin.ps.ref.png | Bin 2197 -> 2142 bytes
+ test/twin.ref.png | Bin 4038 -> 3979 bytes
+ test/twin.xlib.ref.png | Bin 0 -> 4435 bytes
+ test/unantialiased-shapes.ref.png | Bin 4459 -> 3969 bytes
+ test/unbounded-operator.svg12.argb32.ref.png | Bin 0 -> 2767 bytes
+ test/unbounded-operator.svg12.argb32.xfail.png | Bin 2771 -> 0 bytes
+ test/unbounded-operator.svg12.rgb24.xfail.png | Bin 1731 -> 1719 bytes
+ test/user-font-proxy.svg.ref.png | Bin 16814 -> 16817 bytes
+ test/user-font.ps.ref.png | Bin 0 -> 4605 bytes
+ test/user-font.ps2.ref.png | Bin 5043 -> 0 bytes
+ test/user-font.ps3.ref.png | Bin 5043 -> 0 bytes
+ test/user-font.ref.png | Bin 6082 -> 6270 bytes
+ test/user-font.xlib.ref.png | Bin 6183 -> 5884 bytes
+ util/.gitignore | 3 +
+ util/Makefile.am | 23 +-
+ util/show-edges.c | 1189 +++++++++++++
+ util/show-events.c | 845 +++++++++
+ util/show-traps.c | 1239 +++++++++++++
+ 177 files changed, 6226 insertions(+), 2113 deletions(-)
+
+commit 7c499db8afe8a7cf8c512ec166fe7dbf11a25c02
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 25 20:37:55 2009 +0100
+
+ [test] Minor tweak of ft-text-vertical-layout
+
+ Tidily destroy the font immediately after use.
+
+ test/ft-text-vertical-layout-type1.c | 6 ++----
+ test/ft-text-vertical-layout-type3.c | 5 ++---
+ 2 files changed, 4 insertions(+), 7 deletions(-)
+
+commit bdd3c5ba6987280b455229dd12b20c22159ce61c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 22 18:59:01 2009 +0100
+
+ [perf] Match directory names
+
+ In order to handle 'cairo-perf-trace benchmark', we need to perform the
+ can_run? test on the directory name as opposed to the individual trace
+ names. Make it so.
+
+ perf/box-outline.c | 2 +-
+ perf/cairo-perf-trace.c | 37 ++++++++++++++++++++++++++++---------
+ perf/cairo-perf.c | 14 +++++++++++---
+ perf/cairo-perf.h | 3 ++-
+ perf/composite-checker.c | 2 +-
+ perf/dragon.c | 3 ++-
+ perf/fill.c | 2 +-
+ perf/glyphs.c | 2 +-
+ perf/intersections.c | 2 +-
+ perf/long-dashed-lines.c | 2 +-
+ perf/long-lines.c | 2 +-
+ perf/mask.c | 2 +-
+ perf/mosaic.c | 2 +-
+ perf/paint-with-alpha.c | 2 +-
+ perf/paint.c | 2 +-
+ perf/pattern_create_radial.c | 2 +-
+ perf/pythagoras-tree.c | 4 ++--
+ perf/rectangles.c | 2 +-
+ perf/rounded-rectangles.c | 2 +-
+ perf/spiral.c | 2 +-
+ perf/stroke.c | 2 +-
+ perf/subimage_copy.c | 2 +-
+ perf/tessellate.c | 2 +-
+ perf/text.c | 2 +-
+ perf/twin.c | 2 +-
+ perf/unaligned-clip.c | 2 +-
+ perf/world-map.c | 2 +-
+ perf/zrusin.c | 2 +-
+ 28 files changed, 68 insertions(+), 39 deletions(-)
+
+commit 77c11096169bc8af6aa08241a800a51a2292a27a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 22 12:23:03 2009 +0100
+
+ [perf] Reset global caches after every trace
+
+ I'd disabled this to look at cairo-qt performance, then forgot about it.
+ Be clean, cleanup globals -- this should fix the huge performance loss
+ when running in series multiple backends that need separate font caches.
+
+ perf/cairo-perf-trace.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit 9c8e60f7718b29051268541d2cfec58e51d8e7b8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 22 12:09:25 2009 +0100
+
+ [perf] Remove cpuset warning for cairo-perf-trace
+
+ These traces run for much longer than the original synthetic benchmarks
+ and seek to replicate 'real-world' applications, so the warning that the
+ xserver and cairo-perf are not bound to any cpu is false.
+
+ perf/cairo-perf-trace.c | 47 -----------------------------------------------
+ 1 file changed, 47 deletions(-)
+
+commit d07ed5d990634dc09d0d1b6ce45aa8ad1994b75a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 19 12:36:56 2009 +0100
+
+ [perf] Add charting utility
+
+ cairo-perf-chart takes multiple runs (currently it is limited to
+ prefiltered data sets) and pretty-prints a chart showing performace
+ improvements/regressions (in either ASCII or HTML) along with a
+ cairo-perf-chart.png
+
+ perf/Makefile.am | 4 +
+ perf/cairo-perf-chart.c | 751 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 755 insertions(+)
+
+commit 015eccadcb8b22f302bdaa315b88981a38294686
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 16 09:57:07 2009 +0100
+
+ [perf] Fix unaligned-clip
+
+ We failed to reset the scale after each loop, eventually generating a vast
+ clip-mask that exceeded memory capacity.
+
+ perf/unaligned-clip.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 6f8fae21e6fee07a8f6561f77bcb0bfaf64f5882
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 15 10:16:41 2009 +0100
+
+ [perf] Add a box mode to spiral
+
+ Add a very similar 'spiral' path (really just concentric boxes) that hit
+ the rectangular optimisations so that we can compare how effective they
+ are.
+
+ perf/spiral.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 73 insertions(+)
+
+commit e79a9a87c311fd0499c96cecbe560839a17d244e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 15 10:33:48 2009 +0100
+
+ [perf] Support objdir!=srcdir in cairo-perf-diff
+
+ Crude support to detect when we have cairo-perf-diff-files in the local
+ directory which is not srcdir.
+
+ perf/cairo-perf-diff | 26 ++++++++++++++++----------
+ 1 file changed, 16 insertions(+), 10 deletions(-)
+
+commit 6bfb77a33c3614cafdcd6206de5c71321c5fc1e5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Aug 14 19:53:17 2009 +0100
+
+ [perf] Add spiral strokes
+
+ Use cairo_stroke() to perform the equivalent of
+ spiral-rect-(pix|non)align-evenodd-fill. A useful comparison of stroking
+ versus filling, as we can assume the composition costs are similar.
+
+ perf/spiral.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 73 insertions(+)
+
+commit 54b2935c3842e77888faef06bbf247f99bd9de8c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 13 23:23:41 2009 +0100
+
+ [perf] Reset the path after each spiral
+
+ Oops we were accumulating paths during each spiral iteration and so the
+ tests were getting slower and slower and slower...
+
+ [And fix a couple of other instances of path accumulation.]
+
+ perf/intersections.c | 2 ++
+ perf/spiral.c | 1 +
+ perf/world-map.c | 2 ++
+ 3 files changed, 5 insertions(+)
+
+commit fddfe4973f5b49f280734ee7141ab72451cf94d2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 13 15:52:06 2009 +0100
+
+ [perf] Add clipped modes to dragon
+
+ Investigate the performance hit for unclipped/aligned/unaligned/masked
+ modes with a reasonably complex geometry.
+
+ perf/dragon.c | 35 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
+
+commit 8b3be26c7be0747378792e3a454e500d290c3982
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 12 00:02:04 2009 +0100
+
+ [test] Remove misleading code/comments from a1-image-sample
+
+ test/a1-image-sample.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+commit e702df59b05246a52a645792a65dc9c12d5b3feb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Aug 22 17:53:59 2009 +0100
+
+ [test] Attempt to automatically detect running under gdb
+
+ A common mistake is to forget to pass the foreground mode to
+ cairo-test-suite when launching it under the debugger, resulting in the
+ debugger not attaching to the children and missing the error you were
+ trying to capture. Under linux, we can inspect the path to our parent's
+ executable and if that looks like gdb, we assume it is and disable forking
+ of traces.
+
+ test/cairo-test-runner.c | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+commit bf4977b645270bb88225501e73848f7814cccead
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 25 07:16:16 2009 +0100
+
+ [test] Exit on first failure '-x'
+
+ Add a command line option to the test suite to cause it to exit after the
+ first failure. The purpose of this is for integration into 'git bisect run',
+ where the failing test is unknown and we are looking for any failure. For
+ example, for use in a regression script to find commits in the midst of as
+ series that need a refresh of a reference image (or fixing!).
+
+ test/cairo-test-runner.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+commit 40aefac5d714bf7536632ed38c7a8ee05049f30b
+Author: Benjamin Otte <otte@gnome.org>
+Date: Wed Aug 26 21:22:07 2009 +0200
+
+ [xlib] DO_XCOPYAREA and DO_XTILE optimizations break with Window source
+
+ Cairo should include the contents of subwindows when using a Window as a
+ source but will clip to subwindows when using a Window as a destination.
+ This can be set using the GC's subwindow_mode.
+
+ XCopyArea and XFillRectangle can however only use one GC for both source
+ and destination. Cairo's mode is set to (the default) ClipByChildren.
+ This means that copying from a Window is broken, so we only allow the
+ optimization when we know that the source is a Pixmap.
+
+ The performance impact of this change has not been tested. It should be
+ small, as the code will use XRender otherwise.
+
+ If it turns out to be a bigger impact, the optimizations could be
+ improved by doing a two-step copy process:
+ 1) Copy to an intermediate Pixmap with IncludeInferiors
+ 2) Copy to the destination with ClipByChildren
+ (potentially omitting one one of the steps if source or destination are
+ known to be Pixmaps).
+
+ references:
+ commit 0c5d28a4e5ce5e4dd72c0f416ce5e960e92b808b
+ https://bugs.freedesktop.org/show_bug.cgi?id=12996
+
+ src/cairo-xlib-surface.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 90536ef2dd534d9385d38125445faeadd0511850
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 25 00:28:08 2009 -0400
+
+ [build] Remove bogus warning that we require at least one native font backend
+
+ That limitation was lifted long ago after twin face was introduced.
+
+ build/configure.ac.features | 4 ----
+ 1 file changed, 4 deletions(-)
+
+commit 20e227fc397d064af0b4b8bbf4028430695a218d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 24 23:57:21 2009 -0400
+
+ [build] Fix typo
+
+ build/aclocal.enable.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 87fb9a9ded0fb0355f91cad188393d26b9e47e0b
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Mon Aug 17 00:59:46 2009 -0400
+
+ [test] Update reference image for the extended-blend-mode test.
+
+ A recent pixman change caused one-bit differences in some pixels.
+
+ test/extended-blend-alpha.argb32.ref.png | Bin 9777 -> 9406 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit d1b8e260d43c7dee71244f26d50d8b2e49e9b6e0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 21:29:13 2009 +0100
+
+ [qt] Fix compilation
+
+ Enabling 'FAST CLIP' appears to trigger an infinite loop so disable.
+
+ Enabling 'FAST FILL' has limited effect on performance, so disable whilst
+ the basic QT surface is improved.
+
+ perf/cairo-perf-trace.c | 2 +-
+ src/cairo-qt-surface.cpp | 63 ++++++++++++++++++++++++++++++++----------------
+ 2 files changed, 43 insertions(+), 22 deletions(-)
+
+commit dff0a91742908098a1ee110fadf11d4b802b1587
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 17:57:16 2009 +0100
+
+ [xlib] Rewrite UNSUPPORTED() avoiding gcc-ism
+
+ Behdad pointed out that fprintf() returns a value so that we could simply
+ use the comma operator to return the correct value instead of the
+ expression-block gcc-ism.
+
+ src/cairo-xlib-surface.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+commit e63d725ad4fb92a0085224f627cbced3e3205735
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Jun 6 01:08:22 2009 -0400
+
+ [utils] Remove unused code
+
+ util/malloc-stats.c | 30 ------------------------------
+ 1 file changed, 30 deletions(-)
+
+commit d4d0fcb4a8055f1fdd24fc5b7b64bb55d55e1485
+Author: Andrea Canciani <ranma42@gmail.com>
+Date: Mon Aug 10 17:43:31 2009 +0100
+
+ [quartz] Compile fix for show_glyphs
+
+ Correct the prototype for _cairo_quartz_surface_show_glyphs().
+
+ src/cairo-quartz-surface.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 2a2a19457bb934f9585bfdb97730fab99c8e386c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 17:42:05 2009 +0100
+
+ [surface] Check for a NULL snapshot
+
+ The backend is permitted to return a NULL surface when snapshotting to
+ indicate that it cannot (or choses not to) implement the method.
+
+ src/cairo-surface.c | 28 +++++++++++++++-------------
+ 1 file changed, 15 insertions(+), 13 deletions(-)
+
+commit 2e8ce34454a4d93986f590b1d2b024d1a1eb6bde
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 16:51:07 2009 +0100
+
+ [quartz] Use the implementation font-face not the associated
+
+ As the associated is now explicitly the font-face used to create the font
+ by the user, whereas what we require is the current implementation
+ (quartz) font.
+
+ src/cairo-quartz-font.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit a4dc372bab8ebe75a9f7d17a9a2e6fc8d9d2d747
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 16:50:00 2009 +0100
+
+ [scaled-font] Update API documentation
+
+ Now that the toy-font-face is exposed to the user, it is expected to be
+ returned when the user queries the font face associated with a scaled font.
+
+ src/cairo-scaled-font.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit c4828666b9b4dad39c3f17fdfd7d1dd3cbb83cbc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 10 16:45:41 2009 +0100
+
+ [script] Handle translation of compressed strings.
+
+ After introducing the new syntax to mark a deflated string, we also need
+ to add the equivalent binary tokens.
+
+ util/cairo-script/cairo-script-file.c | 10 ++--
+ util/cairo-script/cairo-script-scanner.c | 81 ++++++++++++++++++++------------
+ 2 files changed, 56 insertions(+), 35 deletions(-)
+
+commit 34870491951f5a712833b5fe7ed84c935bccfc5a
+Author: Andrea Canciani <ranma42@gmail.com>
+Date: Sun Aug 9 22:33:28 2009 +0200
+
+ [quartz] Fix one more compile error
+
+ src/cairo-quartz-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c2e75b9993ab1d30002877fc11b52ea7b9acd40b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Aug 9 21:12:36 2009 +0100
+
+ [quartz] Attempt to fix compile errors
+
+ ranma42 spotted that the quartz-backend no longer compiled after bed270,
+ so once again attempt to blindly fix those errors...
+
+ src/cairo-quartz-surface.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+commit 81c4594712843abca188a33c1edfb70fa6c5a0d9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 23:41:11 2009 +0100
+
+ [script] Ensure strings are nul terminated
+
+ Infrequently, but, for example, handling glyph strings, we require the
+ string to be nul terminated. (Otherwise an error occurs, which was
+ previously compounded by a drastic leak.)
+
+ util/cairo-script/cairo-script-scanner.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 86d6a489527d125e739aa5a6d17893bb44977010
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 23:39:21 2009 +0100
+
+ [script] Check for failure to store the glyph cache
+
+ If we fail to add the glyph cache (presumably because the font is in
+ error) do not leak the allocation. As this occurs for every single glyph
+ string, the leak can grow very quickly and mask the original bug.
+
+ util/cairo-script/cairo-script-operators.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+commit af392f7e45edcbf101ca7c91fc1ee372d283e8b9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 23:17:06 2009 +0100
+
+ [script] Extend csi-replay to show how to use a single surface
+
+ Currently the replay creates a fresh surface for every new surface. Whilst
+ using it to view replays (such as with --xlib) this is often not what is
+ desired so add a mode (compile-time only for now) to use similar surfaces
+ and blits to the front buffer instead.
+
+ util/cairo-script/csi-replay.c | 73 +++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 72 insertions(+), 1 deletion(-)
+
+commit b7639a5f79eaecfbaf1710fc679c7be375638efd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 10:55:18 2009 +0100
+
+ [trace] Close the dictionary before font
+
+ font expects the dictionary to be constructed on the stack for its use, so
+ close it. (I missed the closing '>>' when switching between dictionary
+ constructors.)
+
+ util/cairo-trace/trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 19f54d872fcfa9801abee9c57e30c6b3fc7eef40
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 10:40:32 2009 +0100
+
+ [gl] Move hidden cairo_gl_surface_create() proto to header
+
+ Make check-plt.sh happy
+
+ src/cairo-gl-private.h | 2 ++
+ src/cairo-gl-surface.c | 1 -
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+commit ee69f8aa5e0697aaeee9c00839fb7b30fe7e3184
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 10:30:52 2009 +0100
+
+ [trace] Whitespace
+
+ A few gratuitous whitespace and increase the buffer size used whilst
+ reading in data files.
+
+ util/cairo-trace/trace.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+commit 6d30021d65aa4126cd5eef47b0e6057dfc17d7ac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 10:29:49 2009 +0100
+
+ [trace] Only write the 4 byte length to the stream
+
+ We were attempting to write out the whole length of the block when we were
+ just trying to write out the length value.
+
+ util/cairo-trace/trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a439bd99d0439c007bc74584c1eb56700c520b52
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 5 17:34:29 2009 +0100
+
+ [perf] Compare drawing random curves
+
+ Extend the intersection tests with straight lines, with random curves as
+ well.
+
+ perf/intersections.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 57 insertions(+), 1 deletion(-)
+
+commit 1327df2cf2f2dd9f98533d824503dfb081803b05
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 4 20:15:13 2009 +0100
+
+ [pattern] Invalid access beyond end of freed-pool
+
+ Oops, we were attempting to return a pointer from beyond the end of our
+ array.
+
+ src/cairo-pattern.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 920f59a755ce142b068f21b9db07f76f35449f16
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 4 20:13:43 2009 +0100
+
+ [build] Configure switch to disable atomics
+
+ Workaround for my arm toolchain which succeeds in linking the configure
+ program, only to complain when linking a program (such as cairo-perf)
+ against libcairo.so. Annoying.
+
+ build/configure.ac.system | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+commit cb30c1f367967e3395296a5d01a3eb9050635e3b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Aug 4 13:59:03 2009 +0100
+
+ [path] Extend identical lines.
+
+ If a subsequent PATH_OP is just a continuation of the previous line, i.e.
+ it has the same gradient, then just replace the end-point of the previous
+ line with the new point rather than adding a new operation. Surprisingly
+ this occurs in the wild, but the main motivation is a future optimisation
+ to reduce the number of intersections during stroke-to-path.
+
+ src/cairo-path-fixed.c | 31 ++++++++++++++++++++++++++++---
+ src/cairoint.h | 7 +++++++
+ 2 files changed, 35 insertions(+), 3 deletions(-)
+
+commit 85b688a3f6271427befca699de3a7a15162fc59e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 3 22:27:22 2009 +0100
+
+ [matrix] Use hypot()
+
+ Use hypot() instead of open-coding sqrt(x*x + y*y). In theory, the
+ compiler could emit highly efficient code. In practice it's slower, but
+ more likely to be more accurate -- but the difference over a bare sqrt()
+ is likely not to be perceptible.
+
+ src/cairo-matrix.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 0db9e010fa70c65451d324cc9c0ade989f77fedd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Aug 3 22:23:19 2009 +0100
+
+ [perf] Calibrate tests to run for at least 2 seconds
+
+ By ensuring that tests take longer than a couple of seconds we eliminate
+ systematic errors in our measurements. However, we also effectively
+ eliminate the synchronisation overhead. To compensate, we attempt to
+ estimate the overhead by reporting the difference between a single
+ instance and the minimum averaged instance.
+
+ perf/box-outline.c | 14 +++--
+ perf/cairo-perf-report.c | 4 +-
+ perf/cairo-perf.c | 39 +++++++++---
+ perf/cairo-perf.h | 2 +-
+ perf/composite-checker.c | 22 ++++---
+ perf/dragon.c | 142 ++++++++++++++++++++++---------------------
+ perf/fill.c | 21 +++++--
+ perf/glyphs.c | 32 +++++-----
+ perf/intersections.c | 27 ++++----
+ perf/long-dashed-lines.c | 9 +--
+ perf/long-lines.c | 68 +++++++++++----------
+ perf/mask.c | 45 ++++++++------
+ perf/mosaic.c | 38 ++++++------
+ perf/paint-with-alpha.c | 5 +-
+ perf/paint.c | 5 +-
+ perf/pattern_create_radial.c | 24 ++++----
+ perf/pythagoras-tree.c | 20 +++---
+ perf/rectangles.c | 38 ++++++------
+ perf/rounded-rectangles.c | 47 +++++++++++---
+ perf/spiral.c | 51 ++++++++--------
+ perf/stroke.c | 19 ++++--
+ perf/subimage_copy.c | 7 ++-
+ perf/tessellate.c | 17 +++---
+ perf/text.c | 27 ++++----
+ perf/twin.c | 29 +++++----
+ perf/unaligned-clip.c | 37 ++++++-----
+ perf/world-map.c | 78 ++++++++++++------------
+ perf/zrusin.c | 10 +--
+ 28 files changed, 496 insertions(+), 381 deletions(-)
+
+commit 60c574ad062f3d8526056942bb7c9e71610a2773
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Aug 5 15:11:00 2009 +0100
+
+ [surface] Protect against the user setting a fallback resolution of 0.
+
+ Bug 23067 -- using clear drawing operator crashes printing
+ http://bugs.freedesktop.org/show_bug.cgi?id=23067
+
+ Here we were hitting an assert within the paginated surface after creating
+ a zero sized fallback image, due to the paginated surface being created
+ with an x fallback resolution of 0 dpi (by
+ _gtk_printer_create_cairo_surface(), gtk/gtkprinter.c:924).
+
+ Avoid the bug by guarding against bad input to
+ cairo_surface_set_fallback_resolution() which also allows us to identity
+ the invalid caller.
+
+ src/cairo-surface.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit a3f393cf644d75065fe524e2fbb28f55844f43bf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 09:52:34 2009 +0100
+
+ [configure] Also check for libiberty.h
+
+ cairo-trace also uses the libiberty.h without checking for its presence --
+ causing a build failure if bfd was installed but not that header.
+
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 51bd27afa147f78c8f4f3778cee725b6444e7eb0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 09:41:15 2009 +0100
+
+ [boilerplate/test] Convert make-*-constructors to shell
+
+ Remove the intermediate C program that was a nuisance whilst
+ cross-compiling and replace it with a simple shell script that is just a
+ combination of cat + sed.
+
+ boilerplate/Makefile.am | 17 +--
+ boilerplate/make-cairo-boilerplate-constructors.c | 163 ---------------------
+ boilerplate/make-cairo-boilerplate-constructors.sh | 24 +++
+ build/configure.ac.tools | 8 -
+ test/Makefile.am | 11 +-
+ test/make-cairo-test-constructors.c | 162 --------------------
+ test/make-cairo-test-constructors.sh | 24 +++
+ 7 files changed, 56 insertions(+), 353 deletions(-)
+
+commit 5dd29d7e2da8684ea46c8f1baba42e6dc64f1351
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Aug 6 09:55:43 2009 +0100
+
+ [directfb] Conditionally use DSPF_BGR555
+
+ Appears that this token is more recent than some of my headers, so check
+ for its presence before use.
+
+ src/cairo-directfb-surface.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 1d2abe7d1061e580e189604b25465c8025cedfb7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 19:38:23 2009 +0100
+
+ [gl] Refresh clip-operator ref.
+
+ A minor renderering difference, acceptable.
+
+ test/Makefile.am | 1 +
+ test/clip-operator.gl.argb32.ref.png | Bin 0 -> 8296 bytes
+ 2 files changed, 1 insertion(+)
+
+commit 640a0be2e2ef0124424aeca32915a2f644b03d27
+Merge: 067de9cf6 5c2239be4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 18:03:35 2009 +0100
+
+ Merge branch 'gl-glyph-cache'
+
+ Comparing the glyph-cache on an i915:
+
+ gnome-terminal-20090728: 1.51x speedup
+ firefox-20090601: No change
+
+commit 5c2239be4b11437b1ab1731ef2dfac6cfb8095b1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 16:29:49 2009 +0100
+
+ [gl] Use scissors rather than allocating a temporary depth buffer.
+
+ src/cairo-gl-glyphs.c | 9 ----
+ src/cairo-gl-private.h | 9 ++++
+ src/cairo-gl-surface.c | 114 ++++++++++---------------------------------------
+ 3 files changed, 32 insertions(+), 100 deletions(-)
+
+commit 067de9cf62223ee7a36aab10e3d8a4e0dcda4741
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 17:49:39 2009 +0100
+
+ [test] Add clip-fill.
+
+ Test filling through a complex clip.
+
+ test/Makefile.am | 4 ++
+ test/Makefile.sources | 1 +
+ test/clip-fill.c | 78 +++++++++++++++++++++++++++++++++++
+ test/clip-fill.ps.xfail.png | Bin 0 -> 522 bytes
+ test/clip-fill.ref.png | Bin 0 -> 1035 bytes
+ test/clip-fill.xlib-fallback.ref.png | Bin 0 -> 1039 bytes
+ test/clip-fill.xlib.ref.png | Bin 0 -> 1049 bytes
+ 7 files changed, 83 insertions(+)
+
+commit 7db1fb6fa97e0c44e66c0ae533b94fb3f26b273d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 16:57:14 2009 +0100
+
+ [test] Add clip-text
+
+ Test applying a complex clip to text.
+
+ test/Makefile.am | 4 ++
+ test/Makefile.sources | 1 +
+ test/clip-text.c | 88 ++++++++++++++++++++++++++++++++++++++++++++
+ test/clip-text.ps.xfail.png | Bin 0 -> 434 bytes
+ test/clip-text.ref.png | Bin 0 -> 928 bytes
+ test/clip-text.svg.ref.png | Bin 0 -> 933 bytes
+ test/clip-text.xlib.ref.png | Bin 0 -> 900 bytes
+ 7 files changed, 93 insertions(+)
+
+commit 728d3f6383bba218de03f2693f289ddad6a80d0c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 16:24:37 2009 +0100
+
+ Revert "[gl] Fixup unbounded regions after spans"
+
+ This reverts commit f7121ca88844fa70ecb1a35f3f6c9b653324718d.
+
+ src/cairo-gl-surface.c | 68 ++++++--------------------------------------------
+ 1 file changed, 7 insertions(+), 61 deletions(-)
+
+commit 74bdea1249bc1fcd223e9bab83d9b9e22fa98b99
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 16:20:54 2009 +0100
+
+ [spans] Emit empty rows.
+
+ A problem that does not present itself whilst using spans to intermediate
+ masks is that the tor-span-convertor did not emit the empty rows. When
+ compositing directly using spans with an unbounded operator this was
+ causing rendering artefacts, for overlapping-glyphs and the gl backend.
+
+ src/cairo-tor-scan-converter.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+commit 1e4b9ab04bfe18f50b9b7c2cdb75d5828e33ef69
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 15:27:20 2009 +0100
+
+ [gl] Return status from _render_glyphs()
+
+ src/cairo-gl-glyphs.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 097484da6fd70867ed2128e78247eab5c43217fb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 14:48:32 2009 +0100
+
+ [boilerplate] Conditionally tweak the xlib surface
+
+ Prior to introduction of the buggy members to the surface, we obviously
+ cannot set them. However, the boilerplate code is meant to compile against
+ older revisions of the library so we need to check for the existence prior
+ to use.
+
+ boilerplate/cairo-boilerplate-xlib.c | 10 ++++++++--
+ src/cairo-xlib-surface-private.h | 3 +++
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit 397538a251ae19bb1a34650763eb9a80108a96de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 12:17:28 2009 +0100
+
+ [boilerplate] Update fallbacks after disabling RENDER
+
+ The xlib surface caches flags based on RENDER version, so after disabling
+ render to force fallbacks, we need to ensure that the flags are reset.
+
+ boilerplate/cairo-boilerplate-xlib.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit 786d1f962a7e7ee7036ea85d4ea3aec7580e25db
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 13:17:24 2009 +0100
+
+ [xlib] Use server-side gradients.
+
+ We can offload creation of gradients to server that support RENDER 0.10
+ and later. This greatly reduces the amount of traffic we need to send over
+ our display connection as the gradient patterns are much smaller than the
+ full image. Even if the server fallbacks to using pixman, performance
+ should be improved by the reduced transport overhead. Furthermore this is a
+ requisite to enable hardware accelerated gradients with the xlib backend.
+
+ Running cairo-perf-trace on tiny, Celeron/i915:
+
+ before: firefox-20090601 211.585
+ after: firefox-20090601 270.939
+
+ and on tiger, CoreDuo/nvidia:
+
+ before: firefox-20090601 70.143
+ after: firefox-20090601 87.326
+
+ where linear gradients are used extensively throughout the GTK+ theme.
+ Not quite the result I was expecting!
+
+ In particular, looking at tiny:
+
+ xlib-rgba paint-with-alpha_linear-rgba_over-512 47.11 (47.16 0.05%) -> 123.42 (123.72 0.13%): 2.62x slowdown
+ █▋
+ xlib-rgba paint-with-alpha_linear3-rgba_over-512 47.27 (47.32 0.04%) -> 123.78 (124.04 0.13%): 2.62x slowdown
+ █▋
+ xlib-rgba paint-with-alpha_linear-rgb_over-512 47.19 (47.21 0.02%) -> 123.37 (123.70 0.13%): 2.61x slowdown
+ █▋
+ xlib-rgba paint-with-alpha_linear3-rgb_over-512 47.30 (47.31 0.04%) -> 123.52 (123.62 0.09%): 2.61x slowdown
+ █▋
+ xlib-rgba paint_linear3-rgb_over-512 47.29 (47.32 0.05%) -> 118.95 (119.60 0.29%): 2.52x slowdown
+ █▌
+ xlib-rgba paint_linear-rgba_over-512 47.14 (47.17 0.06%) -> 116.76 (117.06 0.16%): 2.48x slowdown
+ █▌
+ xlib-rgba paint_linear3-rgba_over-512 47.32 (47.34 0.04%) -> 116.85 (116.98 0.05%): 2.47x slowdown
+ █▌
+ xlib-rgba paint_linear-rgb_over-512 47.15 (47.19 0.03%) -> 114.08 (114.55 0.20%): 2.42x slowdown
+ █▍
+ xlib-rgba paint-with-alpha_radial-rgb_over-512 117.25 (119.43 1.21%) -> 194.36 (194.73 0.09%): 1.66x slowdown
+ ▋
+ xlib-rgba paint-with-alpha_radial-rgba_over-512 117.22 (117.26 0.02%) -> 193.81 (194.17 0.11%): 1.65x slowdown
+ ▋
+ xlib-rgba paint_radial-rgba_over-512 117.23 (117.26 0.02%) -> 186.35 (186.41 0.03%): 1.59x slowdown
+ ▋
+ xlib-rgba paint_radial-rgb_over-512 117.23 (117.27 0.02%) -> 184.14 (184.62 1.51%): 1.57x slowdown
+ ▋
+
+ Before 1.10, we may choose to disable server-side gradients for the
+ current crop of Xorg servers, similar to the extended repeat modes.
+
+ [Updated by Chris Wilson. All bugs are his.]
+
+ NEWS | 28 ++++
+ src/cairo-xlib-display.c | 9 +-
+ src/cairo-xlib-private.h | 3 +-
+ src/cairo-xlib-surface-private.h | 5 +-
+ src/cairo-xlib-surface.c | 306 +++++++++++++++++++++++++++++++++++----
+ 5 files changed, 318 insertions(+), 33 deletions(-)
+
+commit 53cbbad8fbbd2b9423a5eb179d0cec3fc7678791
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 11:35:45 2009 +0100
+
+ [xlib] Disable extended repeat modes if RENDER < 0.10
+
+ The extended repeat modes were only introduced in RENDER 0.10, so disable
+ them if the server reports an earlier version. This is in addition to
+ disabling the repeat modes if we know (guess!) the server to have a buggy
+ implementation.
+
+ src/cairo-xlib-surface.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit e283e53563915daa11566ba006e1bf1e12b0d2fc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 10:50:13 2009 +0100
+
+ [perf] Print min_ticks in report
+
+ As the change and ranking is based on the min_ticks, and as this can
+ sometimes deviate wildly from median_ticks, include min_ticks in the
+ output.
+
+ In particular it helps to explain cases like:
+
+ xlib-rgba rectangles_similar-rgba-mag_source-512 10.13 88.41% -> 5.77 0.19%: 1.50x slowdown
+
+ which becomes
+
+ xlib-rgba rectangles_similar-rgba-mag_source-512 3.83 (10.13 88.41%) -> 5.75 (5.77 0.19%): 1.50x slowdown
+
+ (Considering the poor standard deviation on the initial measurement, this
+ is more likely a sampling error than a true regression.)
+
+ perf/cairo-perf-diff-files.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit ce8a8424aa4331f119b115123faf7b773b5f25d0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 31 09:36:10 2009 +0100
+
+ [perf] Change the order of slowdowns.
+
+ More the large slowdowns to the end. This has two pleasing effects:
+
+ 1. There is symmetry between large speedups at the top, and large
+ slowdowns at the bottom, with long bars -> short bars -> long bars.
+
+ 2. After a cairo-perf-diff run the largest slowdowns are immediately
+ visible on the console. What better way to flag performance
+ regressions?
+
+ perf/cairo-perf-diff-files.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+commit 877ed645f95ff048f7c5d2ce0fb92389918711a6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 30 22:09:55 2009 +0100
+
+ [perf] Add a more complex fill, a set of rings
+
+ In investigating performance regressions with the wip/tessellator, I'm
+ keen to inspect how the tessellator scales with polygon complexity.
+
+ perf/fill.c | 37 +++++++++++++++++++++++++++++++++++++
+ 1 file changed, 37 insertions(+)
+
+commit 3dbc4170f0e89f02455b82c6496d6322e56e0491
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 30 10:35:11 2009 +0100
+
+ [perf] Add a single shot long-lines
+
+ Compare the performance of self-intersection removal by comparing the cost
+ of individually stroking each line versus stroking them all en-mass.
+
+ perf/long-lines.c | 45 ++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 34 insertions(+), 11 deletions(-)
+
+commit 2f033af5ab15dc56675c42434bb1c18655012b03
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 30 09:42:31 2009 +0100
+
+ [perf] Fix the asymmetry in long lines
+
+ We missed the final long diagonal to the bottom-right.
+
+ perf/long-lines.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 944206e55ba997a4a55334be3c7ebf8141016be7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 30 09:36:28 2009 +0100
+
+ [perf] Correct typo in long-lines.c
+
+ Computed may_y using height not width, fortunately the test cases have
+ always been square.
+
+ perf/long-lines.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 229887e980f03d90248add8af9cd0a9be6cb0f9a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 29 19:48:00 2009 +0100
+
+ [perf] Check output
+
+ Add a CAIRO_PERF_OUTPUT environment variable to cause cairo-perf to first
+ generate an output image in order to manually check that the test is
+ functioning correctly. This needs to be automated, so that we have
+ absolute confidence that the performance tests are not broken - but isn't
+ that the role of the test suite? If we were ever to publish cairo-perf
+ results, I would want some means of verification that the test-suite had
+ first been passed.
+
+ perf/cairo-perf.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+commit 8c6ecfe6488dff93090d5d0a2d814466804bc7de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 29 16:17:36 2009 +0100
+
+ [perf] Remove the warning about failing to open a directory
+
+ The warning is repeated in the error message if we fail to find any
+ traces, and now that we search a path it is likely that some elements do
+ not exist. Thus we annoy the user with irrelevant, non-fatal warnings.
+
+ Still looking for suggestions for the most appropriate home for the system
+ wide cairo-traces dir...
+
+ perf/cairo-perf-trace.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit 8c1aed17ca5dafb00175ac413d56760a3ef012f9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 29 13:24:19 2009 +0100
+
+ [perf] Add another stroking micro-benchmark
+
+ The original stroke only contains a single subpath. Self-intersection
+ removal particularly affects strokes with multiple curved segments, so add
+ a path that encompasses both straight edges and rounded corners.
+
+ perf/stroke.c | 36 ++++++++++++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+commit 71f5649846aa8e9e2178e7caf69ab47554f86c4d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 29 15:36:25 2009 +0100
+
+ [path] Fix iter to handle circular list of buffers
+
+ When switching the path over to use the circularly linked list, 73f801,
+ I missed updating the path iterator.
+
+ src/cairo-path-fixed-private.h | 1 +
+ src/cairo-path-fixed.c | 9 +++++++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit acfcf4a31b3370ca7bbdd522fad9ddc483df3472
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 29 16:10:04 2009 +0100
+
+ [path] Remove the broken rel-curve-to as line-to
+
+ As pointed out by Andrea, and now tested by test/degenerate-rel-curve-to,
+ this attempt at removing degenerate curve-to was broken.
+
+ src/cairo-path-fixed.c | 6 ------
+ 1 file changed, 6 deletions(-)
+
+commit 81d3e15e6ca7b7c1a07fdfb6d03c43484ce9f502
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 29 16:07:17 2009 +0100
+
+ [test] Yet another bug in curve-to as line-to.
+
+ Andrea Canciani (ranma42) found another instance of my broken 'degenerate'
+ curve-to as line-to optimisation. All I can say is when I do something
+ wrong, at least I'm consistent!
+
+ This test case highlights the bug in the rel-curve-to path.
+
+ test/Makefile.am | 2 +
+ test/Makefile.sources | 1 +
+ test/degenerate-rel-curve-to.c | 99 ++++++++++++++++++++++++++++++
+ test/degenerate-rel-curve-to.ps.xfail.png | Bin 0 -> 202 bytes
+ test/degenerate-rel-curve-to.ref.png | Bin 0 -> 270 bytes
+ 5 files changed, 102 insertions(+)
+
+commit f7121ca88844fa70ecb1a35f3f6c9b653324718d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 20:48:26 2009 +0100
+
+ [gl] Fixup unbounded regions after spans
+
+ src/cairo-gl-surface.c | 68 ++++++++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 61 insertions(+), 7 deletions(-)
+
+commit 5631f01075a030255c5eb47a8ee600b062705d0f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 18:56:12 2009 +0100
+
+ [gl] Cache texture snapshots.
+
+ src/cairo-gl-glyphs.c | 32 ++++--
+ src/cairo-gl-private.h | 2 +-
+ src/cairo-gl-surface.c | 297 +++++++++++++++++++++++++++++--------------------
+ 3 files changed, 204 insertions(+), 127 deletions(-)
+
+commit 3b0bb2cfd2ad8579e88f1c0ab46f5ccf762e0974
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 18:04:59 2009 +0100
+
+ [gl] Replace DrawPixels with TexSubImage
+
+ src/cairo-gl-surface.c | 60 +++++++++++++++++++++++---------------------------
+ 1 file changed, 27 insertions(+), 33 deletions(-)
+
+commit 4b7a1a2da7a7f55db788cbfb3164f9f948bbb26b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 17:32:30 2009 +0100
+
+ [gl] Disable the EXTEND_REFLECT convertor
+
+ As we can handle EXTEND_REFLECT via the samplers, we do not need to
+ convert such patterns to EXTEND_REPEAT during acquisition.
+
+ src/cairo-gl-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 780a95b024c5880353ffc256a634eb3bcc641601
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 16:49:04 2009 +0100
+
+ [gl] Trim glyphs to surface/clip extents.
+
+ src/cairo-gl-glyphs.c | 21 ++++++++++++++++++---
+ 1 file changed, 18 insertions(+), 3 deletions(-)
+
+commit b1227dea29d3e357cc69c49eed0ae10d5578f24a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 16:39:52 2009 +0100
+
+ [gl] Render glyphs to an intermediate mask as opposed to falling back.
+
+ There are many common scenarios, mostly involving overlapping glyphs,
+ for which to guarantee correct rendering we have to composite the glyphs
+ via an explicit mask. That is instead of just blending the glyphs on to
+ the destination, we have to add the glyphs to a mask, and then composite
+ that mask+source with the destination.
+
+ src/cairo-gl-glyphs.c | 306 ++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 194 insertions(+), 112 deletions(-)
+
+commit cd259489e2f41caaa7441233d87b46fbd43991ae
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 15:58:54 2009 +0100
+
+ [gl] Fallback for overlapping glyphs.
+
+ src/cairo-analysis-surface.c | 6 ++++--
+ src/cairo-gl-glyphs.c | 35 ++++++++++++++++++++---------------
+ src/cairo-gl-private.h | 13 +++++++++++++
+ src/cairo-scaled-font.c | 23 +++++++++++++++++++++--
+ src/cairo-surface-fallback.c | 3 ++-
+ src/cairo-xcb-surface.c | 3 ++-
+ src/cairo-xlib-surface.c | 3 ++-
+ src/cairoint.h | 3 ++-
+ 8 files changed, 66 insertions(+), 23 deletions(-)
+
+commit 3d8f1d3dc83b9a86f2f104f0e2afa192a34d18c8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 15:38:45 2009 +0100
+
+ [gl] Only unlock the glyph cache when full.
+
+ src/cairo-gl-glyphs.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit 922b1fe8e380ceba0630935460ce758ef660df75
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Jul 28 22:34:42 2009 +0930
+
+ Ensure Type 3 fonts do not use the name .notdef in the PS encoding
+
+ src/cairo-scaled-font-subsets.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a251e34dbbcb652906f7fddd2a72cbb5992b58ae
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 13:44:19 2009 +0100
+
+ [gl] Move check for vertex buffer support to individual operations.
+
+ As we can fallback instead of using vertex buffers, do so rather than
+ preventing any use of GL acceleration.
+
+ src/cairo-gl-glyphs.c | 3 +++
+ src/cairo-gl-surface.c | 17 +++++++++--------
+ 2 files changed, 12 insertions(+), 8 deletions(-)
+
+commit 90657bacc306e65e07e9eb16561a805150aef778
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 13:30:31 2009 +0100
+
+ [gl] Separate out supported operator check.
+
+ By performing the check on whether the operator is supported prior to
+ acquiring the context, we do not need to handle the error part way
+ through the context setup. This makes the code much cleaner, and save
+ some work for the unsupported cases.
+
+ src/cairo-gl-glyphs.c | 7 ++++---
+ src/cairo-gl-private.h | 5 ++++-
+ src/cairo-gl-surface.c | 46 ++++++++++++++++++----------------------------
+ 3 files changed, 26 insertions(+), 32 deletions(-)
+
+commit 21d50e2163038c8acc0eef738acf61f851835f7d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 13:24:43 2009 +0100
+
+ [gl] Unthaw font along contended path.
+
+ If we bail after freezing the font, make sure we thaw that it is thawed
+ before returning.
+
+ src/cairo-gl-glyphs.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 5440055fc0329c726d324984cd2fdf07badc7e0f
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Jul 28 20:59:25 2009 +0930
+
+ Ensure Type 3 fonts do not add a .notdef glyph
+
+ src/cairo-scaled-font-subsets.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1ae5a41951b8a8cb415835559f91d1636a885216
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Jul 28 20:54:58 2009 +0930
+
+ PDF: Only Type 3 fonts should include glyph 0 in /ToUnicode
+
+ 4c498098 made all 8-bit fonts include glyph 0 which incorrectly
+ included Type 1 fallback fonts.
+
+ src/cairo-pdf-surface.c | 20 +++++++++++++-------
+ src/cairo-scaled-font-subsets.c | 1 +
+ src/cairoint.h | 1 +
+ 3 files changed, 15 insertions(+), 7 deletions(-)
+
+commit c11f369057c5ebb958bec58ef41f8ad4b43bdbee
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 13:02:10 2009 +0100
+
+ [perf] Avoid NULL derefs on broken result files.
+
+ Instead of testing for a NULL return we checked that the pointer didn't
+ point to NIL. Oops.
+
+ perf/cairo-perf-report.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 19f44982348d247057df4481010c1e3ddc80bac2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 12:58:07 2009 +0100
+
+ [test] Wrap yet another call to get_image_surface() inside a timeout.
+
+ I missed this call to get_image_surface() that is now being hit having
+ restored the reference image for dash-infinite-loop.
+
+ test/cairo-test.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit e2f912dc5bbfad3a6f4b5e1dbfbe51be148b3232
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 09:32:36 2009 +0100
+
+ [script] Add cvi, cvr, mod
+
+ Add implementations of convert-to-integer, convert-to-real and modulus
+ supplied by Zack Weinberg <zweinberg@mozilla.com>.
+
+ util/cairo-script/cairo-script-operators.c | 95 +++++++++++++++++++++++++++++-
+ util/cairo-script/cairo-script-private.h | 3 +
+ util/cairo-script/cairo-script-scanner.c | 6 +-
+ 3 files changed, 100 insertions(+), 4 deletions(-)
+
+commit 24b5ac6377f0e4b76b73460a497b9861fc01a889
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 08:05:22 2009 +0100
+
+ [test] Add timeouts around finishing and converting surfaces to images.
+
+ In order to catch infinite loops whilst replaying and converting vector
+ surfaces to images (via external renderers) we need to also install
+ alarms around the calls to finish() and get_image().
+
+ test/cairo-test.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+commit dacc380dd9ea23fe060d0397104ecd4b2a6d0eae
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sat Jul 11 02:59:12 2009 +0300
+
+ [test] Test extremely small dash lengths.
+
+ The stroker code is liable to wedge when passed
+ dash patterns which don't advance the dash offset
+ due to limited precision arithmetic. This test
+ attempts to hit all the places in the stroker where
+ that can happen.
+
+ Reported on the cairo mailing list by Hans Breuer:
+
+ http://lists.cairographics.org/archives/cairo/2009-June/017506.html
+
+ test/Makefile.am | 1 +
+ test/Makefile.sources | 1 +
+ test/dash-infinite-loop.c | 83 ++++++++++++++++++++++++++++++++++++++++
+ test/dash-infinite-loop.ref.png | Bin 0 -> 642 bytes
+ 4 files changed, 85 insertions(+)
+
+commit 128d6fb2daf4e57def813511cc89167217041bf4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 08:37:54 2009 +0100
+
+ [path] Remove the erroneous conversion of a 'zero-length' curve-to
+
+ As pointed out by Andrea, and now tested by test/degenerate-curve-to, a
+ curve-to that begins and ends on the same point may extend further due to
+ its control points. It can not be simply replaced with a degenerate
+ line-to. In order to do so we will need more extensive degeneracy
+ checking, ala _cairo_spline_init().
+
+ src/cairo-path-fixed.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+commit 660c389d11bda29498807f41d3b761fa540ae9b9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 28 08:18:17 2009 +0100
+
+ [test] Add degenerate-curve-to
+
+ Andrea Canciani (ranma42) pointed out a second bug in the curve-to as
+ line-to optimisation, that is a curve starting and finishing on the same
+ point is not necessarily degenerate. This test case exercises 5 different
+ curves that start and end on the same point.
+
+ test/Makefile.am | 2 +
+ test/Makefile.sources | 1 +
+ test/degenerate-curve-to.c | 103 ++++++++++++++++++++++++++++++++++
+ test/degenerate-curve-to.ps.xfail.png | Bin 0 -> 202 bytes
+ test/degenerate-curve-to.ref.png | Bin 0 -> 276 bytes
+ 5 files changed, 106 insertions(+)
+
+commit d31de83e01468eaf9e1a906aef536b63e77cb752
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Jul 27 15:58:27 2009 -0700
+
+ Mark curve-to-as-line-to as XFAIL for PS backend.
+
+ Looks like ghostscript has a similar buggy optimization like we
+ just fixed in cairo. I'm just waiting on a new bugzilla account
+ from bugs.ghostscript.com after which I plan to report the bug
+ there.
+
+ test/curve-to-as-line-to.ps.xfail.png | Bin 0 -> 112 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit 45919a4f0c94a247b1c6941dbc4a57f6c9399396
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Jul 27 15:45:55 2009 -0700
+
+ Revert "[path] Convert straight curve-to to line-to"
+
+ This reverts commit c72ca2f2296b5fbc5859059b98221e5ffe087dae.
+
+ This commit was broken as verified by the curve-to-as-line-to test
+ case.
+
+ src/cairo-path-fixed.c | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+commit 5bed405b278a6b934369873f55117d497f69bc3a
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Jul 27 15:45:15 2009 -0700
+
+ Revert "[spline] Treat a straight spline as degenerate."
+
+ This reverts commit f3d265559a2f97152ce8f307ea3ce83463083088.
+
+ This commit was broken as verified by the curve-to-as-line-to test
+ case.
+
+ src/cairo-spline.c | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+commit 01acad1659caf766c57849f85dc3536fe2167608
+Merge: 3cc9a6050 cf15aed0c
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Jul 27 15:26:19 2009 -0700
+
+ Merge branch 'master' of git.cairographics.org:/git/cairo
+
+commit 3cc9a6050d9704976d8efe373b913e5309bde6d2
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Jul 27 15:24:55 2009 -0700
+
+ Add new test: curve-to-as-line-to
+
+ This test anticipates a future optimization, (already pushed
+ upstream but not pulled yet), with a buggy implementation
+ of replacing curve_to with line_to.
+
+ test/Makefile.sources | 1 +
+ test/curve-to-as-line-to.c | 95 +++++++++++++++++++++++++++++++++++++++
+ test/curve-to-as-line-to.ref.png | Bin 0 -> 95 bytes
+ 3 files changed, 96 insertions(+)
+
+commit e19b2866ed095cf66e9344efa442ae01dc7913ac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 27 19:51:36 2009 +0100
+
+ [gl] Actually remove the glyph from the rtree on scaled_font_fini
+
+ Mark the node as available when the scaled_glyph is finished, and then
+ attempt to collapse the parent node.
+
+ src/cairo-gl-glyphs.c | 5 +++--
+ src/cairo-rtree-private.h | 3 +++
+ src/cairo-rtree.c | 13 +++++++++++++
+ 3 files changed, 19 insertions(+), 2 deletions(-)
+
+commit e0b7979a30fff2a22fef5c170fd72c37c197ee0e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 27 17:44:10 2009 +0100
+
+ [gl] Switch to using the common rtree implementation.
+
+ src/cairo-gl-glyphs.c | 440 ++++++++-----------------------------------------
+ src/cairo-gl-private.h | 52 ++----
+ src/cairo-gl-surface.c | 5 +
+ 3 files changed, 89 insertions(+), 408 deletions(-)
+
+commit 37bf06d66efa238c4ff9c74c86a0c9d037b300e6
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Jul 27 09:16:46 2009 -0700
+
+ [gl] Fix handling of clip for glyphs (clip-operator test).
+
+ src/cairo-gl-glyphs.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 42 insertions(+), 1 deletion(-)
+
+commit 74f33513194ec3d8e69a21aa71aa7fc854415e83
+Author: Eric Anholt <eric@anholt.net>
+Date: Fri Jul 24 14:08:55 2009 -0700
+
+ [gl] Switch the glyph cache to using VBOs.
+
+ This is a major performance improvement for GL even on non-TNL hardware
+ (i915), as we get to emit one giant DrawArrays and make GL drivers love us.
+ Now we're actually faster than not having the glyph cache.
+
+ Before glyph cache (HP 945GM):
+ [ 0] gl firefox-20090601 238.103 238.195 0.35% 5/6
+ After:
+ [ 0] gl firefox-20090601 68.181 76.735 5.46% 6/6
+
+ src/cairo-gl-glyphs.c | 177 ++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 120 insertions(+), 57 deletions(-)
+
+commit ee4138e587a67c3fc4d0e89b899109af89f16e72
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Jul 23 21:12:59 2009 -0700
+
+ [gl] Start adding glyph cache support.
+
+ This is pretty much cut-and-paste from ickle's cairo-drm-i915-surface, and
+ uses fixed function and doesn't use VBOs.
+
+ src/Makefile.sources | 2 +-
+ src/cairo-gl-glyphs.c | 829 +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/cairo-gl-private.h | 115 +++++++
+ src/cairo-gl-surface.c | 69 ++--
+ 4 files changed, 965 insertions(+), 50 deletions(-)
+
+commit cf15aed0c4e843e7297c5a1979ac0318f6df4947
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 27 19:18:21 2009 +0100
+
+ [xlib] Add a timely reminder to ensure that bugs are properly filed.
+
+ In a discussion on IRC, attention was drawn to a dubious comment in
+ _cairo_xlib_show_glyphs() - the precise details of which have passed
+ out of the collective memory.
+
+ src/cairo-xlib-surface.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit 2da01ed552d48808cdf3aa7798ddfb959d016f0f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 27 18:20:22 2009 +0100
+
+ [rtree] Merge the common unpin_and_evict_unused() routine
+
+ Having written the same method to prune glyphs from the rtree three times,
+ I thought wise to add the common method to the core routines.
+
+ src/cairo-rtree-private.h | 1 +
+ src/cairo-rtree.c | 50 +++++++++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 49 insertions(+), 2 deletions(-)
+
+commit 9f6a0f5668601c74886378d6cdb9588621d30e6d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 27 14:01:32 2009 +0100
+
+ [paginated] Propagate error return during finish.
+
+ In bed2701, I removed the explicit finish of the paginated's target
+ surface, since as a wrapper it did not explicitly own the surface and so
+ should not be calling finish(). However, we do need to propagate errors
+ from the backing surface, such as PDF, which will only be detected during
+ the implicit finish in the final destroy. So check to see it we hold the
+ last reference to the target (and so our destroy will trigger the implicit
+ finish) and call the finish explicitly and check the error status
+ afterwards.
+
+ src/cairo-paginated-surface.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+commit 6ca3720ba66f443e70c961f7d4fdac604c831e97
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 27 10:06:34 2009 +0100
+
+ [test] Overlapping glyphs
+
+ Add a test case to explicitly check handling of overlapping glyphs.
+
+ test/Makefile.am | 4 +
+ test/Makefile.sources | 1 +
+ test/overlapping-glyphs.argb32.ref.png | Bin 0 -> 2696 bytes
+ test/overlapping-glyphs.c | 123 +++++++++++++++++++++++++++
+ test/overlapping-glyphs.pdf.argb32.xfail.png | Bin 0 -> 2199 bytes
+ test/overlapping-glyphs.pdf.rgb24.xfail.png | Bin 0 -> 1692 bytes
+ test/overlapping-glyphs.rgb24.ref.png | Bin 0 -> 1650 bytes
+ 7 files changed, 128 insertions(+)
+
+commit 09a2b2ed3189fe12483cbd673c24ceddc2c20f3f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 27 10:14:24 2009 +0100
+
+ [xlib] Fast-path the likely case of retrieving a known xrender_format
+
+ If we know the CPU can read pointers atomically, then we can simply peek
+ into the cached_xrender_formats to see if we already have a match, before
+ taking the mutex. (Acquiring the mutex here is a minor nuisance that
+ appears on the callgrind profiles.)
+
+ src/cairo-xlib-display.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit efb3445ee1553c91e62f6b0fe50ab72d65f5c81c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 27 10:18:25 2009 +0100
+
+ Add a simple rectangle tree (rtree) implementation
+
+ In order to efficient store small images, we need to pack them into a
+ large texture. The rtree handles allocation of small rectangles out of a
+ much larger whole. As well as tracking free rectangles, it can also be
+ used to note which parts of the texture are 'pinned' -- that is have
+ operations currently pending and so can not be modified until that batch
+ of operations have been flushed. When the rtree is full, i.e. there is no
+ single free rectangle to accommodate the allocation request, it will
+ randomly evict an unpinned block large enough to fit the request. The
+ block may comprise just a single glyph, or a subtree of many glyphs. This
+ may not be the best strategy, but it is an effective start.
+
+ src/Makefile.sources | 2 +
+ src/cairo-rtree-private.h | 124 ++++++++++++++++
+ src/cairo-rtree.c | 349 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 475 insertions(+)
+
+commit c72ca2f2296b5fbc5859059b98221e5ffe087dae
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jul 26 09:07:48 2009 +0100
+
+ [path] Convert straight curve-to to line-to
+
+ Avoid the high cost associated with curves if we can convert the curve to
+ a straight line.
+
+ src/cairo-path-fixed.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+commit f3d265559a2f97152ce8f307ea3ce83463083088
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jul 26 09:03:36 2009 +0100
+
+ [spline] Treat a straight spline as degenerate.
+
+ The fallback for degenerate splines is to treat them as a line-to, so if
+ the spline is straight, we can just replace it with a simple line-to by
+ treating as degenerate.
+
+ src/cairo-spline.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit 25858d524d158531a71a2e772551b1e497d9d423
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jul 26 08:13:28 2009 +0100
+
+ [script] Fix reference to font source after transferring to mmap
+
+ After diverting the pointers to accommodate lazy decompressing of the
+ source, the bytecode pointer was left pointing to the original location
+ that had already been freed - thus passing an invalid block to FreeType
+ and unsurprisingly then, blowing up.
+
+ util/cairo-script/cairo-script-operators.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit ede0f7e7df4e17ddc1ffe98dcdfe0115a58e7b14
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 25 07:19:22 2009 +0100
+
+ [pdf] Eliminate redundant whole-page clip.
+
+ We do not to emit a clip if it covers the whole page.
+
+ src/cairo-pdf-surface.c | 16 ++++++++++++++++
+ test/meta-surface-pattern.pdf.argb32.ref.png | Bin 3868 -> 3919 bytes
+ test/meta-surface-pattern.pdf.rgb24.ref.png | Bin 3806 -> 3867 bytes
+ test/scale-offset-image.pdf.xfail.png | Bin 8692 -> 8694 bytes
+ test/scale-offset-similar.pdf.xfail.png | Bin 9369 -> 9368 bytes
+ 5 files changed, 16 insertions(+)
+
+commit 4c498098c0dc66dc8c3e8cd60f79e5e5eda206b9
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Fri Jul 24 21:36:47 2009 +0930
+
+ PDF: Fix glyph 0 in toUnicode stream when using user fonts
+
+ _cairo_pdf_surface_emit_to_unicode_stream() was reserving glyph 0 for
+ the .notdef glyph (as required by TrueType/CFF/Type1 fallback
+ fonts). However Type 3 fonts do not reserve glyph 0 for .notdef and
+ need glyph 0 to be included in the toUnicode stream.
+
+ http://lists.cairographics.org/archives/cairo/2009-July/017731.html
+
+ src/cairo-pdf-surface.c | 71 +++++++++++++++++++++++++++++++------------------
+ 1 file changed, 45 insertions(+), 26 deletions(-)
+
+commit e577096dff714266101ba86ac275864b854096a4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 23:17:07 2009 +0100
+
+ [boilerplate] Fix compilation against old revisions (as old as 1.9.2!)
+
+ boilerplate/Makefile.am | 7 +++++-
+ boilerplate/cairo-boilerplate-pdf.c | 4 ++++
+ boilerplate/cairo-boilerplate-ps.c | 4 ++++
+ boilerplate/cairo-boilerplate-svg.c | 4 ++++
+ boilerplate/cairo-boilerplate-test-surfaces.c | 31 ++++++++++++++++-----------
+ boilerplate/cairo-boilerplate.c | 10 ++++++---
+ src/cairo-types-private.h | 5 ++++-
+ util/cairo-script/cairo-script-operators.c | 2 ++
+ 8 files changed, 50 insertions(+), 17 deletions(-)
+
+commit 0466053099b7f27065267d49c84e9e24bff6c7a1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 23:45:01 2009 +0100
+
+ [image] Discard redundant clears
+
+ On slow machines the call to pixman_fill_sse2() on similar surfaces that
+ we know are already zeroed takes a significant amount of time [12.77% of
+ the profile for a firefox trace, cf to just 3% of the profile is spent
+ inside memset].
+
+ Rather than solve why the pixman_fill_sse2() is so slow, simply skip the
+ redundant clears.
+
+ src/cairo-image-surface.c | 35 ++++++++++++++++++++++++++++++++++-
+ src/cairoint.h | 1 +
+ 2 files changed, 35 insertions(+), 1 deletion(-)
+
+commit 8b8e03503d7a4fdacfc48e0b35c9b02d7a08c1e2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 22:00:05 2009 +0100
+
+ [script] mark scan_read() inline
+
+ Small function that is critical to performance whilst scanning scripts.
+
+ util/cairo-script/cairo-script-scanner.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit f02ba09475b751fba411addb96718dbcb1de5132
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 20:23:51 2009 +0100
+
+ [xlib] Check workqueue before taking the display mutex
+
+ Optimistically check to see if there is any outstanding work before
+ checking under the mutex. We don't care if we occasionally do not run the
+ queue this time due to contention, since we will most likely check again
+ very shortly or clean up with the display.
+
+ src/cairo-xlib-display.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit 4dc62bbedc5d8669c0508963497c568d0202f579
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 19:34:10 2009 +0100
+
+ [test] Extend radial gradients to check r2 < r1
+
+ Include additional gradients to cover the cases where r1 > r2, as a pixman
+ bug was exposed by:
+ [Bug 22908] Invalid output of radial gradient
+ http://bugs.freedesktop.org/show_bug.cgi?id=22908
+
+ test/radial-gradient.c | 36 +++++++++++++++++++++++-------------
+ test/radial-gradient.pdf.ref.png | Bin 79612 -> 277162 bytes
+ test/radial-gradient.ref.png | Bin 91159 -> 280971 bytes
+ 3 files changed, 23 insertions(+), 13 deletions(-)
+
+commit e98e2690cb4ac475819394334cb5e61a8e3d5557
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 18:32:47 2009 +0100
+
+ [test] Fix use of uninitialized widths.
+
+ user-font-rescale copied unitialized values from the widths array into
+ the desired array. Although these corresponded to unused glyphs and so
+ were never used during the rendering, the values may have been illegal
+ causing FPE as they were copied.
+
+ test/user-font-rescale.c | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+commit 596dec95610ef02d86ede94eca5b83221b0b533a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 18:15:38 2009 +0100
+
+ [test] Trap SIGFPE
+
+ Note the crash if we hit a floating-point exception.
+
+ test/cairo-test.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit 0561539880b480273767a9559da89a25970802e2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 18:31:37 2009 +0100
+
+ [scaled-font] cairo_scaled_font_glyph_extents() initialise extents
+
+ Ensure that the extents are zeroed on error.
+
+ src/cairo-scaled-font.c | 23 ++++++++++++++++-------
+ 1 file changed, 16 insertions(+), 7 deletions(-)
+
+commit 5c843b5f8eca4b6f9756644143bc1be3bc3cbc84
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 20:43:28 2009 +0100
+
+ [scaled-font] Skip empty glyphs
+
+ Skip the composition of empty glyphs - prevents redundant calls through
+ the stack.
+
+ src/cairo-scaled-font.c | 57 +++++++++++++++++++++++++++----------------------
+ 1 file changed, 31 insertions(+), 26 deletions(-)
+
+commit 0c4692a1d0667f5850f59c65754a3ffbaf688afe
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 23:34:55 2009 +0100
+
+ [perf] Specify html file on cmdline instead of redirecting all output
+
+ Redirecting all output was causing the build messages to be entangled with
+ the Performance Change html.
+
+ perf/Makefile.am | 4 ++--
+ perf/cairo-perf-diff | 6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 1ec1d6148e85d4a9b9da825ea57adb0b8ceba1c0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 22:42:44 2009 +0100
+
+ [perf] Compare performance against most recent tag.
+
+ perf/Makefile.am | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+commit 9d7fd626c39c37368ea05f91a358899e5b5b898c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 17:05:28 2009 +0100
+
+ [script] Decompress font sources
+
+ Need to decompress patterns and embedded bytecode before passing to
+ fontconfig/FreeType.
+
+ util/cairo-script/cairo-script-operators.c | 119 ++++++++++++++++++++++++-----
+ 1 file changed, 99 insertions(+), 20 deletions(-)
+
+commit 5d8f366581c0ca31fac76c991cb681d036af275f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 16:36:02 2009 +0100
+
+ [test] clip representation is no longer surface dependent
+
+ So we can test the api just once in the preamble and not per-target.
+
+ test/get-clip.c | 200 +++++++++++++++++++++-----------------------------------
+ 1 file changed, 74 insertions(+), 126 deletions(-)
+
+commit c3f2db4f73e93a3dafe0f52a5f9ca09ca78cc906
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 11 15:18:55 2009 +0100
+
+ [drm] Add an accelerated image surface.
+
+ Use the DRM interface to h/w accelerate composition on image surfaces.
+ The purpose of the backend is simply to explore what such a hardware
+ interface might look like and what benefits we might expect. The
+ use case that might justify writing such custom backends are embedded
+ devices running a drm compositor like wayland - which would, for example,
+ allow one to write applications that seamlessly integrated accelerated,
+ dynamic, high quality 2D graphics using Cairo with advanced interaction
+ (e.g. smooth animations in the UI) driven by a clutter framework...
+
+ In this first step we introduce the fundamental wrapping of GEM for intel
+ and radeon chipsets, and, for comparison, gallium. No acceleration, all
+ we do is use buffer objects (that is use the kernel memory manager) to
+ allocate images and simply use the fallback mechanism. This provides a
+ suitable base to start writing chip specific drivers.
+
+ boilerplate/Makefile.sources | 2 +
+ boilerplate/Makefile.win32.features | 20 +
+ boilerplate/cairo-boilerplate-drm.c | 91 ++++
+ build/Makefile.win32.features | 2 +
+ build/Makefile.win32.features-h | 6 +
+ build/configure.ac.features | 1 +
+ configure.ac | 25 +
+ perf/cairo-perf-trace.c | 3 +
+ perf/cairo-perf.c | 5 +-
+ src/Makefile.sources | 13 +
+ src/Makefile.win32.features | 28 ++
+ src/cairo-debug.c | 4 +
+ src/cairo-drm.h | 135 ++++++
+ src/cairo-freelist-private.h | 59 ++-
+ src/cairo-freelist.c | 73 +++
+ src/cairo-image-surface.c | 1 +
+ src/cairo-mutex-list-private.h | 3 +
+ src/cairo.h | 2 +
+ src/cairoint.h | 8 +
+ src/drm/cairo-drm-bo.c | 120 +++++
+ src/drm/cairo-drm-gallium-surface.c | 696 +++++++++++++++++++++++++++
+ src/drm/cairo-drm-intel-private.h | 182 +++++++
+ src/drm/cairo-drm-intel-surface.c | 475 ++++++++++++++++++
+ src/drm/cairo-drm-intel.c | 933 ++++++++++++++++++++++++++++++++++++
+ src/drm/cairo-drm-ioctl-private.h | 12 +
+ src/drm/cairo-drm-private.h | 257 ++++++++++
+ src/drm/cairo-drm-radeon-private.h | 110 +++++
+ src/drm/cairo-drm-radeon-surface.c | 437 +++++++++++++++++
+ src/drm/cairo-drm-radeon.c | 447 +++++++++++++++++
+ src/drm/cairo-drm-surface.c | 517 ++++++++++++++++++++
+ src/drm/cairo-drm.c | 362 ++++++++++++++
+ test/cairo-test.c | 2 +-
+ test/get-clip.c | 1 +
+ 33 files changed, 5025 insertions(+), 7 deletions(-)
+
+commit bed2701e1c89095878d549cbca8f22d84f3dda3c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 15:32:13 2009 +0100
+
+ Remove clip handling from generic surface layer.
+
+ Handling clip as part of the surface state, as opposed to being part of
+ the operation state, is cumbersome and a hindrance to providing true proxy
+ surface support. For example, the clip must be copied from the surface
+ onto the fallback image, but this was forgotten causing undue hassle in
+ each backend. Another example is the contortion the meta surface
+ endures to ensure the clip is correctly recorded. By contrast passing the
+ clip along with the operation is quite simple and enables us to write
+ generic handlers for providing surface wrappers. (And in the future, we
+ should be able to write more esoteric wrappers, e.g. automatic 2x FSAA,
+ trivially.)
+
+ In brief, instead of the surface automatically applying the clip before
+ calling the backend, the backend can call into a generic helper to apply
+ clipping. For raster surfaces, clip regions are handled automatically as
+ part of the composite interface. For vector surfaces, a clip helper is
+ introduced to replay and callback into an intersect_clip_path() function
+ as necessary.
+
+ Whilst this is not primarily a performance related change (the change
+ should just move the computation of the clip from the moment it is applied
+ by the user to the moment it is required by the backend), it is important
+ to track any potential regression:
+
+ ppc:
+ Speedups
+ ========
+ image-rgba evolution-20090607-0 1026085.22 0.18% -> 672972.07 0.77%: 1.52x speedup
+ ▌
+ image-rgba evolution-20090618-0 680579.98 0.12% -> 573237.66 0.16%: 1.19x speedup
+ ▎
+ image-rgba swfdec-fill-rate-4xaa-0 460296.92 0.36% -> 407464.63 0.42%: 1.13x speedup
+ ▏
+ image-rgba swfdec-fill-rate-2xaa-0 128431.95 0.47% -> 115051.86 0.42%: 1.12x speedup
+ ▏
+ Slowdowns
+ =========
+ image-rgba firefox-periodic-table-0 56837.61 0.78% -> 66055.17 3.20%: 1.09x slowdown
+ ▏
+
+ NEWS | 6 +
+ boilerplate/cairo-boilerplate-glitz-glx.c | 4 -
+ boilerplate/cairo-boilerplate-pdf.c | 1 -
+ boilerplate/cairo-boilerplate-ps.c | 8 +-
+ boilerplate/cairo-boilerplate-qt.cpp | 4 +-
+ boilerplate/cairo-boilerplate-svg.c | 1 -
+ boilerplate/cairo-boilerplate-test-surfaces.c | 113 +-
+ boilerplate/cairo-boilerplate.c | 100 +-
+ boilerplate/cairo-boilerplate.h | 2 +
+ perf/unaligned-clip.c | 3 +
+ src/Makefile.sources | 7 +
+ src/cairo-analysis-surface-private.h | 6 +-
+ src/cairo-analysis-surface.c | 539 ++++----
+ src/cairo-beos-surface.cpp | 409 +++----
+ src/cairo-clip-private.h | 87 +-
+ src/cairo-clip.c | 1290 ++++++++++----------
+ src/cairo-debug.c | 2 +
+ src/cairo-directfb-surface.c | 491 ++++----
+ src/cairo-ft-font.c | 53 +-
+ src/cairo-gl-private.h | 1 +
+ src/cairo-gl-surface.c | 216 +++-
+ src/cairo-glitz-surface.c | 213 ++--
+ src/cairo-gstate.c | 233 ++--
+ src/cairo-image-surface.c | 173 ++-
+ src/cairo-meta-surface-private.h | 43 +-
+ src/cairo-meta-surface.c | 550 ++++-----
+ src/cairo-os2-surface.c | 14 +-
+ src/cairo-paginated-private.h | 2 -
+ src/cairo-paginated-surface-private.h | 9 -
+ src/cairo-paginated-surface.c | 234 ++--
+ src/cairo-path-bounds.c | 65 +-
+ src/cairo-path-fill.c | 11 +-
+ src/cairo-path-fixed-private.h | 36 +-
+ src/cairo-path-fixed.c | 201 ++-
+ src/cairo-path-in-fill.c | 27 +-
+ src/cairo-path-stroke.c | 8 +-
+ src/cairo-pattern.c | 127 +-
+ src/cairo-pdf-surface-private.h | 3 +
+ src/cairo-pdf-surface.c | 220 ++--
+ src/cairo-ps-surface-private.h | 4 +
+ src/cairo-ps-surface.c | 367 +++---
+ src/cairo-qt-surface.cpp | 373 +++---
+ src/cairo-quartz-image-surface.c | 14 +-
+ src/cairo-quartz-private.h | 2 +
+ src/cairo-quartz-surface.c | 136 ++-
+ src/cairo-region-private.h | 73 ++
+ src/cairo-region.c | 170 ++-
+ src/cairo-scaled-font.c | 132 +-
+ src/cairo-script-surface.c | 611 +++++++--
+ src/cairo-script.h | 10 +
+ src/cairo-spans-private.h | 19 +-
+ src/cairo-spans.c | 20 +-
+ src/cairo-stroke-style.c | 8 +-
+ src/cairo-surface-clipper-private.h | 72 ++
+ src/cairo-surface-clipper.c | 138 +++
+ src/cairo-surface-fallback-private.h | 21 +-
+ src/cairo-surface-fallback.c | 995 ++++++++-------
+ src/cairo-surface-private.h | 19 +-
+ src/cairo-surface-wrapper-private.h | 156 +++
+ src/cairo-surface-wrapper.c | 449 +++++++
+ src/cairo-surface.c | 857 ++++---------
+ src/cairo-svg-surface-private.h | 4 +-
+ src/cairo-svg-surface.c | 527 ++++----
+ src/cairo-traps.c | 26 +-
+ src/cairo-type3-glyph-surface-private.h | 9 +-
+ src/cairo-type3-glyph-surface.c | 94 +-
+ src/cairo-types-private.h | 9 +-
+ src/cairo-user-font.c | 30 +-
+ src/cairo-vg-surface.c | 122 +-
+ src/cairo-win32-font.c | 16 +-
+ src/cairo-win32-printing-surface.c | 194 ++-
+ src/cairo-win32-private.h | 15 +-
+ src/cairo-win32-surface.c | 279 ++---
+ src/cairo-xcb-surface.c | 248 ++--
+ src/cairo-xlib-surface-private.h | 2 +-
+ src/cairo-xlib-surface.c | 492 ++++----
+ src/cairo.c | 83 +-
+ src/cairo.h | 30 +-
+ src/cairoint.h | 325 ++---
+ src/test-fallback-surface.c | 4 +-
+ src/test-fallback16-surface.c | 4 +-
+ src/test-null-surface.c | 35 +-
+ src/test-paginated-surface.c | 100 +-
+ src/test-paginated-surface.h | 6 +-
+ src/test-wrapping-surface.c | 272 +++++
+ src/test-wrapping-surface.h | 51 +
+ test/Makefile.am | 75 +-
+ test/Makefile.sources | 2 +
+ test/buffer-diff.c | 12 +-
+ test/cairo-test.c | 18 +-
+ test/clip-operator.pdf.argb32.ref.png | Bin 0 -> 9340 bytes
+ test/clip-operator.pdf.argb32.xfail.png | Bin 9340 -> 0 bytes
+ test/clip-operator.pdf.rgb24.ref.png | Bin 0 -> 5146 bytes
+ test/clip-operator.pdf.rgb24.xfail.png | Bin 5155 -> 0 bytes
+ test/clip-operator.svg12.argb32.xfail.png | Bin 8404 -> 8406 bytes
+ test/clip-operator.svg12.rgb24.xfail.png | Bin 4523 -> 4540 bytes
+ test/clip-operator.xlib-fallback.ref.png | Bin 0 -> 3226 bytes
+ test/clip-operator.xlib-fallback.rgb24.ref.png | Bin 3254 -> 0 bytes
+ test/clip-push-group.pdf.ref.png | Bin 0 -> 164 bytes
+ test/clip-push-group.ref.png | Bin 199 -> 164 bytes
+ test/clip-push-group.xlib.ref.png | Bin 0 -> 155 bytes
+ test/clip-unbounded.c | 80 ++
+ test/clip-unbounded.ref.png | Bin 0 -> 100 bytes
+ test/clip-unbounded.rgb24.ref.png | Bin 0 -> 97 bytes
+ test/clip-unbounded.svg12.rgb24.xfail.png | Bin 0 -> 100 bytes
+ test/clipped-group.pdf.argb32.ref.png | Bin 298 -> 0 bytes
+ test/clipped-group.pdf.ref.png | Bin 0 -> 310 bytes
+ test/clipped-group.pdf.rgb24.ref.png | Bin 298 -> 0 bytes
+ test/clipped-group.ref.png | Bin 350 -> 316 bytes
+ ...integer-translate-source.svg12.argb32.xfail.png | Bin 0 -> 16392 bytes
+ ...-integer-translate-source.svg12.rgb24.xfail.png | Bin 0 -> 16392 bytes
+ test/device-offset-fractional.pdf.argb32.ref.png | Bin 275 -> 0 bytes
+ test/device-offset-fractional.pdf.ref.png | Bin 277 -> 0 bytes
+ test/device-offset-fractional.pdf.rgb24.ref.png | Bin 275 -> 0 bytes
+ test/device-offset-fractional.pdf.xfail.png | Bin 0 -> 275 bytes
+ test/extended-blend-alpha.svg12.argb32.xfail.png | Bin 0 -> 6857 bytes
+ test/extended-blend-alpha.svg12.rgb24.xfail.png | Bin 0 -> 5014 bytes
+ test/extended-blend.svg12.argb32.xfail.png | Bin 0 -> 2273 bytes
+ test/extended-blend.svg12.rgb24.xfail.png | Bin 0 -> 1856 bytes
+ test/fill-empty.argb32.ref.png | Bin 0 -> 99 bytes
+ test/fill-empty.c | 62 +
+ test/fill-empty.rgb24.ref.png | Bin 0 -> 97 bytes
+ test/fill-empty.svg12.rgb24.xfail.png | Bin 0 -> 99 bytes
+ test/filter-nearest-offset.pdf.xfail.png | Bin 1926 -> 1867 bytes
+ test/filter-nearest-transformed.pdf.xfail.png | Bin 488 -> 482 bytes
+ ...t-text-vertical-layout-type1.pdf.argb32.ref.png | Bin 3632 -> 0 bytes
+ test/ft-text-vertical-layout-type1.pdf.ref.png | Bin 3968 -> 3635 bytes
+ ...ft-text-vertical-layout-type1.pdf.rgb24.ref.png | Bin 3632 -> 0 bytes
+ ...t-text-vertical-layout-type3.pdf.argb32.ref.png | Bin 3642 -> 0 bytes
+ test/ft-text-vertical-layout-type3.pdf.ref.png | Bin 3634 -> 3639 bytes
+ ...ft-text-vertical-layout-type3.pdf.rgb24.ref.png | Bin 3642 -> 0 bytes
+ test/ft-text-vertical-layout-type3.ref.png | Bin 3609 -> 3608 bytes
+ test/group-unaligned.svg.argb32.xfail.png | Bin 522 -> 520 bytes
+ test/group-unaligned.xlib-fallback.ref.png | Bin 496 -> 474 bytes
+ test/image-surface-source.svg12.argb32.xfail.png | Bin 0 -> 278 bytes
+ test/image-surface-source.svg12.rgb24.xfail.png | Bin 0 -> 278 bytes
+ test/in-fill-trapezoid.c | 19 +-
+ test/mask-glyphs.svg.ref.png | Bin 1211170 -> 1211147 bytes
+ test/mask.pdf.argb32.ref.png | Bin 0 -> 7837 bytes
+ test/mask.pdf.argb32.xfail.png | Bin 7944 -> 0 bytes
+ test/mask.pdf.rgb24.ref.png | Bin 0 -> 7301 bytes
+ test/mask.pdf.rgb24.xfail.png | Bin 7388 -> 0 bytes
+ test/mask.xlib-fallback.rgb24.ref.png | Bin 7216 -> 0 bytes
+ test/meta-surface-pattern.pdf.argb32.ref.png | Bin 4009 -> 3868 bytes
+ test/meta-surface-pattern.pdf.rgb24.ref.png | Bin 3905 -> 3806 bytes
+ test/operator-clear.xlib.argb32.ref.png | Bin 0 -> 1071 bytes
+ ...b.ref.png => operator-clear.xlib.rgb24.ref.png} | Bin
+ ...xfail.png => operator-source.pdf.rgb24.ref.png} | Bin
+ test/operator-source.svg12.argb32.xfail.png | Bin 2951 -> 2967 bytes
+ test/operator-source.svg12.rgb24.xfail.png | Bin 2963 -> 2976 bytes
+ test/operator-source.xlib-fallback.ref.png | Bin 0 -> 3177 bytes
+ test/operator-source.xlib-fallback.rgb24.ref.png | Bin 3193 -> 0 bytes
+ test/path-append.xlib-fallback.ref.png | Bin 6357 -> 6320 bytes
+ test/pdf-surface-source.svg12.argb32.xfail.png | Bin 0 -> 278 bytes
+ test/pdf-surface-source.svg12.rgb24.xfail.png | Bin 0 -> 278 bytes
+ test/ps-surface-source.svg12.argb32.xfail.png | Bin 0 -> 278 bytes
+ test/ps-surface-source.svg12.rgb24.xfail.png | Bin 0 -> 278 bytes
+ test/push-group.xlib-fallback.rgb24.ref.png | Bin 2912 -> 0 bytes
+ test/scale-offset-image.meta.xfail.png | Bin 0 -> 8599 bytes
+ test/scale-offset-image.pdf.rgb24.ref.png | Bin 8691 -> 0 bytes
+ ...32.ref.png => scale-offset-image.pdf.xfail.png} | Bin
+ test/scale-offset-image.xlib-fallback.xfail.png | Bin 0 -> 8580 bytes
+ test/scale-offset-similar.meta.xfail.png | Bin 0 -> 9095 bytes
+ test/scale-offset-similar.pdf.argb32.ref.png | Bin 9278 -> 0 bytes
+ test/scale-offset-similar.pdf.rgb24.ref.png | Bin 9278 -> 0 bytes
+ test/scale-offset-similar.pdf.xfail.png | Bin 0 -> 9369 bytes
+ test/scale-offset-similar.xlib-fallback.xfail.png | Bin 0 -> 8580 bytes
+ test/self-intersecting.argb32.xfail.png | Bin 287 -> 235 bytes
+ test/self-intersecting.pdf.argb32.xfail.png | Bin 295 -> 285 bytes
+ test/self-intersecting.pdf.rgb24.xfail.png | Bin 272 -> 269 bytes
+ test/self-intersecting.rgb24.xfail.png | Bin 282 -> 240 bytes
+ test/smask-fill.xlib-fallback.ref.png | Bin 1156 -> 0 bytes
+ test/smask-text.xlib.ref.png | Bin 0 -> 1672 bytes
+ test/smask.xlib.ref.png | Bin 0 -> 3393 bytes
+ test/surface-pattern-big-scale-down.ps.xfail.png | Bin 0 -> 238 bytes
+ test/svg-surface-source.svg12.argb32.xfail.png | Bin 0 -> 278 bytes
+ test/svg-surface-source.svg12.rgb24.xfail.png | Bin 0 -> 278 bytes
+ ...allback16-surface-source.svg12.argb32.xfail.png | Bin 0 -> 278 bytes
+ ...fallback16-surface-source.svg12.rgb24.xfail.png | Bin 0 -> 278 bytes
+ test/text-pattern.pdf.argb32.ref.png | Bin 0 -> 1831 bytes
+ test/text-pattern.pdf.argb32.xfail.png | Bin 1845 -> 0 bytes
+ test/text-pattern.pdf.rgb24.ref.png | Bin 0 -> 1598 bytes
+ test/text-pattern.pdf.rgb24.xfail.png | Bin 1599 -> 0 bytes
+ test/unbounded-operator.svg12.argb32.xfail.png | Bin 2767 -> 2771 bytes
+ test/unbounded-operator.svg12.rgb24.xfail.png | Bin 1719 -> 1731 bytes
+ test/user-font-proxy.svg.ref.png | Bin 16817 -> 16814 bytes
+ test/xlib-surface-source.svg12.argb32.xfail.png | Bin 0 -> 278 bytes
+ test/xlib-surface-source.svg12.rgb24.xfail.png | Bin 0 -> 278 bytes
+ util/cairo-script/cairo-script-file.c | 39 +-
+ util/cairo-script/cairo-script-objects.c | 22 +
+ util/cairo-script/cairo-script-private.h | 9 +-
+ util/cairo-script/cairo-script-scanner.c | 52 +-
+ util/cairo-trace/trace.c | 119 +-
+ 193 files changed, 7741 insertions(+), 5903 deletions(-)
+
+commit f5a1cdf283a6aa1f4409ccbf3c2274fb587724fe
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 14:46:16 2009 +0100
+
+ [gl] Simplify the common CLEAR of a surface
+
+ Almost every surface is at sometime cleared, so catch the operation in
+ paint(), and emit a simple glClear() instead.
+
+ src/cairo-gl-surface.c | 25 ++++++++++++++++++++++++-
+ 1 file changed, 24 insertions(+), 1 deletion(-)
+
+commit eed17527f62eab826af65258b60cd4545a71a22d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 14:30:46 2009 +0100
+
+ [gl] Do not use unchecked GL v1.5 features
+
+ The span renderer uses ARB_vertex_buffer_object which was included into
+ the core as part of OpenGL 1.5. We failed to check for the required version
+ during initialisation, and to my surprise the i915 can only support OpenGL
+ 1.4 as it lacks ARB_occlusion_query. So just use the ARB extension instead
+ which is present on i915.
+
+ src/cairo-gl-surface.c | 24 +++++++++++++-----------
+ 1 file changed, 13 insertions(+), 11 deletions(-)
+
+commit 6c28c7a1e268fad0ad34cac0d8a9a3951d8f3c7a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 23 08:45:58 2009 +0100
+
+ [perf] Add a simple report printer.
+
+ After a run, it can be useful to reprint the results, so add
+ cairo-perf-print to perform that task.
+
+ For the future, I'd like to move the performance suite over to the
+ git/perf style of single, multi-function binary.
+
+ The sequence of operations that I typically do are:
+
+ ./cairo-perf-trace -r -v -i 6 > `git describe`.`hostname`.perf
+ ./cairo-perf-diff-files REVA REVB
+ ./cairo-perf-print REVA
+ ./cairo-perf-compare-backends REVA
+
+ which misses the caching available with cairo-perf-diff. 'make html' is
+ almost what I want, but still too prescriptive. However, that does need to
+ be addressed for continuous performance monitoring.
+
+ Along the perf lines, those sequence of operations become:
+ ./cairo-perf record -i 6
+ ./cairo-perf report
+ ./cairo-perf report REVA REVB
+ ./cairo-perf report --backends="image,xlib,gl" REVA REVB
+ ./cairo-perf report --html REVA REVB
+
+ Also we want to think about installing the cairo-perf binary. So we want
+ to differentiate when run inside a git checkout.
+
+ perf/Makefile.am | 8 ++++--
+ perf/cairo-perf-print.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 78 insertions(+), 2 deletions(-)
+
+commit 92ba74d760f20cd257b3916a51c8efef1c0e021e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 19:04:07 2009 +0100
+
+ [vg] Compile fixes for EGL boilerplate
+
+ boilerplate/cairo-boilerplate-vg.c | 19 +++++++++----------
+ 1 file changed, 9 insertions(+), 10 deletions(-)
+
+commit bfbe875ded0b0666a8048ef5fb598179a81c610a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 07:52:30 2009 +0100
+
+ [gl] Enable GL backend for cairo-perf-trace
+
+ perf/cairo-perf-trace.c | 3 +++
+ perf/cairo-perf.c | 4 +++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+commit fed000620335a5fc2bda2ffeca5cbdd0ca5a158c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 07:49:05 2009 +0100
+
+ [NEWS] Add stub for OpenGL.
+
+ NEWS | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit bff0b11634ffe52a5c8b2bbc9b6aee5bc3d2772c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 07:45:21 2009 +0100
+
+ [gl] Update reference images
+
+ test/Makefile.am | 14 ++++++++++++++
+ test/a1-image-sample.gl.xfail.png | Bin 0 -> 120 bytes
+ test/alpha-similar.gl.argb32.xfail.png | Bin 0 -> 99 bytes
+ test/alpha-similar.gl.rgb24.xfail.png | Bin 0 -> 93 bytes
+ test/device-offset-fractional.gl.xfail.png | Bin 0 -> 311 bytes
+ test/filter-nearest-offset.gl.xfail.png | Bin 0 -> 260 bytes
+ test/filter-nearest-transformed.gl.xfail.png | Bin 0 -> 514 bytes
+ test/finer-grained-fallbacks.gl.argb32.ref.png | Bin 0 -> 1075 bytes
+ test/mask-glyphs.gl.ref.png | Bin 0 -> 1188669 bytes
+ test/meta-surface-pattern.gl.argb32.ref.png | Bin 0 -> 3130 bytes
+ test/scale-offset-image.gl.ref.png | Bin 0 -> 9197 bytes
+ test/scale-offset-similar.gl.ref.png | Bin 0 -> 9197 bytes
+ test/source-clip-scale.gl.ref.png | Bin 0 -> 164 bytes
+ test/unbounded-operator.gl.argb32.xfail.png | Bin 0 -> 2805 bytes
+ test/unbounded-operator.gl.rgb24.xfail.png | Bin 0 -> 1355 bytes
+ 15 files changed, 14 insertions(+)
+
+commit 653351cd2e9fbe42333cd5ce57b7b49c6da3d122
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 07:38:24 2009 +0100
+
+ [gl] Copy font options from image backend.
+
+ Enable hint metrics similar to the default image backend. However,
+ consider using the display stored in the GLX context to query the screen
+ default.
+
+ src/cairo-gl-surface.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+commit a2ac67274d4ef89079c47cc415144a6ac0303f70
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 00:05:07 2009 +0100
+
+ [gl] Add warning about missing hook for XCloseDisplay().
+
+ src/cairo-glx-context.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit f2f42ec70a626a69f4b29f55f9d1818942bb0b19
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 22 00:01:22 2009 +0100
+
+ [gl] Apply pixel sample bias for spans
+
+ src/cairo-gl-surface.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+commit 9e420f5d0669ec12eaaf7faf4e55642c10b95fb3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 23:45:00 2009 +0100
+
+ [gl] Another whitespace pass.
+
+ src/cairo-gl-surface.c | 69 +++++++++++++++++++++++++-------------------------
+ 1 file changed, 35 insertions(+), 34 deletions(-)
+
+commit 222fd8b49b25c56f38ad375059240983a8f576ce
+Merge: 5471603b5 7ee0fee90
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 23:42:34 2009 +0100
+
+ Merge commit 'anholt/gl-span-renderer'
+
+commit 5471603b527ecf43aaa72665d47929a1038aa642
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 23:38:05 2009 +0100
+
+ [gl] Use QUADS for drawing fill_rectangles() not TRIFAN
+
+ As each rectangle is independent, we need to draw the array using QUADS.
+
+ src/cairo-gl-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c3ef0c8d2011a23d73ff919dbb947ca68e1d8c1b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 23:31:30 2009 +0100
+
+ [gl] Whitespace
+
+ Ensure we leave a space between a function call and its parameters.
+
+ src/cairo-gl-surface.c | 90 +++++++++++++++++++++++++-------------------------
+ 1 file changed, 45 insertions(+), 45 deletions(-)
+
+commit b71c27bf4ebd19f74f22392ddb2612d843c74a38
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 23:26:15 2009 +0100
+
+ [gl] Remove dead code.
+
+ The loop between texture_setup() and clone_similar() should be
+ impossible, since every compositing backend should know how to clone an
+ image surface. cairo-gl is no longer an exception and so this code can
+ safely be removed.
+
+ src/cairo-gl-surface.c | 25 +------------------------
+ 1 file changed, 1 insertion(+), 24 deletions(-)
+
+commit c8cc6a205a68a7c87239424aa93a29b5b166561d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 23:08:39 2009 +0100
+
+ [gl] Avoid temporary allocation of pixman trapezoids
+
+ When creating the trapezoid mask, avoid having to allocate a temporary
+ array to hold the converted pixman trapezoids by instead rasterizing each
+ trapezoid separately into the mask.
+
+ src/cairo-gl-surface.c | 82 ++++++++++++++++++++++----------------------------
+ 1 file changed, 36 insertions(+), 46 deletions(-)
+
+commit 5deb8fa213ce86759053be391966618ee0959f50
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 9 16:20:32 2009 +0100
+
+ [gl] Construct a dummy window for the initial context
+
+ In order to make the initial context current we need a Drawable that
+ matches the context. In general, the RootWindow may not match the desired
+ context so we need to query the context and construct an appropriate
+ Drawable.
+
+ src/cairo-glx-context.c | 70 ++++++++++++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 63 insertions(+), 7 deletions(-)
+
+commit 911482e5ae88ba26a1b3290731968f8b8a80cd70
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 22 23:44:27 2009 +0100
+
+ [gl] Constrain image sources to max texture size
+
+ src/cairo-gl-private.h | 2 ++
+ src/cairo-gl-surface.c | 19 +++++++++++++++++++
+ 2 files changed, 21 insertions(+)
+
+commit 1ae5942a3aa9f73aa71438dc40221836b0dff7e2
+Merge: fd9df4978 6a5957475
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 22:28:44 2009 +0100
+
+ Merge commit 'anholt/gl'
+
+ Conflicts:
+ boilerplate/Makefile.sources
+ boilerplate/cairo-boilerplate.c
+ build/configure.ac.features
+ src/cairo.h
+ util/cairo-script/Makefile.am
+
+commit fd9df4978d56bbb85ecd795afce72c0310dbcf3f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 21 20:51:46 2009 +0100
+
+ [perf] Don't override CAIRO_TRACE_DIR in cairo-perf-diff
+
+ perf/cairo-perf-diff | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 2dd97ae59c482f09e42d719a941e189560f00b8f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 22:19:21 2009 +0100
+
+ [perf] Include trace comparison in html output
+
+ build/Makefile.am.analysis | 2 ++
+ perf/Makefile.am | 2 +-
+ perf/cairo-perf-diff | 17 +++++++----------
+ perf/make-html.py | 3 +--
+ 4 files changed, 11 insertions(+), 13 deletions(-)
+
+commit f30cee70f5fadd1f2af60310a148f61ed4fc7069
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 22:17:30 2009 +0100
+
+ [perf] Search multiple directories for traces
+
+ In view of sharing traces between multiple builder, add some system wide
+ directories to the search path. This should be refined to a single
+ canonical location before release.
+
+ perf/cairo-perf-trace.c | 23 +++++++++++++++++++++--
+ 1 file changed, 21 insertions(+), 2 deletions(-)
+
+commit ebac096648d638d6405152d37d7b58a0f6ad3242
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 19:54:12 2009 +0100
+
+ [build] And export CC_FOR_BUILD so that we can actually use it!
+
+ build/configure.ac.tools | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit ed7853d4991f17a5e6df694808d33603eecf9186
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 19:37:27 2009 +0100
+
+ [build] Use ${CC} as the default value for CC_FOR_BUILD
+
+ build/configure.ac.tools | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit 809f77a5cb7c17582a0ed90285a3c48c0696ed3e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 13:44:48 2009 +0100
+
+ [test] Summarise tests that fail during the preamble.
+
+ Some tests only run and check during the preamble phase, and those
+ failures were being ignored during the summary.
+
+ test/cairo-test-runner.c | 109 ++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 85 insertions(+), 24 deletions(-)
+
+commit dbaa08e80b6d53f905974f3d2012f9425d9b8603
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 11:53:17 2009 +0100
+
+ [test] Fallback to comparing the base image references
+
+ After looking at backend specific images, check against the base image
+ reference. This is useful to fallback surfaces like xlib-fallback, which
+ should look closer to the image backend than the xlib backend.
+
+ test/cairo-test.c | 231 ++++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 163 insertions(+), 68 deletions(-)
+
+commit 164e0d2ea38baacd5888bffa5bebb5d64bfee01b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 11:02:04 2009 +0100
+
+ [test] Misidentification of XFAIL as NEW
+
+ cut'n'paste error compared the image against the known failure instead of
+ any recorded new failure, when checking for NEW fails.
+
+ test/cairo-test.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e2883177487ba294a0c97bafb00e2f56e5fe84d9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 20 18:55:04 2009 +0100
+
+ Add a jhbuild moduleset.
+
+ util/cairo.modules | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+commit 0c1e86d661e145981050129b163eae0fb8f4a963
+Author: Pierre Tardy <tardyp@gmail.com>
+Date: Sat Jul 18 19:16:20 2009 +0100
+
+ Cross-compilation fix for boilerplate/test
+
+ boilerplate/Makefile.am | 2 +-
+ test/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit aac256b2692d15fc21abcdc9c1b9e5fd35f63f66
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 18 16:15:47 2009 +0100
+
+ Compile fixes for mingw32.
+
+ Trivial typos found whilst using a cross-compiler.
+
+ src/cairo-win32-surface.c | 1 +
+ util/cairo-script/cairo-script-private.h | 4 ++--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 922b01ad141305f909a4cfffc6c65a27c6d7a8a6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 17 14:27:19 2009 +0100
+
+ [test] Add a simplified CLEAR test.
+
+ Just performs a very basic masked clear. This does not exhibit the bug I was
+ looking for, but is still useful for its simplicity.
+
+ test/Makefile.am | 4 ++
+ test/Makefile.sources | 1 +
+ test/clear.argb32.ref.png | Bin 0 -> 695 bytes
+ test/clear.c | 86 ++++++++++++++++++++++++++++++++++++++
+ test/clear.rgb24.ref.png | Bin 0 -> 618 bytes
+ test/clear.svg12.argb32.xfail.png | Bin 0 -> 170 bytes
+ test/clear.svg12.rgb24.xfail.png | Bin 0 -> 170 bytes
+ 7 files changed, 91 insertions(+)
+
+commit 52fa8760aeef38abbab0484a6978adaf4f100f90
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 15 16:37:25 2009 +0100
+
+ Add OpenVG backend.
+
+ Based on the work by Øyvind Kolås and Pierre Tardy -- many thanks to
+ Pierre for pushing this backend for inclusion as well as testing and
+ reviewing my initial patch. And many more thanks to pippin for writing the
+ backend in the first place!
+
+ Hacked and chopped by myself into a suitable basis for a backend. Quite a
+ few issues remain open, but would seem to be ready for testing on suitable
+ hardware.
+
+ AUTHORS | 3 +-
+ NEWS | 3 +
+ boilerplate/Makefile.sources | 1 +
+ boilerplate/Makefile.win32.features | 30 +
+ boilerplate/cairo-boilerplate-vg.c | 350 +++++++
+ build/Makefile.win32.features | 3 +
+ build/Makefile.win32.features-h | 9 +
+ build/configure.ac.features | 3 +
+ configure.ac | 43 +
+ src/Makefile.sources | 3 +
+ src/Makefile.win32.features | 42 +
+ src/cairo-vg-surface.c | 1938 +++++++++++++++++++++++++++++++++++
+ src/cairo-vg.h | 103 ++
+ src/cairo.h | 4 +-
+ test/cairo-test.c | 3 +-
+ test/get-clip.c | 1 +
+ util/cairo-trace/trace.c | 70 ++
+ 17 files changed, 2606 insertions(+), 3 deletions(-)
+
+commit 34d5b862bce3e9273391eb5d2c384394cca94d2d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 16 14:18:13 2009 +0100
+
+ [xlib] Enable Render support for the extended PDF operators
+
+ With the latest 0.11 release of renderproto we now have the ability to
+ use the extended PDF operators via Render.
+
+ src/cairo-image-surface.c | 10 ++++++----
+ src/cairo-xlib-surface.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---
+ 2 files changed, 51 insertions(+), 7 deletions(-)
+
+commit 01eec61f4ffae4f492d667b6accb5ed3f6960d2c
+Author: Tobias Hunger <tobias.hunger@gmail.com>
+Date: Thu Jul 16 00:16:59 2009 -0400
+
+ [qt] Remove use of unnecessary QBrush pointer
+
+ QBrush is a implicitly shared datastructure. There is on need to layer
+ "explicit pointer based sharing" atop of it.
+
+ Mozilla Bug #498871
+
+ src/cairo-qt-surface.cpp | 31 +++++++++++++++----------------
+ 1 file changed, 15 insertions(+), 16 deletions(-)
+
+commit 222c12cc4e48c2c9178a7390ea8edd73d7cb56bb
+Author: Tobias Hunger <tobias.hunger@gmail.com>
+Date: Thu Jul 16 00:16:59 2009 -0400
+
+ [qt] Remove use of unnecessary QPen pointer
+
+ QPen is a implicitly shared class, so there is no need to do explicit sharing
+ via pointers.
+
+ Mozilla Bug #498873
+
+ src/cairo-qt-surface.cpp | 22 ++++++++++------------
+ 1 file changed, 10 insertions(+), 12 deletions(-)
+
+commit 0797b2fcaad0c17c35e67ec5d01a0556a76ee39d
+Author: Tobias Hunger <tobias.hunger@gmail.com>
+Date: Thu Jul 16 00:16:59 2009 -0400
+
+ [qt] Cleanup some whitespace
+
+ Mozilla bug #498843
+
+ src/cairo-qt-surface.cpp | 212 +++++++++++++++++++++++------------------------
+ 1 file changed, 106 insertions(+), 106 deletions(-)
+
+commit d782ba04b76ae18c562840242dc535e9db48aa13
+Author: Tobias Hunger <tobias.hunger@gmail.com>
+Date: Thu Jul 16 00:16:58 2009 -0400
+
+ [qt] Add method to flush qpainter
+
+ This is required for non-X11 rendering backends.
+
+ Mozilla bug #498910
+
+ src/cairo-qt-surface.cpp | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+commit e713857b85ef45d923eae94d8e4c05c7b2049ca5
+Author: Tobias Hunger <tobias.hunger@gmail.com>
+Date: Thu Jul 16 00:16:58 2009 -0400
+
+ [qt] Move _opstr() inside the #if 0 to avoid warnings
+
+ Mozilla bug #498917
+
+ src/cairo-qt-surface.cpp | 50 ++++++++++++++++++++++++------------------------
+ 1 file changed, 25 insertions(+), 25 deletions(-)
+
+commit 4f9551e5e533deb66401b601766bf4263192b6de
+Author: Tobias Hunger <tobias.hunger@gmail.com>
+Date: Thu Jul 16 00:16:57 2009 -0400
+
+ [qt] Reduce padding in cairo_qt_surface_t struct
+
+ Removes 4 bytes of padding (on a 32bit system) from the datastructure by
+ reordering the members.
+
+ Mozilla bug #498880
+
+ src/cairo-qt-surface.cpp | 27 ++++++++++++++-------------
+ 1 file changed, 14 insertions(+), 13 deletions(-)
+
+commit 1caa34103925c53b180cd614f5c6b425b5a3f271
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 15 13:26:34 2009 +0100
+
+ Fix build under distcheck
+
+ Need to play a little dance to get the sources included and paths correct
+ whilst building source files with objdir != srcdir under distcheck.
+
+ boilerplate/Makefile.am | 10 +--
+ boilerplate/make-cairo-boilerplate-constructors.c | 19 ++++--
+ doc/public/tmpl/cairo-surface.sgml | 2 +
+ doc/public/tmpl/cairo.sgml | 15 +++++
+ test/Makefile.am | 9 ++-
+ test/make-cairo-test-constructors.c | 13 +++-
+ util/cairo-script/csi-bind.c | 76 +++++++++++++++++++++++
+ 7 files changed, 125 insertions(+), 19 deletions(-)
+
+commit 818ad38a0e323892231469520a4b077f4dae31d4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 14 19:07:42 2009 +0100
+
+ [boilerplate] Add make-...-constructors to .gitignore
+
+ boilerplate/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 9a65b4a116a3ae451cbba2826467ad3375235a5c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 14 19:06:53 2009 +0100
+
+ [perf] Add cairo-traces to .gitignore
+
+ perf/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 5796a9240ea02dbdbef0d51a4ee71398fea858ad
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 14 19:04:56 2009 +0100
+
+ [test] Reconstruct REFERENCE_IMAGES
+
+ Rebuild the list from scratch using the contents of my git working tree.
+
+ test/Makefile.am | 449 ++++++++++++++++++++++---------------------------------
+ 1 file changed, 178 insertions(+), 271 deletions(-)
+
+commit 8c55ca9ebce487c5ca8b1712f8358a6361032d43
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 14 16:54:51 2009 +0100
+
+ [directfb] Silence compiler warnings.
+
+ Add extended blend mode to operator switch.
+
+ src/cairo-directfb-surface.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+commit 8ad3fca2109f18b5125e7087b3059eb4225eec3e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 14 16:51:31 2009 +0100
+
+ [glitz] Extended blend mode support
+
+ Ensure that we fallback given an extended operator.
+
+ src/cairo-glitz-surface.c | 80 +++++++++++++++++++++++++++++++++++------------
+ 1 file changed, 60 insertions(+), 20 deletions(-)
+
+commit 333d37a60fa80f325612ea94b19ec9892dff8cfb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 14 16:41:00 2009 +0100
+
+ [pdf] Silence copmiler.
+
+ Fill in missing case values to silence the compiler, and remind us should
+ we every add more operators in future.
+
+ src/cairo-pdf-surface.c | 95 +++++++++++++++++++++++++------------------------
+ 1 file changed, 48 insertions(+), 47 deletions(-)
+
+commit 710308c64e298ae35988fb0881a33cbe92af48ab
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 14 16:31:41 2009 +0100
+
+ [script] Extended blend mode support.
+
+ src/cairo-script-surface.c | 18 +++++++++++++++++-
+ util/cairo-script/cairo-script-operators.c | 15 +++++++++++++++
+ util/cairo-trace/trace.c | 18 +++++++++++++++++-
+ 3 files changed, 49 insertions(+), 2 deletions(-)
+
+commit 100f0d94eebcec05372263b2e68c27b91b52a1c8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jul 14 16:30:36 2009 +0100
+
+ [cairo] Remove trailing spaces in comments.
+
+ vim highlights these errors making my screen go red and upsets me.
+ So they must die.
+
+ src/cairo.h | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+commit 75736603d3b976dab8ac1ef473164c618084ee60
+Author: Emmanuel Pacaud <emmanuel.pacaud@free.fr>
+Date: Wed Aug 29 15:11:23 2007 +0200
+
+ [SVG] Add extended blend modes.
+
+ src/cairo-svg-surface.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit 47af6cf2803737ab7248d1ce4d76f038d1f3188e
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Jul 14 15:34:13 2009 +0200
+
+ [pdf] Add support for the extra blend modes
+
+ HSL modes support added by Benjamin Otte <otte@gnome.org>
+
+ src/cairo-pdf-surface-private.h | 4 +
+ src/cairo-pdf-surface.c | 162 +++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 164 insertions(+), 2 deletions(-)
+
+commit cf186d60b0d96cde859869237fa859e28a74a037
+Author: Benjamin Otte <otte@gnome.org>
+Date: Thu Aug 30 10:16:00 2007 +0200
+
+ [xlib] Add support for new operators
+
+ This is of course just making sure fallbacks get used as Render does not support
+ the new operators yet.
+
+ src/cairo-xlib-surface.c | 28 +++++++++++++++++++++++++++-
+ 1 file changed, 27 insertions(+), 1 deletion(-)
+
+commit 0fd944d4bfbc2fff9960378eafd18a7d8fb9f296
+Author: Benjamin Otte <otte@gnome.org>
+Date: Tue Jul 14 15:28:10 2009 +0200
+
+ Use new pixman extended blend operators
+
+ It also adds extended-blend tests.
+
+ Based on a previous patch by Emmanuel Pacaud <emmanuel.pacaud@free.fr>
+
+ src/cairo-image-surface.c | 31 ++++++++
+ src/cairo-misc.c | 30 ++++++++
+ src/cairo.h | 53 +++++++++++++-
+ test/Makefile.am | 4 ++
+ test/Makefile.sources | 2 +
+ test/extended-blend-alpha.argb32.ref.png | Bin 0 -> 9777 bytes
+ test/extended-blend-alpha.c | 115 ++++++++++++++++++++++++++++++
+ test/extended-blend-alpha.rgb24.ref.png | Bin 0 -> 5743 bytes
+ test/extended-blend.argb32.ref.png | Bin 0 -> 4071 bytes
+ test/extended-blend.c | 117 +++++++++++++++++++++++++++++++
+ test/extended-blend.rgb24.ref.png | Bin 0 -> 3772 bytes
+ 11 files changed, 351 insertions(+), 1 deletion(-)
+
+commit 16387f0a7dd3b474bcaf637d3e290029b79afec1
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jul 14 11:16:24 2009 +0200
+
+ [configure] Bump pixman dependency
+
+ Version 0.15.16 contains the new PDF blend mode operators.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 655a4dbc36d95ce4a82cbc13aa9e2002b41fa4de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 13 14:31:43 2009 +0100
+
+ [test] Track XFAIL using expected results stored as xfail.png
+
+ Instead of tagging the sources, which is insensitive to changes, track the
+ known failure modes by recording the current fail as an xfail.png
+ reference. (We also introduce a new.png to track a fresh error, so that
+ they are not lost in the noise of the old XFAILs and hopefully do not
+ cause everyone to fret).
+
+ As we have removed the XFAIL tagging we find, surprise surprise, that some
+ tests are now working -- so review all the reference images (as also some
+ .ref.png now should be .xfail.png).
+
+ Note: I've only checked image,pdf,ps,svg. The test surfaces report some
+ failures that probably need to addressed in source. I've not correct the
+ changes for win32 and quartz. Nor fixed up the experimental backends.
+
+ test/alpha-similar.c | 2 +-
+ test/alpha-similar.pdf.argb32.xfail.png | Bin 0 -> 95 bytes
+ test/alpha-similar.pdf.rgb24.xfail.png | Bin 0 -> 93 bytes
+ test/alpha-similar.ps.argb32.xfail.png | Bin 0 -> 95 bytes
+ test/alpha-similar.ps.rgb24.xfail.png | Bin 0 -> 93 bytes
+ test/alpha-similar.svg.argb32.xfail.png | Bin 0 -> 99 bytes
+ test/alpha-similar.svg.rgb24.xfail.png | Bin 0 -> 95 bytes
+ test/big-line.c | 2 +-
+ test/big-line.ps.argb32.ref.png | Bin 0 -> 977 bytes
+ test/big-line.ps.rgb24.ref.png | Bin 0 -> 709 bytes
+ test/big-line.ps2.ref.png | Bin 1148 -> 0 bytes
+ test/big-line.ps2.rgb24.ref.png | Bin 830 -> 0 bytes
+ test/big-line.ps3.ref.png | Bin 1148 -> 0 bytes
+ test/big-line.ps3.rgb24.ref.png | Bin 830 -> 0 bytes
+ test/big-line.ref.png | Bin 1486 -> 0 bytes
+ test/big-line.rgb24.ref.png | Bin 1308 -> 0 bytes
+ test/big-trap.c | 7 +-
+ test/cairo-test-runner.c | 161 +++-----
+ test/cairo-test.c | 405 ++++++++++++++-------
+ test/cairo-test.h | 56 ++-
+ test/caps-joins-alpha.svg11.ref.png | Bin 2454 -> 0 bytes
+ test/caps-joins-alpha.svg12.ref.png | Bin 2454 -> 0 bytes
+ test/clip-fill-rule.test-fallback.rgb24.ref.png | Bin 361 -> 0 bytes
+ test/clip-nesting.test-fallback.rgb24.ref.png | Bin 936 -> 0 bytes
+ test/clip-operator.c | 2 +-
+ test/clip-operator.pdf.argb32.ref.png | Bin 11603 -> 0 bytes
+ test/clip-operator.pdf.argb32.xfail.png | Bin 0 -> 9340 bytes
+ test/clip-operator.pdf.rgb24.ref.png | Bin 6882 -> 0 bytes
+ test/clip-operator.pdf.rgb24.xfail.png | Bin 0 -> 5155 bytes
+ test/clip-operator.svg12.argb32.xfail.png | Bin 0 -> 8404 bytes
+ test/clip-operator.svg12.rgb24.xfail.png | Bin 0 -> 4523 bytes
+ test/clip-operator.test-fallback.argb32.ref.png | Bin 8252 -> 0 bytes
+ test/clip-operator.test-fallback.rgb24.ref.png | Bin 3241 -> 0 bytes
+ test/clip-twice.test-fallback.argb32.ref.png | Bin 1343 -> 0 bytes
+ test/clip-twice.test-fallback.rgb24.ref.png | Bin 1179 -> 0 bytes
+ test/composite-integer-translate-source.c | 2 +-
+ test/degenerate-arc.test-fallback.argb32.ref.png | Bin 547 -> 0 bytes
+ test/degenerate-arc.test-fallback.rgb24.ref.png | Bin 547 -> 0 bytes
+ test/degenerate-dash.c | 2 +-
+ test/degenerate-dash.ps.xfail.png | Bin 0 -> 1835 bytes
+ test/degenerate-path.c | 2 +-
+ test/degenerate-path.ps.argb32.xfail.png | Bin 0 -> 236 bytes
+ test/degenerate-path.ps.rgb24.xfail.png | Bin 0 -> 186 bytes
+ test/degenerate-path.ps2.argb32.ref.png | Bin 390 -> 0 bytes
+ test/degenerate-path.ps2.rgb24.ref.png | Bin 358 -> 0 bytes
+ test/degenerate-path.ps3.argb32.ref.png | Bin 390 -> 0 bytes
+ test/degenerate-path.ps3.rgb24.ref.png | Bin 358 -> 0 bytes
+ test/device-offset-scale.c | 2 +-
+ test/device-offset-scale.svg.xfail.png | Bin 0 -> 128 bytes
+ test/extend-pad-border.c | 2 +-
+ test/extend-pad-border.ps.ref.png | Bin 0 -> 649 bytes
+ test/extend-pad-border.svg.xfail.png | Bin 0 -> 1063 bytes
+ test/extend-pad-similar.svg.xfail.png | Bin 0 -> 270 bytes
+ test/extend-pad.svg.xfail.png | Bin 0 -> 270 bytes
+ test/fallback-resolution.c | 14 +-
+ test/fill-alpha-pattern.pdf.argb32.ref.png | Bin 3750 -> 0 bytes
+ test/fill-alpha-pattern.pdf.rgb24.ref.png | Bin 3758 -> 0 bytes
+ ...fill-alpha-pattern.test-fallback.argb32.ref.png | Bin 3379 -> 0 bytes
+ .../fill-alpha-pattern.test-fallback.rgb24.ref.png | Bin 3379 -> 0 bytes
+ test/fill-alpha.test-fallback.argb32.ref.png | Bin 2824 -> 0 bytes
+ test/fill-alpha.test-fallback.rgb24.ref.png | Bin 2824 -> 0 bytes
+ test/fill-and-stroke-alpha-add.c | 2 +-
+ test/fill-and-stroke-alpha-add.svg12.xfail.png | Bin 0 -> 614 bytes
+ test/fill-degenerate-sort-order.c | 2 +-
+ .../fill-degenerate-sort-order.ps.argb32.xfail.png | Bin 0 -> 1901 bytes
+ test/fill-degenerate-sort-order.ps.rgb24.xfail.png | Bin 0 -> 1645 bytes
+ ...enerate-sort-order.test-fallback.argb32.ref.png | Bin 2378 -> 0 bytes
+ ...generate-sort-order.test-fallback.rgb24.ref.png | Bin 2041 -> 0 bytes
+ test/fill-image.xlib.ref.png | Bin 0 -> 1460 bytes
+ test/fill-rule.test-fallback.argb32.ref.png | Bin 1979 -> 0 bytes
+ test/fill-rule.test-fallback.rgb24.ref.png | Bin 1703 -> 0 bytes
+ test/filter-bilinear-extents.pdf.ref.png | Bin 798 -> 0 bytes
+ test/filter-bilinear-extents.pdf.xfail.png | Bin 0 -> 401 bytes
+ test/filter-nearest-offset.pdf.ref.png | Bin 997 -> 0 bytes
+ test/filter-nearest-offset.pdf.xfail.png | Bin 0 -> 1926 bytes
+ test/filter-nearest-offset.svg.xfail.png | Bin 0 -> 4419 bytes
+ test/filter-nearest-offset.svg11.ref.png | Bin 4739 -> 0 bytes
+ test/filter-nearest-offset.svg12.ref.png | Bin 4739 -> 0 bytes
+ test/filter-nearest-transformed.pdf.ref.png | Bin 552 -> 0 bytes
+ test/filter-nearest-transformed.pdf.xfail.png | Bin 0 -> 488 bytes
+ test/filter-nearest-transformed.svg.xfail.png | Bin 0 -> 546 bytes
+ test/filter-nearest-transformed.svg11.ref.png | Bin 559 -> 0 bytes
+ test/filter-nearest-transformed.svg12.ref.png | Bin 559 -> 0 bytes
+ test/finer-grained-fallbacks.c | 2 +-
+ test/finer-grained-fallbacks.svg12.argb32.ref.png | Bin 0 -> 190 bytes
+ test/finer-grained-fallbacks.svg12.rgb24.ref.png | Bin 0 -> 191 bytes
+ ...-grained-fallbacks.test-fallback.argb32.ref.png | Bin 1111 -> 0 bytes
+ ...r-grained-fallbacks.test-fallback.rgb24.ref.png | Bin 854 -> 0 bytes
+ test/font-matrix-translation.svg.ref.png | Bin 0 -> 870 bytes
+ test/font-matrix-translation.svg11.argb32.ref.png | Bin 857 -> 0 bytes
+ test/font-matrix-translation.svg11.ref.png | Bin 970 -> 0 bytes
+ test/font-matrix-translation.svg11.rgb24.ref.png | Bin 857 -> 0 bytes
+ test/font-matrix-translation.svg12.argb32.ref.png | Bin 857 -> 0 bytes
+ test/font-matrix-translation.svg12.ref.png | Bin 970 -> 0 bytes
+ test/font-matrix-translation.svg12.rgb24.ref.png | Bin 857 -> 0 bytes
+ test/ft-show-glyphs-positioning.svg.ref.png | Bin 0 -> 6018 bytes
+ test/ft-show-glyphs-positioning.svg11.ref.png | Bin 6590 -> 0 bytes
+ test/ft-show-glyphs-positioning.svg12.ref.png | Bin 6590 -> 0 bytes
+ test/ft-show-glyphs-table.svg.ref.png | Bin 0 -> 10005 bytes
+ test/ft-show-glyphs-table.svg11.argb32.ref.png | Bin 9953 -> 0 bytes
+ test/ft-show-glyphs-table.svg11.rgb24.ref.png | Bin 9953 -> 0 bytes
+ test/ft-show-glyphs-table.svg12.argb32.ref.png | Bin 9953 -> 0 bytes
+ test/ft-show-glyphs-table.svg12.rgb24.ref.png | Bin 9953 -> 0 bytes
+ test/ft-text-vertical-layout-type1.svg.ref.png | Bin 0 -> 3607 bytes
+ ...text-vertical-layout-type1.svg11.argb32.ref.png | Bin 3614 -> 0 bytes
+ test/ft-text-vertical-layout-type1.svg11.ref.png | Bin 3973 -> 0 bytes
+ ...-text-vertical-layout-type1.svg11.rgb24.ref.png | Bin 3614 -> 0 bytes
+ ...text-vertical-layout-type1.svg12.argb32.ref.png | Bin 3614 -> 0 bytes
+ test/ft-text-vertical-layout-type1.svg12.ref.png | Bin 3973 -> 0 bytes
+ ...-text-vertical-layout-type1.svg12.rgb24.ref.png | Bin 3614 -> 0 bytes
+ ...tical-layout-type1.test-fallback.argb32.ref.png | Bin 3639 -> 0 bytes
+ ...rtical-layout-type1.test-fallback.rgb24.ref.png | Bin 3639 -> 0 bytes
+ test/ft-text-vertical-layout-type3.svg.ref.png | Bin 0 -> 3626 bytes
+ ...text-vertical-layout-type3.svg11.argb32.ref.png | Bin 3640 -> 0 bytes
+ test/ft-text-vertical-layout-type3.svg11.ref.png | Bin 3957 -> 0 bytes
+ ...-text-vertical-layout-type3.svg11.rgb24.ref.png | Bin 3640 -> 0 bytes
+ ...text-vertical-layout-type3.svg12.argb32.ref.png | Bin 3640 -> 0 bytes
+ test/ft-text-vertical-layout-type3.svg12.ref.png | Bin 3957 -> 0 bytes
+ ...-text-vertical-layout-type3.svg12.rgb24.ref.png | Bin 3640 -> 0 bytes
+ ...tical-layout-type3.test-fallback.argb32.ref.png | Bin 3605 -> 0 bytes
+ ...rtical-layout-type3.test-fallback.rgb24.ref.png | Bin 3605 -> 0 bytes
+ test/gradient-alpha.pdf.argb32.ref.png | Bin 126 -> 0 bytes
+ test/gradient-alpha.pdf.rgb24.ref.png | Bin 121 -> 0 bytes
+ test/gradient-constant-alpha.pdf.argb32.ref.png | Bin 116 -> 0 bytes
+ test/gradient-constant-alpha.pdf.rgb24.ref.png | Bin 115 -> 0 bytes
+ test/group-unaligned.pdf.new.png | Bin 0 -> 427 bytes
+ test/group-unaligned.pdf.ref.png | Bin 414 -> 0 bytes
+ test/group-unaligned.svg.argb32.ref.png | Bin 524 -> 0 bytes
+ test/group-unaligned.svg.argb32.xfail.png | Bin 0 -> 522 bytes
+ test/group-unaligned.svg.rgb24.ref.png | Bin 434 -> 0 bytes
+ test/group-unaligned.svg.rgb24.xfail.png | Bin 0 -> 425 bytes
+ test/huge-linear.c | 2 +-
+ test/huge-linear.pdf.ref.png | Bin 0 -> 1577 bytes
+ test/huge-radial.c | 2 +-
+ test/huge-radial.pdf.argb32.ref.png | Bin 0 -> 177382 bytes
+ test/huge-radial.pdf.rgb24.ref.png | Bin 0 -> 225358 bytes
+ test/large-source-roi.c | 2 +-
+ test/large-source-roi.ref.png | Bin 102 -> 0 bytes
+ test/linear-gradient.pdf.ref.png | Bin 1125 -> 0 bytes
+ test/linear-gradient.svg11.argb32.ref.png | Bin 988 -> 0 bytes
+ test/linear-gradient.svg11.ref.png | Bin 1000 -> 0 bytes
+ test/linear-gradient.svg11.rgb24.ref.png | Bin 988 -> 0 bytes
+ test/linear-gradient.svg12.argb32.ref.png | Bin 988 -> 0 bytes
+ test/linear-gradient.svg12.ref.png | Bin 1000 -> 0 bytes
+ test/linear-gradient.svg12.rgb24.ref.png | Bin 988 -> 0 bytes
+ test/linear-gradient.test-fallback.argb32.ref.png | Bin 923 -> 0 bytes
+ test/linear-gradient.test-fallback.rgb24.ref.png | Bin 923 -> 0 bytes
+ test/long-lines.c | 2 +-
+ test/long-lines.ref.png | Bin 247 -> 0 bytes
+ test/make-html.pl | 13 +-
+ test/mask-alpha.svg.rgb24.xfail.png | Bin 0 -> 585 bytes
+ test/mask-alpha.svg11.argb32.ref.png | Bin 642 -> 0 bytes
+ test/mask-alpha.svg11.rgb24.ref.png | Bin 592 -> 0 bytes
+ test/mask-alpha.svg12.argb32.ref.png | Bin 642 -> 0 bytes
+ test/mask-alpha.svg12.rgb24.ref.png | Bin 592 -> 0 bytes
+ test/mask-alpha.test-fallback.argb32.ref.png | Bin 627 -> 0 bytes
+ test/mask-ctm.svg11.argb32.ref.png | Bin 108 -> 0 bytes
+ test/mask-ctm.svg12.argb32.ref.png | Bin 108 -> 0 bytes
+ test/mask-glyphs.c | 2 +-
+ test/mask-glyphs.pdf.ref.png | Bin 0 -> 1187713 bytes
+ test/mask-glyphs.svg.ref.png | Bin 0 -> 1211170 bytes
+ test/mask-surface-ctm.svg11.argb32.ref.png | Bin 108 -> 0 bytes
+ test/mask-surface-ctm.svg12.argb32.ref.png | Bin 108 -> 0 bytes
+ test/mask-transformed-similar.svg.ref.png | Bin 0 -> 3365 bytes
+ test/mask-transformed-similar.svg11.ref.png | Bin 4051 -> 0 bytes
+ test/mask-transformed-similar.svg12.ref.png | Bin 4051 -> 0 bytes
+ test/mask.pdf.argb32.ref.png | Bin 9946 -> 0 bytes
+ test/mask.pdf.argb32.xfail.png | Bin 0 -> 7944 bytes
+ test/mask.pdf.rgb24.ref.png | Bin 8745 -> 0 bytes
+ test/mask.pdf.rgb24.xfail.png | Bin 0 -> 7388 bytes
+ test/mask.svg.argb32.xfail.png | Bin 0 -> 8613 bytes
+ test/mask.svg.rgb24.xfail.png | Bin 0 -> 7189 bytes
+ test/mask.svg11.argb32.ref.png | Bin 8682 -> 0 bytes
+ test/mask.svg11.rgb24.ref.png | Bin 7203 -> 0 bytes
+ test/mask.svg12.argb32.ref.png | Bin 8682 -> 0 bytes
+ test/mask.svg12.rgb24.ref.png | Bin 7203 -> 0 bytes
+ test/mask.test-fallback.argb32.ref.png | Bin 8457 -> 0 bytes
+ test/mask.test-fallback.rgb24.ref.png | Bin 7058 -> 0 bytes
+ test/meta-surface-pattern.pdf.argb32.ref.png | Bin 0 -> 4009 bytes
+ test/meta-surface-pattern.pdf.ref.png | Bin 4111 -> 0 bytes
+ test/meta-surface-pattern.pdf.rgb24.ref.png | Bin 0 -> 3905 bytes
+ test/meta-surface-pattern.svg.argb32.ref.png | Bin 0 -> 3930 bytes
+ test/meta-surface-pattern.svg.rgb24.ref.png | Bin 0 -> 3910 bytes
+ test/meta-surface-pattern.svg11.argb32.ref.png | Bin 3924 -> 0 bytes
+ test/meta-surface-pattern.svg11.rgb24.ref.png | Bin 3914 -> 0 bytes
+ test/meta-surface-pattern.svg12.argb32.ref.png | Bin 3924 -> 0 bytes
+ test/meta-surface-pattern.svg12.rgb24.ref.png | Bin 3914 -> 0 bytes
+ test/operator-alpha.c | 2 +-
+ test/operator-alpha.svg12.argb32.xfail.png | Bin 0 -> 274 bytes
+ test/operator-alpha.svg12.rgb24.xfail.png | Bin 0 -> 248 bytes
+ test/operator-clear.c | 2 +-
+ test/operator-clear.pdf.argb32.ref.png | Bin 1607 -> 0 bytes
+ test/operator-clear.pdf.rgb24.ref.png | Bin 1402 -> 0 bytes
+ test/operator-clear.svg12.argb32.xfail.png | Bin 0 -> 405 bytes
+ test/operator-clear.svg12.rgb24.xfail.png | Bin 0 -> 535 bytes
+ test/operator-clear.xlib.ref.png | Bin 0 -> 951 bytes
+ test/operator-source.c | 2 +-
+ test/operator-source.pdf.argb32.ref.png | Bin 5112 -> 0 bytes
+ test/operator-source.pdf.rgb24.ref.png | Bin 4186 -> 0 bytes
+ test/operator-source.pdf.rgb24.xfail.png | Bin 0 -> 3645 bytes
+ test/operator-source.svg12.argb32.xfail.png | Bin 0 -> 2951 bytes
+ test/operator-source.svg12.rgb24.xfail.png | Bin 0 -> 2963 bytes
+ test/operator-source.test-fallback.argb32.ref.png | Bin 4401 -> 0 bytes
+ test/operator-source.test-fallback.rgb24.ref.png | Bin 3200 -> 0 bytes
+ test/operator.c | 2 +-
+ test/operator.svg12.argb32.xfail.png | Bin 0 -> 238 bytes
+ test/operator.svg12.rgb24.xfail.png | Bin 0 -> 242 bytes
+ test/over-above-source.c | 2 +-
+ test/over-above-source.svg12.rgb24.xfail.png | Bin 0 -> 563 bytes
+ .../over-above-source.test-fallback.argb32.ref.png | Bin 533 -> 0 bytes
+ test/over-above-source.test-fallback.rgb24.ref.png | Bin 450 -> 0 bytes
+ test/over-around-source.c | 2 +-
+ test/over-around-source.svg12.argb32.xfail.png | Bin 0 -> 559 bytes
+ test/over-around-source.svg12.rgb24.xfail.png | Bin 0 -> 559 bytes
+ ...over-around-source.test-fallback.argb32.ref.png | Bin 610 -> 0 bytes
+ test/over-below-source.c | 2 +-
+ test/over-below-source.svg12.argb32.xfail.png | Bin 0 -> 224 bytes
+ test/over-below-source.svg12.rgb24.xfail.png | Bin 0 -> 224 bytes
+ test/over-between-source.c | 2 +-
+ test/over-between-source.svg12.argb32.xfail.png | Bin 0 -> 224 bytes
+ test/over-between-source.svg12.rgb24.xfail.png | Bin 0 -> 224 bytes
+ ...ver-between-source.test-fallback.argb32.ref.png | Bin 578 -> 0 bytes
+ test/paint-source-alpha.c | 2 +-
+ test/paint-source-alpha.svg.ref.png | Bin 0 -> 693 bytes
+ test/paint-source-alpha.svg11.ref.png | Bin 756 -> 0 bytes
+ test/paint-source-alpha.svg12.ref.png | Bin 505 -> 0 bytes
+ test/paint-with-alpha.svg.ref.png | Bin 0 -> 483 bytes
+ test/paint-with-alpha.svg11.ref.png | Bin 516 -> 0 bytes
+ test/paint-with-alpha.svg12.ref.png | Bin 516 -> 0 bytes
+ test/path-precision.c | 9 +-
+ test/push-group.svg11.argb32.ref.png | Bin 3034 -> 0 bytes
+ test/push-group.svg12.argb32.ref.png | Bin 3034 -> 0 bytes
+ test/push-group.test-fallback.argb32.ref.png | Bin 3107 -> 0 bytes
+ test/push-group.test-fallback.rgb24.ref.png | Bin 2942 -> 0 bytes
+ test/radial-gradient.svg11.ref.png | Bin 91039 -> 0 bytes
+ test/radial-gradient.svg12.ref.png | Bin 91039 -> 0 bytes
+ ...ndom-intersections.test-fallback.argb32.ref.png | Bin 132312 -> 0 bytes
+ ...andom-intersections.test-fallback.rgb24.ref.png | Bin 132312 -> 0 bytes
+ test/rotate-image-surface-paint.pdf.ref.png | Bin 196 -> 0 bytes
+ test/rotate-image-surface-paint.pdf.xfail.png | Bin 0 -> 207 bytes
+ test/rotate-image-surface-paint.svg.ref.png | Bin 0 -> 209 bytes
+ test/rotate-image-surface-paint.svg11.ref.png | Bin 248 -> 0 bytes
+ test/rotate-image-surface-paint.svg12.ref.png | Bin 248 -> 0 bytes
+ test/scale-offset-image.c | 2 +-
+ test/scale-offset-image.pdf.argb32.ref.png | Bin 0 -> 8692 bytes
+ test/scale-offset-image.pdf.rgb24.ref.png | Bin 0 -> 8691 bytes
+ test/scale-offset-image.xfail.png | Bin 0 -> 8599 bytes
+ test/scale-offset-image.xlib.xfail.png | Bin 0 -> 9100 bytes
+ test/scale-offset-similar.c | 2 +-
+ test/scale-offset-similar.pdf.argb32.ref.png | Bin 0 -> 9278 bytes
+ test/scale-offset-similar.pdf.rgb24.ref.png | Bin 0 -> 9278 bytes
+ test/scale-offset-similar.xfail.png | Bin 0 -> 8599 bytes
+ test/scale-offset-similar.xlib.xfail.png | Bin 0 -> 8570 bytes
+ ...cale-source-surface-paint.svg.argb32.xfail.png} | Bin
+ .../scale-source-surface-paint.svg.rgb24.xfail.png | Bin 0 -> 222 bytes
+ .../scale-source-surface-paint.svg11.rgb24.ref.png | Bin 243 -> 0 bytes
+ ...scale-source-surface-paint.svg12.argb32.ref.png | Bin 229 -> 0 bytes
+ .../scale-source-surface-paint.svg12.rgb24.ref.png | Bin 243 -> 0 bytes
+ test/self-copy-overlap.c | 2 +-
+ test/self-copy-overlap.ref.png | Bin 1140 -> 0 bytes
+ test/self-copy-overlap.rgb24.ref.png | Bin 608 -> 0 bytes
+ test/self-intersecting.argb32.xfail.png | Bin 0 -> 287 bytes
+ test/self-intersecting.c | 2 +-
+ test/self-intersecting.pdf.argb32.xfail.png | Bin 0 -> 295 bytes
+ test/self-intersecting.pdf.rgb24.xfail.png | Bin 0 -> 272 bytes
+ test/self-intersecting.ps.argb32.xfail.png | Bin 0 -> 186 bytes
+ test/self-intersecting.ps.rgb24.xfail.png | Bin 0 -> 186 bytes
+ test/self-intersecting.rgb24.xfail.png | Bin 0 -> 282 bytes
+ test/self-intersecting.xlib.argb32.xfail.png | Bin 0 -> 235 bytes
+ test/self-intersecting.xlib.rgb24.xfail.png | Bin 0 -> 240 bytes
+ test/set-source.svg11.argb32.ref.png | Bin 104 -> 0 bytes
+ test/set-source.svg12.argb32.ref.png | Bin 104 -> 0 bytes
+ test/smask-fill.c | 2 +-
+ test/smask-fill.svg.ref.png | Bin 0 -> 1150 bytes
+ test/smask-fill.svg11.argb32.ref.png | Bin 1128 -> 0 bytes
+ test/smask-fill.svg11.ref.png | Bin 1166 -> 0 bytes
+ test/smask-fill.svg11.rgb24.ref.png | Bin 1128 -> 0 bytes
+ test/smask-fill.svg12.argb32.ref.png | Bin 1128 -> 0 bytes
+ test/smask-fill.svg12.ref.png | Bin 1166 -> 0 bytes
+ test/smask-fill.svg12.rgb24.ref.png | Bin 1128 -> 0 bytes
+ test/smask-fill.test-fallback.argb32.ref.png | Bin 1148 -> 0 bytes
+ test/smask-fill.test-fallback.rgb24.ref.png | Bin 1148 -> 0 bytes
+ test/smask-image-mask.c | 2 +-
+ test/smask-mask.c | 2 +-
+ test/smask-mask.pdf.xfail.png | Bin 0 -> 4401 bytes
+ test/smask-mask.svg.ref.png | Bin 0 -> 2376 bytes
+ test/smask-mask.svg11.ref.png | Bin 2529 -> 0 bytes
+ test/smask-mask.svg12.ref.png | Bin 2529 -> 0 bytes
+ test/smask-paint.c | 2 +-
+ test/smask-paint.pdf.xfail.png | Bin 0 -> 4513 bytes
+ test/smask-paint.svg.ref.png | Bin 0 -> 2453 bytes
+ test/smask-paint.svg11.ref.png | Bin 2612 -> 0 bytes
+ test/smask-paint.svg12.ref.png | Bin 2612 -> 0 bytes
+ test/smask-stroke.c | 2 +-
+ test/smask-stroke.pdf.xfail.png | Bin 0 -> 392 bytes
+ test/smask-text.c | 2 +-
+ test/smask-text.pdf.ref.png | Bin 0 -> 1874 bytes
+ test/smask-text.ref.png | Bin 1777 -> 1874 bytes
+ test/smask-text.svg.ref.png | Bin 0 -> 1794 bytes
+ test/smask-text.svg11.argb32.ref.png | Bin 1791 -> 0 bytes
+ test/smask-text.svg11.ref.png | Bin 1886 -> 0 bytes
+ test/smask-text.svg11.rgb24.ref.png | Bin 1791 -> 0 bytes
+ test/smask-text.svg12.argb32.ref.png | Bin 1791 -> 0 bytes
+ test/smask-text.svg12.ref.png | Bin 1886 -> 0 bytes
+ test/smask-text.svg12.rgb24.ref.png | Bin 1791 -> 0 bytes
+ test/smask.c | 2 +-
+ test/smask.pdf.xfail.png | Bin 0 -> 4393 bytes
+ test/smask.ref.png | Bin 3587 -> 3417 bytes
+ test/smask.svg.ref.png | Bin 0 -> 3458 bytes
+ test/smask.svg11.ref.png | Bin 3634 -> 0 bytes
+ test/smask.svg12.ref.png | Bin 3634 -> 0 bytes
+ test/source-clip-scale.svg.ref.png | Bin 0 -> 116 bytes
+ test/source-clip-scale.svg11.ref.png | Bin 119 -> 0 bytes
+ test/source-clip-scale.svg12.ref.png | Bin 119 -> 0 bytes
+ test/surface-pattern-big-scale-down.c | 2 +-
+ test/surface-pattern-big-scale-down.ref.png | Bin 226 -> 191 bytes
+ test/surface-pattern-scale-down.pdf.argb32.ref.png | Bin 1532 -> 0 bytes
+ test/surface-pattern-scale-down.pdf.ref.png | Bin 0 -> 1589 bytes
+ test/surface-pattern-scale-down.pdf.rgb24.ref.png | Bin 1532 -> 0 bytes
+ test/surface-pattern-scale-up.pdf.argb32.ref.png | Bin 3834 -> 0 bytes
+ test/surface-pattern-scale-up.pdf.ref.png | Bin 0 -> 2712 bytes
+ test/surface-pattern-scale-up.pdf.rgb24.ref.png | Bin 3834 -> 0 bytes
+ test/surface-pattern.pdf.ref.png | Bin 14800 -> 0 bytes
+ test/surface-pattern.pdf.xfail.png | Bin 0 -> 10528 bytes
+ test/surface-pattern.ps.xfail.png | Bin 0 -> 2188 bytes
+ test/surface-pattern.ps2.ref.png | Bin 2364 -> 0 bytes
+ test/surface-pattern.ps3.ref.png | Bin 2364 -> 0 bytes
+ ...n.svg.ref.png => surface-pattern.svg.xfail.png} | Bin
+ test/text-pattern.pdf.argb32.ref.png | Bin 2334 -> 0 bytes
+ test/text-pattern.pdf.argb32.xfail.png | Bin 0 -> 1845 bytes
+ test/text-pattern.pdf.rgb24.ref.png | Bin 1915 -> 0 bytes
+ test/text-pattern.pdf.rgb24.xfail.png | Bin 0 -> 1599 bytes
+ test/text-pattern.svg.argb32.ref.png | Bin 0 -> 1745 bytes
+ test/text-pattern.svg.rgb24.ref.png | Bin 0 -> 1453 bytes
+ test/text-pattern.svg11.argb32.ref.png | Bin 1743 -> 0 bytes
+ test/text-pattern.svg11.rgb24.ref.png | Bin 1563 -> 0 bytes
+ test/text-pattern.svg12.argb32.ref.png | Bin 1743 -> 0 bytes
+ test/text-pattern.svg12.rgb24.ref.png | Bin 1563 -> 0 bytes
+ test/text-rotate.svg.ref.png | Bin 0 -> 17024 bytes
+ test/text-rotate.svg11.argb32.ref.png | Bin 16942 -> 0 bytes
+ test/text-rotate.svg11.ref.png | Bin 18301 -> 0 bytes
+ test/text-rotate.svg11.rgb24.ref.png | Bin 16942 -> 0 bytes
+ test/text-rotate.svg12.argb32.ref.png | Bin 16942 -> 0 bytes
+ test/text-rotate.svg12.ref.png | Bin 18301 -> 0 bytes
+ test/text-rotate.svg12.rgb24.ref.png | Bin 16942 -> 0 bytes
+ test/text-transform.svg.ref.png | Bin 0 -> 5682 bytes
+ test/text-transform.svg11.argb32.ref.png | Bin 5677 -> 0 bytes
+ test/text-transform.svg11.rgb24.ref.png | Bin 5677 -> 0 bytes
+ test/text-transform.svg12.argb32.ref.png | Bin 5677 -> 0 bytes
+ test/text-transform.svg12.rgb24.ref.png | Bin 5677 -> 0 bytes
+ test/trap-clip.pdf.argb32.ref.png | Bin 6746 -> 0 bytes
+ test/trap-clip.pdf.rgb24.ref.png | Bin 6616 -> 0 bytes
+ test/trap-clip.test-fallback.argb32.ref.png | Bin 5753 -> 0 bytes
+ test/trap-clip.test-fallback.rgb24.ref.png | Bin 5379 -> 0 bytes
+ test/twin.svg.ref.png | Bin 3027 -> 3040 bytes
+ test/unbounded-operator.c | 2 +-
+ test/unbounded-operator.svg12.argb32.xfail.png | Bin 0 -> 2767 bytes
+ test/unbounded-operator.svg12.rgb24.xfail.png | Bin 0 -> 1719 bytes
+ .../unbounded-operator.test-fallback.rgb24.ref.png | Bin 1306 -> 0 bytes
+ test/user-font-mask.svg.ref.png | Bin 0 -> 2030 bytes
+ test/user-font-mask.svg11.ref.png | Bin 2224 -> 0 bytes
+ test/user-font-proxy.svg.ref.png | Bin 0 -> 16817 bytes
+ test/user-font-proxy.svg11.argb32.ref.png | Bin 16836 -> 0 bytes
+ test/user-font-proxy.svg11.ref.png | Bin 17902 -> 0 bytes
+ test/user-font-proxy.svg11.rgb24.ref.png | Bin 16836 -> 0 bytes
+ test/user-font-proxy.svg12.argb32.ref.png | Bin 16836 -> 0 bytes
+ test/user-font-proxy.svg12.ref.png | Bin 17902 -> 0 bytes
+ test/user-font-proxy.svg12.rgb24.ref.png | Bin 16836 -> 0 bytes
+ test/user-font-proxy.test-fallback.argb32.ref.png | Bin 16835 -> 0 bytes
+ test/user-font-proxy.test-fallback.rgb24.ref.png | Bin 16835 -> 0 bytes
+ test/user-font-rescale.svg.ref.png | Bin 0 -> 14873 bytes
+ test/user-font-rescale.svg11.ref.png | Bin 15741 -> 0 bytes
+ test/user-font-rescale.svg12.ref.png | Bin 15741 -> 0 bytes
+ test/user-font.svg.ref.png | Bin 0 -> 6379 bytes
+ test/user-font.svg11.argb32.ref.png | Bin 6411 -> 0 bytes
+ test/user-font.svg11.ref.png | Bin 6134 -> 0 bytes
+ test/user-font.svg11.rgb24.ref.png | Bin 6411 -> 0 bytes
+ test/user-font.svg12.argb32.ref.png | Bin 6411 -> 0 bytes
+ test/user-font.svg12.ref.png | Bin 6134 -> 0 bytes
+ test/user-font.svg12.rgb24.ref.png | Bin 6411 -> 0 bytes
+ test/user-font.test-fallback.argb32.ref.png | Bin 5601 -> 0 bytes
+ test/user-font.test-fallback.rgb24.ref.png | Bin 5601 -> 0 bytes
+ 382 files changed, 438 insertions(+), 303 deletions(-)
+
+commit a81cf14bd6de545e9108f5c24c59e55026df86de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 13 10:58:44 2009 +0100
+
+ [test] Sanitise REFERENCE_IMAGES
+
+ Add and delete files to satisfy 'make check-ref-missing'.
+
+ test/Makefile.am | 6 ------
+ test/fill-image.test-fallback.ref.png | Bin 1462 -> 0 bytes
+ test/fill-image.xlib.ref.png | Bin 1462 -> 0 bytes
+ test/group-unaligned.ref.png | Bin 0 -> 434 bytes
+ test/meta-surface-pattern.pdf.argb32.ref.png | Bin 4011 -> 0 bytes
+ test/meta-surface-pattern.pdf.rgb24.ref.png | Bin 3910 -> 0 bytes
+ test/operator-clear.test-fallback.ref.png | Bin 1071 -> 0 bytes
+ test/operator-clear.xlib.ref.png | Bin 1071 -> 0 bytes
+ 8 files changed, 6 deletions(-)
+
+commit 7f3eda4e9f9e6cb6f3a33871ed42099c822d0ea2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jul 13 10:43:34 2009 +0100
+
+ [test] Update reference images for gs 8.64
+
+ test/Makefile.am | 7 +++++--
+ test/README | 2 +-
+ test/close-path-current-point.ps.ref.png | Bin 0 -> 1490 bytes
+ test/extend-pad.ps.ref.png | Bin 0 -> 314 bytes
+ test/fill-image.ps.ref.png | Bin 0 -> 1799 bytes
+ test/test-fallback16-surface-source.ps.ref.png | Bin 0 -> 292 bytes
+ test/user-font-proxy.ps.ref.png | Bin 0 -> 7766 bytes
+ test/user-font-proxy.ps2.ref.png | Bin 8171 -> 0 bytes
+ test/user-font-proxy.ps3.ref.png | Bin 8171 -> 0 bytes
+ 9 files changed, 6 insertions(+), 3 deletions(-)
+
+commit 0d44416b9dd8149032039cf44ea14bf4867f3c54
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Jul 12 19:21:28 2009 +0930
+
+ PDF: Don't round pattern y location to an integer
+
+ Using cairo_surface_get_extents() to get page height does not work
+ when the page height is not an integer.
+
+ http://lists.cairographics.org/archives/cairo/2009-July/017570.html
+
+ src/cairo-pdf-surface.c | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+commit 9686331cb07a8f9018f28dc7d6d6e3726e289fda
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sat May 2 18:05:20 2009 +0300
+
+ [spans] Round rasterization grid pixel areas instead of truncating.
+
+ When converting a grid pixel area into the range [0,255] the
+ GRID_AREA_TO_ALPHA() macro would truncate extra bits off the result
+ rather than rounding. This could cause seams between abutting
+ collinear edges of separately rendered polygons even when the
+ coordinates of the abutting edges were the same.
+
+ Reported by Soeren Sandmann on the cairo mailing list:
+
+ http://lists.cairographics.org/archives/cairo/2009-May/017043.html
+
+ src/cairo-tor-scan-converter.c | 4 ++--
+ test/clip-operator.ref.png | Bin 8210 -> 8191 bytes
+ test/clip-operator.test-paginated.argb32.ref.png | Bin 8247 -> 8189 bytes
+ test/fill-degenerate-sort-order.ref.png | Bin 2406 -> 2399 bytes
+ test/fill-rule.ref.png | Bin 2061 -> 2065 bytes
+ test/finer-grained-fallbacks.ref.png | Bin 1069 -> 1070 bytes
+ test/linear-gradient.pdf.argb32.ref.png | Bin 1112 -> 0 bytes
+ test/linear-gradient.pdf.ref.png | Bin 935 -> 1125 bytes
+ test/linear-gradient.pdf.rgb24.ref.png | Bin 1112 -> 0 bytes
+ test/mask-alpha.ref.png | Bin 643 -> 632 bytes
+ test/mask.pdf.argb32.ref.png | Bin 9918 -> 9946 bytes
+ test/mask.ref.png | Bin 8581 -> 8603 bytes
+ test/operator-clear.ref.png | Bin 1084 -> 1070 bytes
+ test/operator-clear.test-fallback.ref.png | Bin 0 -> 1071 bytes
+ test/operator-clear.xlib.ref.png | Bin 0 -> 1071 bytes
+ test/operator-source.ref.png | Bin 4425 -> 4395 bytes
+ test/radial-gradient.pdf.argb32.ref.png | Bin 79601 -> 0 bytes
+ test/radial-gradient.pdf.ref.png | Bin 79490 -> 79612 bytes
+ test/radial-gradient.pdf.rgb24.ref.png | Bin 79601 -> 0 bytes
+ test/trap-clip.pdf.argb32.ref.png | Bin 6745 -> 6746 bytes
+ test/trap-clip.pdf.rgb24.ref.png | Bin 6621 -> 6616 bytes
+ test/trap-clip.ref.png | Bin 5829 -> 5820 bytes
+ test/trap-clip.test-paginated.argb32.ref.png | Bin 5865 -> 5898 bytes
+ 23 files changed, 2 insertions(+), 2 deletions(-)
+
+commit fbd88db938bf3bb03934795da9b3d184c4f43608
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jul 5 14:43:50 2009 +0100
+
+ [path] Don't include current-point in hash
+
+ As we don't strictly use the current-point in comparing paths, exclude it
+ from the hash. Similarly use the path content flags as a cheap means to
+ differentiate contents.
+
+ src/cairo-path-fixed.c | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+commit 73f8019fd2afd0ad41c2515bef9877348355d246
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jul 5 14:37:02 2009 +0100
+
+ [path] Use cairo_list_t instead of open-coding its own
+
+ Use the cairo_list_t and its style of iterators to improve the readability
+ of the cairo_path_buf_t management. Note the complications that arise from
+ the embedding of the initial buf -- however the macros do help make the
+ unusual manipulations more identifiable.
+
+ src/cairo-path-fixed-private.h | 14 +--
+ src/cairo-path-fixed.c | 226 +++++++++++++++++++----------------------
+ src/cairo.c | 2 +-
+ 3 files changed, 114 insertions(+), 128 deletions(-)
+
+commit a04e3726648c62a1385b67cfc16a785a468e1d13
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jul 5 09:21:47 2009 +0100
+
+ [path] Add path watch debugging
+
+ Simple debug macro to print the path to stderr during construction.
+
+ src/cairo-path-fixed-private.h | 9 +++++++++
+ src/cairo-path-fixed.c | 26 ++++++++++++++++++++++++++
+ 2 files changed, 35 insertions(+)
+
+commit 1645352bfb69cc6d43fcbf3c77b4da5693af322a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jul 5 09:09:42 2009 +0100
+
+ [path] Evaluate is_box && is_region during construction
+
+ Whilst constructing the path, if the operations continue to be
+ axis-aligned lines, allow the is_box and is_region flags to persist. These
+ are set to false as soon as a curve-to is added, a diagonal or in the case
+ of is_region a non-integer point.
+
+ src/cairo-path-fixed-private.h | 8 ++
+ src/cairo-path-fixed.c | 286 +++++++++++++++--------------------------
+ src/cairo.c | 2 +
+ src/cairoint.h | 3 -
+ 4 files changed, 115 insertions(+), 184 deletions(-)
+
+commit 4bb157672ef8cb7d486d6ccdaaa3890e3f45e17a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 23:44:09 2009 +0100
+
+ [test] Rename some structures within cairo-test-trace
+
+ Simply rename a few structures so that their names are less confusing with
+ the mix of process and threads used to executes traces.
+
+ test/cairo-test-trace.c | 224 ++++++++++++++++++++++++------------------------
+ 1 file changed, 112 insertions(+), 112 deletions(-)
+
+commit 53a54827f7d8ca8500f3f9674edbd7e768e8a50d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jul 5 09:22:05 2009 +0100
+
+ [boilerplate] Add missing header file.
+
+ Deleted so many, and forgot to add just this little one. Sigh.
+
+ boilerplate/cairo-boilerplate-private.h | 49 +++++++++++++++++++++++++++++++++
+ 1 file changed, 49 insertions(+)
+
+commit ee8c50f2d6f1dba41f829c715b7bc59b5eeda50d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 22:00:09 2009 +0100
+
+ Remove the defunct test-meta surface
+
+ Replace the internal test-meta surface will the freshly exported,
+ real meta-surface.
+
+ boilerplate/cairo-boilerplate-test-surfaces.c | 38 ---
+ boilerplate/cairo-boilerplate.c | 35 +++
+ src/Makefile.sources | 2 -
+ src/test-meta-surface.c | 358 --------------------------
+ src/test-meta-surface.h | 50 ----
+ util/cairo-trace/trace.c | 49 ++--
+ 6 files changed, 69 insertions(+), 463 deletions(-)
+
+commit 88cb69b10c66751f687c3745c8e9861b105de3a2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 21:43:27 2009 +0100
+
+ [boilerpate] Move target definition to backends.
+
+ By moving the backend target definition out of the massive amlagamated
+ block in cairo-boilerplate.c and into each of the
+ cairo-boilerplate-backend.c, we make it much easier to add new targets as
+ the information need only be entered in a single file and not scattered
+ across three. However, updating the target interface means trawling across
+ all the files -- except given that I found it difficult maintaining the
+ single massive array I do not see this as an increase in the maintenance
+ burden.
+
+ boilerplate/.gitignore | 2 +
+ boilerplate/Makefile.am | 12 +
+ boilerplate/Makefile.sources | 27 +-
+ boilerplate/cairo-boilerplate-beos-private.h | 40 --
+ boilerplate/cairo-boilerplate-beos.cpp | 48 +-
+ boilerplate/cairo-boilerplate-directfb-private.h | 26 -
+ boilerplate/cairo-boilerplate-directfb.c | 29 +-
+ boilerplate/cairo-boilerplate-glitz-agl.c | 31 +-
+ boilerplate/cairo-boilerplate-glitz-glx.c | 31 +-
+ boilerplate/cairo-boilerplate-glitz-private.h | 88 ---
+ boilerplate/cairo-boilerplate-glitz-wgl.c | 32 +-
+ boilerplate/cairo-boilerplate-pdf-private.h | 60 --
+ boilerplate/cairo-boilerplate-pdf.c | 48 +-
+ boilerplate/cairo-boilerplate-ps-private.h | 71 ---
+ boilerplate/cairo-boilerplate-ps.c | 73 ++-
+ boilerplate/cairo-boilerplate-qt-private.h | 60 --
+ boilerplate/cairo-boilerplate-qt.cpp | 29 +-
+ boilerplate/cairo-boilerplate-quartz-private.h | 44 --
+ boilerplate/cairo-boilerplate-quartz.c | 29 +-
+ boilerplate/cairo-boilerplate-script-private.h | 57 --
+ boilerplate/cairo-boilerplate-script.c | 28 +-
+ boilerplate/cairo-boilerplate-svg-private.h | 72 ---
+ boilerplate/cairo-boilerplate-svg.c | 70 ++-
+ .../cairo-boilerplate-test-surfaces-private.h | 99 ----
+ boilerplate/cairo-boilerplate-test-surfaces.c | 117 +++-
+ boilerplate/cairo-boilerplate-win32-printing.c | 43 +-
+ boilerplate/cairo-boilerplate-win32-private.h | 65 ---
+ boilerplate/cairo-boilerplate-win32.c | 28 +-
+ boilerplate/cairo-boilerplate-xcb-private.h | 47 --
+ boilerplate/cairo-boilerplate-xcb.c | 28 +-
+ boilerplate/cairo-boilerplate-xlib-private.h | 71 ---
+ boilerplate/cairo-boilerplate-xlib.c | 207 ++++---
+ boilerplate/cairo-boilerplate.c | 639 +++------------------
+ boilerplate/cairo-boilerplate.h | 3 +-
+ boilerplate/make-cairo-boilerplate-constructors.c | 156 +++++
+ test/make-cairo-test-constructors.c | 28 +-
+ 36 files changed, 946 insertions(+), 1592 deletions(-)
+
+commit 8a10ab1c04298d6c22ae8aabec5d762141a8e98f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 18:46:21 2009 +0100
+
+ [script] Tidy dict construction for glyphs
+
+ Replace dict with '<< ... >>' similar to surface definitions as it is
+ easier to read in scripts.
+
+ src/cairo-script-surface.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit fef3649953a3dcc3a17d9d5858f56690a8782501
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 18:32:57 2009 +0100
+
+ [script] Fix the trivial errors running the test suite
+
+ A few typos crept in breaking the script output and various refreshes of
+ the expected results.
+
+ src/cairo-script-surface.c | 33 +++++++++++++++++++++----------
+ test/mime-data.script.ref.png | Bin 1982 -> 2041 bytes
+ test/scale-offset-image.c | 2 +-
+ test/scale-offset-similar.c | 2 +-
+ util/cairo-script/cairo-script-scanner.c | 6 ++++--
+ 5 files changed, 29 insertions(+), 14 deletions(-)
+
+commit 2395bba1e66a2623cb288e13effc206f86e5e62e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 18:31:49 2009 +0100
+
+ [any2ppm] Choose a more appropriate format for the replay content
+
+ Actually select a format that matches the request content when replaying
+ the script to an image.
+
+ test/any2ppm.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+commit 9942a89870f7754e28ff334010c4432553cf7d91
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 18:30:24 2009 +0100
+
+ [boilerplate] Read whole RGB lines at a time
+
+ Rather than read+unpack each pixel, read in a whole RGB packed line and
+ unpack the whole line in a single pass.
+
+ boilerplate/cairo-boilerplate.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+commit 23648e2fdfefba4df08bc854d725758209998e1f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 3 00:40:32 2009 +0100
+
+ [script] Prototypical binary translator
+
+ Hook into the scanner to write out binary version of the tokenized
+ objects -- note we bind executable names (i.e. check to see if is an
+ operator and substitute the name with an operator -- this breaks
+ overloading of operators by scripts).
+
+ By converting scripts to a binary form, they are more compact and
+ execute faster:
+
+ firefox-world-map.trace 526850146 bytes
+ bound.trace 275187755 bytes
+
+ [ # ] backend test min(s) median(s) stddev. count
+ [ 0] null bound 34.481 34.741 0.68% 3/3
+ [ 1] null firefox-world-map 89.635 89.716 0.19% 3/3
+ [ 0] drm bound 79.304 79.350 0.61% 3/3
+ [ 1] drm firefox-world-map 135.380 135.475 0.58% 3/3
+ [ 0] image bound 95.819 96.258 2.85% 3/3
+ [ 1] image firefox-world-map 156.889 156.935 1.36% 3/3
+ [ 0] xlib bound 539.130 550.220 1.40% 3/3
+ [ 1] xlib firefox-world-map 596.244 613.487 1.74% 3/3
+
+ This trace has a lot of complex paths and the use of binary floating point
+ reduces the file size by about 50%, with a commensurate reduction in scan
+ time and significant reduction in operator lookup overhead. Note that this
+ test is still IO/CPU bound on my i915 with its pitifully slow flash...
+
+ util/cairo-script/Makefile.am | 5 +-
+ util/cairo-script/cairo-script-file.c | 44 +-
+ util/cairo-script/cairo-script-interpreter.c | 85 ++-
+ util/cairo-script/cairo-script-interpreter.h | 9 +-
+ util/cairo-script/cairo-script-objects.c | 8 +-
+ util/cairo-script/cairo-script-operators.c | 2 +-
+ util/cairo-script/cairo-script-private.h | 27 +-
+ util/cairo-script/cairo-script-scanner.c | 1059 ++++++++++++++++++--------
+ 8 files changed, 906 insertions(+), 333 deletions(-)
+
+commit 07c0c8c5c0820e93403623eb5c1fa2df8ca89c60
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 14:07:16 2009 +0100
+
+ [surface] Refactor meta-surface clone
+
+ Whilst still obnoxious, at least moving it to a separate function is more
+ readable.
+
+ src/cairo-surface.c | 140 +++++++++++++++++++++++++++++-----------------------
+ 1 file changed, 79 insertions(+), 61 deletions(-)
+
+commit 7903c80ee81777bab6eec408c10b2b59330b10f7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 13:50:15 2009 +0100
+
+ [meta] Cache replays when used as a pattern source
+
+ Use the cow-snapshotting mechanism to store the meta surface replay (either
+ to an image inside acquire_source_image() or to a similar surface during
+ clone_similar()).
+
+ Fixes Bug 17971 -- Extreme slowdown for manual convolutions in most
+ vector backends.
+ https://bugs.freedesktop.org/show_bug.cgi?id=17971
+
+ src/cairo-meta-surface.c | 18 ++++++++--
+ src/cairo-surface.c | 92 ++++++++++++++++++++++++++++++++++++------------
+ src/cairoint.h | 3 +-
+ 3 files changed, 88 insertions(+), 25 deletions(-)
+
+commit f353ba46a3b8c260f96588fd6bb8d07c2a09d01a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 13:49:35 2009 +0100
+
+ [meta] Copy extents on snapshotting.
+
+ Need to copy across the extents as well when snapshotting.
+
+ src/cairo-meta-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit f4019be7bdff5c67d679f4de1070c25aa99a993d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 13:16:42 2009 +0100
+
+ [trace] Remove a few transient pattern def/undef
+
+ It is easier on the eye to use
+ '1 index set-source exch pop'
+ rather than
+ 'dup /p0 exch def p0 set-source /p0 undef'
+ (as patterns are expected to be temporary so we strive to avoid naming
+ them).
+
+ util/cairo-trace/trace.c | 42 +++++++++++++++++++++++++++++++-----------
+ 1 file changed, 31 insertions(+), 11 deletions(-)
+
+commit dcb7f1d034438c5c890490df93a86b40fea3036c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jul 4 08:08:25 2009 +0100
+
+ [script] Add missing include <string.h>
+
+ As reported by Magnus Boman <captain.magnus@gmail.com>.
+
+ Fixes Bug 22610 -- Patch to add missing include in util/cairo-script/csi-replay.c
+ http://bugs.freedesktop.org/show_bug.cgi?id=22610
+
+ util/cairo-script/csi-replay.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 97bd2228a6635bbb0eac4ce95801754957dbb7ba
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 3 19:41:51 2009 +0100
+
+ [script] Insert spaces around '<<' and '>>'
+
+ The dictionary constructors are just ordinary tokens so need space for
+ delimiters.
+
+ src/cairo-script-surface.c | 62 ++++++++++++++++------------------------------
+ 1 file changed, 21 insertions(+), 41 deletions(-)
+
+commit 6003ab77e1ebefadb97338de0e7da4a76d973b1a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 3 18:26:50 2009 +0100
+
+ Export meta-surface
+
+ The meta-surface is a vital tool to record a trace of drawing commands
+ in-memory. As such it is used throughout cairo.
+
+ The value of such a surface is immediately obvious and should be
+ applicable for many applications. The first such case is by
+ cairo-test-trace which wants to record the entire graph of drawing commands
+ that affect a surface in the event of a failure.
+
+ NEWS | 27 +++++
+ boilerplate/Makefile.win32.features | 8 ++
+ boilerplate/cairo-boilerplate.c | 12 +--
+ build/Makefile.win32.features-h | 1 +
+ build/configure.ac.features | 1 +
+ configure.ac | 4 +
+ perf/cairo-perf.c | 6 +-
+ src/Makefile.win32.features | 8 ++
+ src/cairo-meta-surface-private.h | 14 +--
+ src/cairo-meta-surface.c | 202 +++++++++++++++++++++++++++---------
+ src/cairo-paginated-surface.c | 16 +--
+ src/cairo-pdf-surface.c | 2 +-
+ src/cairo-ps-surface.c | 2 +-
+ src/cairo-script-surface.c | 10 +-
+ src/cairo-surface.c | 2 +-
+ src/cairo-svg-surface.c | 8 +-
+ src/cairo-type3-glyph-surface.c | 8 +-
+ src/cairo-types-private.h | 3 +-
+ src/cairo-user-font.c | 7 +-
+ src/cairo-win32-printing-surface.c | 2 +-
+ src/cairo.h | 22 +++-
+ src/test-meta-surface.c | 16 +--
+ src/test-meta-surface.h | 8 +-
+ test/cairo-test-trace.c | 58 ++++-------
+ test/get-clip.c | 5 +
+ 25 files changed, 296 insertions(+), 156 deletions(-)
+
+commit 2a9903dbbfeb3fe843f0d618d15674b37a29f3a9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 3 12:48:40 2009 +0100
+
+ [script] Trim some excess verbage
+
+ Remove some redundant defining of surfaces and contexts and of setting
+ defaults. In order to reduce the number of defines, we need to operate on
+ the operand stack more frequently - though in practice those operations
+ are quite rare.
+
+ src/Makefile.sources | 1 +
+ src/cairo-list-private.h | 189 +++++++++++++++
+ src/cairo-script-surface.c | 561 ++++++++++++++++++++++++++++++---------------
+ 3 files changed, 572 insertions(+), 179 deletions(-)
+
+commit 28773fe79f883c32ee4e55e49f5dc3fced00c4f6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 3 13:17:47 2009 +0100
+
+ [test-meta] Initialize image
+
+ Oops, stupid mistake - missed off the initialization of the image to NULL
+ from the last commit.
+
+ src/test-meta-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit ac6c3dbbaed377273b73da6e9e03bb8380a78ec4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 3 12:56:20 2009 +0100
+
+ [test-meta] Lazily allocate image
+
+ Only allocate the image on first use, as we may never actually need to
+ construct the image output.
+
+ src/test-meta-surface.c | 42 ++++++++++++++++++++++++------------------
+ 1 file changed, 24 insertions(+), 18 deletions(-)
+
+commit fe73a9dd1413a851beeca7a0fc4ab7cb351ea9ea
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jul 3 11:24:42 2009 +0100
+
+ [test] Record trace to an in-memory meta-surface
+
+ Requires hooking into test-meta-surface currently. Export meta-surface!
+
+ The idea is that on detection of an error, we can reconstruct a minimal
+ trace from the meta-surface. The first step is to simply dump the trace
+ for the failing meta-surface. Later, we should automatically minimise
+ this further.
+
+ src/test-meta-surface.c | 101 +++++++------
+ src/test-meta-surface.h | 4 +
+ test/Makefile.am | 3 +
+ test/cairo-test-trace.c | 371 ++++++++++++++++++++++++++++++++++++++++++------
+ 4 files changed, 397 insertions(+), 82 deletions(-)
+
+commit 633efe81873168506ec3594eae1f6ac38d71026c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jul 2 09:17:43 2009 +0100
+
+ [surface] Allocate temporary region on stack
+
+ Avoid a very short-lived temporary heap allocation of a region.
+
+ src/cairo-surface.c | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+commit b2e2a2f31af33ff01d78c6c8786249a623017ffa
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 15:47:51 2009 +0200
+
+ [test] Update argb32 pdf reference image for trap-clip
+
+ test/trap-clip.pdf.argb32.ref.png | Bin 6720 -> 6745 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit 910afc7a8e5c40f4fe682ec0b0f3836a07ea721d
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 15:40:24 2009 +0200
+
+ [test] Mark all smask tests as XFAIL for pdf
+
+ Those tests use linear gradients which are not correctly handled by
+ poppler yet. See https://bugs.freedesktop.org/show_bug.cgi?id=10942
+
+ test/README | 11 +++++++++++
+ test/smask-fill.c | 2 +-
+ test/smask-image-mask.c | 2 +-
+ test/smask-mask.c | 2 +-
+ test/smask-paint.c | 2 +-
+ test/smask-stroke.c | 2 +-
+ test/smask-text.c | 2 +-
+ test/smask.c | 2 +-
+ 8 files changed, 18 insertions(+), 7 deletions(-)
+
+commit 5becfc2bd59956090daa8afd68db2f139dcb8392
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 14:58:40 2009 +0200
+
+ [test] Add pdf reference image for rotate-image-surface-paint
+
+ Remove also argb32 and rgb24 pdf reference images.
+
+ test/Makefile.am | 3 +--
+ test/rotate-image-surface-paint.pdf.argb32.ref.png | Bin 215 -> 0 bytes
+ test/rotate-image-surface-paint.pdf.ref.png | Bin 0 -> 196 bytes
+ test/rotate-image-surface-paint.pdf.rgb24.ref.png | Bin 215 -> 0 bytes
+ 4 files changed, 1 insertion(+), 2 deletions(-)
+
+commit f81203cde864af1a1fea81a438e4f4effe928808
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 14:44:19 2009 +0200
+
+ [test] Add pdf reference image for mask-transformed-image
+
+ test/Makefile.am | 1 +
+ test/mask-transformed-image.pdf.ref.png | Bin 0 -> 3528 bytes
+ 2 files changed, 1 insertion(+)
+
+commit 9d538ef337e9ca1600f842cd2164ff5e6629090a
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 14:42:32 2009 +0200
+
+ [test] Update argb32 and rgb24 pdf reference image for mask
+
+ test/mask.pdf.argb32.ref.png | Bin 9903 -> 9918 bytes
+ test/mask.pdf.rgb24.ref.png | Bin 8735 -> 8745 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+commit 97def877bb1c290735875061118bd795b9b83215
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 14:18:30 2009 +0200
+
+ [test] Update pdf reference image for surface-pattern
+
+ Remove also argb32 and rgb24 pdf reference images.
+
+ test/Makefile.am | 2 --
+ test/surface-pattern.pdf.argb32.ref.png | Bin 14808 -> 0 bytes
+ test/surface-pattern.pdf.ref.png | Bin 14791 -> 14800 bytes
+ test/surface-pattern.pdf.rgb24.ref.png | Bin 14808 -> 0 bytes
+ 4 files changed, 2 deletions(-)
+
+commit 8a6bdc63c1491dc77e8d9e192b9e44d9ff2e3c9b
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 13:33:07 2009 +0200
+
+ [test] Update argb32 and rgb24 pdf reference image for text-pattern
+
+ test/text-pattern.pdf.argb32.ref.png | Bin 2151 -> 2334 bytes
+ test/text-pattern.pdf.rgb24.ref.png | Bin 508 -> 1915 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+commit b46ba7aa33ba604628f1c94449019895b1d7ef82
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 13:25:39 2009 +0200
+
+ [test] Update pdf reference image for text-transform
+
+ test/text-transform.pdf.ref.png | Bin 3796 -> 5586 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit 9bc7ab980d6e834dacaf4f48f199e8c95cfba94e
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 12:09:50 2009 +0200
+
+ [test] Update pdf reference image for filter-nearest-transformed
+
+ Remove also argb32 and rgb24 pdf reference images.
+
+ test/Makefile.am | 2 --
+ test/filter-nearest-transformed.pdf.argb32.ref.png | Bin 488 -> 0 bytes
+ test/filter-nearest-transformed.pdf.ref.png | Bin 548 -> 552 bytes
+ test/filter-nearest-transformed.pdf.rgb24.ref.png | Bin 488 -> 0 bytes
+ 4 files changed, 2 deletions(-)
+
+commit 27938f7e3ff357e5fe8a05e547cf83dbad7551ef
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 12:04:06 2009 +0200
+
+ [test] Update pdf reference image for filter-nearest-offset
+
+ Remove also argb32 and rgb24 pdf reference images.
+
+ test/Makefile.am | 2 --
+ test/filter-nearest-offset.pdf.argb32.ref.png | Bin 4295 -> 0 bytes
+ test/filter-nearest-offset.pdf.ref.png | Bin 4537 -> 997 bytes
+ test/filter-nearest-offset.pdf.rgb24.ref.png | Bin 4295 -> 0 bytes
+ 4 files changed, 2 deletions(-)
+
+commit e6576e8912196607fdd3613c6924e26c2ce7a951
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 11:56:18 2009 +0200
+
+ [test] Update argb32 pdf reference image for clip-operator
+
+ test/clip-operator.pdf.argb32.ref.png | Bin 11604 -> 11603 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit 13d9374ec13c62233312beb0feb9a47531aec2e3
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Mon Jun 29 17:36:47 2009 +0200
+
+ [test] Remove PDF reference images for scale-source-surface-paint
+
+ It works with current poppler now
+
+ test/Makefile.am | 2 --
+ test/scale-source-surface-paint.pdf.argb32.ref.png | Bin 182 -> 0 bytes
+ test/scale-source-surface-paint.pdf.rgb24.ref.png | Bin 198 -> 0 bytes
+ 3 files changed, 2 deletions(-)
+
+commit 3710c4184c2e87368dde5ccb25f3648b861b6059
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Mon Jun 29 17:32:54 2009 +0200
+
+ [test] Remove PDF reference images for paint-with-alpha
+
+ It works with current poppler now
+
+ test/Makefile.am | 1 -
+ test/paint-with-alpha.pdf.ref.png | Bin 466 -> 0 bytes
+ 2 files changed, 1 deletion(-)
+
+commit 8162acd81a898247f19054a136af95062e3b0e91
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Mon Jun 29 12:42:52 2009 +0200
+
+ [test] Remove PDF reference images for paint-source-alpha
+
+ It works with current poppler now
+
+ test/Makefile.am | 2 --
+ test/paint-source-alpha.pdf.argb32.ref.png | Bin 471 -> 0 bytes
+ test/paint-source-alpha.pdf.ref.png | Bin 473 -> 0 bytes
+ 3 files changed, 2 deletions(-)
+
+commit 1e1f4fd0920cb2b0882137b4cc500dcbae42d2dc
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Tue Jun 30 11:05:50 2009 +0200
+
+ [test] Use poppler_page_render with a transparent surface
+
+ Instead of using an opaque surface filled in white, use a transparent
+ surface and fill it in white by using CAIRO_OPERATOR_DEST_OVER after
+ rendering.
+
+ test/any2ppm.c | 9 +++++----
+ test/pdf2png.c | 9 +++++----
+ 2 files changed, 10 insertions(+), 8 deletions(-)
+
+commit 700a555d194a20c00df69b963cdc5b6153e162a4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 1 19:41:42 2009 +0100
+
+ [surface] Expose a SURFACE_TYPE_MISMATCH nil object
+
+ Gah, yet more error object bloat. Must finish cairo-object.
+
+ src/cairo-surface.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 8f4611a94bda407b5944520b95599441a4ff5327
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 1 19:39:57 2009 +0100
+
+ [perf] Fix use-after-free when retrieving error line number
+
+ We find out the status on destroying the script and then attempt to query
+ the defunct script for more info about the error. Wrong.
+
+ perf/cairo-perf-trace.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit 7c160dea5456b783d9b04b5c11bbacb9a89fa031
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 1 10:12:50 2009 +0100
+
+ [perf] Unbreak cairo-perf-diff builder
+
+ perf/cairo-perf-diff | 19 ++++++++++---------
+ 1 file changed, 10 insertions(+), 9 deletions(-)
+
+commit 3d88f99668308315db759af3dac789973caa8eae
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jul 1 09:57:56 2009 +0100
+
+ [perf] Enable cairo-perf-trace in cairo-perf-diff
+
+ Only as a --trace option for now.
+
+ perf/cairo-perf-diff | 51 ++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 36 insertions(+), 15 deletions(-)
+
+commit 1564d67d63618e12c58dc1d65c7e68505950e4d4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 30 22:22:39 2009 +0100
+
+ [perf] Exclude the xlib-reference target from cairo-perf
+
+ perf/cairo-perf-trace.c | 3 ++-
+ perf/cairo-perf.c | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+commit e5b4f78bff20903fef5f55a0fcd026590ea444a4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 30 22:12:50 2009 +0100
+
+ [boilerplate] Only include null-test-surface >= cairo-1.9.3
+
+ boilerplate/cairo-boilerplate-test-surfaces.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+commit e0bdbb437ee699d6f75df34494a6e290dc55aa39
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 30 22:04:01 2009 +0100
+
+ [xlib] Remove redundant checks for src_picture==None
+
+ Before attempting to even set the attributes on the source Picture, we
+ ensure that it exists. So remove the redundant safe-guards to do nothing
+ if it doesn't exist.
+
+ src/cairo-xlib-surface.c | 12 +-----------
+ 1 file changed, 1 insertion(+), 11 deletions(-)
+
+commit b7f68d3518e25fb02c9d36d14de9dc0c905ffe8f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 30 20:46:12 2009 +0100
+
+ [perf] Enable trace directory recursion.
+
+ I have an idea to categorise traces within their own subdirectories and so
+ for convenience added path walking to cairo-perf-trace. Principally this
+ should allow for forests of symlinks of all types.
+
+ perf/cairo-perf-trace.c | 104 +++++++++++++++++++++++++++++++-----------------
+ perf/cairo-perf.h | 1 +
+ 2 files changed, 68 insertions(+), 37 deletions(-)
+
+commit 6102dd0c1c26e289ad08d1cf0cc366e6298f5711
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 29 10:50:44 2009 +0100
+
+ [ft] Correct reference counting for implementation font face
+
+ We are expected to return a new reference from get_implementation(), and
+ failing to do so was causing use-after-frees (detected by the reference
+ counting checks).
+
+ src/cairo-ft-font.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit 4f745fbe3329a4fd5164c7bd7fe61c0395e8d1ee
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 29 10:49:51 2009 +0100
+
+ [test] Only run fallback-resolution for enabled targets
+
+ A secondary check that both activates CAIRO_TEST_TARGET and prevents a
+ NULL-deref with the null test surface.
+
+ test/fallback-resolution.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit d80f5580ef371a1d4b1746b4ad54d97274d2d6cd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 28 21:11:41 2009 +0100
+
+ [pattern] Mark _cairo_pattern_nil as static
+
+ Fixes check-def.sh failure.
+
+ src/cairo-pattern.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 758a18b354cefca841536c7d91f8f5758456f72f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 28 20:56:33 2009 +0100
+
+ [test] Timeout support for tests
+
+ Enforce that each test must render within 60 seconds or be considered to
+ have hit an infinite loop and be reported as a CRASH. The timeout value is
+ adjustable via CAIRO_TEST_TIMEOUT -- a value of 0 will disable.
+
+ build/configure.ac.system | 3 +++
+ test/cairo-test.c | 18 ++++++++++++++++++
+ test/cairo-test.h | 2 ++
+ 3 files changed, 23 insertions(+)
+
+commit f7021d8f3e59d1f7fa77135366bbbd6845dff684
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 28 20:41:04 2009 +0100
+
+ [script] Enable error handling for recursive scanners
+
+ It's conceivable that a script could execute another file and so we should
+ only setjmp on the first invocation.
+
+ util/cairo-script/cairo-script-private.h | 1 +
+ util/cairo-script/cairo-script-scanner.c | 15 ++++++++++++---
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+commit 963664727b4754f92a876c36557922821706f591
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 28 10:49:37 2009 +0100
+
+ [trace] Compile fix for --enable-script
+
+ Silly typo as pointed out by Hans Breuer <hans@breuer.org>.
+
+ util/cairo-trace/trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2ecafb025c8b15a86372b655e763d742a0f6ef85
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 28 10:09:01 2009 +0100
+
+ [script] Reuse glyph advance cache over multiple invocations
+
+ Store the metric cache as user-data on the scaled-font so that we can
+ retrieve it on future calls to show-glyphs and friends.
+
+ util/cairo-script/cairo-script-operators.c | 413 +++++++++--------------------
+ 1 file changed, 131 insertions(+), 282 deletions(-)
+
+commit 663da31bbe7cf6021c8d59a4d4ddd2702cfe860f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 28 01:17:13 2009 +0100
+
+ [boilerplate] Propagate original error from create_from_png()
+
+ During cairo_boilerplate_get_image_surface_from_png() the original status
+ returned by cairo_image_surface_create_from_png() could have been masked
+ by inappropriate context construction when flattening or extracting.
+ Simply check after creating the surface from the png file, and return
+ immediately if in error.
+
+ boilerplate/cairo-boilerplate.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 2bbb69420289aa372512602db312611369e70f54
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 28 00:57:10 2009 +0100
+
+ [test] Disable fallback16 testing
+
+ Only use the RGB16_565 surface as a source during testing. We presume that
+ pixman is itself rigorously tested and the output is equivalent to the
+ image surface. Enabling this test surface would require too large of a
+ burden to maintain the reference images for the 16-bit backend.
+
+ boilerplate/cairo-boilerplate.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 34ac8673b2d51edeb0b29a4949d7d16c3d07a790
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 28 00:48:05 2009 +0100
+
+ [script] Use setjmp exception handling during scanning
+
+ Save ~5% of overhead by using longjmp on error to terminate scanning
+ instead of propagating the error, incurring lots of redundant error
+ checks.
+
+ util/cairo-script/cairo-script-interpreter.c | 14 +-
+ util/cairo-script/cairo-script-objects.c | 46 +---
+ util/cairo-script/cairo-script-private.h | 51 ++--
+ util/cairo-script/cairo-script-scanner.c | 390 +++++++++++++--------------
+ 4 files changed, 221 insertions(+), 280 deletions(-)
+
+commit 2b1ec7a4d87399824dacb9803627c9322b12d894
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 22:48:19 2009 +0100
+
+ [cairo] Report true error via pattern from cairo_pop_group()
+
+ Report the correct error via the returned pattern->status rather than
+ simply returning the NO_MEMORY nil object.
+
+ src/cairo-pattern.c | 4 ++--
+ src/cairo.c | 18 +++++++++++-------
+ src/cairoint.h | 4 +++-
+ 3 files changed, 16 insertions(+), 10 deletions(-)
+
+commit 5c3be3ece27b7cf6e4b1262ea18ac51b45c62389
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 22:40:15 2009 +0100
+
+ [cairo] Mark cr->status guard as unlikely
+
+ For correct operation, the context should never be in error, so mark the
+ error context as being unlikely to optimize the common path.
+
+ src/cairo.c | 199 +++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 97 insertions(+), 102 deletions(-)
+
+commit f3880283331f3bda374e24fd0e1de677d8d368a9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 20:18:18 2009 +0100
+
+ [gstate] Avoid temporary allocation for transformed patterns
+
+ Observe that patterns are not altered during an operation and so we are
+ safe to use the data from the original pattern without copying. (This is
+ enforced through the declaration that the backends operate on constant
+ patterns which are not allowed to be referenced or destroyed.)
+
+ src/cairo-gstate.c | 184 ++++++++++++++++------------------------------------
+ src/cairo-pattern.c | 31 +++++++++
+ src/cairoint.h | 4 ++
+ 3 files changed, 92 insertions(+), 127 deletions(-)
+
+commit 3759c7b34b662ccdc0486c68798aca0a6438ab7e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 19:38:30 2009 +0100
+
+ [perf] Enable the null-backend for trace replays.
+
+ perf/cairo-perf-trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8d4c704129132effa10fb9242239952c2f4b7721
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 19:34:20 2009 +0100
+
+ [ft] Cache the resolved font face
+
+ Keep the resolved font face alive whilst the default FcConfig remains
+ identical i.e. resolve the pattern again if the system configuration
+ changes (e.g. a new font is added or the rules are updated). This should
+ retain the benefits of lazily resolving font patterns whilst improving
+ performance by reducing the number of calls to FcFontMatch().
+
+ src/cairo-ft-font.c | 39 ++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 34 insertions(+), 5 deletions(-)
+
+commit ddadd41a6c3d6a7cdaa07373b24325f59d3436e3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 18:07:36 2009 +0100
+
+ [test] Remove broken PDF reference images for push-group
+
+ More XFAIL reference images that are now invalidated by changes in
+ poppler.
+
+ test/Makefile.am | 3 ---
+ test/push-group.pdf.argb32.ref.png | Bin 2722 -> 0 bytes
+ test/push-group.pdf.ref.png | Bin 2807 -> 0 bytes
+ test/push-group.pdf.rgb24.ref.png | Bin 2740 -> 0 bytes
+ 4 files changed, 3 deletions(-)
+
+commit 4d233fa4a6a16d400ba959f4c1c5d84fdd26d8fc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 18:04:37 2009 +0100
+
+ [test] Remove invalid smask PDF reference images
+
+ These need to be recorded using an XFAIL reference. In the meantime, as
+ the poppler output has changed, just remove all the invalid PDF reference
+ images.
+
+ test/Makefile.am | 19 -------------------
+ test/smask-fill.pdf.argb32.ref.png | Bin 1909 -> 0 bytes
+ test/smask-fill.pdf.ref.png | Bin 1075 -> 0 bytes
+ test/smask-fill.pdf.rgb24.ref.png | Bin 1909 -> 0 bytes
+ test/smask-image-mask.pdf.argb32.ref.png | Bin 1651 -> 0 bytes
+ test/smask-image-mask.pdf.ref.png | Bin 421 -> 0 bytes
+ test/smask-image-mask.pdf.rgb24.ref.png | Bin 1651 -> 0 bytes
+ test/smask-mask.pdf.argb32.ref.png | Bin 4398 -> 0 bytes
+ test/smask-mask.pdf.ref.png | Bin 3731 -> 0 bytes
+ test/smask-mask.pdf.rgb24.ref.png | Bin 4398 -> 0 bytes
+ test/smask-paint.pdf.argb32.ref.png | Bin 4496 -> 0 bytes
+ test/smask-paint.pdf.ref.png | Bin 3800 -> 0 bytes
+ test/smask-paint.pdf.rgb24.ref.png | Bin 4496 -> 0 bytes
+ test/smask-stroke.pdf.argb32.ref.png | Bin 1417 -> 0 bytes
+ test/smask-stroke.pdf.ref.png | Bin 449 -> 0 bytes
+ test/smask-stroke.pdf.rgb24.ref.png | Bin 1417 -> 0 bytes
+ test/smask-text.pdf.ref.png | Bin 1806 -> 0 bytes
+ test/smask.pdf.argb32.ref.png | Bin 4496 -> 0 bytes
+ test/smask.pdf.ref.png | Bin 3800 -> 0 bytes
+ test/smask.pdf.rgb24.ref.png | Bin 4496 -> 0 bytes
+ 20 files changed, 19 deletions(-)
+
+commit 86624627e4b196a78cfd9bd642299441e838e0f2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 17:53:18 2009 +0100
+
+ [test] Add group-unaligned
+
+ Test case for:
+ Bug 22441 -- Unexpected shift with push_group and pop_group
+ https://bugs.freedesktop.org/show_bug.cgi?id=22441
+
+ This is a test that demonstrates the error in the pdf backend when using
+ groups on surfaces with non-integer sizes. In order to create such a
+ surface, we need to update the boilerplate to use doubles instead of
+ integers when specifying the surface size.
+
+ boilerplate/cairo-boilerplate-beos-private.h | 16 +++---
+ boilerplate/cairo-boilerplate-beos.cpp | 8 +--
+ boilerplate/cairo-boilerplate-directfb-private.h | 8 +--
+ boilerplate/cairo-boilerplate-directfb.c | 8 +--
+ boilerplate/cairo-boilerplate-glitz-agl.c | 8 +--
+ boilerplate/cairo-boilerplate-glitz-glx.c | 10 ++--
+ boilerplate/cairo-boilerplate-glitz-private.h | 24 ++++-----
+ boilerplate/cairo-boilerplate-glitz-wgl.c | 8 +--
+ boilerplate/cairo-boilerplate-pdf-private.h | 8 +--
+ boilerplate/cairo-boilerplate-pdf.c | 14 ++---
+ boilerplate/cairo-boilerplate-ps-private.h | 16 +++---
+ boilerplate/cairo-boilerplate-ps.c | 30 +++++------
+ boilerplate/cairo-boilerplate-qt-private.h | 10 ++--
+ boilerplate/cairo-boilerplate-qt.cpp | 8 +--
+ boilerplate/cairo-boilerplate-quartz-private.h | 8 +--
+ boilerplate/cairo-boilerplate-quartz.c | 8 +--
+ boilerplate/cairo-boilerplate-script-private.h | 8 +--
+ boilerplate/cairo-boilerplate-script.c | 12 ++---
+ boilerplate/cairo-boilerplate-svg-private.h | 16 +++---
+ boilerplate/cairo-boilerplate-svg.c | 30 +++++------
+ .../cairo-boilerplate-test-surfaces-private.h | 40 +++++++-------
+ boilerplate/cairo-boilerplate-test-surfaces.c | 40 +++++++-------
+ boilerplate/cairo-boilerplate-win32-printing.c | 8 +--
+ boilerplate/cairo-boilerplate-win32-private.h | 16 +++---
+ boilerplate/cairo-boilerplate-win32.c | 8 +--
+ boilerplate/cairo-boilerplate-xcb-private.h | 8 +--
+ boilerplate/cairo-boilerplate-xcb.c | 8 +--
+ boilerplate/cairo-boilerplate-xlib-private.h | 24 ++++-----
+ boilerplate/cairo-boilerplate-xlib.c | 45 +++++++++-------
+ boilerplate/cairo-boilerplate.c | 10 ++--
+ boilerplate/cairo-boilerplate.h | 8 +--
+ test/Makefile.am | 7 +++
+ test/Makefile.sources | 1 +
+ test/cairo-test.c | 2 +-
+ test/cairo-test.h | 4 +-
+ test/group-unaligned.c | 60 +++++++++++++++++++++
+ test/group-unaligned.pdf.ref.png | Bin 0 -> 414 bytes
+ test/group-unaligned.ps.ref.png | Bin 0 -> 332 bytes
+ test/group-unaligned.svg.argb32.ref.png | Bin 0 -> 524 bytes
+ test/group-unaligned.svg.rgb24.ref.png | Bin 0 -> 434 bytes
+ test/group-unaligned.xlib-fallback.ref.png | Bin 0 -> 496 bytes
+ test/group-unaligned.xlib.ref.png | Bin 0 -> 466 bytes
+ 42 files changed, 312 insertions(+), 235 deletions(-)
+
+commit c506ddb58612c69b80b08be3a6d14c5bcc1ac21f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 27 16:54:37 2009 +0100
+
+ [pdf] Restore original surface size after emitting group mask
+
+ A trivial fix to reset the original surface size after emitting the group.
+ The annoying aspect is that this should have been caught by the test suite.
+ Alas, no. A gentle reminder that simple line coverage is insufficient. :(
+
+ src/cairo-pdf-surface.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit f8a2665840f12ae48798b0ffca49681e276823ba
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 26 07:22:49 2009 +0100
+
+ [cairo] Trivial code tidy
+
+ src/cairo.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c7cf5317f58b382c47ad2d1b4d8db3133b0c4d4b
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Wed Jun 24 23:33:44 2009 +0100
+
+ [test] Fix Makefile.am for Solaris make.
+
+ Sun's make doesn't like conditional assignments to variables
+ in dependencies in the form of "target: VAR+=VAL". This
+ construct was used to force the test suite run in the foreground
+ in the check-valgrind target. It is replaced by a more
+ explicit set of the CAIRO_TEST_MODE environment variable.
+
+ test/Makefile.am | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit b82e7740c102afa7b9184b2556b887cf7a0211b0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 21 22:25:08 2009 +0100
+
+ [atomic] Silence compiler warnings by defining an intptr_t
+
+ Evaulate the integer sizes during configure to find one of the exact same
+ size as a void* to use in the conversion of the atomic ptr cmpxchg to an
+ atomic int cmpxchg.
+
+ build/configure.ac.system | 3 +++
+ src/cairo-atomic-private.h | 19 ++++++++++++-------
+ 2 files changed, 15 insertions(+), 7 deletions(-)
+
+commit a2d4fb50092c0cbb31a5df1bca9111957238139b
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun Jun 21 14:09:10 2009 +0100
+
+ [test] Fix a typo in the _POSIX_SOURCE version number.
+
+ I hope POSIX isn't around in 20000 AD!
+
+ test/cairo-test.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 80990c7f729a666fc646182a36ffd311d7396a1a
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun Jun 21 14:02:46 2009 +0100
+
+ [atomic] Use an integer __sync_val_compare_and_swap() for pointer CAS.
+
+ Fix an implicit pointer/integer cast in _cairo_atomic_ptr_cmpxchg()
+ when building with LLVM/clang.
+
+ The Intel synchronization primitives __sync_val_compare_and_swap()
+ are only defined by Intel for types int, long, long long and their
+ unsigned variants. This patch uses one of those for
+ _cairo_atomic_ptr_cmpxchg() instead of relying on a gcc extension of
+ __sync_val_compare_and_swap() to pointer types.
+
+ src/cairo-atomic-private.h | 9 ++++++++-
+ src/cairo-atomic.c | 6 +++++-
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+commit d0c1c9282164bffb76f7419873e93608dc6d9876
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 21 10:08:21 2009 +0100
+
+ [boilerplate] Implement a reference xlib surface
+
+ Create an xlib target that uses a separate display, specified by
+ CAIRO_REFERENCE_DISPLAY, that can be used as a reference implementation
+ for the normal display. So this can be used by cairo-trace-test to create
+ a reference surface that mimics exactly the true surface, but if it
+ targets an Xvfb display will be entirely rendered in software. If
+ CAIRO_REFERENCE_DISPLAY is not set, the reference surface degrades into an
+ xlib-fallback surface which is a close approximation (but still has
+ behavioural differences).
+
+ boilerplate/cairo-boilerplate-xlib-private.h | 11 ++++++
+ boilerplate/cairo-boilerplate-xlib.c | 51 ++++++++++++++++++++++++++++
+ boilerplate/cairo-boilerplate.c | 14 ++++++--
+ 3 files changed, 74 insertions(+), 2 deletions(-)
+
+commit d2244053dcca687a878b1008e3a8219f11d7bd0d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 21 08:58:08 2009 +0100
+
+ [perf] Force rebuild if make fails
+
+ The build system has a singular failure whereby if a backend disappears
+ between on compile and the next, automake will fail to reconstruct the
+ Makefiles - resulting in a broken build. Attempt to fix this by removing
+ the build dir and recloning, which should work for any corrupt caches but
+ obviously will fail again at a true build failure.
+
+ perf/cairo-perf-diff | 63 ++++++++++++++++++++++++++++++----------------------
+ 1 file changed, 37 insertions(+), 26 deletions(-)
+
+commit ef0d307d549b9cc7a98cdce2ee4bae40d0fd0bd1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 21 08:43:55 2009 +0100
+
+ [perf] Need to version surface types
+
+ As cairo-perf-diff will execute the current cairo-perf against historical
+ revisions, any introduced api must be protect in order to compile on old
+ versions.
+
+ perf/cairo-perf-trace.c | 8 ++++++++
+ perf/cairo-perf.c | 6 ++++++
+ 2 files changed, 14 insertions(+)
+
+commit 44b72ba6d7bdcc5f4e431af178bc7c22f13e88e0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 20 13:09:46 2009 +0100
+
+ [perf] Add a non-build mode to graph
+
+ Add --show to cairo-perf-graph just to graph perf files that currently
+ exist and not build the missing cases.
+
+ perf/cairo-perf-graph | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit d4dd6fcf3a4e0d7426657592ebb3d65a2ae0bc4a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 20 13:08:50 2009 +0100
+
+ [perf] Show speedup/slowdownn labels on graph
+
+ Add labels show that it is clear which direction is faster on the graph.
+
+ perf/cairo-perf-graph-widget.c | 166 +++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 153 insertions(+), 13 deletions(-)
+
+commit b71b6ecb59bf83605bb2bb10e3f8acd7dd950242
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 21:21:02 2009 +0100
+
+ [test] Fix the image compare
+
+ Oh, it's a bad sign when I can't even correctly compare a bunch of pixels.
+
+ test/cairo-test-trace.c | 101 +++++++++++++++++++++++++++++++++++++++++-------
+ 1 file changed, 86 insertions(+), 15 deletions(-)
+
+commit d544828934e479071fe5246fc0bdbbad33c097e8
+Author: M Joonas Pihlaja <rowan@sal.math.ualberta.ca>
+Date: Sat Jun 20 06:16:51 2009 -0600
+
+ [build] Look for libpng.pc as well when configuring.
+
+ The OpenBSD png package installs only libpng.pc and not
+ any of libpng{13,12,10}.pc.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5733d8d6c35e1a77513a49267a47f6caae68e829
+Author: M Joonas Pihlaja <rowan@sal.math.ualberta.ca>
+Date: Sat Jun 20 06:11:44 2009 -0600
+
+ [build] Remove a level of quoting from CAIRO_PARSE_VERSION.
+
+ The m4 that comes with OpenBSD gets confused by the extra quoting
+ applied to the version number argument when building the
+ bodies of the cairo_version_{major,minor,micro} macros using
+ m4_bpatsubst(). Since we're making sure that the argument is always
+ a number, we can safely use the unquoted \2 body rather than \[\2\].
+
+ acinclude.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 3bad3efaa2fa00275c1d27c95ccbf1fcdfdfef3e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 19:09:03 2009 +0100
+
+ [test] Add cairo-test-trace to .gitignore
+
+ test/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 62dc0ae46c26652da9a76b851bab594020020115
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 19:03:17 2009 +0100
+
+ [cairo] Offset the current path when pushing/popping groups.
+
+ We need to translate the path in order to compensate for the device offset
+ applied to the group surface when pushing and popping. (The path is
+ transformed to device space on creation, and so needs recomputing for the
+ new device.)
+
+ src/cairo.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+commit 851c8839622619779c9169299e3efccd108d0395
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 19:00:39 2009 +0100
+
+ [test] Add group-clip
+
+ Larry Ewing found an ancient and nasty bug whereby a path was not
+ corrected whilst pushing and popping groups.
+
+ AUTHORS | 1 +
+ test/Makefile.am | 1 +
+ test/Makefile.sources | 1 +
+ test/group-clip.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++
+ test/group-clip.ref.png | Bin 0 -> 191 bytes
+ 5 files changed, 60 insertions(+)
+
+commit 0a34abace781976b92287dd07daa2b41e168c4f6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 18:40:43 2009 +0100
+
+ [test] Experiment with reference targets
+
+ Specify another boilerplate target to use as the reference for this
+ target. We then use this in cairo-test-trace in preference to using the
+ image surface. Still not perfect, though the framework is improving.
+
+ boilerplate/cairo-boilerplate.c | 254 ++++++++++++++++++++++------------------
+ boilerplate/cairo-boilerplate.h | 5 +
+ test/Makefile.am | 6 +-
+ test/cairo-test-trace.c | 229 ++++++++++++++++++++++++++++++------
+ 4 files changed, 341 insertions(+), 153 deletions(-)
+
+commit cec8579348fb39ca879285bebfb1ee65cbae502d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 16:09:26 2009 +0100
+
+ [xlib] Remove redundant code to query a xrender_format from a visual
+
+ We always query an xrender_format for a Visual upon surface creation, so
+ checking again in create_similar() is redundant. (It also interferes with
+ disabling XRender...)
+
+ src/cairo-xlib-surface.c | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+commit dd842a2bed1568000c9727fc35d4683db349e506
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 14:59:59 2009 +0100
+
+ [boilerplate] Missing static on pdf user data key.
+
+ boilerplate/cairo-boilerplate-pdf.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2da906f4764d5fe7cbb08ec238b01e2a03696899
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Jun 19 18:44:23 2009 +0300
+
+ [script] Include unistd.h if we're twiddling file descriptors.
+
+ Including sys/mman.h doesn't pull in unistd.h on Solaris 9 so
+ we have to include it explicitly.
+
+ util/cairo-script/cairo-script-operators.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+commit 1b6dbcbbebf18d6239fcc618f3389e9c0fc981f3
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Jun 19 18:39:53 2009 +0300
+
+ [trace] Compile without fontconfig.
+
+ Use CAIRO_HAS_FC_FONT to decide whether to export
+ cairo_ft_font_face_create_for_pattern() or not.
+
+ util/cairo-trace/trace.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit d9b5a98a78b712a2ad64408fa47ba6aa34e29f1f
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Jun 19 18:34:34 2009 +0300
+
+ [build] Require fontconfig >= 2.2.95 if we're using it at all.
+
+ We require at least fontconfig 2.2.95 when we're using
+ fontconfig because we depend on the FcResultOutOfMemory
+ error code introduced in that version.
+
+ configure.ac | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 84e587bbfad6586e41fac86c4d19005418115ac5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 14:41:39 2009 +0100
+
+ [trace] Prevent a child process from writing to the same file
+
+ After opening a specific file or fd for ourselves, reset the
+ CAIRO_TRACE_FD to point to an invalid fd in order to prevent any child
+ processes (who inherit our environment) from attempting to trace cairo
+ calls. If we allow them to continue, then the two traces will intermix
+ and be unreplayable.
+
+ util/cairo-trace/trace.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit 18edea36ba6604e4cbdbda1ed56e6117b5768d94
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 14:14:32 2009 +0100
+
+ [perf] Report line of error during trace
+
+ Query the number of new lines processed so far and report that on hitting
+ an error.
+
+ perf/cairo-perf-trace.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 55721d380d5a75a9448f522f9ad48cd18a6c2f65
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 14:13:34 2009 +0100
+
+ [script] Report line number
+
+ Count the number of newlines processed in the trace and provide an API for
+ the user to query.
+
+ util/cairo-script/cairo-script-interpreter.c | 6 ++++++
+ util/cairo-script/cairo-script-interpreter.h | 3 +++
+ util/cairo-script/cairo-script-private.h | 2 ++
+ util/cairo-script/cairo-script-scanner.c | 12 +++++++++---
+ 4 files changed, 20 insertions(+), 3 deletions(-)
+
+commit 030ef4ca0023166fcb82f0a0b1512eb31beb3385
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 11:56:14 2009 +0100
+
+ [trace] Change the threshold at which pixel data is immediately copied
+
+ Embed the pixels for images less than 32*32 as this catches most icons
+ which are frequently uploaded, but is still an unlikely size for a
+ destination image surface.
+
+ util/cairo-trace/trace.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit d3330d7beba0e0d2543e40a0e0e4d81ea9a78b45
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 19 11:15:30 2009 +0100
+
+ [ft] Substitute twin if there are no fonts
+
+ Fixes bug 22356 -- Spurious "out of memory" error on system without fonts
+ https://bugs.freedesktop.org/show_bug.cgi?id=22356
+
+ If FcFontMatch() fails, then it means that there are no fonts available on
+ the system (or it may have been a malloc error, we have no way of telling).
+ Instead of report NO_MEMORY and disabling all drawing, one of the
+ rationales for including a builtin font was so that we could continue even
+ in the face of this error and show *something* to the user. (This being a
+ last resort (and especially important for demos!) and hopefully easier to
+ diagnose than no output at all.)
+
+ src/cairo-font-face-twin.c | 75 +++++++++++++++++++++++++++++++++++-----------
+ src/cairo-ft-font.c | 6 +++-
+ src/cairoint.h | 3 ++
+ 3 files changed, 66 insertions(+), 18 deletions(-)
+
+commit 6d8b353658da1ad973e3bda9e89799a7467d8182
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Jun 19 02:37:19 2009 +0300
+
+ [spans] Squash a compiler warning when creating error objects.
+
+ Handle the new CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED status code
+ in the switch/case of the ..._create_in_error() functions for
+ creating span renderers or scan converters.
+
+ src/cairo-spans.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 7651227d3dfe4ebf40e95a72106957a9ec51dd3e
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Jun 19 02:03:39 2009 +0300
+
+ Revert "[test] Make the xlib-fallback use the image refs."
+
+ This reverts commit 903b39c30448d62e2cbf9d075c5256a333bd5d8f.
+
+ The xlib-fallback actually renders mostly via traps at the moment,
+ so staying with xlib refs is the right thing to do.
+
+ boilerplate/cairo-boilerplate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 729457b174cb19f4e0750486caed9582c5708930
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sat May 2 23:30:02 2009 +0300
+
+ [test] Add trap rendered ref images for fill-image.
+
+ The fill code path for the xlib and fallback surfaces use trapezoids
+ rather than spans, so there's lots of differences due to antialising
+ differences at the edge of the fill. This patch adds a ref image
+ for the xlib and test-fallback surfaces.
+
+ test/fill-image.test-fallback.ref.png | Bin 0 -> 1462 bytes
+ test/fill-image.xlib.ref.png | Bin 0 -> 1462 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+commit 8e7f667abb94262b63b4fd589f5ee06cb8974aaf
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sat May 2 19:09:27 2009 +0300
+
+ [test] Mark scale-offset tests as XFAIL for image, xlib-fallback.
+
+ The scale-offset tests trigger a loss-of-precision bug when
+ converting double matrices from cairo to pixman format.
+
+ http://lists.cairographics.org/archives/cairo/2008-November/015671.html
+
+ test/Makefile.am | 2 ++
+ test/scale-offset-image.c | 2 +-
+ test/scale-offset-similar.c | 2 +-
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
+commit c12533b1358c9e5c1c3440efca4dc44ba2de9f6d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 18 17:46:14 2009 +0100
+
+ [pattern] Add _cairo_pattern_fini_snapshot
+
+ Symmetric operation to _cairo_pattern_init_snapshot() this exists simply
+ to break the circular reference between the meta-surface and snapshot-cow.
+
+ src/cairo-meta-surface.c | 24 ++++++++++++------------
+ src/cairo-pattern.c | 17 +++++++++++++++++
+ src/cairoint.h | 3 +++
+ 3 files changed, 32 insertions(+), 12 deletions(-)
+
+commit 2213c447373b600c1583b2edd24775c5c031231c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 18 17:14:53 2009 +0100
+
+ [svg] Break circular snapshot reference by explicit finish
+
+ The svg backend snapshots the meta surface which because of snapshot-cow
+ creates a circular reference back to the creator. So in order to break the
+ circular reference when we have finished with the snapshot, we need to
+ call cairo_surface_finish() in addition to simply destroying the surface.
+
+ src/cairo-svg-surface.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit cd9eef1aad87558d3f2d47cfcfa2f5b9b254692c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 18 16:42:56 2009 +0100
+
+ [scaled-font] Check the MRU font before resolving the implementor
+
+ This should hide most of the overhead of resolving a frequently used toy font.
+
+ src/cairo-scaled-font.c | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+commit 5ad64dfda26f97f243f13e9b766567a30fda67a9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 18 16:39:02 2009 +0100
+
+ [test] Add the sha1sum of the required fonts
+
+ (Note, I think these are currently out-of-date... But it will serve as a
+ useful reminder to verify and update them in future.)
+
+ test/README | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+commit 3063f0f44c61869bc6bb07d46bf881f1558ac015
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 18 16:33:12 2009 +0100
+
+ [scaled-font-subset] Check for matching font-face implementors
+
+ Catch toy and user fonts which may have different font-faces for their
+ implementation than the original ones they were created with.
+
+ src/cairo-scaled-font-subsets.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 6e78c94615e407d72d4778d5558dc218e0402cbc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 18 16:30:41 2009 +0100
+
+ [test] Move calls to the getters from out of the innermost loops.
+
+ Tidy the code slightly by removing excess and unsightly calls to
+ cairo_test_get_context() and cairo_get_scaled_font().
+
+ test/show-glyphs-many.c | 19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 deletions(-)
+
+commit 3da32e35afa57533379c3de35459f23aef7c3d04
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 18 15:31:27 2009 +0100
+
+ [analysis] Restore nops for the analysis null surface
+
+ Joonas reported that adding the extra routines to the null-surface as used
+ by the analysis surface broke user-fonts. So create a separate null
+ backend to be exported via the test-null surface.
+
+ src/cairo-analysis-surface.c | 57 ++--------------
+ src/test-null-surface.c | 157 ++++++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 161 insertions(+), 53 deletions(-)
+
+commit c0e01d9cd71bd958e1b31a03cea4c08a1bdf4926
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 18 14:32:53 2009 +0100
+
+ [xlib] Improve GC caching efficacy
+
+ Shrink the overall size of the per-screen GC cache, but allow multiple GCs
+ per depth, as it quite common to need up to two temporary GCs along some
+ drawing paths. Decrease the number of GCs we obtain in total by returning
+ clean (i.e. a GC without a clip set) back to the screen pool after use.
+ Compensate for the increased number of put/get by performing the query
+ using atomic operations where available. So overall we see a dramatic
+ reduction on the numbers of XCreateGC and XFreeGC, of even greater benefit
+ for RENDER-less servers.
+
+ src/cairo-xlib-private.h | 11 +--
+ src/cairo-xlib-screen.c | 200 +++++++++++++++++++++++++++++++++++------------
+ src/cairo-xlib-surface.c | 58 +++++++++-----
+ 3 files changed, 197 insertions(+), 72 deletions(-)
+
+commit 7f238f542441cc5912d14e5c6f9c49ffd0b83fad
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Jun 18 17:13:13 2009 -0400
+
+ Use the scanline rasterizer in the win32 backend.
+
+ Brings http://people.mozilla.com/~jmuizelaar/world-map.html from 8fps to 13fps
+ in Vista on a Mac Mini
+
+ src/cairo-win32-surface.c | 146 +++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 144 insertions(+), 2 deletions(-)
+
+commit d066154e62d6b4ecad15e0eef431aa2f4a56fecb
+Author: Jeff Muizelaar <jeff@infidigm.net>
+Date: Tue Jun 16 15:55:53 2009 -0400
+
+ Factor out _cairo_image_surface_span_render_row()
+
+ This allows other backends use the same function for rendering rows.
+ More specifically, I intend to use this with the win32-backend.
+
+ src/cairo-image-surface.c | 36 +++++++++++++++++++++++-------------
+ src/cairoint.h | 6 ++++++
+ 2 files changed, 29 insertions(+), 13 deletions(-)
+
+commit fd142d0a6e21c492624ca8bc5019d89b0d7c5457
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Jun 18 16:14:50 2009 +0100
+
+ [shave] Robuster usage of the test shell built-in.
+
+ Solaris 9 confuses shave, resulting in an empty variable.
+ This patch papers over the resulting build failure from
+ the test shell built-in being called with an empty argument
+ which was unquoted.
+
+ build/shave.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9ecee571c12e4d1645d9db2929280c9b35b1aad4
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Jun 18 16:09:31 2009 +0100
+
+ [test/build] Don't test Freetype font stuff without Fontconfig.
+
+ Most Freetype hitting tests require Fontconfig to find
+ them some fonts.
+
+ test/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 742b1ad4b069653a99fc6bd4510f2b6abb6abf95
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun May 24 23:41:28 2009 +0100
+
+ [test] Fix checking of the fenv.h include.
+
+ This adds a configure check for fenv.h and makes
+ invalid-matrix.c check for it with HAVE_FENV_H instead
+ of HAVE_FEDISABLEEXCEPT -- turns out Solaris doesn't
+ have fedisableexcept(), but it does have feclearexcept().
+
+ The same issue appears on OSX and was fixed in
+ ab86662ab499e1f29c0f8c4248771e730c281e3f. This patch
+ adds some configure magic.
+
+ build/configure.ac.system | 2 +-
+ test/invalid-matrix.c | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 75f1d11d93236b19d06515b8ed2baf612b0767ab
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun May 24 21:28:04 2009 +0300
+
+ [test] Fallback to HUGE_VAL in place of INFINITY in invalid-matrix.c.
+
+ GCC 3.4.3 on OpenSolaris does not recognise INFINITY. Use HUGE_VAL
+ instead for every compiler instead of just MSVC.
+
+ test/invalid-matrix.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit d1994d1ac292cbc896cffd24094ddfa5f2b1e8a9
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun May 24 23:46:13 2009 +0300
+
+ [test/any2ppm] Daemonize without BSD's daemon().
+
+ Solaris libc doesn't provide daemon() so implement
+ any2ppm daemon's detaching without it.
+
+ test/Makefile.am | 2 +-
+ test/any2ppm.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ 2 files changed, 58 insertions(+), 6 deletions(-)
+
+commit aafff0b9528952fbbe9d04a70bf8c76ee701743f
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun May 24 23:50:03 2009 +0300
+
+ [boilerplate] Check for connect() in libsocket.
+
+ Solaris requires -lsocket to be able to talk to
+ the any2ppm daemon over unix domain sockets.
+
+ boilerplate/Makefile.am | 2 ++
+ build/configure.ac.system | 4 ++++
+ 2 files changed, 6 insertions(+)
+
+commit c4c06931690226e12622a957bbb6d652134f78b0
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun May 24 16:14:33 2009 +0300
+
+ [test] Make test constructors without perl.
+
+ Remove the dependency on perl when building the test suite
+ by replacing the script which makes cairo-test-constructors.c
+ with a C program.
+
+ test/.gitignore | 1 +
+ test/Makefile.am | 9 ++-
+ test/Makefile.win32 | 7 +-
+ test/make-cairo-test-constructors.c | 153 +++++++++++++++++++++++++++++++++++
+ test/make-cairo-test-constructors.pl | 18 -----
+ 5 files changed, 165 insertions(+), 23 deletions(-)
+
+commit cdd27a8d4cc3486867cff4ce81bb4e064eb74d58
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun May 24 16:19:31 2009 +0300
+
+ [test] Never use gcc __attribute__ magic for constructors.
+
+ The configure test for __attribute__((constructor)) succeeds when
+ compiling with Sun Studio 12 on OpenSolaris but the attribute
+ is just ignored and has no actual effect. This causes the test
+ suite to not run any tests at all. With this patch we revert to
+ always using make-cairo-test-constructors.pl.
+
+ build/configure.ac.system | 10 ----------
+ test/Makefile.am | 7 ++-----
+ test/cairo-test-private.h | 2 --
+ test/cairo-test-runner.c | 2 --
+ test/cairo-test.h | 14 --------------
+ 5 files changed, 2 insertions(+), 33 deletions(-)
+
+commit 46eb56a99f72b364e3eabe46f9b2995ed0696bd3
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Jun 18 16:42:53 2009 +0300
+
+ [cairo-surface] Handle the all clipped out case for regions.
+
+ Explicitly handle a region clip which represents that the
+ entire surface is clipped out by passing in a temporary
+ empty region to the backend set_clip_region() method.
+ Previously the passed in region may have been NULL even
+ when clip->all_clipped = TRUE.
+
+ Fixes a bug tickled by the clip-all test case which was
+ brought to light by 394e139213e8f6692115c4c24818bfeb5e6d456a.
+
+ src/cairo-surface.c | 34 +++++++++++++++++++++++++++++++---
+ 1 file changed, 31 insertions(+), 3 deletions(-)
+
+commit 002264d572841f06930869a6c87fa2c987346dd6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 17 17:15:26 2009 +0100
+
+ [clip] Missing {} (coding style)
+
+ Carl spotted that I'd slipped in a little CODING_STYLE violation.
+
+ src/cairo-clip.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit bc87074185592eae367b6c091241957b94202fda
+Author: Nis Martensen <nis.martensen@web.de>
+Date: Tue Jun 16 23:27:20 2009 +0200
+
+ [path] Fix missing implicit move-to
+
+ When cairo_curve_to happens to start a new subpath (e.g., after a call
+ to cairo_new_sub_path()), it also needs to update the last_move_point.
+ Otherwise the new current point after a close_path() will be at an
+ unexpected position.
+
+ Therefore, call _cairo_path_fixed_move_to() explicitly.
+
+ AUTHORS | 1 +
+ src/cairo-path-fixed.c | 6 +++---
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+commit 3c5e57e694d1a8a0a48a66e0d61d8257c23a780e
+Author: Nis Martensen <nis.martensen@web.de>
+Date: Tue Jun 16 23:38:50 2009 +0200
+
+ [test] Verify current point position after subpath closure
+
+ Make sure cairo_close_path always takes the current point where it
+ should be.
+
+ test/Makefile.am | 1 +
+ test/Makefile.sources | 1 +
+ test/close-path-current-point.c | 95 ++++++++++++++++++++++++++++++++++
+ test/close-path-current-point.ref.png | Bin 0 -> 1916 bytes
+ 4 files changed, 97 insertions(+)
+
+commit 394e139213e8f6692115c4c24818bfeb5e6d456a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 17 14:46:53 2009 +0100
+
+ [clip] During _clip() limit the extracted traps to the current clip extents
+
+ By applying a tight _cairo_traps_limit() we can reduce the amount of work
+ we need to do when tessellating the path and extracting the trapezoids.
+
+ src/cairo-clip.c | 39 +++++++++++++++++++++++++++++++++++----
+ 1 file changed, 35 insertions(+), 4 deletions(-)
+
+commit 650b85ec7721fb1302284e3ca4b7f4b72358abed
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 17 14:19:19 2009 +0100
+
+ [clip] Avoid copying region within _cairo_clip_intersect_region()
+
+ Within _cairo_clip_intersect_region() we can simply assign the freshly
+ extracted traps-region if we previously had no region set.
+
+ src/cairo-clip.c | 12 +++---------
+ 1 file changed, 3 insertions(+), 9 deletions(-)
+
+commit 4bc89e224f74f24272c97dec93d70f0c4dd1963c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 16 15:13:46 2009 +0100
+
+ [NEWS] Add release notes from 1.8.8
+
+ NEWS | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 68 insertions(+), 1 deletion(-)
+
+commit 116c93cb7fe8ad55457c53b4652e8d3117581158
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 16 11:36:36 2009 +0100
+
+ [cairo] Remove instance of 'return free()'
+
+ Gah! This is a GCC-ism, so therefore it has to go.
+
+ src/cairo.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 22587f57bd5d1b4440d936cd4655a7e8fcebdf36
+Author: Vladimir Vukicevic <vladimir@pobox.com>
+Date: Sun Jun 14 20:43:05 2009 +0100
+
+ Import Qt backend by Mozilla
+
+ Written by Vladimir Vukicevic to enable integration with Qt embedded
+ devices, this backend allows cairo code to target QPainter, and use
+ it as a source for other cairo backends.
+
+ This imports the sources from mozilla-central:
+ http://mxr.mozilla.org/mozilla-central/find?text=&kind=text&string=cairo-qpainter
+ renames them from cairo-qpainter to cairo-qt, and integrates the patch
+ by Oleg Romashin:
+ https://bugs.freedesktop.org/attachment.cgi?id=18953
+
+ And then attempts to restore 'make check' to full functionality.
+
+ However:
+ - C++ does not play well with the PLT symbol hiding, and leaks into the
+ global namespace. 'make check' fails at check-plt.sh
+
+ - Qt embeds a GUI into QApplication which it requires to construct any
+ QPainter drawable, i.e. used by the boilerplate to create a cairo-qt
+ surface, and this leaks fonts (cairo-ft-fonts no less) causing assertion
+ failures that all cairo objects are accounted for upon destruction.
+
+ [Updated by Chris Wilson]
+ Acked-by: Jeff Muizelaar <jeff@infidigm.net>
+ Acked-by: Carl Worth <cworth@cworth.org>
+
+ boilerplate/Makefile.sources | 3 +
+ boilerplate/Makefile.win32.features | 10 +
+ boilerplate/cairo-boilerplate-qt-private.h | 60 +
+ boilerplate/cairo-boilerplate-qt.cpp | 90 ++
+ boilerplate/cairo-boilerplate.c | 23 +
+ boilerplate/cairo-boilerplate.h | 3 +
+ build/Makefile.win32.features | 1 +
+ build/Makefile.win32.features-h | 3 +
+ build/configure.ac.features | 1 +
+ configure.ac | 11 +
+ perf/cairo-perf-trace.c | 1 +
+ perf/cairo-perf.c | 3 +-
+ src/Makefile.am | 2 +-
+ src/Makefile.sources | 3 +
+ src/Makefile.win32.features | 14 +
+ src/cairo-debug.c | 42 +
+ src/cairo-qt-surface.cpp | 1876 ++++++++++++++++++++++++++++
+ src/cairo-qt.h | 89 ++
+ src/cairo-xlib-surface.c | 6 +
+ src/cairo.h | 4 +-
+ src/check-def.sh | 7 +-
+ src/check-preprocessor-syntax.sh | 3 +-
+ 22 files changed, 2247 insertions(+), 8 deletions(-)
+
+commit 7d3881114add18d5934073d0b04755d343ea38c6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 15 15:13:43 2009 +0100
+
+ [perf] Report errors during replays
+
+ perf/cairo-perf-trace.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+commit 061e0477e9a894241806eeacbde2f3770b751f34
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 15 15:10:50 2009 +0100
+
+ [perf] Report iteration count
+
+ Show number of discard results by showing the number of statistically
+ valid samples out of total population count.
+
+ perf/cairo-perf-trace.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit bab8af62e772844f08a244d99f705e318af3f58c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 15 15:01:34 2009 +0100
+
+ [region] Add PLT entry for cairo_region_create_rectangles()
+
+ src/cairo-region.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 6da9c410d4696ebba0fb563a858f1625bf3b1f9e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 15 12:14:51 2009 +0100
+
+ Missing header file for cairo-test-null-surface.
+
+ src/test-null-surface.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 46 insertions(+)
+
+commit e5727e20f52eb0308a8ad1c44a6eb4c7c65d7ff0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 15 11:58:58 2009 +0100
+
+ Expose _cairo_null_surface_create() via a test surface
+
+ Using a null surface is a convenient method to measure the overhead of the
+ performance testing framework, so export it although as a test-surface so
+ that it will only be available in development builds and not pollute
+ distributed libraries.
+
+ .../cairo-boilerplate-test-surfaces-private.h | 10 ++++
+ boilerplate/cairo-boilerplate-test-surfaces.c | 16 +++++++
+ boilerplate/cairo-boilerplate.c | 9 ++++
+ perf/cairo-perf-trace.c | 6 +--
+ src/Makefile.sources | 2 +
+ src/cairo-analysis-surface.c | 56 ++++++++++++++++++++--
+ src/test-null-surface.c | 48 +++++++++++++++++++
+ test/cairo-test.c | 14 ++++--
+ util/cairo-trace/trace.c | 26 ++++++++++
+ 9 files changed, 175 insertions(+), 12 deletions(-)
+
+commit f2057061c67236a79c8bb69b84e44e151109629a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 14 09:10:08 2009 +0100
+
+ [trace] Add sticky bit to (system-wide) trace output dir
+
+ Need to allow user programs to dump their traces into the common output
+ directory, when using /etc/ld.so.preload to capture traces for the entire
+ desktop.
+
+ util/cairo-trace/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 3fe50a77ea21bcddb701a8640b5ecad9f6f5ab01
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 22:27:17 2009 +0100
+
+ [configure] Rephrase warning message for disabling core features.
+
+ "strictly recommended" is an odd phrase and though the stern warning is
+ appropriate as replacing a system library with a more limited version is
+ likely to cause mayhem, we are but mere servants and should be reserved in
+ our parlance.
+
+ build/configure.ac.features | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 5d57aeaa23566739ba01a0fac1c3b90ce27b28cd
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Tue May 26 17:53:37 2009 -0400
+
+ Reinstate cairo_region_create_rectangles()
+
+ cairo_region_union_rectangle() is linear in the number of rectangles
+ in the region. There is no way to make it significantly faster without
+ losing the ability to return errors synchronously, so a
+ cairo_region_create_rectangles() is needed to avoid a large
+ performance regression.
+
+ src/cairo-region.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
+ src/cairo-traps.c | 47 ++++++++++++++++++++++++++++-------------------
+ src/cairo.h | 4 ++++
+ src/cairoint.h | 1 +
+ 4 files changed, 77 insertions(+), 19 deletions(-)
+
+commit 216a2e24c7375e48677ce30f9fe8fb3d8bbdd10d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 21:40:05 2009 +0100
+
+ [test] Minor tweak to cairo-test-trace
+
+ Cleanse the code of a couple of redundant pointer manipulations.
+
+ test/cairo-test-trace.c | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+commit 2ab4245c866bcefb755a33f7eaa6ef1277f82df1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 21:33:09 2009 +0100
+
+ [test] Need SOURCE when copying image data
+
+ As cairo-test-trace does not clear the image data before reuse, using
+ the default OVER operator will cause differing results for each process
+ when inadvertently alpha blending into the shared memory region. As we
+ essentially want to just copy the source pixels, be explicit and set the
+ SOURCE operator.
+
+ test/cairo-test-trace.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit e003d665fe45905606a792e4a783f65fc7e84550
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 19:18:11 2009 +0100
+
+ [test] Disable compilation of cairo-test-trace without shm_open()
+
+ Remember to only add cairo-test-trace to the list of EXTRA_PROGRAM so long
+ as we can actually compile it.
+
+ test/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit c092136fe9e5fee71dfe02f945fe5676f43b2d05
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 18:59:17 2009 +0100
+
+ [configure] Check for shm_open()
+
+ As needed for cairo-test-trace.
+
+ build/configure.ac.system | 8 ++++++++
+ test/Makefile.am | 4 +++-
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+commit f298dd92ca0b789a3d2b591753c992e1673b2d87
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 18:49:16 2009 +0100
+
+ [test] Remove dlmalloc
+
+ cairo-test-trace's shared memory allocation pattern is much simpler than
+ anticipated as it allocates a bunch of images and then frees them all,
+ and so only needs a simple linear allocator.
+
+ test/Makefile.am | 1 -
+ test/cairo-test-trace.c | 62 +-
+ test/dlmalloc.c | 5099 -----------------------------------------------
+ 3 files changed, 11 insertions(+), 5151 deletions(-)
+
+commit 37f32f29518bdc1428c7ec137f212313e377486c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 18:31:35 2009 +0100
+
+ [util] Disable default build of font-view
+
+ It's only a demonstration utility after a all and we do not need to incur
+ the cost of relinking it everytime we modify the main library.
+
+ util/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0eca1b17b14057ef88ae2df500679e62ffb50118
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 17:16:20 2009 +0100
+
+ [surface] Give ownership of the snapshot to the snapshotter.
+
+ Previously the reference to the newly created snapshot was owned by the
+ containing pattern. The consequence of this was that when the pattern was
+ destroyed the snapshot was cleaned up which prevent reuse of the snapshot
+ across multiple pages. Transferring ownership upon attachment of the
+ snapshot to the target means that the snapshot stays in existence until
+ the target itself is destroyed or modified *and* the containing pattern
+ is consumed. Obvious in hindsight.
+
+ src/cairo-surface.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+commit a1b3392e60b6b4ff4b650f4d48d56568c1851245
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 16:37:43 2009 +0100
+
+ [surface] Mark cairo_surface_show_page() with begin-modification
+
+ cairo_surface_show_page() clears the surface after presentation, so we
+ need to discard the snapshots here.
+
+ src/cairo-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1798bdd322e0d25147195198bf0c5e9506c61a15
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sat Jun 13 22:47:41 2009 +0930
+
+ Fix PDF pattern embedding
+
+ The PDF snapshot cow patch was reusing a previously emitted surface
+ pattern if the surface unique id matched the current surface. This
+ resulted in incorrect output as the new pattern may have a different
+ pattern matrix.
+
+ This patch fixes the PDF backend to always emit a new pattern but
+ re-use previously emitted image or metasurface XObjects.
+
+ src/cairo-pdf-surface-private.h | 21 +-
+ src/cairo-pdf-surface.c | 532 +++++++++++++++++++++++++++-------------
+ 2 files changed, 372 insertions(+), 181 deletions(-)
+
+commit f115c5479ead934774fea99d74d780e2bb1681c4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 15:49:15 2009 +0100
+
+ [trace] Strip absolute path off name when profiling
+
+ Carl spotted this last night, but I misinterpreted it as an old problem
+ caused by the application changing its working directory before its first
+ cairo call - thus causing cairo-trace to attempt to open a file in the new
+ directory. Instead the problem was attempting to trace an executable with
+ an absolute path, where we just tagged it with a .lzma extentsion and
+ attempted to pipe the output there. Obviously this fails for the user
+ profiling system binaries. So use basename to strip the leading path.
+
+ util/cairo-trace/cairo-trace.in | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit c52eed6680dd13f6bc65dc4a26b6c8eab5a94a54
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 15:42:43 2009 +0100
+
+ [trace] Handle wrapping python
+
+ python lazily loads libcairo.so and so it is not available via RTLD_NEXT,
+ and we need to dlopen cairo ourselves. Similarly the linker is not able to
+ resolve any naked function references and so we need to ensure that all of
+ our own calls into the library are wrapped with DLCALL.
+
+ util/cairo-trace/trace.c | 145 +++++++++++++++++++++++++++--------------------
+ 1 file changed, 83 insertions(+), 62 deletions(-)
+
+commit 606790a86083d31fa50ed5e0cf621eca56c16e33
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 14:07:22 2009 +0100
+
+ [script] Disable compilation of examples
+
+ Now that cairo-perf-trace exists and is a far superior replay tool, use
+ EXTRA_PROGRAM for the original replay tools.
+
+ util/cairo-script/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 31b7652e1fa2ab2bd9e9df7f5517b7d678faf6aa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 12:19:51 2009 +0100
+
+ [test] Never, ever, blame a crashing test on external factors.
+
+ test/cairo-test-runner.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 3dde883b779b81b95f420039c02b51b029311f78
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 10:13:20 2009 +0100
+
+ [test] Code review after sleep
+
+ Review cairo-test-trace.c and rewrite parts to ease understanding and fix
+ various bugs - such as failure to notice the slaves crashing and not
+ releasing our shared memory after an interrupt.
+
+ test/cairo-test-trace.c | 400 ++++++++++++++++++++++++++++--------------------
+ 1 file changed, 236 insertions(+), 164 deletions(-)
+
+commit 1f542965f0310aed493651b8ddc1e98a4192b977
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 13 08:24:22 2009 +0100
+
+ [perf] Mention cairo-perf-compare-backends in the README
+
+ perf/README | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+commit 3b6e4018c69f88135f8d937724acf90adb003bad
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 12 22:19:56 2009 +0100
+
+ [test] Add cairo-test-trace
+
+ The basic premise is that we feed the trace to multiple backends in
+ parallel and compare the output at the end of each context (based on
+ the premise that contexts demarcate expose events, or their logical
+ equivalents) with that of the image[1] backend. Each backend is
+ executed in a separate process, for robustness, with the image data
+ residing in shared memory and synchronising over a socket.
+
+ [1] Should be reference implementation, currently the image backend is
+ considered to be the reference for all other backends.
+
+ test/Makefile.am | 16 +-
+ test/cairo-test-trace.c | 1225 ++++++++++++
+ test/dlmalloc.c | 5099 +++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 6339 insertions(+), 1 deletion(-)
+
+commit a41e1275d28317c88e29b7f142cfc835673c01f5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 12 12:32:51 2009 +0100
+
+ [boilerplate] Make array of targets const.
+
+ Protect the boilerplate targets from unexpected modifications.
+
+ boilerplate/cairo-boilerplate.c | 8 ++++----
+ boilerplate/cairo-boilerplate.h | 4 ++--
+ perf/cairo-perf-trace.c | 6 +++---
+ perf/cairo-perf.c | 4 ++--
+ perf/cairo-perf.h | 4 ++--
+ test/cairo-test.h | 2 +-
+ 6 files changed, 14 insertions(+), 14 deletions(-)
+
+commit 6aebde6598c629d667b06e20111106832d139c4d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 12 12:25:22 2009 +0100
+
+ [boilerplate] Export cairo_boilerplate_get_image_target()
+
+ A routine to scan the compiled list of targets and return the entry
+ corresponding to the image backend.
+
+ boilerplate/cairo-boilerplate.c | 17 +++++++++++++++++
+ boilerplate/cairo-boilerplate.h | 3 +++
+ 2 files changed, 20 insertions(+)
+
+commit d008167b9bcd6a24199740183bbfcabcfdccdd63
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 12 12:08:22 2009 -0700
+
+ Makefile: Fix two typos preventing doc-publish from working
+
+ It seems that everything up to this point in release-publish
+ worked fine, so with these fixes, hopefully the next run of
+ make release-publish will work without any snags.
+
+ build/Makefile.am.releasing | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 98eb84cfbbf2cfdb0153c8e924099cef016a412a
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 12 12:07:59 2009 -0700
+
+ Increment version to 1.9.3 after the 1.9.2 snapshot.
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e9b9d2a7c17ca4b2bc2991fdc4893aed850578db
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 11 15:28:59 2009 -0700
+
+ Update version to 1.9.2
+
+ In preparation for the (long overdue) 1.9.2 snapshot today.
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8ac8c5b428d11b11ba9fb55264cd9091368f6acb
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 12 11:49:52 2009 -0700
+
+ NEWS: Fix date and name of 1.9.2 snapshot
+
+ It's a snapshot, not a release, and the broken REFERENCE_IMAGE list
+ derailed me from finishing yesterday.
+
+ NEWS | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 3f474555dd00b8585ae3db848cf46984d77bd16e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 12 11:19:50 2009 +0100
+
+ [test] Add jp2.jp2 to EXTRA_DIST
+
+ Required by test/mime-data and so triggering failures during distcheck as
+ it was not packaged.
+
+ test/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 7f114b781f5c530d57530e5f76402e41cdabac6b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 12 11:15:16 2009 +0100
+
+ [doc] Workaround read-only tree during make distcheck
+
+ This looks to be an ugly necessity to work-around the nasty issue that
+ we currently gtkdoc expect to be run inside the source tree. I'm sure
+ Behdad will be able to resolve this much more elegantly than this quick
+ and fragile attempt.
+
+ build/Makefile.am.gtk-doc | 11 ++++++-----
+ build/configure.ac.features | 2 +-
+ doc/public/Makefile.am | 5 +++--
+ 3 files changed, 10 insertions(+), 8 deletions(-)
+
+commit 1498c9c333d7579231ac44a91f00f0a49360702d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 12 07:38:00 2009 +0100
+
+ [script] Also mmap backing storage for the pattern descriptions
+
+ These can be reasonably large and persist for long times due to the
+ font holdover caches, so manually swap them out to save space on tiny
+ swapless machines.
+
+ util/cairo-script/cairo-script-operators.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+commit 80ba06803b50cc0f76039939f25372cbbe2e8d81
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 12 08:03:12 2009 +0100
+
+ [Makefile] Update list of reference images.
+
+ test/Makefile.am | 1432 +++++++++++++++++++++++++++++++-----------------------
+ 1 file changed, 818 insertions(+), 614 deletions(-)
+
+commit fb21a0da8730823ff092f8e298af3d5b4e8c90e4
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 11 15:28:02 2009 -0700
+
+ Update CLEANFILES for 'make distcheck'
+
+ This is a standard part of the release ritual.
+
+ test/Makefile.am | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit a4f023ef2eb041fecba5f3fd2d5a1594975ca211
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 11 14:51:14 2009 -0700
+
+ NEWS: Update date for snapshot planned for today.
+
+ NEWS | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 82139b42919be1acf6bade733bb2ff489e50812d
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 11 14:51:10 2009 -0700
+
+ NEWS: Explain bovine polaroids a bit more.
+
+ It's a fun joke, but the COW snapshots feature is important enough
+ that we should actually tell users what it is.
+
+ NEWS | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 4d5f66d5b1f243e58d43dc89568be9240262fd5c
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 11 14:42:11 2009 -0700
+
+ NEWS: Cleanup in preparation for 1.9.2 snapshot
+
+ Mostly just wrapping to a reasonable line length, and some minor
+ wording changes.
+
+ NEWS | 71 +++++++++++++++++++++++++++++++++++++++++++-------------------------
+ 1 file changed, 45 insertions(+), 26 deletions(-)
+
+commit 19630f4b73a4fdfb9855ececd6614493e68d3b95
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Jun 10 17:39:48 2009 -0700
+
+ Make the warning about the need to --enable-gtk-doc more explicit.
+
+ I must have read it three times and kept thinking, "but I *did*
+ just install gtk-doc", before I finally understood what it was
+ trying to tell me.
+
+ build/Makefile.am.gtk-doc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 3aaea453b0f0880d6c8825be21e67821732d1635
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 11 22:36:01 2009 +0100
+
+ [script] Store fonts inside mmaped files.
+
+ As an aide to tiny swapless systems write the rarely used bytes that
+ define type42 fonts into a deleted file and mmap them back into our
+ address space.
+
+ build/configure.ac.system | 3 +
+ util/cairo-script/cairo-script-operators.c | 91 ++++++++++++++++++++++++------
+ 2 files changed, 78 insertions(+), 16 deletions(-)
+
+commit 6167f27adfd530bdf091a0e7a3e0141d5db66f00
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 11 22:33:00 2009 +0100
+
+ [script] Fix memleak of duplicated strings from files
+
+ csi_string_new() duplicated the bytes which was not what was desired, so
+ implement a csi_string_new_for_bytes() to take ownership and prevent the
+ leak that was occuring, for example, every time we create a new font face.
+
+ util/cairo-script/cairo-script-file.c | 5 +++--
+ util/cairo-script/cairo-script-objects.c | 27 +++++++++++++++++++++++++++
+ util/cairo-script/cairo-script-private.h | 6 ++++++
+ 3 files changed, 36 insertions(+), 2 deletions(-)
+
+commit 13b56c42bfdb9ad36f9b1bd22f83d7ef3a074ddc
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Jun 11 17:32:23 2009 -0400
+
+ Fix compilation on OS X when compiling for 64 bit
+
+ OS X doesn't support ATSUI in 64 bit so don't include the cairo ATSUI
+ API in that case.
+
+ src/cairo-quartz-font.c | 3 ++-
+ src/cairo-quartz.h | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+commit 9e3019ef987f8d3ad424c13ffae5a15b08beb327
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 11 22:27:18 2009 +0100
+
+ [perf] Add libcairoperf.la to DEPENDENCIES
+
+ It seems adding the explicit dependencies to encourage it to rebuild
+ components from other parts of the source tree removed the automagic
+ dependency of libcairoperf.la. So add it to the list. Maybe this is not
+ the correct solution, but it works again for now.
+
+ perf/Makefile.am | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 55cbf525479cde8251cc9199f9db89e510d6a9c1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 11 15:40:27 2009 +0100
+
+ [perf] Fix -i getopt parsing.
+
+ Gah, I presumed that the ':' separated options that required arguments
+ from stand-alone options. I was wrong. The ':' indicates that the
+ preceding option takes an argument. So add it back to -i.
+
+ perf/cairo-perf-trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 614bfdc0846856653a742b035e70d009b0a716cc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 11 15:35:05 2009 +0100
+
+ [xcb] Trivial compile fix.
+
+ Update show_glyphs() interface.
+
+ src/cairo-xcb-surface.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+commit f7dbdf1fd1d7cc14491a9419c316b078247e145e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 8 09:39:20 2009 +0100
+
+ [script] Hide pixman-ops when copying pixels
+
+ Seeing unexpected time inside pixman composite is quite disturbing when
+ trying to track down the apparent slowness in some benchmarks. Remove one
+ source of this artefact by simply memcpy'ing pixel data when trivial.
+
+ util/cairo-script/cairo-script-operators.c | 70 +++++++++++++++++++++++-------
+ 1 file changed, 55 insertions(+), 15 deletions(-)
+
+commit ecee5663bf900ab97d2bb7ec41ade838f167e1cd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 8 01:05:28 2009 +0100
+
+ [perf] Fixup compare-backends to work with just a single test.
+
+ perf/cairo-perf-compare-backends.c | 17 ++++++-----------
+ 1 file changed, 6 insertions(+), 11 deletions(-)
+
+commit 42c0aee1d9ff5e0182c41ed505a2b0f56e564cbb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 11 12:58:05 2009 +0100
+
+ [perf] Add a -x to exclude traces from a benchmark.
+
+ Read names of traces to exclude from a file specified using -x on the
+ commandline, i.e.
+ $ ./cairo-perf-trace -x cairo-traces/tiny.exclude
+
+ This is a convenient method for me to exclude certain traces for
+ particular machines. For example tiny cannot run
+ firefox-36-20090609.trace as that has a greater working set than the
+ available RAM on tiny.
+
+ perf/cairo-perf-trace.c | 135 +++++++++++++++++++++++++++++++++++++++++++++---
+ perf/cairo-perf.h | 2 +
+ 2 files changed, 130 insertions(+), 7 deletions(-)
+
+commit b40ce402ada8d57c5093715be530df08459d1654
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 11 09:16:29 2009 +0100
+
+ [NEWS] Add more notes
+
+ NEWS | 50 ++++++++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 44 insertions(+), 6 deletions(-)
+
+commit 610da573e91810c53305b6bfe02eb7b714e3d08e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 10 12:59:36 2009 +0100
+
+ [win32-font] Non-fatal error from GetGlyphOutlineW(GGO_METRICS)
+
+ If GetGlyphOutlineW(GGO_METRICS) fails to retreive the metrics for the
+ specified glyph it returns GDI_ERROR. Like ft, do not interpret this as a
+ fatal error but just mark the glyph as empty.
+
+ Fixes http://bugs.freedesktop.org/show_bug.cgi?id=20255
+ Bug 20255 -- cairo_scaled_font_glyph_extents breaks with invalid glyph id
+
+ src/cairo-win32-font.c | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+commit 81b5dc42b0e754d602506a8ccd231df9afd71593
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 10 08:49:39 2009 +0100
+
+ [perf] Expand the section on cairo-perf-trace in the README
+
+ Promote the information on how to use cairo-perf-trace and include it
+ immediately after the details on cairo-perf. This should make it much
+ clearer on how to replay the traces, and the difference between the two
+ benchmarks.
+
+ perf/README | 37 ++++++++++++++++++++++++++++++++++---
+ 1 file changed, 34 insertions(+), 3 deletions(-)
+
+commit ec92e633edd377747155b60aa225b266c38bc498
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 10 08:34:57 2009 +0100
+
+ [perf] Couple cairo-perf-traces into make perf
+
+ Rather than complicating cairo-perf to extend it to perform both micro-
+ and macro-benchmarks, simply run the two binaries in succession during
+ make perf.
+
+ For bonus points, consider whether we should hook cairo-perf-trace into
+ cairo-perf-diff.
+
+ perf/Makefile.am | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 0db946cdd9fe601a060b62c5df7df3022ea5e2d6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 9 16:19:36 2009 +0100
+
+ [perf] Add explicit dependences for the local libraries
+
+ Update the build rules and add the dependences for the libraries built in
+ other parts of cairo.
+
+ perf/Makefile.am | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+commit 844c809698635cf44658fcbfb5da6976890185b9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 9 12:45:53 2009 +0100
+
+ [boilerplate] Print out known targets on error.
+
+ Improve the 'Cannot find target ...' error message for an incorrect
+ CAIRO_TEST_TARGET by actually listing the targets that have been compiled
+ into the test suite.
+
+ boilerplate/cairo-boilerplate.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+commit ac563715506b911f142dd0e4460a6effee45119d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 8 23:58:56 2009 +0100
+
+ [test] Exercise overlapping glyphs
+
+ Quite an expensive test that converts an image into a distorted array of
+ glyphs, using a perspective transformation taking the intensity of the
+ pixel as depth. This generates a pretty picture and many overlapping
+ glyphs.
+
+ test/Makefile.am | 1 +
+ test/Makefile.sources | 1 +
+ test/mask-glyphs.c | 175 +++++++++++++++++++++++++++++++++++++++++++++++
+ test/mask-glyphs.ref.png | Bin 0 -> 1189352 bytes
+ 4 files changed, 177 insertions(+)
+
+commit 015df191ba947e714285145c3a4ead198ba0d07e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 8 17:40:16 2009 +0100
+
+ [trace] Prevent overflowing the operand stack when recreating objects
+
+ Objects like cairo_scaled_font_t may return a reference to a previously
+ defined scaled-font instead of creating a new token each time. This caused
+ cairo-trace to overflow its operand stack by pushing a new instance of the
+ old token every time. Modify the tracer such that a font token can only
+ appear once on the stack -- for font-faces we remove the old operand and
+ for scaled-fonts we simply pop, chosen to reflect expected usage.
+
+ util/cairo-trace/trace.c | 89 ++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 63 insertions(+), 26 deletions(-)
+
+commit 09492288b33c36093e50d39e4e7e632ab659a0e2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 8 17:38:14 2009 +0100
+
+ [trace] Option to re-enable mark-dirty
+
+ Applications such as swfdec have a strictly correct use of mark-dirty and
+ so we need an option to re-enable mark-dirty tracing in conjunction with
+ --profile.
+
+ util/cairo-trace/cairo-trace.in | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit 39bac6edddb8913d07fb25f14f088967ca846a78
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 8 11:52:56 2009 +0100
+
+ [perf] Mention cairo-perf-trace early on in the README
+
+ perf/README | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 34ccaeae2d3cf1b5bdd8b97581d6e70324494356
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jun 8 00:12:28 2009 +0100
+
+ [perf] Continuously update the summary for traces
+
+ perf/cairo-perf-trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 055e9b0eb650bec6ae8297e5a36f1cac22c43d56
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 7 23:35:57 2009 +0100
+
+ [test] Cache resolved scaled-font
+
+ The intention is to stress test the solid pattern caches, so we can cheat
+ and avoid repeatedly resolving the toy font.
+
+ test/solid-pattern-cache-stress.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit 25c37509396a89deb644cbd6ada99137ba9d3095
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 7 19:23:04 2009 +0100
+
+ [scaled-font] Report the original-font-face
+
+ When queried with cairo_scaled_font_get_font_face() return the original
+ font-face which matches the one supplied by the user, rather than the
+ implementation derived face.
+
+ Fixes test/font-face-get-type.
+
+ src/cairo-scaled-font.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 6d693f6bd7c629372cfb6c284ca98dc04619bfe9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 7 18:59:36 2009 +0100
+
+ [ft] Support font_face->get_implementation
+
+ The lazy resolution of patterns was defeating the scaled_font cache as
+ ft-fonts that resolved to the same unscaled font were being given different
+ font-faces upon creation. We can keep the lazy resolution by simply asking
+ the ft backend to create a fully resolved ft-font-face when we need to
+ create a scaled-font. This font is then keyed by the resolved font-face
+ and so will match all future lazily resolved identical patterns.
+
+ src/cairo-ft-font.c | 117 ++++++++++++++++++++--------------------------
+ src/cairo-scaled-font.c | 20 +++++---
+ src/cairo-toy-font-face.c | 41 +++++++++-------
+ src/cairoint.h | 9 ++--
+ 4 files changed, 96 insertions(+), 91 deletions(-)
+
+commit a29426f4bffc0a3f5bb349a2ba44203394339ae8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 7 17:24:40 2009 +0100
+
+ [ft] Assert that we create an unscaled font for the resolved pattern
+
+ src/cairo-ft-font.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 7d8a0a1cdd62112ccdae2a80bb55ec9cec99b978
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 7 17:01:57 2009 +0100
+
+ [cairo] Keep a small stash of cairo contexts
+
+ A cairo context is meant to be extremely cheap to create such that it can
+ be used in transient expose events. Thus these are allocated reasonably
+ frequently and show up malloc profiles.
+
+ src/cairo.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 49 insertions(+), 2 deletions(-)
+
+commit f08fe5b550d53c93b73c6295f8a85a8dcd4a1f4a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jun 7 15:55:20 2009 +0100
+
+ [trace] Redirect stdout to /dev/null when compressing
+
+ Otherwise we mix in stdout in with the trace and prevent replay.
+
+ util/cairo-trace/cairo-trace.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 750c1b5b48dcd33ba4a4d5290c50f564bf45bc58
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 6 21:45:18 2009 +0100
+
+ [configure] Check for FcInit()
+
+ configure.ac | 2 +-
+ test/cairo-test.c | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+commit f7a562a590493904cf10b4fb9af3b42fb3f8a3a2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 6 14:58:46 2009 +0100
+
+ [configure] Don't attempt to build GTK+ utilities on system without GTK+
+
+ configure.ac | 3 ++-
+ util/Makefile.am | 5 ++++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 6a5957475139a7c80a6bb55fb63927e5ec8866f6
+Author: Eric Anholt <eric@anholt.net>
+Date: Sun Jun 7 10:43:43 2009 +0000
+
+ [gl] consolidate the pixman format to GL format/type/internalformat code.
+
+ This means that draw_image gets all the love that the pattern texture code
+ does. Not that I'm sure it still needs to exist.
+
+ src/cairo-gl-surface.c | 321 ++++++++++++++++++++++++-------------------------
+ 1 file changed, 158 insertions(+), 163 deletions(-)
+
+commit cb1e5674cd7a61a2d96bd4ae8895b26686571e78
+Author: Eric Anholt <eric@anholt.net>
+Date: Sun Jun 7 10:09:28 2009 +0000
+
+ [gl] Add support for more 16-bit image formats.
+
+ Fixes test-fallback16-surface-source
+
+ src/cairo-gl-surface.c | 54 ++++++++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 48 insertions(+), 6 deletions(-)
+
+commit 7a95b2745ae619f6ca4631f3cdb03e12203126f3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 6 21:36:08 2009 +0100
+
+ [boilerplate] Minor typo in win32-printing
+
+ boilerplate/cairo-boilerplate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 16eb160c7794ad34c17c5b12ec586d956baf9831
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 6 20:09:15 2009 +0100
+
+ [script] Enable compilation without fontconfig
+
+ Some insane people actually try compiling cairo with freetype and without
+ fontconfig...
+
+ util/cairo-script/cairo-script-operators.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit d753ba96aba4dbbcbd0da1823be8824ba233f079
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 5 17:59:38 2009 +0100
+
+ [script] Manage used entries within hash tables
+
+ Apply the patch from Karl Tomlinson,
+ https://bugs.freedesktop.org/attachment.cgi?id=19802, to repack the hash
+ table if the number of free slots falls too low.
+
+ util/cairo-script/cairo-script-hash.c | 109 ++++++++++++++++++++-----------
+ util/cairo-script/cairo-script-private.h | 1 +
+ 2 files changed, 73 insertions(+), 37 deletions(-)
+
+commit 4ccfd474a36f482adcab49a8d38742121817b47e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 6 13:32:21 2009 +0100
+
+ [perf] Switch to using clock_gettime()
+
+ Try using clock_gettime() for a high resolution stable time source in
+ preference to the potentially unstable TSC.
+
+ build/configure.ac.system | 9 ++++--
+ perf/cairo-perf-posix.c | 72 ++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 60 insertions(+), 21 deletions(-)
+
+commit 867c88ae90e4e69a556c032fa67d94a292f5d817
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 6 12:59:39 2009 +0100
+
+ [script] Add a finish method to the interpreter
+
+ When using fonts circular references are established between the holdover
+ font caches and the interpreter which need manual intervention via
+ cairo_script_interpreter_finish() to break.
+
+ perf/cairo-perf-trace.c | 3 +-
+ util/cairo-script/cairo-script-interpreter.c | 51 ++++++++++++++++++++++------
+ util/cairo-script/cairo-script-interpreter.h | 3 ++
+ util/cairo-script/cairo-script-objects.c | 35 ++++++++++++-------
+ util/cairo-script/cairo-script-private.h | 3 ++
+ 5 files changed, 70 insertions(+), 25 deletions(-)
+
+commit 098822d7ee7f14096dd269c1bc96e39da126622c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jun 6 10:35:19 2009 +0100
+
+ [script] Fix erroneous error return when rendering type3 glyphs
+
+ Only return a USER_FONT_ERROR if an error occurs whilst rendering the
+ glyph!
+
+ util/cairo-script/cairo-script-operators.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 24e51dd2ee04884e1f6f9f527b6675ad5f883ee2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 5 18:34:29 2009 +0100
+
+ [atomic] Hide compiler warnings
+
+ Add uint variants of _cairo_atomic_int_*() to hide the compiler warnings
+ about sign conversions.
+
+ src/cairo-atomic-private.h | 3 +++
+ src/cairo-surface.c | 6 +++---
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+commit 4ae5e2d44555a7219eb76ee187a8f588606c112f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 5 18:29:40 2009 +0100
+
+ [atomic] Provide mutex-based ptr cmpxchg
+
+ To handle those CPUs where we do not have an atomic cmpxchg.
+
+ src/cairo-atomic-private.h | 3 +++
+ src/cairo-atomic.c | 13 +++++++++++++
+ 2 files changed, 16 insertions(+)
+
+commit a1d0a06b6275cac3974be84919993e187394fe43
+Author: Thomas Jaeger <ThJaeger@gmail.com>
+Date: Thu Feb 19 12:02:41 2009 -0500
+
+ xlib, xcb: Hand off EXTEND_PAD/EXTEND_REFLECT to Render
+
+ Most drivers and the X server used to have incorrect RepeatPad/RepeatReflect
+ implementations, forcing cairo to fall back to client-side software rendering,
+ which is painfully slow due to pixmaps being transfered over the wire. These
+ issues are mostly fixed in the drivers (with the exception of radeonhd, whose
+ developers didn't respond) and the RepeatPad software fallback is implemented
+ correctly as of pixman-0.15.0, so this patch will hand off composite operations
+ with EXTEND_PAD/EXTEND_REFLECT source patterns to XRender.
+
+ There is no way to detect whether the X server or the drivers use a
+ broken Render implementation, we make a guess based on the server
+ version: It's probably safe to assume that 1.7 X servers will use
+ fixed drivers and a recent enough version of pixman.
+
+ AUTHORS | 1 +
+ src/cairo-xcb-surface.c | 15 +++++++++++++--
+ src/cairo-xlib-display.c | 15 +++++++++++----
+ src/cairo-xlib-private.h | 1 +
+ src/cairo-xlib-surface-private.h | 1 +
+ src/cairo-xlib-surface.c | 21 ++++++++++++++++++---
+ 6 files changed, 45 insertions(+), 9 deletions(-)
+
+commit 60aefd0d634c531353c92b77b36424b142efeb93
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jun 5 07:30:13 2009 +0100
+
+ [configure] Bump pixman dependency.
+
+ Reflect was only fixed in the 0.15 series, so require at least that
+ version of pixman so we can that advantage of that and drop our
+ workaround.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9d7a7e76b8bccc2517950976bb8557cd7b955a11
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 4 22:19:31 2009 +0100
+
+ [scaled-font] Close race from 16d128
+
+ Whilst waiting for the fontmap lock on destruction another thread may not
+ only have resurrected the font but also destroyed it acquired the lock
+ first and inserted into the holdovers before the first thread resumes. So
+ check that the font is not already in the holdovers array before
+ inserting.
+
+ src/cairo-scaled-font-private.h | 6 +++---
+ src/cairo-scaled-font.c | 33 +++++++++++++++++++++++----------
+ 2 files changed, 26 insertions(+), 13 deletions(-)
+
+commit f4d9a4482fa1bfa37783ca139e3716c8d8649f32
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 4 14:13:06 2009 +0100
+
+ [pattern] Generalise the freed pattern pool
+
+ Also cache recently freed surface and gradient patterns. With thanks to
+ Jonathan Morton for the inspiration and initial pointer pool code for
+ pixman.
+
+ src/cairo-atomic-private.h | 1 +
+ src/cairo-mutex-list-private.h | 1 -
+ src/cairo-pattern.c | 170 +++++++++++++++++++++++++++--------------
+ 3 files changed, 112 insertions(+), 60 deletions(-)
+
+commit 132f44dce1884c9beed8c5e6588140ee8fa9cfbe
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 4 14:12:20 2009 +0100
+
+ valgrindify init/fini routines
+
+ Annotate object init/fini routines to detect use-after-free for
+ on-stack/embedded objects.
+
+ src/cairo-debug.c | 2 --
+ src/cairo-freelist.c | 7 -------
+ src/cairo-gstate.c | 7 +++++++
+ src/cairo-path-fixed.c | 10 +++-------
+ src/cairo-pattern.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++-
+ src/cairo-pen.c | 8 ++++++--
+ src/cairo-polygon.c | 4 ++++
+ src/cairo-region.c | 5 +++++
+ src/cairo-stroke-style.c | 6 ++++++
+ src/cairo-traps.c | 4 ++++
+ src/cairo.c | 1 +
+ src/cairoint.h | 4 ++++
+ 12 files changed, 88 insertions(+), 19 deletions(-)
+
+commit e89828c5331579d0d4019b6339df09ba1e2aa32e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 21:52:02 2009 +0100
+
+ [freelist] valgrindify freed blocks
+
+ Mark freed blocks as unaccessible upon free() and then as undefined
+ on alloc().
+
+ src/cairo-freelist.c | 26 ++++++++++++++++++++++----
+ 1 file changed, 22 insertions(+), 4 deletions(-)
+
+commit 4e11d56f8e5f409ea2476315c9d67116b213b738
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 4 11:16:48 2009 +0100
+
+ [perf] Update trace summary after each iteration
+
+ Running the macro-benchmarks takes so long, feedback is important.
+
+ perf/cairo-perf-trace.c | 29 ++++++++++++++++++++++++++++-
+ perf/cairo-perf.h | 1 +
+ 2 files changed, 29 insertions(+), 1 deletion(-)
+
+commit 5c2e73e74cb9aef92fdd90a91df44b417a036ebd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jun 4 10:03:45 2009 +0100
+
+ [perf] Enable traces to be interrupted
+
+ Waiting for a long running benchmark can be very annoying, especially if
+ you just want a rough-and-ready result. So hook into SIGINT and stop the
+ current benchmark (after the end of the iteration) on the first ^C. A
+ second ^C within the same iteration will kill the program as before.
+
+ perf/cairo-perf-trace.c | 20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+commit 2eaced24475622e73fbf6e3307ab46e3fe37eaef
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 21:49:17 2009 +0100
+
+ [perf] Reconstruct interpreter for each run
+
+ Destroy the interpreter after each run of a trace so that we collect any
+ left-over garbage.
+
+ perf/cairo-perf-trace.c | 21 ++++++++++-----------
+ 1 file changed, 10 insertions(+), 11 deletions(-)
+
+commit 1b92ea250fdaef9add1a68bb8565847e6d56b023
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 20:28:49 2009 +0100
+
+ [ft] Don't call FT_Done_Face() on a face we do not own
+
+ _font_map_release_face_lock_held() was being called unconditionally during
+ _cairo_ft_font_reset_static_data(). This presents two problems. The first
+ is that we call FT_Done_Face() on an object not owned by cairo, and the
+ second is that the bookkeeping is then incorrect which will trigger an
+ assert later.
+
+ src/cairo-ft-font.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 8e5295979fe087fadeff0f56c036f9d002086996
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 20:17:59 2009 +0100
+
+ [pattern] Typo in document
+
+ Remove extraneous markup from program-listing.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=20441
+
+ src/cairo-pattern.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit fa5d6c7afdb9b742ad653c65e8804e84f2964599
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 19:29:19 2009 +0100
+
+ [trace] Add a --profile mode
+
+ To save typing when creating macro-benchmarks --profile disables
+ mark-dirty and caller-info and compresses the trace using LZMA. Not for
+ computers short on memory!
+
+ perf/README | 11 +++++++++--
+ util/cairo-trace/cairo-trace.in | 18 ++++++++++++++++++
+ 2 files changed, 27 insertions(+), 2 deletions(-)
+
+commit 9451f0b983665d13ad777bc8fd88507fb7a317b4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 13:26:52 2009 +0100
+
+ [perf] Drop ticks from trace benchmarks
+
+ Don't report the tick values for the macro-benchmarks as these are so
+ large as to be meaningless.
+
+ perf/cairo-perf-trace.c | 37 ++++++++++++++++++++-----------------
+ 1 file changed, 20 insertions(+), 17 deletions(-)
+
+commit c988dc3719e345f6e1db6b0d656077a6b253b26d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 10:51:23 2009 +0100
+
+ [cairo] Doc typo.
+
+ Fix conflicting sentence as pointed out by
+ https://bugs.freedesktop.org/show_bug.cgi?id=20183
+
+ src/cairo.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+commit 35d0dd00c9f21cc4fd392d4627756f8d5b53a11b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 10:49:16 2009 +0100
+
+ [image] Doc typo.
+
+ Correct parameter reference as pointed out by
+ https://bugs.freedesktop.org/show_bug.cgi?id=20182
+
+ src/cairo-image-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 58459ac6435a2889b90580ddf00e69107361f431
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 10:45:51 2009 +0100
+
+ [font-options] Doc typo
+
+ Remove duplicate 'with' as pointed out by
+ https://bugs.freedesktop.org/show_bug.cgi?id=20180
+
+ src/cairo-font-options.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8d39dee8e2aea2200fec460e8540838ec29cae5f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 10:40:38 2009 +0100
+
+ [cairo] Update documentation for bug 20154
+
+ Several typographical errors were pointed out in
+ https://bugs.freedesktop.org/show_bug.cgi?id=20154
+
+ src/cairo.c | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+commit 73469e693c02e6a99a32f12ac333737b47408e5e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 09:51:52 2009 +0100
+
+ [cairo] Tweak error strings.
+
+ Rewrite a few error strings so that they more closer match the
+ documentation. Where they differ, I believe I have chosen the more
+ informative combination of the two texts.
+
+ src/cairo-misc.c | 12 ++++++------
+ src/cairo.h | 4 ++--
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+commit ab86662ab499e1f29c0f8c4248771e730c281e3f
+Author: Andrew Lavin <aj.lavin@gmail.com>
+Date: Fri May 22 16:36:40 2009 -0400
+
+ [test] Compile fix for invalid-matrix
+
+ Fixed test compile error on OS X that caused fenv.h not to be included.
+
+ test/invalid-matrix.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit eec547648439884a464eef832067a363cf1547e2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jun 3 08:57:15 2009 +0100
+
+ [perf] s/git/anongit/
+
+ Third time lucky?
+
+ perf/cairo-perf-trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ce7e6339428703069f798dffcf23ec3e98cb554f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 21:54:44 2009 +0100
+
+ [perf] Warn if no traces were found
+
+ perf/cairo-perf-trace.c | 28 ++++++++++++++++++++--------
+ 1 file changed, 20 insertions(+), 8 deletions(-)
+
+commit f0366f0f3263397181699bf6bf2ed3968ea66403
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 21:48:26 2009 +0100
+
+ [perf] Update to point to new toplevel cairo-traces repo
+
+ perf/cairo-perf-trace.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit c9cd2f9ca101c25d04f52578d54be36ae646049e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 18:47:07 2009 +0100
+
+ [cairo] PLT symbols for cairo_set_source_rgb
+
+ Added a private use in user-font, but forgot to add a hidden symbol.
+
+ src/cairo.c | 1 +
+ src/cairoint.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+commit 21550a753059b4f880f03ea96148befaa34a6426
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 18:08:45 2009 +0100
+
+ [user-font] Set the initial colour to white
+
+ An issue occured when using subpixel antialiasing with user-fonts and
+ XRender - the glyphs were transparent, as demonstrated by the font-view
+ example.
+
+ The problem lies in that enabling subpixel antialiasing triggers use of an
+ ARGB32 image surface for rendering the glyph, but the default colour is
+ black (so the only information is in the alpha-channel). Given an ARGB32
+ glyph XRender treats it as a per-channel mask, but since the R,G,B
+ channels were uniformly zero, the glyph is rendered as transparent.
+
+ Fix this by setting the initial colour to white before rendering the image
+ surface for a user-font glyph, which generates the appropiate gray-level
+ mask by default.
+
+ src/cairo-user-font.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit b5799e073e4e404aea277b7640eeee2120318823
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 18:07:31 2009 +0100
+
+ [xlib] Use bswap_32
+
+ Byteswap the ARGB32 glyphs using bswap_32 instead of open-coding.
+
+ src/cairo-xlib-surface.c | 30 +++++++++++-------------------
+ 1 file changed, 11 insertions(+), 19 deletions(-)
+
+commit 56e9765f82a64940b36a64688267fbe5d1c8919e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 14:25:04 2009 +0000
+
+ [util] Add font-view
+
+ A C variant of Behdad's python example font viewer.
+
+ util/Makefile.am | 5 ++
+ util/font-view.c | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 189 insertions(+)
+
+commit d331dda48017667c15f95bf7d510bce2f38111de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 15:41:19 2009 +0100
+
+ [perf] Missing ')' in output
+
+ perf/cairo-perf-compare-backends.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c9ddaf8e7f0006f308aab0b87cf0425b2690d914
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Sep 7 13:09:09 2008 +0930
+
+ PDF: Don't embed the same pattern more than once
+
+ The PDF surface now keeps track of all the patterns it is embedding in
+ a hash table keyed by the unique_id returned by the
+ _cairo_surface_get_unique_id().
+
+ src/cairo-pdf-surface-private.h | 13 +++-
+ src/cairo-pdf-surface.c | 134 +++++++++++++++++++++++++++++++---------
+ 2 files changed, 115 insertions(+), 32 deletions(-)
+
+commit f7613eeecea1218d353a183078fb77bc5cf4e72e
+Author: Paolo Bonzini <bonzini@gnu.org>
+Date: Tue Nov 25 20:15:15 2008 +0100
+
+ Add more surface snapshots providers
+
+ This patch adds more implementation of the snapshot method. For
+ surface types where acquire_source_image is already making a copy
+ of the bits, doing another one as is the case for the fallback
+ implementation is a waste.
+
+ src/cairo-glitz-surface.c | 16 +++++++++++++++-
+ src/cairo-quartz-surface.c | 19 ++++++++++++++++++-
+ src/cairo-xcb-surface.c | 17 ++++++++++++++++-
+ src/cairo-xlib-surface.c | 20 +++++++++++++++++++-
+ 4 files changed, 68 insertions(+), 4 deletions(-)
+
+commit cffb398f5a484000be458d04ef8f8bce3f6c7e3d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 26 21:07:07 2009 +0100
+
+ Add a generic cow-snapshotting framework
+
+ Provide a mechanism for backends to attach and remove snapshots. This can
+ be used by backends to provide a cache for _cairo_surface_clone_similar(),
+ or by the meta-surfaces to only emit a single pattern for each unique
+ snapshot.
+
+ In order to prevent stale data being returned upon a snapshot operation,
+ if the surface is modified (via the 5 high level operations, and on
+ notification of external modification) we break the association with any
+ current snapshot of the surface and thus preserve the current data for
+ their use.
+
+ src/cairo-meta-surface.c | 1 -
+ src/cairo-surface-fallback.c | 2 +-
+ src/cairo-surface-private.h | 7 +-
+ src/cairo-surface.c | 272 +++++++++++++++++++++++++++++++++----------
+ src/cairoint.h | 12 ++
+ test/mask.c | 12 +-
+ test/trap-clip.c | 12 +-
+ 7 files changed, 249 insertions(+), 69 deletions(-)
+
+commit 7ed050fd435f17d25c7b757b02cfe200f8779fc2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 13:08:25 2009 +0100
+
+ [perf] Benchmark traces
+
+ Add a variant of cairo-perf that measures the time to replay traces.
+
+ boilerplate/cairo-boilerplate-system.c | 15 +
+ boilerplate/cairo-boilerplate-system.h | 4 +
+ perf/.gitignore | 1 +
+ perf/Makefile.am | 17 ++
+ perf/README | 31 ++
+ perf/cairo-perf-compare-backends.c | 10 +-
+ perf/cairo-perf-trace.c | 530 +++++++++++++++++++++++++++++++++
+ 7 files changed, 605 insertions(+), 3 deletions(-)
+
+commit 403f780b292762aa45056c2fb5a48bb806521173
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 09:16:16 2009 +0100
+
+ [perf] Add a verbose flag for summary output with raw
+
+ Use 'cairo-perf -v -r' to have both the summary output along with the raw
+ values. This gives a progress report whilst benchmarking, very reassuring
+ with long running tests.
+
+ perf/cairo-perf.c | 82 +++++++++++++++++++++++++++++++++++--------------------
+ perf/cairo-perf.h | 3 ++
+ 2 files changed, 55 insertions(+), 30 deletions(-)
+
+commit 70fd2bbce38fca65db6725c632ee591352dfe42c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jun 2 09:00:21 2009 +0100
+
+ [perf] Exclude similar testing by default
+
+ There are synchronisation issues with similar surfaces (as only the
+ original target surface is synced) which interferes with making
+ performance comparisons. (There still maybe some value should you be aware
+ of the limitations...)
+
+ perf/cairo-perf.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit bc49cb377c70c4c6926ca52e34094e99a4591f14
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat May 30 12:28:23 2009 +0100
+
+ [perf] Benchmark mixing different masks and sources
+
+ perf/Makefile.am | 1 +
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/mask.c | 290 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 293 insertions(+)
+
+commit 4aca84ddb22bc178cbc9b132b9ce06af3f4b300b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 28 18:05:26 2009 +0100
+
+ [perf] Add a pure glyphs performance metric
+
+ Use the new API Behdad exposed in 1.8 to precompute a glyph string using
+ Cairo and then benchmark cairo_show_glyphs(). This is then equivalent to
+ the text benchmark but without the extra step of converting to glyphs on
+ every call to cairo_show_text() i.e. it shows the underlying glyph
+ rendering performance.
+
+ perf/Makefile.am | 1 +
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/glyphs.c | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 100 insertions(+)
+
+commit 55f4e0e4e8c7df59bfc9e6ffea8daa065276e42f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat May 30 16:50:17 2009 +0100
+
+ [perf] Change seperators from '-' to '.'
+
+ This allows the perf tests to use '-' in the name which is easier to read
+ and differentiates with using '_' to separate source and operators.
+
+ perf/cairo-perf-compare-backends.c | 22 ++++++++++++----------
+ perf/cairo-perf-cover.c | 32 ++++++++++++++++----------------
+ perf/cairo-perf-report.c | 16 +++++++++++++---
+ perf/cairo-perf.c | 8 ++++----
+ perf/mosaic.c | 8 ++++----
+ perf/pattern_create_radial.c | 4 ++--
+ perf/pythagoras-tree.c | 2 +-
+ perf/subimage_copy.c | 4 ++--
+ perf/unaligned-clip.c | 2 +-
+ perf/world-map.c | 4 ++--
+ perf/zrusin.c | 4 ++--
+ 11 files changed, 59 insertions(+), 47 deletions(-)
+
+commit b7c03d4e400245fc2b2d748fe808a9724e61f22f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 27 16:31:51 2009 +0100
+
+ [ps] Trivial warning fix.
+
+ src/cairo-ps-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 99482b17a50a8ae52b7627bf624e358ed3623540
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 27 18:34:54 2009 +0100
+
+ [script] Improve caching of glyph advance
+
+ The glyph advance cache was only enabled for glyph indices < 256,
+ causing a large number of misses for non-ASCII text. Improve this by
+ simply applying the modulus of the index to select the cache slot - which
+ may cause some glyph advances to be overwritten and re-queried, but
+ improves the hit rate.
+
+ util/cairo-script/cairo-script-operators.c | 39 +++++++++++-------------------
+ 1 file changed, 14 insertions(+), 25 deletions(-)
+
+commit 51193f1610c0f6893768e43e90a3395ec96c28fb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 28 14:16:58 2009 +0100
+
+ [pattern] Pass flags to _cairo_pattern_acquire_surface()
+
+ Allow the caller to choose whether or not various conversions take place.
+ The first flag is used to disable the expansion of reflected patterns into a
+ repeating surface.
+
+ src/cairo-directfb-surface.c | 1 +
+ src/cairo-glitz-surface.c | 1 +
+ src/cairo-image-surface.c | 3 +++
+ src/cairo-pattern.c | 13 +++++++++++--
+ src/cairo-xcb-surface.c | 4 ++++
+ src/cairo-xlib-surface.c | 5 +++++
+ src/cairoint.h | 6 ++++++
+ 7 files changed, 31 insertions(+), 2 deletions(-)
+
+commit 4ec451a2fa4050a60a81d01473d23ff2973f47e6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 27 17:35:54 2009 +0100
+
+ [scaled-font] Cache repeated glyphs during probing device_extents
+
+ Maintain a local on-stack cache of recently queried glyphs to avoid
+ relatively expensive hash table queries.
+
+ src/cairo-scaled-font.c | 35 +++++++++++++++++++++++------------
+ 1 file changed, 23 insertions(+), 12 deletions(-)
+
+commit ec22ae5b1d7e8ec364813f3b1c73f538018ecb57
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 27 11:11:06 2009 +0100
+
+ [scaled-font] Compare most recently used font directly
+
+ Avoid the relatively expensive _cairo_scaled_font_init_key() operation
+ when checking against the most recently used font.
+
+ src/cairo-scaled-font.c | 28 +++++++++++++++++++++++-----
+ 1 file changed, 23 insertions(+), 5 deletions(-)
+
+commit 16d128c15edf36a6e285fe4fbd6a828b64fd7f87
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 27 21:10:04 2009 +0100
+
+ [scaled-font] Lazily acquire the font_map_lock on font destruction.
+
+ We can defer taking the cairo_scaled_font_map_lock until we drop the
+ last reference to the scaled font so long as we double check the reference
+ count after waiting for the lock and not making assumptions about
+ unreferenced fonts during construction. This is significant as even
+ acquiring the uncontended cairo_scaled_font_map_lock during
+ cairo_scaled_font_destroy() was showing up as a couple of percent on text
+ heavy profiles (e.g. gnome-terminal).
+
+ src/cairo-scaled-font.c | 32 +++++++++++++++++---------------
+ 1 file changed, 17 insertions(+), 15 deletions(-)
+
+commit dc083ab30a5b781e205354c525ee054982364abd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 27 14:54:34 2009 +0100
+
+ [cairo] Track the MRU scaled font
+
+ When observing applications two patterns emerge. The first is due to
+ Pango, which wraps each glyph run within a context save/restore. This
+ causes the scaled font to be evicted after every run and reloaded on the
+ next. This is caught by the MRU slot on the cairo_scaled_font_map and
+ prevents a relatively costly traversal of the hash table and holdovers.
+
+ The second pattern is by applications that directly manage the rendering
+ of their own glyphs. The prime example of this is gnome-terminal/vte. Here
+ the application frequently alternates between a few scaled fonts - which
+ requires a hash table retrieval every time.
+
+ By introducing a MRU slot on the gstate we are able to directly recover
+ the scaled font around 90% of the time.
+
+ Of 110,000 set-scaled-fonts:
+ 4,000 were setting the current font
+ 96,000 were setting to the previous font
+ 2,500 were recovered from the MRU on the cairo_scaled_font_map
+ 7,500 needed a hash retrieval
+ which compares to ~106,000 hash lookups without the additional MRU slot on
+ the gstate.
+
+ This translates to an elapsed time saving of ~5% when replaying a
+ gnome-terminal trace using the drm backend.
+
+ src/cairo-gstate-private.h | 1 +
+ src/cairo-gstate.c | 18 ++++++++++++++----
+ src/cairo.c | 6 ++++++
+ 3 files changed, 21 insertions(+), 4 deletions(-)
+
+commit fda89c56ff484a8cd33cd780e8b9396d3538284d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 27 15:59:16 2009 +0100
+
+ Markup a few more functions as const/pure
+
+ src/cairoint.h | 59 ++++++++++++++++++++++++++++++----------------------------
+ 1 file changed, 31 insertions(+), 28 deletions(-)
+
+commit f59f44c140e5f60d336423e0585d2bb8a6c0ea01
+Merge: 2da78fd46 4232719af
+Author: Eric Anholt <eric@anholt.net>
+Date: Tue Jun 2 00:37:19 2009 -0700
+
+ Merge commit 'origin/master' into gl
+
+ Felt like pulling the latest stuff, since I branched back in February.
+
+ Conflicts:
+ build/configure.ac.features
+ src/cairo.h
+ util/cairo-script/csi-replay.c
+
+commit 2da78fd4666faa27d037ae3625ca83353a6e7629
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Jun 1 14:04:21 2009 -0700
+
+ [gl] Drop use of packed datatypes where it's disallowed.
+
+ I had naively assumed that GL image specification let you do useful things
+ and describe the most common datatypes in graphics, since we do things that
+ way inside of the DRI drivers. Silly me. GL_BGR and GL_RGB can't do
+ GL_UNSIGNED_INT_8_8_8_8{,_REV}, so no specifying 24-depth 32-bpp data with
+ implicit alpha. GL_BGR can't even do r5g6b5!
+
+ This fixes 20 regressions in the test suite.
+
+ src/cairo-gl-surface.c | 25 +++++++++++++------------
+ 1 file changed, 13 insertions(+), 12 deletions(-)
+
+commit 69a150b7d8115babf2c60d7c5f7ca340162dc098
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Jun 1 13:36:32 2009 -0700
+
+ [gl] Initialize has_alpha in the image surface composite fastpath.
+
+ Fixes bilevel-image, set-source, and zero-alpha.
+
+ src/cairo-gl-surface.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 7ee0fee900bf30a7ca0497ab64199c9013f81cdd
+Merge: 882f1d5a6 d3a478b6c
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Jun 1 10:45:36 2009 -0700
+
+ Merge branch 'gl' into gl-span-renderer
+
+ Conflicts:
+ src/cairo-gl-surface.c
+
+commit d3a478b6c0dca3884a68c5014185cad0a166801c
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Jun 1 10:19:24 2009 -0700
+
+ [gl] Fix check-plt.sh for the GL surface.
+
+ src/cairo-gl-surface.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit 1f7c393a6d63282a632a62264b99e67e26ecf38e
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Jun 1 10:10:00 2009 -0700
+
+ [gl] Fix check-doc-syntax.sh for GL surface.
+
+ src/cairo-gl-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 19bc0f2f1d75b1514b22d0bb737bad67ff8d1ee6
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Jun 1 10:09:16 2009 -0700
+
+ [gl] Fix check-def.sh for GL surface.
+
+ src/cairo-gl-surface.c | 2 +-
+ src/cairo-gl.h | 6 ------
+ 2 files changed, 1 insertion(+), 7 deletions(-)
+
+commit e05097c604c607d27b341cd33426001bd2d1f690
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 27 16:45:20 2009 +0100
+
+ [surface] Assign a unique id to the surface.
+
+ Allocate an ever-increasing, non-zero, unique identifier to each surface.
+ True for the first 4-billion...
+
+ src/cairo-pattern.c | 11 ++++++++---
+ src/cairo-surface-private.h | 2 ++
+ src/cairo-surface.c | 25 +++++++++++++++++++++++++
+ 3 files changed, 35 insertions(+), 3 deletions(-)
+
+commit 45835f623f5ddda6e3258361b9d6ab27860a9198
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 26 12:46:46 2009 +0100
+
+ [cache] Expose init/fini methods so that caches can be embedded.
+
+ The structure is already exposed, so just expose the
+ constructors/destructors in order to enable caches to be embedded and
+ remove a superfluous malloc.
+
+ src/cairo-cache-private.h | 27 +++++++++---
+ src/cairo-cache.c | 104 ++++++++++++++++------------------------------
+ src/cairo-scaled-font.c | 35 ++++++++--------
+ src/cairo-types-private.h | 14 -------
+ 4 files changed, 74 insertions(+), 106 deletions(-)
+
+commit c3aac9cf49362b726a54a33a46bd8511a10f644f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 26 10:37:30 2009 +0100
+
+ [image] Eliminate trapezoid array allocation
+
+ By simply iterating over the array cairo_trapezoid_t, converting each one
+ separately to a pixman_trapezoid_t and rasterizing each one individually
+ we can avoid the common heap allocation. pixman performs exactly the same
+ iteration internally so there is no efficiency loss.
+
+ src/cairo-image-surface.c | 92 +++++++++++++++++++++++------------------------
+ 1 file changed, 45 insertions(+), 47 deletions(-)
+
+commit 7b2bc441387abcf3967587f571dc5741d0a53938
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 26 10:41:53 2009 +0100
+
+ [surface-fallback] Tidy pattern handling.
+
+ Make the treatment of replacing the NULL source pattern with WHITE
+ consistent. As it is a solid pattern, we can skip _cairo_pattern_fini()
+ and so make the code more readable, and consistent along the error paths.
+
+ src/cairo-surface-fallback.c | 83 ++++++++++++++++++--------------------------
+ 1 file changed, 33 insertions(+), 50 deletions(-)
+
+commit e83e113eae9e7cb3e09719bfc0ad68450faf3ecd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 23:25:38 2009 +0100
+
+ [surface] Speed up cairo_surface_get_mime_data().
+
+ The number of mime-types attached to a surface is usually small,
+ typically zero. Therefore it is quicker to do a strcmp() against
+ each key in the private mime-data array than it is to intern the
+ string (i.e. compute a hash, search the hash table, and do a final
+ strcmp).
+
+ src/cairo-array.c | 8 --------
+ src/cairo-surface.c | 33 ++++++++++++++++++---------------
+ src/cairoint.h | 6 ++++++
+ 3 files changed, 24 insertions(+), 23 deletions(-)
+
+commit 247e76b923d54f639e2ca50c8da945c15b691158
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 26 08:53:45 2009 +0100
+
+ [script] Speed up floating-point scanner
+
+ Hard-code frequent exponents to reduce number of calls to pow().
+
+ util/cairo-script/cairo-script-scanner.c | 45 ++++++++++++++++++++++----------
+ 1 file changed, 31 insertions(+), 14 deletions(-)
+
+commit c5e85835b29c7654e1c28a90b2e587afba7b6f0f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 26 15:52:30 2009 +0100
+
+ [debug] Relax ASSERT_NOT_REACHED
+
+ Need to actually handle random pixman image formats...
+ For the time being, ignore them.
+
+ src/cairo-debug.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4232719af968ed05636fe34f2ffe2520dc02d737
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat May 30 23:03:55 2009 -0400
+
+ [ft] Fix vertical advance metrics of bitmap fonts (#21985)
+
+ src/cairo-ft-font.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 4314cae874dec2747df6be88859d7b6174eece31
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed May 27 17:56:05 2009 +0930
+
+ Fix typo in comment
+
+ src/cairo-truetype-subset.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 7dbc2fe80a4fe0dcee4a293e47ab6edcefc24e18
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 20:36:34 2009 +0100
+
+ [script] Simplify _dictionary_name_equal
+
+ Just a simple return TRUE since all necessary checking is performed by
+ _csi_hash_table_lookup().
+
+ util/cairo-script/cairo-script-objects.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit 0b5e92e66be94ce7cc9c31e911f23c4cb7ec77af
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 19:56:57 2009 +0100
+
+ [script] Check hash value between comparing keys
+
+ util/cairo-script/cairo-script-hash.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit a364f71194aa2ea92071662f156c9b2a4d9211b4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 21:25:27 2009 +0100
+
+ [trace] Set output location using pwd
+
+ Record the current working directory and pass that along to cairo-trace so
+ that the trace output is local to the user and not the application. This
+ is vital if the application is called via a script that changes directory.
+
+ util/cairo-trace/cairo-trace.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a76e09ea656faa63fbfa159e8f52c9c9ec7d35c6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 21:22:43 2009 +0100
+
+ [trace] Missing newlines in error messages.
+
+ util/cairo-trace/trace.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit b7f199fde25c960bf87302d5e868a7c2dffa4f5d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 12:40:35 2009 +0100
+
+ [pattern] Trim REPEAT source size when applicable.
+
+ Some backends are quite constrained with surface sizes and so trigger
+ fallbacks when asked to clone large images. To avoid this we attempt
+ to trim ROIs (as these are often limited to the destination image, and
+ so can be accommodated by the hardware). This patch allows trimming
+ REPEAT sources both horizontally and vertically independently.
+
+ src/cairo-pattern.c | 21 ++++++++++++++++++---
+ 1 file changed, 18 insertions(+), 3 deletions(-)
+
+commit e4efc80b8e89b05afc22d74f984f4ec9012bc39b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 21:15:22 2009 +0100
+
+ [build] Make valgrind support user-configurable
+
+ As the number of places where we add valgrind client requests grows, it
+ becomes imperative that we should be able to disable them with a simple
+ configure time option.
+
+ build/configure.ac.analysis | 37 ++++++++++++++++++++++---------------
+ 1 file changed, 22 insertions(+), 15 deletions(-)
+
+commit d840deb57b51236820dc8c320ecd7540973de873
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 22:11:22 2009 +0100
+
+ [in-fill] Fix typo in on-vertex test.
+
+ Eeek! Comparing point->y against in_fill->x is a bad idea.
+
+ src/cairo-path-in-fill.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit cfd484cd01a77b1f91e27daccfc5f240cf7c692d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon May 25 22:10:20 2009 +0100
+
+ [test] Change test semantics to match new in-fill definition
+
+ The in-fill definition has changed to include queries on the edges and
+ vertices, so update the test case to match.
+
+ test/in-fill-trapezoid.c | 77 +++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 57 insertions(+), 20 deletions(-)
+
+commit b71b019fe50a9188ddbecd1945606da8ba3bad53
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Feb 27 16:32:21 2009 +0000
+
+ [in-fill] Treat on-edge queries as inside.
+
+ Jeff Muizelaar noted that the treatment of edges differed with firefox's
+ canvas definition, which considers a point on any edge as inside. The
+ current implementation has a similar definition to that of flash, for
+ which the top and right edges are outside. Arguably, firefox has the more
+ intuitive definition here...
+
+ src/cairo-path-in-fill.c | 21 ++++++++++++++++++++-
+ 1 file changed, 20 insertions(+), 1 deletion(-)
+
+commit efd0f0b2922d0801e4e0e8e75ddf9b9892a2f2e6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 20 18:49:28 2009 +0100
+
+ [xlib] Handle too-large images gracefully.
+
+ Trigger a fallback to an image surface for massive patterns.
+
+ src/cairo-xlib-surface.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 3c6838532a62c294e7f18b13b0b7f8da9a1a1e1e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 20 18:46:35 2009 +0100
+
+ [surface] Early return if the backend cannot clone an image
+
+ If the backend cannot create a similar surface to hold the image, then
+ report back the failure before embarking upon an infinite recursion.
+ The UNSUPPORTED return should percolate up through the call stack and
+ trigger a fallback.
+
+ src/cairo-surface.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit bf2c7356d4c955fb770863874a0ea111e9ba02a4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 22 12:52:43 2009 +0100
+
+ [surface] Provide nil-surface for INVALID_SIZE
+
+ So that we can faithfully report back failure if the user tries to create
+ a surface larger than the backend can support.
+
+ src/cairo-surface.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 6717f0d748000416172057d0aab2471377456e27
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 20 17:35:19 2009 +0100
+
+ [win32] Wrap win32-font usage with CAIRO_HAS_WIN32_FONT
+
+ Bug 19251: --enable-win32=yes and --enable-win32-font=no causes
+ compilation failure
+ [https://bugs.freedesktop.org/show_bug.cgi?id=19251]
+
+ Wrap use of the win32 font backend within win32-printing-surface within
+ CAIRO_HAS_WIN32_FONT ifdefs to prevent compilation failure if the user
+ explicitly disables the win32 font backend.
+
+ src/cairo-win32-printing-surface.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit c7d2b0de830f4c653fbb5016c4efdc5f0e5af0eb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed May 20 17:34:56 2009 +0100
+
+ [win32] Typo
+
+ Correct function name in error string.
+
+ src/cairo-win32-printing-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 87b764908a38cbb4159ac76d8b7d1d08a24b838e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 19 15:53:55 2009 +0100
+
+ [gl] Add EGL target
+
+ Split the GLX context from the GL surface to enable use of an alternative
+ EGL interface.
+
+ boilerplate/Makefile.win32.features | 20 ++
+ boilerplate/cairo-boilerplate-gl.c | 2 +-
+ build/Makefile.win32.features | 2 +
+ build/Makefile.win32.features-h | 6 +
+ build/configure.ac.features | 3 +
+ configure.ac | 30 ++-
+ src/Makefile.sources | 4 +-
+ src/Makefile.win32.features | 28 +++
+ src/cairo-egl-context.c | 181 ++++++++++++++++++
+ src/cairo-gl-private.h | 88 +++++++++
+ src/cairo-gl-surface.c | 191 ++++++++-----------
+ src/cairo-gl.h | 41 +++--
+ src/cairo-glx-context.c | 136 ++++++++++++++
+ test/.gitignore | 2 +
+ test/Makefile.am | 10 +
+ test/egl-flowers.c | 358 ++++++++++++++++++++++++++++++++++++
+ test/glx-flowers.c | 256 ++++++++++++++++++++++++++
+ util/cairo-script/.gitignore | 2 +
+ util/cairo-script/Makefile.am | 15 ++
+ util/cairo-script/csi-egl.c | 263 ++++++++++++++++++++++++++
+ util/cairo-script/csi-glx.c | 150 +++++++++++++++
+ util/cairo-script/csi-replay.c | 61 ++++++
+ 22 files changed, 1723 insertions(+), 126 deletions(-)
+
+commit 6e87e354e42d1a758a252533407e6e1829638544
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun May 17 18:14:28 2009 +0930
+
+ Correct the comment for the index_to_ucs4 font backend function
+
+ src/cairoint.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 2a34992cccfd77c2acf30fe851311f16137ba32f
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun May 17 18:12:39 2009 +0930
+
+ Ensure win32 font index_to_ucs4() sets ucs4 to -1 if lookup fails
+
+ src/cairo-win32-font.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 4c8e5485a10478c19e8a6cb48595473f5bb8ee8a
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun May 17 18:05:42 2009 +0930
+
+ Fix win32 build breakage
+
+ that was caused by c25992479aca481d326f72665ebdcf0904273eac
+
+ src/cairo-win32-private.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 31596cf2b298054bbd3e340ae77a3388eadc0d8b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 15 17:40:26 2009 +0100
+
+ [debug] Check image contents using memcheck.
+
+ As an aide to tracking down the source of uninitialised reads, run
+ VALGRIND_CHECK_MEM_IS_DEFINED() over the contents of image surfaces at the
+ boundary between backends, e.g. upon setting a glyph image or acquiring
+ a source image.
+
+ src/cairo-debug.c | 42 ++++++++++++++++++++++++++++++++++++++++++
+ src/cairo-ft-font.c | 2 ++
+ src/cairo-pattern.c | 2 ++
+ src/cairo-png.c | 2 ++
+ src/cairo-scaled-font.c | 3 +++
+ src/cairo-surface.c | 32 +++++++++++++++++++++++---------
+ src/cairoint.h | 11 +++++++++++
+ 7 files changed, 85 insertions(+), 9 deletions(-)
+
+commit 791a6fa399894e735d522781b15b7f18c3ecd4d1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 15 16:57:49 2009 +0100
+
+ [memfault] Update macros to avoid namescape collision with memcheck
+
+ Basing the macro names of the memfault skin lead to a namespace
+ collision with memcheck. After updating the headers, update cairo's usage
+ to match.
+
+ src/cairo-malloc-private.h | 2 +-
+ test/cairo-test.c | 62 +++++++++++++++++++++++-----------------------
+ 2 files changed, 32 insertions(+), 32 deletions(-)
+
+commit c897f36a6b09f3591d858142e3236f256f0bd6a2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 15 20:37:52 2009 +0100
+
+ [test] Stress the ft from-face cache
+
+ Create a set of font faces using the same FT_Face to stress test the
+ handling of from-face fonts within the backend cache.
+
+ test/ft-font-create-for-ft-face.c | 109 +++++++++++++++++++++++++++++++++++---
+ 1 file changed, 102 insertions(+), 7 deletions(-)
+
+commit 477df1f5504a507d0c5960aa7e21375284a6f99c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 15 10:48:56 2009 +0100
+
+ [test] Clear expected floating point exceptions
+
+ test/invalid-matrix deliberately feeds garbage into the API to test our
+ error detection. This causes FPE to be raised during the course of the
+ test - so they are deliberately disable for the duration. However, the
+ exceptions were not being cleared and so the FPE could be triggered on
+ the next floating point operation. This was being masked during make check,
+ by the fact that each test is run in its own forked process and was only
+ observed when multiple tests were run in foreground mode.
+
+ build/configure.ac.system | 2 +-
+ test/invalid-matrix.c | 4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+commit f47a93ef30249b531e588335045d052c3dcc71bd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat May 9 09:55:49 2009 +0100
+
+ [test] Check text->path with user-fonts (twin)
+
+ Check behaviour of user-fonts, twin in particular, when using the text as
+ a path.
+
+ test/twin.c | 11 ++++++++++-
+ test/twin.ps.ref.png | Bin 1114 -> 2197 bytes
+ test/twin.ref.png | Bin 1492 -> 4038 bytes
+ test/twin.svg.ref.png | Bin 1487 -> 3027 bytes
+ 4 files changed, 10 insertions(+), 1 deletion(-)
+
+commit 669e7ae5c98812360bf20b798c20024ae2e9810b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 8 17:36:01 2009 +0100
+
+ [test] Relax APPROX_EQUALS condition
+
+ The bounding box of the text is rounded to the nearest pixel boundaries,
+ so therefore the test must accept a similar level of imprecision.
+
+ test/get-path-extents.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit fe7410c6cdc19bb366bf1e93481bf8287a14d52e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat May 9 19:01:06 2009 +0100
+
+ [test] Add a note to "Getting the elusive zero failures"
+
+ The test suite depends upon many external factors and in order to achieve
+ a pass, your system must match that upon which the reference images were
+ generated. Add a note to read test/README in case of failures so that the
+ casual user is not unduly alarmed by cairo reportedly failing.
+
+ test/cairo-test-runner.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+commit 2f962799a77faef0e6ad62c79bd7eebc9b8c5a4b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 15 18:49:03 2009 +0100
+
+ [test] Fix typos that excluded backend test sources
+
+ test/Makefile.am | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit c25992479aca481d326f72665ebdcf0904273eac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat May 9 10:10:14 2009 +0100
+
+ [xlib] Use minimal depth for similar clones.
+
+ Damian Frank noted
+ [http://lists.cairographics.org/archives/cairo/2009-May/017095.html]
+ a performance problem with an older XServer with an
+ unaccelerated composite - similar problems will be seen with non-XRender
+ servers which will trigger extraneous fallbacks. The problem he found was
+ that painting an ARGB32 image onto an RGB24 destination window (using
+ SOURCE) was going via the RENDER protocol and not core. He was able to
+ demonstrate that this could be worked around by declaring the pixel data as
+ an RGB24 image. The issue is that the image is uploaded into a temporary
+ pixmap of matching depth (i.e. 32 bit for ARGB32 and 24 bit for RGB23
+ data), however the core protocol can only blit between Drawables of
+ matching depth - so without the work-around the Drawables are mismatched
+ and we either need to use RENDER or fallback.
+
+ This patch adds a content mask to _cairo_surface_clone_similar() to
+ provide the extra bit of information to the backends for when it is
+ possible for them to drop channels from the clone. This is used by the
+ xlib backend to only create a 24 bit source when blitting to a Window.
+
+ src/cairo-clip.c | 1 +
+ src/cairo-directfb-surface.c | 2 ++
+ src/cairo-glitz-surface.c | 3 +++
+ src/cairo-image-surface.c | 4 ++++
+ src/cairo-pattern.c | 18 +++++++++++++---
+ src/cairo-quartz-surface.c | 1 +
+ src/cairo-surface-fallback-private.h | 1 +
+ src/cairo-surface-fallback.c | 3 ++-
+ src/cairo-surface.c | 7 +++++-
+ src/cairo-win32-surface.c | 3 ++-
+ src/cairo-xcb-surface.c | 5 +++++
+ src/cairo-xlib-surface.c | 42 +++++++++++++++++++++++++++---------
+ src/cairoint.h | 4 ++++
+ src/test-fallback-surface.c | 1 +
+ src/test-fallback16-surface.c | 2 ++
+ test/surface-source.c | 1 +
+ 16 files changed, 82 insertions(+), 16 deletions(-)
+
+commit 0238fe2cafea2e1ed19bb222117bd73ee6898d4d
+Author: Karl Tomlinson <karlt+@karlt.net>
+Date: Thu May 14 11:46:29 2009 +0100
+
+ [ft] Resolve mutual referencing problems with zombie faces
+
+ Bug 21706 -- zombie ft_font_face / ft_unscaled_font mutual
+ referencing problems
+ [http://bugs.freedesktop.org/show_bug.cgi?id=21706]
+
+ There can be more than one zombie font_face belonging to an unscaled_font,
+ but only the first is destroyed. This leaks the client's FT_Face
+ (and associated font data) as release of the FT_Face depends on release
+ of the font_face.
+
+ (The reason why Firefox ends up with two different font_faces for one
+ unscaled_font is that load_flags for faces with artificial oblique have
+ FT_LOAD_NO_BITMAP set.
+ https://bugzilla.mozilla.org/show_bug.cgi?id=486974)
+
+ Also it's possible for _cairo_ft_font_face_create to pull out a zombie
+ font_face from the unscaled_font, which would crash
+ _cairo_ft_font_face_scaled_font_create, as that expects non-null
+ font_face->unscaled (if !font-face->pattern).
+
+ AUTHORS | 2 +-
+ src/cairo-ft-font.c | 38 ++++++++++++++++++++++++++++++--------
+ 2 files changed, 31 insertions(+), 9 deletions(-)
+
+commit d6f6ec9082c86b9fd9e2389b9627f08a91c2cdd3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 8 16:43:43 2009 +0100
+
+ [ft] Restore the ability to lazily resolve patterns.
+
+ I broke the ability for the ft font backend to resolve patterns whilst
+ fixing the font creation to propagate the error status from fontconfig
+ (be27e8). By adjusting the sequence of error checks we do not confuse
+ the absence of a match with a fatal error and thereby restoring the
+ lazy pattern resolution whilst ensuring error propagation.
+
+ src/cairo-ft-font.c | 32 +++++++++++++++++---------------
+ 1 file changed, 17 insertions(+), 15 deletions(-)
+
+commit a352fd46020e18f9d9f839f0c3f3a63c1d8c0ae1
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Fri May 15 15:34:05 2009 -0400
+
+ Only include <strings.h> for ffs() when we HAVE_FFS
+
+ This fixes breakage caused by 3d3d10a31e04498ef91a288d89b3dec291bfc323
+
+ src/cairo-skiplist.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 882f1d5a60abfbf83c65fe00b31bb4c8e5c82f62
+Author: Eric Anholt <eric@anholt.net>
+Date: Sun May 10 16:56:49 2009 -0700
+
+ [gl] Use spans directly as geometry instead of rasterizing to a temporary.
+
+ I was hoping for a bigger win than this, but cairogears is now significantly
+ faster than it was with just traps. One potential problem is that adding
+ src texture coordinates blew up vertex size from 12 bytes to 20, and we're
+ emitting quite a few vertices. There's plenty of hope for the future,
+ though: With shaders we could remove the 2 new texcoords again by stuffing a
+ position to source coordinate transformation matrix in constants. Then
+ with EXT_geometry_shader4 plus EXT_gpu_shader4 we should be able to get the
+ 24 bytes for 2 vertices down to 16 or less.
+
+ src/cairo-gl-surface.c | 316 ++++++++++++++++++++++++++-----------------------
+ 1 file changed, 171 insertions(+), 145 deletions(-)
+
+commit 7b4f2d5e6dd37232d4fa764b69065c7d96856dcc
+Author: Eric Anholt <eric@anholt.net>
+Date: Sun May 10 14:50:22 2009 -0700
+
+ [gl] Use Enable/DisableClientState for arrays for consistency.
+
+ src/cairo-gl-surface.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 705ee3da1372e8533f25e0b4bde072e4bf76872b
+Author: Eric Anholt <eric@anholt.net>
+Date: Sat May 9 12:17:12 2009 -0700
+
+ [gl] Add HW spans implementation using VBOs and GL_LINES.
+
+ This is a minor performance regression over software, but is the basis for
+ not rasterizing the geometry into a temporary mask, which should be a
+ significant win.
+
+ src/cairo-gl-surface.c | 145 ++++++++++++++++++++++++++++++++++++++++++-------
+ 1 file changed, 124 insertions(+), 21 deletions(-)
+
+commit 934af24ccce9c06fc38ab7735d643d230fb3b8ad
+Author: Eric Anholt <eric@anholt.net>
+Date: Sat May 9 10:03:06 2009 -0700
+
+ [gl] Use the span renderer with an image surface temporary.
+
+ This appears to be no performance difference in cairogears versus the traps
+ fallback before, but is a step towards handing the information off to the
+ hardware.
+
+ src/cairo-gl-surface.c | 210 ++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 208 insertions(+), 2 deletions(-)
+
+commit 17b41fe7e3b8b493341be6384d816105aadf0cb6
+Author: Eric Anholt <eric@anholt.net>
+Date: Sun May 10 10:17:27 2009 -0700
+
+ [gl] Use filtering of GL_NEAREST to hint to TexImage not to alloc for mipmaps.
+
+ Gl defaults to NEAREST_MIPMAP_LINEAR on new texture objects.
+ This should save space or bandwidth with DRI drivers, as they'll use the
+ parameter as a hint, and then not have to either fix up later or waste
+ space for unused mipmap levels.
+
+ src/cairo-gl-surface.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit a438acd37c5aaedc7e7a05e6a9d8758315931b44
+Author: Eric Anholt <eric@anholt.net>
+Date: Sat May 9 11:33:53 2009 -0700
+
+ [gl] Handle PIXMAN_b8g8r8a and PIXMAN_b8g8r8x8 in the image tex shortcut.
+
+ src/cairo-gl-surface.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit 29768c2193b09d3bef54a178c8e3ba6f7e7cebd0
+Author: Eric Anholt <eric@anholt.net>
+Date: Sat May 9 11:30:11 2009 -0700
+
+ [gl] Don't forget that we require ARB_texture_non_power_of_two currently.
+
+ src/cairo-gl-surface.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 088d2a6cc70b01f55d178d235542247180b3e5ee
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 11:35:17 2009 +0100
+
+ [doc] Update identifiers
+
+ doc/public/tmpl/cairo-status.sgml | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit d8fb6a03d3034cf776687bcc1f0625a8a9f2ae07
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 14:57:13 2009 +0100
+
+ [path] Define _BSD_SOURCE to enable hypot()
+
+ hypot() is only declared for BSD/SVID/XOPEN/C99 sources. Choose BSD as
+ we've used that elsewhere.
+
+ src/cairo-path-stroke.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit e38f85c5de51016b8858e755e2752816c9995ab2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 14:42:15 2009 +0100
+
+ [script] Pedantic violations
+
+ Fixup a few trivial errors with -pedantic.
+
+ util/cairo-script/cairo-script-operators.c | 2 +-
+ util/cairo-script/cairo-script-private.h | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 0c00556990a842e0ee0056134c6e196c2fb372b7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 14:11:12 2009 +0100
+
+ [script] Missing include for INT32_MAX
+
+ Avoid depending upon stdint.h, or rather cut'n'pasting Cairo's portable
+ defines, by using INT_MAX and limits.h instead.
+
+ util/cairo-script/cairo-script-file.c | 3 ++-
+ util/cairo-script/cairo-script-objects.c | 3 ++-
+ util/cairo-script/cairo-script-operators.c | 13 +++++++------
+ util/cairo-script/cairo-script-scanner.c | 5 +++--
+ util/cairo-script/cairo-script-stack.c | 7 ++++---
+ 5 files changed, 18 insertions(+), 13 deletions(-)
+
+commit 3d3d10a31e04498ef91a288d89b3dec291bfc323
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 14:10:47 2009 +0100
+
+ [skiplist] Missing include for ffs()
+
+ src/cairo-skiplist.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit e5752865ab0ebefec313ab9a6f90451ef2d7af95
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 14:58:45 2009 +0100
+
+ [cairo] Protect typeof against -ansi
+
+ s/typeof/__typeof__/ to allow the [gcc-specific] macro to continue to work
+ despite -ansi.
+
+ src/cairoint.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5f4f2ab01ab3fa6b07ac7521dfeaf90a787a5dee
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 14:34:47 2009 +0100
+
+ [cairo] Remove stray semi-colon
+
+ Pedantic finds another victim.
+
+ src/cairoint.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit d86ad461cf7a9d857bd07a6b775c84acbf35647b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 14:16:05 2009 +0100
+
+ [cairo] Convert C99 comments to /* ... */
+
+ First victim of -pedantic...
+
+ src/cairoint.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 695f648607dd5a78cf29dcc33ed19aa223d0416a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 11:16:10 2009 +0100
+
+ [cairo] Fix errors reported by check-doc
+
+ Identity a few new instances of CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED in
+ comments with %.
+
+ src/cairo.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 849bdee199b5ebba467603a69d30bb519c10bc75
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 11:36:38 2009 +0100
+
+ [check] Quieten output during checking headers-standalone
+
+ Remove the duplication of the compile line and enable shave to replace it
+ entirely with a "CHECK $header". This should make errors more obvious.
+
+ build/shave.in | 3 +++
+ src/Makefile.am.analysis | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+commit 84fad4b11bc26cfd0847660e3309eb902d783713
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 11:31:22 2009 +0100
+
+ [build] Fix gtk-doc interoperation with shave
+
+ Add --tag=CC to the libtool invocations.
+
+ build/Makefile.am.gtk-doc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit fd72c56af833a738ddc8f188cabe03d9f8b45475
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu May 7 11:27:43 2009 +0100
+
+ [build] Report status of gtk-doc in summary
+
+ build/configure.ac.features | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 428fb58a4c96391f96f48026be49a4533cd12834
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Apr 28 15:03:53 2009 -0400
+
+ [user-font] Add CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED
+
+ This is useful for language bindings to signal that a method is not
+ implemented.
+
+ src/cairo-misc.c | 2 ++
+ src/cairo-surface.c | 1 +
+ src/cairo-user-font.c | 14 +++++++++++---
+ src/cairo.h | 23 ++++++++++++++---------
+ 4 files changed, 28 insertions(+), 12 deletions(-)
+
+commit f9573d03dde2c38674d36b783044715ab5104b0a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Mar 17 19:48:12 2009 -0400
+
+ Err, make gtk-doc happy again
+
+ doc/public/tmpl/cairo-status.sgml | 2 +-
+ src/cairo.h | 2 --
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+commit 30735f790aa3cef822f132932f43a4738cd8cd95
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 5 18:37:25 2009 +0100
+
+ [xlib] Use a similar content surface for cloning images
+
+ Simply request a surface with a similar content to the source image when
+ uploading pixel data. Failing to do so prevents using a 16-bit (or
+ otherwise non-standard pixman image format) window as a source - in fact
+ it will trigger an infinite recursion.
+
+ src/cairo-xlib-surface.c | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+commit 60e38d0530443aa9c78e74e47ba5574887ae220c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 5 17:05:39 2009 +0100
+
+ [surface] Convert FORMAT_INVALID during snapshots
+
+ Currently the surface snapshotting attempts to clone the source using a
+ new surface of identical format. This will raise an error if the source is
+ an unusual xserver, for example one operating at 16bpp. The solution to
+ this is to create the surface using the content type rather than the
+ format (as elsewhere within the code base). However, we also wish to
+ preserve FORMAT_A1 (which is lost if we only choose the format based on
+ _cairo_format_from_content) as the various backends may be able to
+ trivially special case such bitmaps.
+
+ src/cairo-surface-fallback.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+commit 31f5a2e94d669b9d2785de944d4aee584fd1d76e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 5 15:52:55 2009 +0100
+
+ [png] Coerce FORMAT_INVALID to a known image format
+
+ It is possible for cairo_surface_write_to_png() to acquire a non-standard
+ image surface when, for example, we try to dump a low bit-depth XServer.
+ Handle this scenario by coercing the unknown image format to a standard
+ type via pixman.
+
+ src/cairo-png.c | 44 ++++++++++++++++++++++++++++++--------------
+ 1 file changed, 30 insertions(+), 14 deletions(-)
+
+commit c488b336449a1a7ca4d3f90785afeec9e21784c3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 5 13:59:07 2009 +0100
+
+ [test] Create a new fallback surface to exercise 16-bit paths.
+
+ Add a variation of test-fallback-surface that forces the use of a 16-bit
+ pixman format code instead of the standard 32-bit types. This creates an
+ image surface akin to the fallbacks used with low bit-depth xservers.
+
+ .../cairo-boilerplate-test-surfaces-private.h | 11 +
+ boilerplate/cairo-boilerplate-test-surfaces.c | 16 ++
+ boilerplate/cairo-boilerplate.c | 18 ++
+ src/Makefile.sources | 2 +
+ src/test-fallback16-surface.c | 234 +++++++++++++++++++++
+ src/test-fallback16-surface.h | 52 +++++
+ test/Makefile.am | 4 +
+ test/Makefile.sources | 3 +
+ test/test-fallback16-surface-source.c | 43 ++++
+ test/test-fallback16-surface-source.ref.png | Bin 0 -> 268 bytes
+ 10 files changed, 383 insertions(+)
+
+commit 1d609d672273da494fd596606b59ab1c0010ae6d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue May 5 17:11:55 2009 +0100
+
+ [image] Treat A1 image surfaces as BILEVEL_ALPHA
+
+ Categorise the transparency of FORMAT_A1 image surfaces as BILEVEL_ALPHA.
+
+ src/cairo-image-surface.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit aac132a76a2af3719088678295169f1962a555e6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 24 10:14:36 2009 +0100
+
+ [image] Make _cairo_image_analayze_transparency() more format agnostic
+
+ Use the content in preference to the format to determine
+ CAIRO_IMAGE_IS_OPAQUE/CAIRO_IMAGE_HAS_ALPHA.
+
+ src/cairo-image-surface.c | 17 +++++++----------
+ 1 file changed, 7 insertions(+), 10 deletions(-)
+
+commit 4be6de9fc6192d59c8d61e8edafed941e868a756
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 24 10:03:20 2009 +0100
+
+ [image] Return FORMAT_INVALID for an error surface.
+
+ The default error value should be CAIRO_FORMAT_INVALID [-1] not 0 (which
+ corresponds to CAIRO_FORMAT_ARGB32).
+
+ src/cairo-image-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6675cf558719f81afe2a4331bc6adb3cda637a26
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri May 1 09:31:53 2009 +0100
+
+ [build] Add lcov-1.7 to known list
+
+ build/configure.ac.analysis | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 526fcdb7e6cc8b522508762b1a68a5585fddf823
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Apr 20 10:56:06 2009 +0100
+
+ [build] Enable shave support
+
+ shave transforms the messy output of autotools into a pretty (quiet!)
+ Kbuild-like one.
+
+ Lets see how controversial a simple change can be...
+
+ build/.gitignore | 2 ++
+ build/aclocal.dolt.m4 | 1 +
+ build/aclocal.shave.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++
+ build/shave-libtool.in | 69 +++++++++++++++++++++++++++++++++++++++++++
+ build/shave.in | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.ac | 4 +++
+ 6 files changed, 232 insertions(+)
+
+commit 1ae2ddc1dd4c90d50b8c57c4de677f8ab96b1fa2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Apr 16 17:19:12 2009 +0100
+
+ [memfault] Manually inject faults when using stack allocations
+
+ Ensure that no assumptions are made that a small allocation will succeed
+ by manually injecting faults when we may be simply allocating from an
+ embedded memory pool.
+
+ The main advantage in manual fault injection is improved code coverage -
+ from within the test suite most allocations are handled by the embedded
+ memory pools.
+
+ src/cairo-array.c | 3 +++
+ src/cairo-bentley-ottmann.c | 3 +++
+ src/cairo-gstate.c | 3 +++
+ src/cairo-hull.c | 3 +++
+ src/cairo-image-surface.c | 6 ++++++
+ src/cairo-malloc-private.h | 7 +++++++
+ src/cairo-misc.c | 3 +++
+ src/cairo-path-stroke.c | 2 ++
+ src/cairo-pattern.c | 9 +++++++++
+ src/cairo-pen.c | 9 +++++++++
+ src/cairo-polygon.c | 5 +++++
+ src/cairo-scaled-font.c | 3 +++
+ src/cairo-stroke-style.c | 3 +++
+ src/cairo-traps.c | 5 +++++
+ 14 files changed, 64 insertions(+)
+
+commit 817589e1967ebdd5e5bda1781eb76010fd8c37dc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Apr 16 13:01:52 2009 +0100
+
+ [test] Call FcInit() manually.
+
+ Pre-initialise fontconfig whilst memfault is disabled to avoid a lot of
+ expensive, redundant testing of FcInit() throughout the test suite.
+
+ test/cairo-test.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit be27e844c83c0f5cf25dee1c62768dbf70897a06
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Apr 16 17:13:52 2009 +0100
+
+ [ft] Propagate status from font creation
+
+ Return the true error status whel
+ _cairo_ft_unscaled_font_create_internal(). This ensures that the original
+ error is not masked and we are able to report the error during fontconfig
+ pattern resolution.
+
+ src/cairo-ft-font.c | 90 ++++++++++++++++++++++++++++++-----------------------
+ 1 file changed, 51 insertions(+), 39 deletions(-)
+
+commit d46c56f18c8a93d3d50be9333292c7c9b0ac0a78
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Apr 16 13:00:59 2009 +0100
+
+ [ft] Check for pattern duplication failure.
+
+ Check the return of FcPatternDuplicate() for failure, and propagate the
+ error.
+
+ src/cairo-ft-font.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 50302f156dfba4dcb3639843d7eda819f2c6797c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Apr 16 12:59:36 2009 +0100
+
+ [ft] Check (correctly!) for pattern duplication failure.
+
+ Check the return from FcPatternDuplicate() for allocation failure (and not
+ the original pattern)!
+
+ src/cairo-ft-font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8bf109bd2a9c9bf755671185733def898a4f96f2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Apr 16 17:17:06 2009 +0100
+
+ [pattern] Silence compiler with impossible case.
+
+ Assert that the pattern is one of the four known types, and return an
+ error so that the compiler knows that the local variable can not be used
+ uninitialised.
+
+ src/cairo-pattern.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 5a76c233bffda65140c6ada9b5f2ed7d3bcc999e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Apr 14 11:02:40 2009 +0100
+
+ [type3] Propagate error from font creation.
+
+ Perform an error check after creating a scaled-font to prevent operations
+ on a nil-object.
+
+ src/cairo-type3-glyph-surface.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit d46bd67c8b3f63d6286845e814f8f1e040f89737
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 10 14:55:24 2009 +0100
+
+ [type3] Add status checks.
+
+ Propagate error from the stream when creating the surface and add status
+ guards before writing to the potential nil object.
+
+ src/cairo-type3-glyph-surface.c | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+commit a6ffb69a54f15659dac7c6b2e1c98bd7893ccdf1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 3 17:28:05 2009 +0100
+
+ [type3] Check error status before emit_image().
+
+ Be careful not to pass an error object down to emit_image() hook,
+ propagate the error instead. This relieves the burden of the error check
+ from the callee -- which was causing an assertion failure in the ps
+ backend.
+
+ src/cairo-type3-glyph-surface.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 21d1138da9bcf9c006e0cf3f3d1d50e1c7cec1de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 10 14:53:55 2009 +0100
+
+ [scaled-font-subsets] Check for malloc failure.
+
+ Check that the utf8 string is successfully allocated before writing to it,
+ otherwise propagate the error status back to the callers.
+
+ src/cairo-scaled-font-subsets.c | 63 +++++++++++++++++++++++------------------
+ 1 file changed, 35 insertions(+), 28 deletions(-)
+
+commit 0f0e2d738437176e72317b37ef66fbc56c60ba93
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 10 14:52:48 2009 +0100
+
+ [pdf] Propagate failure from type3 glyph surface creation.
+
+ Add an early check that we successfully created the glyph surface.
+
+ src/cairo-pdf-surface.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+commit 1496c5cf51a2304dfd4e9d359a0645ff44fadd3e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 10 14:50:26 2009 +0100
+
+ [analysis] Use _cairo_region_init()
+
+ Avoid secondary allocations of the thin region wrappers during surface
+ creation by embedding them into the parent structure. This has the
+ satisfactory side-effect of not requiring status checks which current code
+ lacks.
+
+ src/cairo-analysis-surface.c | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+commit ad83765a1441cb369c3e7f3de77c243297406c7a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 3 09:23:58 2009 +0100
+
+ [xlib] Allocate bounded region on stack.
+
+ Eliminate the extremely short-lived and oft unnecessary heap allocation
+ of the region by first checking to see whether the clip exceeds the
+ surface bounds and only then intersect the clip with a local
+ stack-allocated region.
+
+ src/cairo-region.c | 23 +++++++++++++++++++
+ src/cairo-xlib-surface.c | 58 +++++++++++++++++++++++++++++++-----------------
+ src/cairoint.h | 10 +++++++++
+ 3 files changed, 71 insertions(+), 20 deletions(-)
+
+commit 75b06b8bdb5efaf030e063c1f66583d8fde347dc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Apr 1 11:43:16 2009 +0100
+
+ [pattern] Do not modify outparam on error path.
+
+ The pdf backend was crashing as a failed pattern copy stored an invalid
+ pointer with the resource group.
+
+ src/cairo-pattern.c | 21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+commit 82cccb26723697492504f395fed33afba28d84ba
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Apr 14 11:01:39 2009 +0100
+
+ [test] Handle memfaults during surface-finish-twice
+
+ Check and report memory allocation failures.
+
+ test/surface-finish-twice.c | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+commit f12d52bfcae0792729b33a1fd1b2d23bd3fc7cf3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Apr 4 19:02:15 2009 +0100
+
+ [test] Use xmalloc() to evade memfault.
+
+ Do not use the simple malloc() as memfault will inject allocation failures
+ (unlike xmalloc() for which faults are excluded) - as this is unnecessary
+ inside the test harness and thus does not exercise any cairo code paths.
+
+ test/show-glyphs-many.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ca501d99bbec432252cbb134d863801d4a792a44
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Apr 1 11:41:59 2009 +0100
+
+ [test] Disable signal handling under valgrind
+
+ Capturing and handling the signals prevents valgrind from providing
+ backtraces for fatal signals -- which is often more useful.
+
+ test/cairo-test.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f8539726368141f8b42c7817cfd59b4abfce33f3
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Apr 7 14:50:25 2009 -0400
+
+ [win32] Fix building with libpng and zlib
+
+ Include zlib and libpng dependencies using something like '$(cairo_dir)/../zlib/zdll.lib'
+ instead of just 'zdll.lib'. Also, do similarly for the headers.
+
+ build/Makefile.win32.common | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit 1798fc6607a89811929d1f21cc71c751438f5699
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Apr 5 11:17:02 2009 +0930
+
+ Fix the TrueType subsetting fix in 9b496af5c
+
+ Oops.
+
+ src/cairo-truetype-subset.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit fe97e815e81f4429889fd52bb525c260f9967356
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Apr 5 01:04:12 2009 +1030
+
+ Fix TrueType subsetting bug
+
+ Fix incorrect counting of arguments in composite glyphs
+
+ src/cairo-truetype-subset-private.h | 2 +-
+ src/cairo-truetype-subset.c | 12 +++++++-----
+ 2 files changed, 8 insertions(+), 6 deletions(-)
+
+commit 9b496af5c214283c297a52c90a04743f9da9f6a3
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Apr 5 00:44:02 2009 +1030
+
+ Fix buffer size check in TrueType subsetting
+
+ Andrew Cowie reported a problem with the Charis SIL font being
+ embedded as a fallback font.
+
+ The buffer size check for composite glyphs was incorrect causing the
+ subsetting to fail for some fonts.
+
+ src/cairo-truetype-subset.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ba2ec8e1d9144c4a27917e59cb15039552eb008c
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Apr 1 13:29:12 2009 -0400
+
+ Remove trailing comma in cairo_region_overlap_t enum.
+
+ src/cairo.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2d6336624c33e9c674c192b68eb501373a96dc87
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Apr 1 11:32:58 2009 -0400
+
+ [test-win32] Fix static linking of the test suite.
+
+ Previously, the test suite needed to be dynamically linked to work.
+
+ boilerplate/Makefile.win32 | 2 +-
+ test/Makefile.win32 | 9 ++++++---
+ test/pdiff/Makefile.win32 | 2 +-
+ 3 files changed, 8 insertions(+), 5 deletions(-)
+
+commit 0f21893b0510a188439c2d8cd448bcfcf17ef8c6
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Wed Apr 1 08:54:30 2009 -0400
+
+ [region] pixman_region32_contains_point() does not allow NULL for box
+
+ src/cairo-region.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit e46c1d7fa34b4ba89fc3e0fe6f3042a6fa8c0398
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 31 10:39:46 2009 +0100
+
+ [scaled-font-subset] Cleanup after failure to convert to utf16.
+
+ Avoid leaking the local hashtable and strings after failing to convert the
+ string to utf16.
+
+ src/cairo-scaled-font-subsets.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 180b964aac4e058e6783778d33772f08e13b3669
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 31 10:37:44 2009 +0100
+
+ [scaled-font-subset] Propagate error from scaled-font to collection.
+
+ Don't attempt to collect the sub_font if it is in error.
+
+ src/cairo-scaled-font-subsets.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 8362c6f726979abc43ad9f7303bd45fcb03f83b3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 31 10:36:08 2009 +0100
+
+ [type1] Fixup error path during write_charstrings()
+
+ On the common error path we attempted to unlock a mutex that was not
+ always held, so reorder the error paths appropriately.
+
+ src/cairo-type1-fallback.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 88956cd42e9cc03cb8b4ec730062993eaaf3938d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 31 10:35:24 2009 +0100
+
+ [ps] Check for error during stroking.
+
+ Add a missing error status check that caused errors during stroke to be
+ masked.
+
+ src/cairo-ps-surface.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 043352aa8d1e3aeacf3b877f45e1bc451a676e15
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 31 10:34:41 2009 +0100
+
+ [pdf] Prevent leak of pad_image on error path.
+
+ Ensure that the local pad_image is destroyed after an error.
+
+ src/cairo-pdf-surface.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit b0689f56118dd8ccda6f29901d41cf8f80983aa0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 31 10:27:15 2009 +0100
+
+ Check for errors during get_mime_data()
+
+ cairo_surface_get_mime_data() may raise an error on the surface, so we
+ need to check lest it goes unnoticed and we generate a corrupt file.
+
+ src/cairo-pdf-surface.c | 2 ++
+ src/cairo-ps-surface.c | 2 ++
+ src/cairo-svg-surface.c | 2 ++
+ 3 files changed, 6 insertions(+)
+
+commit 9f63cbb870892253f363ddb7aac908263672c8dc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 19:09:13 2009 +0100
+
+ [pdf] Free compressed stream after error.
+
+ Ensure that the compressed stream is destroyed after encountering an
+ error.
+
+ src/cairo-pdf-surface.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+commit ba1a0fa601a817ff489bc5373af57977e41eb99f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 19:08:41 2009 +0100
+
+ [truetype] Free local names on failure.
+
+ Ensure that all local allocations are freed on the error path.
+
+ src/cairo-truetype-subset.c | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+commit edce97a750acf4368bd7249ec6b9a195f8584cdf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 16:50:51 2009 +0100
+
+ [pdf] Remove false assertion.
+
+ The stream itself may be in an error state, so an error could be raised.
+
+ src/cairo-pdf-surface.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit b580a4a8d6c056ba8b47be32ea8c5b9a1d90d01e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 16:50:10 2009 +0100
+
+ [test] Improve fault injection coverage
+
+ In order to exercise the meta-surfaces, we need to inject faults into
+ cairo_surface_finish().
+
+ boilerplate/cairo-boilerplate.c | 16 +++++++++++++---
+ test/cairo-test.c | 35 +++++++++++++++++++++++++++++++++++
+ 2 files changed, 48 insertions(+), 3 deletions(-)
+
+commit 80d5b53b474c94219c51ae16dcc19098a2d86165
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Tue Mar 31 05:47:44 2009 -0400
+
+ [region] Change name of cairo_region_empty() to cairo_region_is_empty()
+
+ src/cairo-clip.c | 2 +-
+ src/cairo-region.c | 6 +++---
+ src/cairo-surface-fallback.c | 2 +-
+ src/cairo.h | 2 +-
+ src/cairoint.h | 2 +-
+ 5 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 77ee65fd03d06064be023f022d565c5038fe26df
+Author: Jonathan Kew <jfkthame@gmail.com>
+Date: Mon Mar 30 14:45:48 2009 -0400
+
+ [win32] Fix horizontal glyph positioning bug
+
+ The _cairo_win32_scaled_font_backend version of show_glyphs collects
+ glyph runs to hand to ExtTextOutW until the y-offset changes, then flushes the
+ glyphs buffered so far. As each glyph is buffered, it also calculates and
+ buffers the dx value for the preceding glyph.
+
+ However, when it sees a change in dy and decides to flush, it should *not*
+ append an entry to the dx buffer, as this would be the "dx" of the previous
+ glyph, and instead the new start_x value will be used for the new glyph run
+ that's being collected. This bug means that after any vertically-offset glyph,
+ the remaining glyphs in the run will get incorrect dx values (horizontal
+ escapement).
+
+ Mozilla bug #475092
+
+ src/cairo-win32-font.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit aee71e2063b1d6d23cd8dcef7789c9cf106af32a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 13:41:00 2009 +0100
+
+ [test] Memfault checks.
+
+ Don't assume an error means the test failed, check for injected allocation
+ errors.
+
+ test/create-from-png.c | 164 ++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 113 insertions(+), 51 deletions(-)
+
+commit ea6197c2f5f04d5e8e8035a330c5199b37beb702
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 10:54:26 2009 +0100
+
+ [surface] Propagate region allocation failure.
+
+ Propagate the error status from failing to allocate the region.
+
+ src/cairo-surface.c | 21 ++++++++++-----------
+ 1 file changed, 10 insertions(+), 11 deletions(-)
+
+commit c35d226f7d3654b312e18068b8ccb47a51002a39
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 10:46:37 2009 +0100
+
+ [traps] Propagate allocation failure.
+
+ Report failure to allocation region.
+
+ src/cairo-traps.c | 23 ++++++++++-------------
+ 1 file changed, 10 insertions(+), 13 deletions(-)
+
+commit e238d10b30e18084bf07eb1643fdf48ef35467ab
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 10:22:18 2009 +0100
+
+ [region] Use const cairo_rectangle_int_t consistently.
+
+ Add the const declaration to a couple of functions.
+
+ src/cairo-region.c | 4 ++--
+ src/cairo.h | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit de1612bdd767ca37e01938f8e41d9699531a49d9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 10:17:49 2009 +0100
+
+ [region] Use _cairo_status_is_error
+
+ Replace the open-coded version with the more readable macro.
+
+ src/cairo-region.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f027405429d0133b2840c4b82bc553355fa5f3d2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 10:12:41 2009 +0100
+
+ [region] Add leading underscore to private _cairo_region_set_error()
+
+ Differentiate the private _cairo_region_set_error() function by using a
+ leading underscore.
+
+ src/cairo-region.c | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+commit ed7188a471f73abcc4ca3e2a92685088134391c7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 30 10:07:48 2009 +0100
+
+ [region] Add slim_hidden_def.
+
+ Fixes for check-plt.sh (and a few adjacent whitespace).
+
+ src/cairo-region.c | 244 +++++++++++++++++++++++++++++------------------------
+ 1 file changed, 133 insertions(+), 111 deletions(-)
+
+commit f31c6548f818e1d4e257d94d623705284bcc4274
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Mar 28 19:26:03 2009 +0000
+
+ Silence compiler warnings for CAIRO_STATUS_LAST_STATUS
+
+ Add ASSERT_NOT_REACHED (or similar) cases to the error handling switches
+ to silence the compiler.
+
+ src/cairo-misc.c | 5 +++--
+ src/cairo-spans.c | 2 ++
+ src/cairo-surface.c | 1 +
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 979337dd4da40abb2ea49968a2c01709d9046aab
+Author: Eric Anholt <eric@anholt.net>
+Date: Sat Mar 28 21:53:04 2009 -0700
+
+ [gl] Wire blend factors using dst alpha to constants for CAIRO_CONTENT_COLOR.
+
+ This fixes the operator and operator-alpha tests to rgb24 destinations.
+ While we request an RGB texture, the returned texture has alpha bits, so when
+ we blend against it as a renderbuffer, we get the junk alpha values. Whether
+ or not this is a driver bug, we'll have this problem when we get visuals
+ with alpha bits for windows despite not requestiong alpha, so we have to
+ handle it in cairo.
+
+ src/cairo-gl-surface.c | 22 ++++++++++++++++++----
+ 1 file changed, 18 insertions(+), 4 deletions(-)
+
+commit 809f7dc4c83009f0a67bc8af0608b480bf7fb00e
+Author: Eric Anholt <eric@anholt.net>
+Date: Sat Mar 28 21:30:13 2009 -0700
+
+ [gl] Make sure test visuals for CAIRO_CONTENT_COLOR_ALPHA have alpha bits.
+
+ Since we're just making FBOs, the visual chosen probably shouldn't matter,
+ and it doesn't on Intel. But it does seem like the right thing to do.
+
+ boilerplate/cairo-boilerplate-gl.c | 25 ++++++++++++++++++-------
+ 1 file changed, 18 insertions(+), 7 deletions(-)
+
+commit 93c437d4b9261bc1ce3daf9cbd02d9cc4d2584cc
+Author: Eric Anholt <eric@anholt.net>
+Date: Sat Mar 28 20:59:01 2009 -0700
+
+ [gl] Use GLEW to detect required extension presence.
+
+ configure.ac | 9 +++++++++
+ src/cairo-gl-surface.c | 13 +++++++++++++
+ 2 files changed, 22 insertions(+)
+
+commit 62d84847c3b857b8fd5aeea3f4b5c0f2f4c91625
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Sat Mar 28 03:58:51 2009 -0400
+
+ [region] Add documentation for all the new region methods.
+
+ src/cairo-region.c | 260 ++++++++++++++++++++++++++++++++++++++++++++++-------
+ src/cairo.h | 6 +-
+ 2 files changed, 232 insertions(+), 34 deletions(-)
+
+commit 980e9f0dbd4f21c0ccf4cc33b0b0f2f370667290
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Sat Mar 28 03:04:28 2009 -0400
+
+ [region] Fix status propagation for regions
+
+ When an operation fails, store the status code in the destination
+ region rather than leaving it unchanged.
+
+ src/cairo-region.c | 66 ++++++++++++++++++++++++++++++++++++++++++------------
+ 1 file changed, 52 insertions(+), 14 deletions(-)
+
+commit 64e490a464472cfe06d779503601d41972ed4518
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Sat Mar 28 01:10:24 2009 -0400
+
+ [region] Use signed ints for width and height in cairo_rectangle_int_t
+
+ src/cairo.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 26999e5aa8b5d353596e31d4b3823cafe007125c
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Fri Mar 27 08:48:42 2009 -0400
+
+ [region] Add cairo_region_intersect_rectangle() and _subtract_rectangle()
+
+ Intersecting with and subtracting rectangles is quite common, and we
+ already have cairo_union_rectangle().
+
+ src/cairo-clip.c | 27 ++++-----------------------
+ src/cairo-region.c | 45 ++++++++++++++++++++++++++++++++++++++++++++-
+ src/cairo-surface.c | 9 +--------
+ src/cairo.h | 11 ++++++++++-
+ src/cairoint.h | 2 ++
+ 5 files changed, 61 insertions(+), 33 deletions(-)
+
+commit 4b3245481cfbf96388c140421a071fd1f79ad601
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Sat Feb 21 08:13:25 2009 -0500
+
+ [region] Expand rect to rectangle in a couple of names
+
+ Specifically,
+
+ cairo_region_union_rect -> cairo_region_union_rectangle
+ cairo_region_create_rect -> cairo_region_create_rectangle
+
+ Also delete cairo_region_clear() which is not that useful.
+
+ src/cairo-analysis-surface.c | 4 ++--
+ src/cairo-clip.c | 4 ++--
+ src/cairo-region.c | 16 +++-------------
+ src/cairo-surface-fallback.c | 2 +-
+ src/cairo-surface.c | 4 ++--
+ src/cairo-traps.c | 2 +-
+ src/cairo-xlib-surface.c | 2 +-
+ src/cairo.h | 7 ++-----
+ src/cairoint.h | 5 ++---
+ 9 files changed, 16 insertions(+), 30 deletions(-)
+
+commit bf6d9bc1758ac1971485b6565d29934d6b06bef2
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Wed Feb 18 08:01:19 2009 -0500
+
+ [region] Delete cairo_region_create_rectangles()
+
+ It was only used in _cairo_traps_extract_region() which could be
+ simplified significantly by calling cairo_region_union_rect()
+ repeatedly instead.
+
+ src/cairo-region.c | 44 ---------------------------------------
+ src/cairo-traps.c | 60 +++++++++++++++++++++---------------------------------
+ src/cairo.h | 4 ----
+ src/cairoint.h | 1 -
+ 4 files changed, 23 insertions(+), 86 deletions(-)
+
+commit e6d82afcab01cc91b88185abc8d1bfb9df5c2c19
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Wed Feb 18 00:20:46 2009 -0500
+
+ [region] Add slim_hidden_proto for region functions
+
+ src/cairoint.h | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+commit e29103c08189cab9de34f577951219a69bd7c8e2
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Wed Feb 18 00:11:35 2009 -0500
+
+ [region] Move region function prototypes to cairo.h along with helper types.
+
+ Move struct _cairo_region to cairoint.h and delete
+ cairo-region-private.h. Delete cairo_private from the function
+ definitions that had it.
+
+ src/Makefile.sources | 1 -
+ src/cairo-analysis-surface.c | 1 -
+ src/cairo-clip-private.h | 1 -
+ src/cairo-region-private.h | 128 -------------------------------------------
+ src/cairo-region.c | 6 +-
+ src/cairo-types-private.h | 6 --
+ src/cairo.h | 75 +++++++++++++++++++++++++
+ src/cairoint.h | 6 +-
+ 8 files changed, 83 insertions(+), 141 deletions(-)
+
+commit 1cca5a1348d071a3c8e2ba9d3ba0d9670b9564f4
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Tue Feb 17 23:52:18 2009 -0500
+
+ [region] Remove underscores from _cairo_region_*
+
+ src/cairo-analysis-surface.c | 18 ++++++-------
+ src/cairo-clip.c | 50 +++++++++++++++++------------------
+ src/cairo-directfb-surface.c | 4 +--
+ src/cairo-paginated-surface.c | 4 +--
+ src/cairo-region-private.h | 36 ++++++++++++-------------
+ src/cairo-region.c | 61 +++++++++++++++++++++----------------------
+ src/cairo-surface-fallback.c | 20 +++++++-------
+ src/cairo-surface.c | 14 +++++-----
+ src/cairo-traps.c | 10 +++----
+ src/cairo-win32-surface.c | 8 +++---
+ src/cairo-xcb-surface.c | 4 +--
+ src/cairo-xlib-surface.c | 14 +++++-----
+ 12 files changed, 120 insertions(+), 123 deletions(-)
+
+commit fcdca966941f4f7cc908bd46df1ec9a6b0f757c1
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Tue Feb 17 22:52:50 2009 -0500
+
+ [region] Always define cairo_rectangle_int_t with ints
+
+ Use ints in cairo_rectangle_int_t, no matter the fixed type.
+
+ src/cairo-types-private.h | 38 +++++++++-----------------------------
+ 1 file changed, 9 insertions(+), 29 deletions(-)
+
+commit cfa7a384b730289233bef556fe1919f781eac684
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Tue Feb 17 23:40:02 2009 -0500
+
+ [region] Add _cairo_region_contains_point()
+
+ src/cairo-region-private.h | 5 ++++-
+ src/cairo-region.c | 15 +++++++++++++--
+ src/cairo.h | 1 +
+ 3 files changed, 18 insertions(+), 3 deletions(-)
+
+commit 15564d1949778124e553d792f85cae2b031aad45
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Tue Feb 17 05:58:34 2009 -0500
+
+ [region] Add _cairo_region_union
+
+ src/cairo-region-private.h | 4 ++++
+ src/cairo-region.c | 16 ++++++++++++++++
+ 2 files changed, 20 insertions(+)
+
+commit df883aa937d2f3ecf52048b60caff48b1c9edac9
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Tue Feb 17 06:06:40 2009 -0500
+
+ [region] Add a cairo_region_overlap_t type
+
+ src/cairo-analysis-surface.c | 4 ++--
+ src/cairo-region-private.h | 8 +++++++-
+ src/cairo-region.c | 33 ++++++++++++++++++++++++---------
+ 3 files changed, 33 insertions(+), 12 deletions(-)
+
+commit ebd0e685ae2d76c3af96d748a33a7194c70749f3
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Mon Feb 16 05:41:31 2009 -0500
+
+ [region] Consistently use rectangles in the API of regions
+
+ Usually, rectangles are more useful than boxes, so regions should only
+ expose rectangles in their public API.
+
+ Specifically,
+ _cairo_region_num_boxes becomes _cairo_region_num_rectangles
+ _cairo_region_get_box becomes _cairo_region_get_rectangle
+
+ Remove the cairo_box_int_t type
+
+ src/cairo-clip.c | 22 ++++++++------------
+ src/cairo-directfb-surface.c | 26 +++++++++++------------
+ src/cairo-paginated-surface.c | 34 +++++++++++++++---------------
+ src/cairo-region-private.h | 14 ++++++-------
+ src/cairo-region.c | 28 ++++++++++++-------------
+ src/cairo-surface-fallback.c | 2 +-
+ src/cairo-surface.c | 25 ++++++++--------------
+ src/cairo-traps.c | 31 ++++++++++++++--------------
+ src/cairo-types-private.h | 6 ------
+ src/cairo-win32-surface.c | 48 +++++++++++++++++++++----------------------
+ src/cairo-xcb-surface.c | 24 +++++++++++-----------
+ src/cairo-xlib-surface.c | 29 +++++++++++++-------------
+ 12 files changed, 134 insertions(+), 155 deletions(-)
+
+commit c29aeee2d3569cd43e88adc05662bb6306987b8b
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Thu Dec 11 18:37:40 2008 -0500
+
+ [region] Change sense of _cairo_region_not_empty() to _cairo_region_empty()
+
+ Having "not" in the name causes double negatives.
+
+ src/cairo-clip.c | 2 +-
+ src/cairo-region-private.h | 2 +-
+ src/cairo-region.c | 6 +++---
+ src/cairo-surface-fallback.c | 2 +-
+ 4 files changed, 6 insertions(+), 6 deletions(-)
+
+commit c88321d0a2b9d200b2044674d02fa0683feca74c
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Thu Dec 11 16:20:23 2008 -0500
+
+ [region] Miscellaneous bug fixes.
+
+ - Initialize region->status in _cairo_region_create_boxes()
+ - Make _cairo_region_copy() actually return a region.
+ - Fix a bug where a NULL region could be dereferenced
+
+ Also add an assertion that the result of cairo_region_copy() is never
+ NULL.
+
+ src/cairo-clip.c | 2 ++
+ src/cairo-image-surface.c | 2 +-
+ src/cairo-region.c | 4 +++-
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 93b285dc2c9c9ec486e0096933c3611f73374fcb
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Thu Dec 11 15:50:15 2008 -0500
+
+ [region] Get rid of clip->has_region
+
+ src/cairo-clip-private.h | 1 -
+ src/cairo-clip.c | 36 +++++++++++++++---------------------
+ src/cairo-surface.c | 2 +-
+ 3 files changed, 16 insertions(+), 23 deletions(-)
+
+commit e3e1b35eb9eb3cf90d882a7452580f9efe00b89a
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Thu Dec 11 15:29:23 2008 -0500
+
+ [region] Make cairo_region_t a malloced object.
+
+ src/cairo-analysis-surface.c | 26 ++++---
+ src/cairo-clip-private.h | 2 +-
+ src/cairo-clip.c | 99 +++++++++++++------------
+ src/cairo-region-private.h | 42 +++++------
+ src/cairo-region.c | 168 ++++++++++++++++++++++++++++++++++---------
+ src/cairo-surface-fallback.c | 65 ++++++++---------
+ src/cairo-surface.c | 29 ++++----
+ src/cairo-traps.c | 14 ++--
+ src/cairo-xlib-surface.c | 16 ++---
+ src/cairoint.h | 2 +-
+ 10 files changed, 280 insertions(+), 183 deletions(-)
+
+commit c2c637cf1d89fc8fdcced4467d602a55ef0b14e0
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Sat Mar 28 04:26:10 2009 -0400
+
+ Simplify _cairo_clip_intersect_region()
+
+ The intermediate intersection region is not necessary because if the
+ operation fails, clip->region will end up as a pixman error region.
+
+ src/cairo-clip.c | 19 +++++--------------
+ 1 file changed, 5 insertions(+), 14 deletions(-)
+
+commit fe10cd6467f2ec58532dc7c713bb6d08dab08442
+Author: Bertram Felgenhauer <int-e@gmx.de>
+Date: Fri Mar 27 07:10:21 2009 +0100
+
+ [spline] fix wrong sign in _cairo_spline_bound.
+
+ src/cairo-spline.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 53107de63a954105f8820e5b96e2a1956cb7af8c
+Author: Bertram Felgenhauer <int-e@gmx.de>
+Date: Thu Mar 26 04:56:27 2009 +0100
+
+ [in_fill] Correctly track current point in curve_to.
+
+ When discarding a bezier path segment, we still need to update the
+ current point.
+
+ src/cairo-path-in-fill.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 578b06a978d51dc3d1d844ee7eea9ddd8329cc8d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 23 10:56:43 2009 +0000
+
+ [perf] Use CAIRO_LDFLAGS
+
+ Use CAIRO_LDFLAGS in order to pull in additional link options, such as
+ --coverage.
+
+ perf/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit ac30ced6135c5cf0fb34a67fe8f863030c1fbeb9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Mar 22 19:02:27 2009 +0000
+
+ [test] Check for surface create failure.
+
+ If the image surface creation fails, the data pointer will be NULL leading
+ to a segfault -- so check!
+
+ test/user-font-mask.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+commit b5a4a2c4b1b1bab25e2ff0842e3c27205ec73d51
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Mar 22 19:00:04 2009 +0000
+
+ [test] Early test for memfault.
+
+ Check the error status within after each iteration in
+ solid-pattern-cache-stress.
+
+ test/solid-pattern-cache-stress.c | 41 ++++++++++++++++++++++++++++-----------
+ 1 file changed, 30 insertions(+), 11 deletions(-)
+
+commit 1a7b94f934f8c9a25e60d9466651b0b7fb919656
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Mar 20 11:06:29 2009 +0000
+
+ [test] Check for errors during get-path-extents.
+
+ Need to check that an error was not raised on the context before checking
+ whether the extents match expectations.
+
+ test/get-path-extents.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit 3b545330887209c68128fca0d1bb40bf4927c2a6
+Author: Vladimir Vukicevic <vladimir@pobox.com>
+Date: Sat Mar 21 11:56:18 2009 -0700
+
+ [win32] Use _hypot instead of hypot
+
+ The hypot symbol is deprecated on Win32, and nonexistent on Windows CE
+
+ src/cairo-compiler-private.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 895fce1632069ddfb8c581d2b23b1b3552e35104
+Author: Stefan Klug <Klug.Stefan@gmx.de>
+Date: Fri Mar 20 17:20:22 2009 -0400
+
+ [wince] Use the official _WIN32_WCE define instead of WINCE
+
+ src/cairo-misc.c | 4 ++--
+ src/cairoint.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 86a935de42318c4be92a657ce8e8c452693d4414
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Fri Mar 20 17:14:08 2009 -0400
+
+ [msvc] Fix definition of CAIRO_ENSURE_UNIQUE for non-x86
+
+ The current definition of CAIRO_ENSURE_UNIQUE uses x86 assembly so make sure we
+ only compile it when targeting x86.
+
+ src/cairo-compiler-private.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c932a809d6484503d7ee267d934bbc87c8d44092
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 17 12:01:13 2009 +0000
+
+ [test] Propagate allocation failure.
+
+ Check for memfaults during rel-path test.
+
+ test/rel-path.c | 19 ++++++++++++++++---
+ 1 file changed, 16 insertions(+), 3 deletions(-)
+
+commit 7db55b37d4aef188e04771b45076f6735507c209
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 17 11:58:16 2009 +0000
+
+ [test] Destroy pattern on error paths.
+
+ Destroy the pattern after encountering an error in pattern-getters test.
+
+ test/pattern-getters.c | 29 +++++++++++++++++++++++++----
+ 1 file changed, 25 insertions(+), 4 deletions(-)
+
+commit dc176d88ac03ae71fc32abb27329a35650801d99
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 17 10:42:37 2009 +0000
+
+ [test] Trivial leak on error in show-glyphs-many.
+
+ Free the allocated glyph array after failure.
+
+ test/show-glyphs-many.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+commit a4b44ca89eb9975e6af2913e50ec3c3eb566cfdd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 17 14:56:42 2009 +0000
+
+ [pattern] Report the true error status from getters.
+
+ As the getters actually return an error status, use it to report any
+ pre-existing error status on the pattern.
+
+ src/cairo-pattern.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+commit 496bbcf58233ceecfffc52ae5b1a3a1f07516c67
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Mar 17 19:46:25 2009 -0400
+
+ Make CAIRO_STATUS_LAST_STATUS public
+
+ doc/public/tmpl/cairo-status.sgml | 1 +
+ src/cairo.h | 12 ++++++++++--
+ src/cairoint.h | 6 ------
+ 3 files changed, 11 insertions(+), 8 deletions(-)
+
+commit 922c108365b940dbabf23358189bbaa8602446c9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Mar 17 19:22:31 2009 -0400
+
+ [twin] Reorganize matching code to better reflect the code in Pango
+
+ Makes it easier to update later.
+
+ src/cairo-font-face-twin.c | 179 +++++++++++++++++++++++++++++++++------------
+ src/cairoint.h | 4 +
+ 2 files changed, 138 insertions(+), 45 deletions(-)
+
+commit 2b4044a36f8b156ca0e58b72614659324a9b022e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Mar 17 18:52:16 2009 -0400
+
+ [twin] Update parsed weights and stretches from Pango
+
+ src/cairo-font-face-twin.c | 64 ++++++++++++++++++++++++++++------------------
+ 1 file changed, 39 insertions(+), 25 deletions(-)
+
+commit 3ec94f9b5917b8f71304c982bd153e5a810f3b12
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Mar 17 00:53:30 2009 -0400
+
+ Support compiling without fontconfig
+
+ Adds a new, fake, fontconfig font backend. Fontconfig can be disabled
+ using --disable-fc, in which case the toy text API wont find fonts and
+ the internal font will always be used.
+
+ Also defines the feature macro CAIRO_HAS_FC_FONT. The two fontconfig-specific
+ functions in cairo-ft.h depend on that macro now.
+
+ boilerplate/Makefile.win32.features | 10 +++++++++
+ build/Makefile.win32.features | 1 +
+ build/Makefile.win32.features-h | 3 +++
+ build/configure.ac.features | 1 +
+ configure.ac | 26 ++++++++++++++--------
+ doc/public/cairo-sections.txt | 1 +
+ doc/public/tmpl/cairo-ft.sgml | 9 ++++++++
+ doc/public/tmpl/cairo-status.sgml | 2 +-
+ src/Makefile.win32.features | 14 ++++++++++++
+ src/cairo-ft-font.c | 43 +++++++++++++++++++++++++++++++------
+ src/cairo-ft.h | 23 +++++++++++++-------
+ src/cairo-os2-surface.c | 6 ++++--
+ src/cairo-path-fixed.c | 2 +-
+ src/cairo-scaled-font.c | 4 ++--
+ src/cairo-xlib-display.c | 2 --
+ src/cairo-xlib-screen.c | 23 +++++++++-----------
+ 16 files changed, 125 insertions(+), 45 deletions(-)
+
+commit 0e7bcb5e3793771d50f7d391d7b1e538ef220a80
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 16 21:32:44 2009 +0000
+
+ [scaled-font] Improve comments.
+
+ Grr. I thought I had merged this in with the previous commit...
+
+ src/cairo-scaled-font.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 9c80392ac415e7f07c71261d280ac4376d3c8471
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 16 19:31:38 2009 +0000
+
+ [scaled-font] Lean and mean global glyph cache.
+
+ Jeff Muizelaar pointed out that the severe overallocation implicit in the
+ current version of the glyph cache is obnoxious and prevents him from
+ accepting the trunk into Mozilla. Jeff captured a trace of scaled font
+ and glyph usage during a tp run and presented his analysis in
+ http://lists.cairographics.org/archives/cairo/2009-March/016706.html
+
+ Using that data, the design was changed to allocate pages of glyphs from a
+ capped global pool but with per-font hash tables. This should allow the
+ glyph cache to have tight memory bounds with fair allocation according to
+ usage. Note that both the old design and the 1.8 glyph cache had
+ essentially unbounded memory constraints, since each scaled font could
+ cache up to 256 glyphs (1.8) or had a reserved page (old), with no limit
+ on the number of active fonts. Currently the eviction policy is a simple
+ random strategy, this gives a 'fair' allotment of the cache, but a LRU
+ variant might perform better.
+
+ On a sample run of firefox-3.0.7 perusing BBC news in 32 languages:
+ 1.8: cache allocation 8190x, ~1.2 MiB; elapsed 88.2s
+ old: cache allocation 771x, ~13.8 MiB; elapsed 81.7s
+ lean: cache allocation 433x, ~1.8 MiB; elapsed 82.4s
+
+ src/cairo-cache-private.h | 5 +-
+ src/cairo-cache.c | 39 ++--
+ src/cairo-ft-font.c | 4 +-
+ src/cairo-hash-private.h | 6 +-
+ src/cairo-hash.c | 55 ------
+ src/cairo-scaled-font-private.h | 6 +-
+ src/cairo-scaled-font.c | 396 ++++++++++++++++++++--------------------
+ src/cairo-types-private.h | 3 +
+ src/cairoint.h | 7 +-
+ 9 files changed, 232 insertions(+), 289 deletions(-)
+
+commit 121d4bb656755b7ca89065bf87e3e4e47c49c89d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Mar 16 19:42:47 2009 +0000
+
+ [scaled-font] Initialise original_font_face
+
+ Eek, attempting to use+free an uninitialised pointer!
+
+ src/cairo-scaled-font.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 2df498ba452b188f2f40413c91fec5e5ed9cf967
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Mar 5 23:26:44 2009 -0800
+
+ [gl] Use triangle fan instead of GL_QUADS for the single quad we draw.
+
+ This saves the driver from converting the quad into tris on its own. We'd
+ rather be able to specify a rect as 2-3 points and use the rectangular
+ rendering feature that most of our hardware has, if it was possible, but
+ it isn't exposed in GL.
+
+ src/cairo-gl-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9099c7e7307a39bc630919faa65bba089fd15104
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Mar 4 09:26:17 2009 +0000
+
+ [trace] Disable mark dirty tracing.
+
+ Applications like firefox have a very conservative approach and mark
+ surfaces dirty before every render. As we record the image data every
+ time, firefox traces can grow very large with redundant data - so allow
+ the user to disable mark dirty tracing.
+
+ util/cairo-trace/cairo-trace.in | 19 +++++++++++++++----
+ util/cairo-trace/trace.c | 27 ++++++++++++++++++++-------
+ 2 files changed, 35 insertions(+), 11 deletions(-)
+
+commit addeb32c751ac080fe634ea6f83076d018944e4a
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Mar 3 12:20:47 2009 -0500
+
+ [pdf] Intialize 'interpolate'
+
+ Intialize 'interpolate' to prevent a gcc warning. Do this instead of adding a
+ 'default' case to the switch statement so that we still get warnings if new
+ filter types are added.
+
+ src/cairo-pdf-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a8158d443e6a4bafae28a46b883cbdcfd5789eec
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 3 11:21:35 2009 +0000
+
+ [truetype] Move the sizeof asserts to compile time.
+
+ Eliminate the need for a runtime test on the sizeof the private structures
+ by performing the check at compile time. This was provoked by Ginn Chenn
+ noting that the test was including a private header.
+
+ src/cairo-truetype-subset.c | 15 +++++++++++
+ test/Makefile.sources | 1 -
+ test/truetype-tables.c | 63 ---------------------------------------------
+ 3 files changed, 15 insertions(+), 64 deletions(-)
+
+commit e4b1f871e9cbb04590df5dc6f6f7854642fa0340
+Author: Ginn Chen <Ginn.Chen@Sun.COM>
+Date: Tue Mar 3 10:27:11 2009 +0000
+
+ [configure] Detect mkdir variant with non-gcc compilers.
+
+ It doesn't work for non GCC compiler right now, as "-Werror -Wall" is
+ an error to non GCC compiler.
+
+ I swapped the sequence of build/configure.ac.system and build/
+ configure.ac.warnings, then WARN_CFLAGS can be used.
+
+ build/configure.ac.system | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit f178f55e47013a92a47a24ac04b1041963b03976
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 3 10:25:05 2009 +0000
+
+ [test/any2ppm] Update the cairo-script-interpreter callback.
+
+ Reflect the current prototype which now specifies the content to use when
+ creating the surface.
+
+ test/any2ppm.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 694f2eea9feecfdc437e6964d1e758fab7315af9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Mar 3 10:24:25 2009 +0000
+
+ [test/any2ppm] Add feature checks for daemon()
+
+ Add the feature checks for the presence of the daemon() function call.
+
+ test/any2ppm.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 9304984f4e20beec7b4de6a4141e2fd489130006
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Mar 1 10:10:24 2009 +0000
+
+ [path] Fix regression introduced with 005436
+
+ The order of the multiplication of the CTM and device_transform was
+ reversed.
+
+ src/cairo-path.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit b30de64a8ca3de7632696f45bdb580217bd9f8a1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Mar 1 10:05:16 2009 +0000
+
+ [test] Add regression test for 005436
+
+ Jeff Muizelaar found a regression in commit 005436 and submitted this
+ little test to exercise it. The essence of the bug appears to be wrt to
+ the product of the CTM and device transform matrices.
+
+ test/Makefile.sources | 1 +
+ test/path-append.c | 81 +++++++++++++++++++++++++++++++++
+ test/path-append.ps.ref.png | Bin 0 -> 4516 bytes
+ test/path-append.ref.png | Bin 0 -> 6165 bytes
+ test/path-append.test-fallback.ref.png | Bin 0 -> 6461 bytes
+ test/path-append.xlib-fallback.ref.png | Bin 0 -> 6357 bytes
+ test/path-append.xlib.ref.png | Bin 0 -> 6461 bytes
+ 7 files changed, 82 insertions(+)
+
+commit e20f1a0c76f2185760ca3a7466e25de6beedeaac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Feb 27 16:30:05 2009 +0000
+
+ [in-fill] Close the path, cf fill()
+
+ In order for in-fill treat the path equivalently to a fill, we need to
+ close the path after interpretation.
+
+ src/cairo-path-in-fill.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 102ddd37bb329d41241f434ede0f9cba8424e71e
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Feb 26 16:04:49 2009 -0500
+
+ [win32] Include $(OPT) flags when linking cairo.dll
+
+ This will pass in -Zi which causes the /DEBUG flag to be passed to the
+ linker keeping the debug information from being discarded during link.
+
+ src/Makefile.win32 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit eb2a73ba6d290497cabb0f917c0375eea919178e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Feb 24 20:27:36 2009 +0000
+
+ [ps] Check the status of _cairo_type3_glyph_surface_create()
+
+ Doing so serves two purposes. The first is to do an early error check and
+ the second is to clearly initialise the status variable.
+
+ src/cairo-ps-surface.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 6eb0a9d97ff7eaaee69ca10e4081cb950a543ce3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Feb 15 21:27:29 2009 +0000
+
+ [scaled-font] Hold reference to original font face
+
+ As noted by Carl during his LCA talk, caching of toy fonts was broken
+ because we create the scaled font using the implementation font face and
+ lose the reference to the containing font face that is cached by the toy
+ font face create routines. So the toy fonts were not being preserved for
+ the duration of the holdover scaled fonts and we recreated a new font
+ face, new scaled font and new glyph caches every time we needed a font.
+
+ src/cairo-ft-font.c | 2 +-
+ src/cairo-scaled-font-private.h | 2 ++
+ src/cairo-scaled-font.c | 17 +++++++++++++----
+ src/cairo-toy-font-face.c | 1 +
+ 4 files changed, 17 insertions(+), 5 deletions(-)
+
+commit fe7d5323f5bc734e76179b74d68fcba9b924ba94
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Feb 19 16:00:17 2009 -0500
+
+ Relanding: Add CAIRO_ENSURE_UNIQUE macro and use it in _cairo_error()
+
+ When using MSVC, _cairo_error() can be folded into other identical functions.
+ If that happens, _cairo_error isn't really useful anymore. Using the
+ CAIRO_ENSURE_UNIQUE macro makes sure this doesn't happen.
+
+ Use __asm to serve as a line delimiter. This allows us to use the
+ __asm{} block in a macro.
+
+ src/cairo-compiler-private.h | 24 ++++++++++++++++++++++++
+ src/cairo.c | 1 +
+ 2 files changed, 25 insertions(+)
+
+commit 78de0e045ec0c10708052ed48df228e786839ddb
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Feb 19 15:45:11 2009 -0500
+
+ Revert "Add CAIRO_ENSURE_UNIQUE macro and use it in _cairo_error()"
+
+ This reverts commit 126824f5e6279f56dab0c040394b6c326b848cf7.
+
+ It turns out MSVC doesn't handle line continuation characters in __asm{}
+ blocks very well, so revert for now until I come up with something that
+ works.
+
+ src/cairo-compiler-private.h | 24 ------------------------
+ src/cairo.c | 1 -
+ 2 files changed, 25 deletions(-)
+
+commit 126824f5e6279f56dab0c040394b6c326b848cf7
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Feb 19 13:31:55 2009 -0500
+
+ Add CAIRO_ENSURE_UNIQUE macro and use it in _cairo_error()
+
+ When using MSVC, _cairo_error() can be folded into other identical functions. If
+ that happens, _cairo_error isn't really useful anymore. Using the
+ CAIRO_ENSURE_UNIQUE macro makes sure this doesn't happen.
+
+ src/cairo-compiler-private.h | 24 ++++++++++++++++++++++++
+ src/cairo.c | 1 +
+ 2 files changed, 25 insertions(+)
+
+commit d4227fc9126ffbb3a967aea1bc9795e7e64ee8e1
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Feb 19 11:45:14 2009 -0500
+
+ [test] Fix assert on default font family in toy-font-face
+
+ toy-font-face was checking that cairo_toy_font_face_get_family returned ""
+ which is CAIRO_FONT_FAMILY_DEFAULT when the freetype font backend is the
+ default. However, when other font backends are the default the returned family
+ is different. Therefore, instead of checking for "", we check for the appropriate
+ string depending on the backend.
+
+ test/toy-font-face.c | 19 +++++++++++++++----
+ 1 file changed, 15 insertions(+), 4 deletions(-)
+
+commit 06fa7a8386b267fdbd7635b952adc75a58f62584
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Feb 18 18:43:29 2009 -0500
+
+ Fix a const warning in _cairo_user_data_array_foreach()
+
+ _cairo_user_data_array_foreach() was taking a function
+ with a void *key parameter instead of a const void *key
+ to match cairo_user_data_slot_t.
+
+ src/cairo-array.c | 2 +-
+ src/cairo-surface.c | 2 +-
+ src/cairoint.h | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+commit f7b3c9df5885a1cd7981ee12b91962bdbfff47af
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Mon Feb 16 22:28:32 2009 -0500
+
+ Add test/Makefile.sources
+
+ This lets test/Makefile.am and test/Makefile.win32 share a common list of sources.
+ It also makes test/Makefile.win32 useful again.
+
+ test/Makefile.am | 251 ++++----------------------------------------------
+ test/Makefile.sources | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/Makefile.win32 | 125 +++++--------------------
+ 3 files changed, 293 insertions(+), 334 deletions(-)
+
+commit e380beae5382df547a1b538de94e90c0e2339141
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Mon Feb 16 14:01:43 2009 +0200
+
+ [sdl] Remove new backend.
+
+ The SDL backend makes invalid assumptions about SDL_Surface locking
+ semantics and doesn't deal correctly with the unpremultiplied pixel
+ format supported by SDL. Removed as per discussion on the mailing list.
+
+ http://lists.cairographics.org/archives/cairo/2009-February/016595.html
+
+ boilerplate/Makefile.sources | 3 -
+ boilerplate/Makefile.win32.features | 10 -
+ boilerplate/cairo-boilerplate-sdl-private.h | 56 ----
+ boilerplate/cairo-boilerplate-sdl.c | 69 -----
+ boilerplate/cairo-boilerplate.c | 15 -
+ build/Makefile.win32.features | 1 -
+ build/Makefile.win32.features-h | 3 -
+ build/configure.ac.features | 1 -
+ configure.ac | 8 -
+ doc/public/tmpl/cairo-surface.sgml | 1 -
+ perf/Makefile.am | 4 -
+ perf/cairo-perf.c | 4 -
+ src/Makefile.sources | 3 -
+ src/Makefile.win32.features | 14 -
+ src/cairo-sdl-surface.c | 418 ----------------------------
+ src/cairo-sdl.h | 54 ----
+ src/cairo.h | 2 -
+ test/Makefile.am | 4 -
+ test/cairo-test-runner.c | 4 -
+ test/get-clip.c | 1 -
+ 20 files changed, 675 deletions(-)
+
+commit 79a72e63585d7fce7898f2c8bd997c6d88f8895f
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Mon Feb 16 05:44:15 2009 -0500
+
+ Delete _cairo_region_boxes_fini()
+
+ src/cairo-region.c | 6 ------
+ 1 file changed, 6 deletions(-)
+
+commit f6daa664c1b2c894ba3baf2e7a72566bda1fd636
+Author: Søren Sandmann <sandmann@daimi.au.dk>
+Date: Sun Feb 15 18:55:17 2009 -0500
+
+ Delete _cairo_region_get_boxes() in favor of _cairo_region_get_box()
+
+ The _cairo_region_get_boxes() interface was difficult to use and often
+ caused unnecessary memory allocation. With _cairo_region_get_box() it
+ is possible to access the boxes of a region without allocating a big
+ temporary array.
+
+ src/cairo-clip.c | 21 ++++++++-----------
+ src/cairo-directfb-surface.c | 21 ++++++++-----------
+ src/cairo-paginated-surface.c | 19 ++++++++---------
+ src/cairo-region-private.h | 10 +++------
+ src/cairo-region.c | 39 +++++++++--------------------------
+ src/cairo-sdl-surface.c | 21 ++++++++-----------
+ src/cairo-surface.c | 44 +++++++++++++++------------------------
+ src/cairo-win32-surface.c | 48 +++++++++++++++++++++----------------------
+ src/cairo-xcb-surface.c | 26 ++++++++++-------------
+ src/cairo-xlib-surface.c | 31 ++++++++++++----------------
+ 10 files changed, 112 insertions(+), 168 deletions(-)
+
+commit 54228cb5fe0c41b10f0ec4a206b5fac28823cde6
+Author: Eric Anholt <eric@anholt.net>
+Date: Sun Feb 15 14:29:55 2009 -0800
+
+ [gl] Use textures and not fbo-based surfaces for image surface patterns.
+
+ This cuts the BO allocation overhead for traps in more than half, and reduces
+ the load on the accelerator.
+
+ src/cairo-gl-surface.c | 191 +++++++++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 176 insertions(+), 15 deletions(-)
+
+commit fcb13d262c5a09e56dc25c76103ef4ba623929ff
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Sun Feb 15 15:59:10 2009 -0500
+
+ Simplify region handling in xlib surface
+
+ src/cairo-xlib-surface.c | 11 +++--------
+ 1 file changed, 3 insertions(+), 8 deletions(-)
+
+commit b43e7aee98a8d69677f7e6d2584fe01f550f896b
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Fri Feb 13 12:15:23 2009 -0500
+
+ [wince] We don't need cairo_win32_tmpfile on Windows CE
+
+ _cairo_win32_tmpfile() uses _open_osfhandle() which is not available
+ on Windows CE. However, Windows CE doesn't have the permisions problems
+ that necessitated _cairo_win32_tmpfile() in the first place so we can just
+ use tmpfile() on Windows CE.
+
+ src/cairo-misc.c | 5 ++++-
+ src/cairoint.h | 2 +-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+commit fa66291c8862ed592fca469ceab0ac9b1d270835
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 28 14:22:58 2009 +0000
+
+ [perf] Test non-antialiased fill.
+
+ Just because the i915 can special case such fills using a single-pass
+ tessellation in the stencil buffer.
+
+ perf/fill.c | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+commit aab9ed3432f0ea7b8b24990de4aa134bb599a3e5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 30 10:22:47 2009 +0000
+
+ [perf] Env variable to ignore similar targets whilst benchmarking.
+
+ Use CAIRO_TEST_IGNORE_SIMILAR to skip similar targets.
+
+ perf/cairo-perf.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 655f6987334b991763a5ab7746dbfd73c6b05f3e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Feb 6 20:11:17 2009 +0000
+
+ [perf] Split can_run? into a separate precondition.
+
+ Allow tests to skip unnecessary setup when pruning the list of perf cases.
+
+ perf/box-outline.c | 3 +++
+ perf/cairo-perf.c | 24 ++++++++++++++++--------
+ perf/cairo-perf.h | 4 ++++
+ perf/composite-checker.c | 3 +++
+ perf/dragon.c | 3 +++
+ perf/fill.c | 3 +++
+ perf/intersections.c | 3 +++
+ perf/long-dashed-lines.c | 3 +++
+ perf/long-lines.c | 3 +++
+ perf/mosaic.c | 3 +++
+ perf/paint-with-alpha.c | 3 +++
+ perf/paint.c | 3 +++
+ perf/pattern_create_radial.c | 3 +++
+ perf/pythagoras-tree.c | 3 +++
+ perf/rectangles.c | 3 +++
+ perf/rounded-rectangles.c | 3 +++
+ perf/spiral.c | 3 +++
+ perf/stroke.c | 3 +++
+ perf/subimage_copy.c | 3 +++
+ perf/tessellate.c | 3 +++
+ perf/text.c | 3 +++
+ perf/twin.c | 3 +++
+ perf/unaligned-clip.c | 3 +++
+ perf/world-map.c | 3 +++
+ perf/zrusin.c | 3 +++
+ 25 files changed, 89 insertions(+), 8 deletions(-)
+
+commit 798581a1b5a8a56ce9d16c5b21eab82851061732
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 30 22:12:49 2009 +0000
+
+ [perf] Extend range of testing.
+
+ Primarily to test longer glyph runs, but also test large upper bounds for
+ strokes and fills.
+
+ perf/cairo-perf.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit 1522fac5c71708fc9e98e03da9f51926c1e3769c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Feb 3 17:18:53 2009 +0000
+
+ [perf] Fix infinite loop in text
+
+ The row would wrap-around with the character index, causing an infinite
+ loop when trying to fill a window of size 512x512 and above.
+
+ perf/text.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+commit 187e3473512e40fa1d046783e797ec3a198b09b2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Feb 13 13:09:32 2009 +0000
+
+ [test] Free ref_name in fallback-resolution.
+
+ Trivial leak of a few thousand bytes.
+
+ test/fallback-resolution.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 005436758c5679f76cc462841678fb93d6c7e0ac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Feb 3 10:20:26 2009 +0000
+
+ [path] Inline path ops during append_to_context()
+
+ By inlining the operations, and most significantly, precomputing the
+ combined user-to-backend matrix, we can achieve a speed up of over 50%,
+ which is a noticeable performance boost in swfdec - where append-to-path
+ accounts for over 35% [inclusive] of the time for a h/w accelerated
+ backend.
+
+ src/cairo-path.c | 76 ++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 58 insertions(+), 18 deletions(-)
+
+commit d295942b9d4da3be3318cd5fe2d3b0b1fe005d11
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 31 00:56:45 2009 +0000
+
+ Inline _cairo_restrict_value()
+
+ This is one instance where the function call overhead dominated the
+ function call in both time and size.
+
+ src/cairo-misc.c | 9 ---------
+ src/cairo-pattern.c | 32 ++++++++++++++++----------------
+ src/cairo.c | 14 ++++++++------
+ src/cairoint.h | 13 +++++++++++--
+ 4 files changed, 35 insertions(+), 33 deletions(-)
+
+commit cc8a09567ca034e7d95e2ef8a3ec833b12c9f87a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Feb 13 13:23:50 2009 +0000
+
+ [surface] Move the meta-data copy-on-snapshot to the generic layer.
+
+ As pointed out by Paolo Bonzini, copying the meta data for a snapshot is
+ common for all backends and so should be handled by the generic layer.
+
+ src/cairo-surface-fallback.c | 11 -----------
+ src/cairo-surface.c | 30 +++++++++++++++++++++++++++---
+ 2 files changed, 27 insertions(+), 14 deletions(-)
+
+commit adaf70a93f4449e85997bcde531b76c9044758ea
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Feb 13 12:56:46 2009 +0000
+
+ [surface] Separate the mime-data from the user-data.
+
+ Move the mime-data into its own array so that it cannot be confused with
+ user-data and we do not need to hard-code the copy list during
+ snapshotting. The copy-on-snapshotting code becomes far simpler and will
+ accommodate all future mime-types.
+
+ Keeping mime-data separate from user-data is important due to the
+ principle of least surprise - the API is different and so it would be
+ surprising if you queried for user-data and were returned an opaque
+ mime-data pointer, and vice versa. (Note this should have been prevented
+ by using interned strings, but conceptually it is cleaner to make the
+ separation.) Also it aides in trimming the user data arrays which are
+ linearly searched.
+
+ Based on the original patch by Adrian Johnson:
+ http://cgit.freedesktop.org/~ajohnson/cairo/commit/?h=metadata&id=37e607cc777523ad12a2d214708d79ecbca5b380
+
+ src/cairo-array.c | 36 ++++++++++++++++++++++++++++++++++++
+ src/cairo-surface-fallback.c | 27 +++++++--------------------
+ src/cairo-surface-private.h | 1 +
+ src/cairo-surface.c | 42 +++++++++++++++++++++---------------------
+ src/cairoint.h | 14 ++++++++++++--
+ 5 files changed, 77 insertions(+), 43 deletions(-)
+
+commit 2280de9d0282a599309ec12dc576bae54857f873
+Merge: 17ce8584e de7270cb1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Feb 13 10:08:21 2009 +0000
+
+ Merge branch '1.8'
+
+commit de7270cb1e9510cb230e80045c812fa68fcfa585
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Feb 13 10:03:22 2009 +0000
+
+ [cairo] Describe the restrictions upon cairo_set_tolerance()
+
+ Truc Troung reported that the behaviour of
+ cairo_set_tolerance()/cairo_get_tolerance() was inconsistent with the
+ documentation, i.e. we failed to mention that the tolerance would be
+ restricted to the smalled fixed-point value.
+
+ Add a sentence to the documentation that describes the restriction without
+ mentioning what that is... Hopefully that is sufficient detail to
+ accommodate the reporter, without exposing internal implementation details.
+
+ Fixes https://bugs.freedesktop.org/show_bug.cgi?id=20095
+ Bug 20095 - The cairo_set_tolerance() function behavior is inconsistency
+ with the spec
+
+ src/cairo.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 17ce8584e7142d13bd7a777c9570e5548a06a90c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Feb 12 18:26:57 2009 +0000
+
+ [NEWS] Add API changes.
+
+ Scan the public headers for obvious additions.
+
+ NEWS | 20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+commit 2df611a3810eb64c8ed22dfae5f3d3157eef7e6a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Feb 10 10:28:28 2009 +0000
+
+ [script] Expose a normal xlib window for replay
+
+ Provide a visible surface for replaying scripts against.
+
+ util/cairo-script/csi-replay.c | 122 ++++++++++++++++++++++-------------------
+ 1 file changed, 66 insertions(+), 56 deletions(-)
+
+commit 8e1f103540392b17c51b4fb4b3c3480430cbc212
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Feb 12 12:02:17 2009 -0500
+
+ Divert pclose to _pclose for MSVC
+
+ Commit bf62798b1284533e28b78717dac8070ca6d29e54 added a diversion for
+ popen but not for pclose. This is needed for linking the boilerplate
+ with the test suite.
+
+ src/cairo-compiler-private.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 4c6e7a16032fb223f4224d4355c2ea046cd8fc4b
+Author: Eric Anholt <eric@anholt.net>
+Date: Wed Feb 11 05:09:23 2009 -0800
+
+ [gl] Add support for constant color directly, not through a texture.
+
+ src/cairo-gl-surface.c | 337 ++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 248 insertions(+), 89 deletions(-)
+
+commit 31fb7382d22c9293c093b60716ee4e393fa0d5cf
+Author: Eric Anholt <eric@anholt.net>
+Date: Wed Feb 11 05:09:51 2009 -0800
+
+ [gl] Fix some memory leaks on boilerplate-based runs.
+
+ boilerplate/cairo-boilerplate-gl.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit df96fc1f92b68ef3e76750d0891377980e039b09
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Feb 9 15:42:09 2009 -0800
+
+ [gl] Avoid re-binding the same draw buffer.
+
+ The driver could be smarter and avoid a lot of the cost, but this is easy
+ and avoids needing much driver smarts.
+
+ src/cairo-gl-surface.c | 30 ++++++++++++++++++++----------
+ 1 file changed, 20 insertions(+), 10 deletions(-)
+
+commit fb6937565be558e7ff8ba3dd815a427721783cba
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Feb 9 15:30:21 2009 -0800
+
+ [gl] Add interface for creating surfaces from window backbuffers.
+
+ src/cairo-gl-surface.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++---
+ src/cairo-gl.h | 9 +++---
+ 2 files changed, 85 insertions(+), 9 deletions(-)
+
+commit 6cc3d8dcc0fe418c56a519180163bd49fbdb9730
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Feb 9 12:30:20 2009 -0800
+
+ [gl] Fix unantialiased-shapes tests.
+
+ src/cairo-gl-surface.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+commit 23a8c58dc13bd9ff44f235bee8e4e7240831728a
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Feb 5 11:00:59 2009 -0800
+
+ [gl] Fix infinite recursion on compositing A1 images.
+
+ We could do this fast, but let's do it correct first.
+
+ src/cairo-gl-surface.c | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+commit b6dde667fa1c72c6da1970244c4f28c48a38f493
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Feb 2 23:22:49 2009 -0800
+
+ [gl] Add support for composite and composite_trapezoids.
+
+ This is a simple implementation that uses GL_ARB_texture_env_combine after
+ converting everything to GL surfaces (FBOs).
+
+ src/cairo-gl-surface.c | 375 ++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 373 insertions(+), 2 deletions(-)
+
+commit 38a1061bbcf3e69acc05c35f2084d462b43f5477
+Merge: b3e2433f1 e7d4bc3d8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Feb 12 10:46:29 2009 +0000
+
+ Merge branch '1.8'
+
+commit e7d4bc3d864b1b42bb1cae031036ddf6a4445d3c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Feb 12 10:42:24 2009 +0000
+
+ [png] Correct documentation to avoid reference to NULL
+
+ As pointed out by Truc Truong,
+ cairo_image_surface_create_from_png_stream() cannot return NULL and so the
+ documentation was incorrect.
+
+ Fixes http://bugs.freedesktop.org/show_bug.cgi?id=20075
+ Bug 20075 There is a misprint in the spec for
+ cairo_image_surface_create_from_png_stream() function
+
+ src/cairo-png.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+commit b3e2433f1e78e8799a9f57bfb6da108016687fc9
+Author: Søren Sandmann <sandmann@redhat.com>
+Date: Wed Feb 11 17:55:15 2009 -0500
+
+ Correct the reference image for the rotate-image-surface-paint test
+
+ test/rotate-image-surface-paint.ref.png | Bin 190 -> 191 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit 41cbd935f9dba276db716e2c71ac21dc60505be9
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Feb 11 15:24:20 2009 -0500
+
+ [test] Add cairo_test_NaN and use it in place of strtod
+
+ strtod("NaN") returns 0.0 with the MSVC runtime so we
+ need to generate NaN some other way.
+
+ test/cairo-test.h | 15 +++++++++++++++
+ test/invalid-matrix.c | 2 +-
+ test/user-font-rescale.c | 2 +-
+ 3 files changed, 17 insertions(+), 2 deletions(-)
+
+commit 70297f257d4dc0accb5183b806d43a033887acb7
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Feb 10 17:58:28 2009 -0500
+
+ [test] Add crtdbg.h include
+
+ crtdbg.h is required for _CrtSetReportMode() and _CrtSetReportFile().
+
+ test/cairo-test-runner.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit b9f0c4b25223830ce73f7e3adef85a0e97a31c0e
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Feb 10 17:57:00 2009 -0500
+
+ Use _cairo_round() instead of round()
+
+ MSVC doesn't have round() and the code probably wants
+ to round in the same direction regardless of whether
+ the values are negative or positive.
+
+ src/cairo-font-face-twin.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit dffdbd85157395bceb27d30d6426aa47173f6a18
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Feb 10 17:53:39 2009 -0500
+
+ Add _cairo_round()
+
+ _cairo_round() has the same behaviour as _cairo_lround() except
+ it returns a double instead of an integer.
+
+ src/cairoint.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit 41e46c7754fff3a99927979925300a7588b9962f
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Feb 10 11:44:20 2009 -0500
+
+ [test] Don't embed preprocessor directives inside macros
+
+ MSVC can't handle this. GCC will warn with -pedantic, but I'm not
+ sure we want to enable that.
+
+ test/user-font-mask.c | 11 ++++++-----
+ test/user-font-proxy.c | 10 +++++-----
+ test/user-font.c | 10 +++++-----
+ 3 files changed, 16 insertions(+), 15 deletions(-)
+
+commit fe40d3bdb0d0cb93169b935e44d14b15e014fa6d
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Mon Feb 9 23:43:04 2009 -0500
+
+ [test] Allocate glyph array with malloc
+
+ Keeping it on the stack causes a stack overflow of Window's
+ default 1mb stack.
+
+ test/show-glyphs-many.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 50f8c2e4f3407ef237afd94c7317b1e185ccc9dc
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Mon Feb 9 23:39:38 2009 -0500
+
+ [test] define isnan() on MSVC
+
+ Needed for user-font-rescale.c
+
+ test/cairo-test.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit dd9fc47418b86610d7896fcf585037c96beaa66f
+Author: Jeff Muizelaar <jeff@infidigm.net>
+Date: Mon Feb 9 16:31:08 2009 -0500
+
+ Remove zero size data array for compilation with MSVC
+
+ MSVC doesn't support zero sized arrays very well. For example, zero
+ sized arrays in arrays.
+
+ src/cairo-tor-scan-converter.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit a6c8f18a391407044b33340cf13c49368a2e810e
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Mon Feb 9 15:59:01 2009 -0500
+
+ [test] Avoid C99 designated initializers
+
+ MSVC doesn't support these so we shouldn't use them.
+
+ test/path-precision.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+commit 3d2fcec948b93f75ba49b898633a84f60d419779
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Mon Feb 9 15:12:41 2009 -0500
+
+ [test] Define INFINITY on MSVC
+
+ 1./0. produces a compiler error on MSVC so we'll use HUGEVAL instead.
+
+ test/cairo-test.h | 3 ---
+ test/invalid-matrix.c | 4 ++--
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+
+commit 6fb4c6200c840d438e1c9cdd2c9e7b0f140863d8
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Feb 5 10:29:01 2009 -0800
+
+ [gl] Clamp surface size to a minimum of (1,1) in create_similar.
+
+ Fixes clip-zero test.
+
+ src/cairo-gl-surface.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit a8a40810275ff0a59f5767034372523d34fbbd1b
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Feb 5 09:43:38 2009 -0800
+
+ [gl] clear surfaces to transparent on creation
+
+ src/cairo-gl-surface.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit e7eb6dab12b9d622b80e4202d753324f7161b269
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Jan 29 22:31:56 2009 -0800
+
+ [gl] Hook up fill_rectangles.
+
+ First actual "acceleration" for cairogears. Actually slows things down since
+ we're now pingponging between cpu and gpu.
+
+ src/cairo-gl-surface.c | 119 ++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 118 insertions(+), 1 deletion(-)
+
+commit 2ad5c3fc8fdb5941bdedcda3c972b3bae426fb32
+Author: Eric Anholt <eric@anholt.net>
+Date: Wed Feb 4 13:10:47 2009 -0800
+
+ [gl] Add a shortcut from image to gl in clone_similar.
+
+ src/cairo-gl-surface.c | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+commit d9d56bb2ed552dd40415af53105a98b9d6ba39ab
+Author: Eric Anholt <eric@anholt.net>
+Date: Wed Feb 4 13:06:31 2009 -0800
+
+ [gl] Make create_similar actually create similar instead of image.
+
+ src/cairo-gl-surface.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 90b30219b945d6cce941a1b702c9b789a60d8b27
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Jan 29 22:27:39 2009 -0800
+
+ [gl] Replace all-software implementation with all-GL-read/drawpixels.
+
+ src/cairo-gl-surface.c | 315 +++++++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 282 insertions(+), 33 deletions(-)
+
+commit c22ca79863a54b4293e607c8e4d515868c216842
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Feb 6 12:56:48 2009 -0500
+
+ Don't distribute cairo-features.h (#19992)
+
+ Second time I fix this bug. Mabe we should add a test for it!
+
+ src/Makefile.am | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+commit a55655a82de8dee0f171efb2f7dfb1da341ecdd6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Feb 6 12:47:38 2009 -0500
+
+ [test] Fix "make dist"
+
+ doc/public/tmpl/cairo-status.sgml | 1 +
+ test/Makefile.am | 1 -
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+commit af5ca7249f7628a8b0758f51934e3c1f6d9f4f36
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Feb 5 16:46:50 2009 -0500
+
+ [test] Fix the definition of INFINITY
+
+ In my defence, even with INFINITY as 0, I was seeing new asserts on win32.
+ Caught by Jeremy Lea.
+
+ test/invalid-matrix.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 235de8d7a492ccd132fb83f78d33b408bd76aec1
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Jan 29 09:19:01 2009 -0800
+
+ [gl] Add basics for GL surface backend using test-fallback as base.
+
+ boilerplate/Makefile.sources | 3 +
+ boilerplate/Makefile.win32.features | 10 +
+ boilerplate/cairo-boilerplate-gl-private.h | 59 ++++++
+ boilerplate/cairo-boilerplate-gl.c | 124 +++++++++++++
+ boilerplate/cairo-boilerplate.c | 25 +++
+ build/Makefile.win32.features | 1 +
+ build/Makefile.win32.features-h | 3 +
+ build/configure.ac.features | 1 +
+ configure.ac | 7 +
+ perf/cairo-perf.c | 1 +
+ src/Makefile.sources | 4 +
+ src/Makefile.win32.features | 14 ++
+ src/cairo-gl-surface.c | 287 +++++++++++++++++++++++++++++
+ src/cairo-gl.h | 89 +++++++++
+ src/cairo-mutex-list-private.h | 4 +
+ src/cairo.h | 4 +-
+ 16 files changed, 635 insertions(+), 1 deletion(-)
+
+commit 83ec4b16b7b9a27439fee2d84c50e30a1ec2d68c
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Feb 4 14:04:05 2009 -0500
+
+ Elaborate the meaning of arithmetic rounding as done by _cairo_lround()
+
+ src/cairo-misc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2676b3bdd6fbeef62d34c100718f76fe5bbe647d
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Feb 3 14:18:44 2009 -0500
+
+ [test] Define INFINITY if it hasn't been defined.
+
+ This lets us use more of invalid-matrix on win32
+
+ test/cairo-test.h | 3 +++
+ test/invalid-matrix.c | 22 ++--------------------
+ 2 files changed, 5 insertions(+), 20 deletions(-)
+
+commit 6b0c2c8ba61b6fdaad4c77e1a7c02c13c70e03c4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 31 11:58:19 2009 +0000
+
+ [directfb] Don't access the scaled_font->glyphs cache directly
+
+ Not only does it no longer exist, but doing so bypassed the locking
+ mechanisms and sanity checks!
+
+ Spotted by Lance Hepler.
+
+ src/cairo-directfb-surface.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+commit d63c1ab3ffcb64220a05c80e674324f524f29dc2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Jan 31 22:10:57 2009 -0500
+
+ [util/malloc-stats] Do a single backtrace_symbols() call
+
+ I was hoping that this may speed things up, but it didn't. :(
+
+ util/malloc-stats.c | 58 +++++++++++++++++++++++++++++++++++++++++++++--------
+ 1 file changed, 50 insertions(+), 8 deletions(-)
+
+commit 64d1c7587041f765b393e1802a10cce02b807ad1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Jan 31 21:34:21 2009 -0500
+
+ [util] Fix memset bug in malloc-stats
+
+ util/malloc-stats.c | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+commit b02aeb367dc4bada5412798fa93ce74f3d861273
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Jan 31 21:33:42 2009 -0500
+
+ [util] Don't link backtrace-symbols into malloc-stats
+
+ On my rawhide machine, seems like the glibc backgrace-symbols is now as
+ good as our private backtrace-symbols.
+
+ util/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 7375f4c76bb169cc24d5d714520c337172d3cf69
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 30 21:54:56 2009 +0000
+
+ Trivial warning fixes.
+
+ Cleanup a few compiler warnings about unused variables and mismatching
+ pointer types.
+
+ src/cairo-bentley-ottmann.c | 1 -
+ src/cairo-ps-surface.c | 4 ++--
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+commit f10eaadf89fa94172a81c05a59febab3f7e32396
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 30 21:50:24 2009 +0000
+
+ Revert "[png] Complete the idempotent read_png() -> write_png()"
+
+ This reverts commit 564d64a1323c5cbcde2dd9365ac790fe8aa1c5a6.
+
+ In hindsight, and with further discussion with Jeff Muizelaar, this
+ behaviour of using the stored contents from the mime-data is completely
+ the opposite of the users' expectations. When the user calls
+ cairo_surface_write_to_png(), usually in the course of debugging their
+ rendering code, they expect the precise contents of the surface to be
+ saved.
+
+ src/cairo-png.c | 14 --------------
+ 1 file changed, 14 deletions(-)
+
+commit dd11d905a54a123ddf619e5f0194fb1800ba643d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 30 10:09:29 2009 +0000
+
+ [util] Use a hash-table for malloc-stats.
+
+ At Behdad's request, convert the array of allocators into a simple hash
+ table (large static number of buckets + chaining) in order to speed up
+ malloc profiling.
+
+ util/malloc-stats.c | 150 ++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 103 insertions(+), 47 deletions(-)
+
+commit 322fb00066cc4655122fcf7d738a0cbbe46fcdd1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 29 22:05:06 2009 +0000
+
+ [test] Compile again without memfault.
+
+ Hide the valgrind macro when not using memfault.
+
+ test/cairo-test.c | 26 ++++++++++++++++----------
+ 1 file changed, 16 insertions(+), 10 deletions(-)
+
+commit 5e6d25e204b681c5d5fba90abfe4d7401f23460f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 17 20:47:09 2008 +0000
+
+ [skiplist] Provide an initial stack allocated pool.
+
+ Since we only need to allocate elts for intersection events and edges, the
+ number of elts in flight at any one time is actually quite small and can
+ usually be accommodated from an embedded pool.
+
+ src/cairo-bentley-ottmann.c | 33 ++++++++++-----------------------
+ src/cairo-skiplist-private.h | 9 +++++----
+ src/cairo-skiplist.c | 13 ++++++-------
+ 3 files changed, 21 insertions(+), 34 deletions(-)
+
+commit dd4276c6618aa250637e4499bc7cb0a35b24448c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 30 13:49:24 2008 +0000
+
+ [stroker] Rectilinear dashing.
+
+ Extend the rectilinear stroker to handle dashes, so that for pixel-aligned
+ dashed strokes we completely avoid tessellation overhead.
+
+ src/cairo-matrix.c | 3 +-
+ src/cairo-path-stroke.c | 492 +++++++++++++++++----
+ src/cairo-pen.c | 11 +-
+ src/cairo-stroke-style.c | 18 +-
+ src/cairoint.h | 11 +-
+ test/Makefile.am | 4 +-
+ test/leaky-dashed-rectangle.pdf.ref.png | Bin 0 -> 347 bytes
+ ...2.ref.png => leaky-dashed-rectangle.ps.ref.png} | Bin
+ test/leaky-dashed-rectangle.ps3.ref.png | Bin 444 -> 0 bytes
+ test/leaky-dashed-rectangle.ref.png | Bin 366 -> 347 bytes
+ 10 files changed, 437 insertions(+), 102 deletions(-)
+
+commit 7f95288c03a400bf770165d427ef623d924b3b47
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 29 09:47:01 2009 +0000
+
+ [ft] Improve error status propagation.
+
+ Propagate the error status from deep within the bowels, in order to reduce
+ the number of duplicate _cairo_error() and generally clean up the return
+ values.
+
+ src/cairo-ft-font.c | 65 ++++++++++++++++++++++++++---------------------------
+ 1 file changed, 32 insertions(+), 33 deletions(-)
+
+commit 53bd2ae2ce27f9b954f34bc9921d798c9a074125
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 26 21:36:27 2009 +0000
+
+ [ft] Distinguish fatal backend errors whilst constructing scaled fonts.
+
+ We now have the ability to distinguish an error case where the backend is
+ left in an inconsistent state from a transitory error. For the former we
+ need to report the error condition via the return value, which will be
+ propagated to the font-face. For the latter we just construct an in-error
+ scaled font nil-object which is passed back to the user.
+
+ src/cairo-ft-font.c | 38 ++++++++++++++++++++++++++------------
+ 1 file changed, 26 insertions(+), 12 deletions(-)
+
+commit f17aeedab31753974cce027f92571107425b1bcd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 26 21:11:41 2009 +0000
+
+ [scaled-font] Differentiate fatal error when creating fonts
+
+ We only want to set the error state on the backend when it implies that
+ the font-face is in an inconsistent state. For example, this may be due to
+ a locking error in the backend or that we have detected a corrupt font.
+
+ In contrast, if we merely fail to allocated the scaled font then we just
+ wish to return that error to the user, without making the font-face itself
+ inert.
+
+ src/cairo-scaled-font.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+commit 58cab06c4c2c49bbecb11efaae6b41d30c06eff0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 26 20:52:29 2009 +0000
+
+ [scaled-font] Guard against invalid matrices when creating the scaled font.
+
+ Check the user input for validity before passing the values on to the
+ backend. Currently the error is detected by the backend and the error is
+ propagated onto the font-face.
+
+ src/cairo-scaled-font.c | 22 ++++++++++++++++++++--
+ 1 file changed, 20 insertions(+), 2 deletions(-)
+
+commit 97c88f2af04b6bc5161fa2b567b5e922d7fd326a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 26 20:51:02 2009 +0000
+
+ [surface] Fix memleak of along set_mime_data() error path
+
+ Free the mime_data holder if we fail to attach it to the surface.
+
+ src/cairo-surface.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit d20e5fc2d95c61ab04e085bf3a99d2cb958421a5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 26 15:08:58 2009 +0000
+
+ [ps] Free images after emitting patterns.
+
+ Ensure that the temporary images are freed after we finish with the
+ pattern.
+
+ Note that we are using 3 members of the surface for temporary storage
+ whilst emitting patterns, this should be reviewed.
+
+ src/cairo-ps-surface-private.h | 3 +++
+ src/cairo-ps-surface.c | 18 ++++++++++++++++--
+ 2 files changed, 19 insertions(+), 2 deletions(-)
+
+commit e6102dbe028ca93db936b2f4cd6368e2ba0a2209
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 26 14:00:13 2009 +0000
+
+ [png] Avoid a double free of the memory stream after error.
+
+ _cairo_memory_stream_destroy() finalizes the stream even if the stream was
+ in error and that error is reported back to the caller - so ensure we
+ don't try to free the stream again.
+
+ src/cairo-png.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0f3e366f8bbbaa80b518eb1b0297a6122901ce66
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 26 10:54:45 2009 +0000
+
+ [font-face] Close a race when resurrecting fonts.
+
+ Paul Messmer provided a thorough analysis of a race between destroying the
+ final reference on a font and a concurrent recreation of the font -
+ demonstrating how it is possible for the create() to return the font that
+ was in the process of being freed.
+
+ To stop the race, we need to recheck the reference count upon taking the
+ mutex guarding the hash table.
+
+ src/cairo-ft-font.c | 6 ++++++
+ src/cairo-toy-font-face.c | 6 ++++++
+ 2 files changed, 12 insertions(+)
+
+commit 312b5680a5754c8e7ee1332206b81449cf9bf8a3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 23 21:13:15 2009 +0000
+
+ [cff-subset] Free ps_name.
+
+ Ensure ps_name is freed along error paths and by the normal destructor.
+
+ src/cairo-cff-subset.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 5176507fcb61ae1ec1143aa0b6b098bc92575c48
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 23 13:37:54 2009 +0000
+
+ [truetype] Free font name.
+
+ Remember to free the font name on destruction.
+
+ src/cairo-truetype-subset.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit ab0ac1b8a84b0d259602f0029a3b5552466f35a6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 29 09:45:11 2009 +0000
+
+ [truetype] Initialise font_name
+
+ Ensure the font_name is initialized to NULL.
+
+ src/cairo-cff-subset.c | 2 ++
+ src/cairo-truetype-subset.c | 1 +
+ 2 files changed, 3 insertions(+)
+
+commit 8388af137841679b7c510980daf3cec1427b6e6b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 29 09:50:38 2009 +0000
+
+ [test] Trivial fixes for error paths.
+
+ Kill a few leaks along error paths in the test code.
+
+ test/create-from-png-stream.c | 36 ++++++++++++++++++++++++++++--------
+ test/mime-data.c | 4 ++++
+ 2 files changed, 32 insertions(+), 8 deletions(-)
+
+commit 3752f690b467432ab5b1058d450cb79d719a794a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 29 09:49:41 2009 +0000
+
+ [test] Suppress suppressed memfault report
+
+ Check to see if there are any *unsuppressed* memfaults before declaring
+ unreported faults.
+
+ test/cairo-test.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 8dc4c0da9b13b16c593e874d59c13a89a77a2481
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 23 13:17:24 2009 +0000
+
+ [toy-font] Fix unwind behaviour following error during construction.
+
+ We failed to cleanup the font face correctly after an allocation failure
+ during _cairo_toy_font_face_init() leading to memleaks and live entries
+ being left in the font-face hash tables.
+
+ src/cairo-toy-font-face.c | 43 +++++++++++++++++++++----------------------
+ 1 file changed, 21 insertions(+), 22 deletions(-)
+
+commit 1d52fbc8f4f70e9e2419a6ed66cd907552d1d13b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 23 12:51:52 2009 +0000
+
+ [tessellator] Memleak on error path.
+
+ Add a missing _cairo_skip_list_fini() after failure to allocate the
+ events.
+
+ src/cairo-bentley-ottmann.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 6b5d2bf1a742b34a58d65f188fe15ffbf2f83118
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 23 10:42:42 2009 +0000
+
+ [trace] Comment out the redundant wrapping of FT_Open_Face()
+
+ Remove the left-over debugging spew, but leave a comment to hopefully
+ clarify the situation with wrapping FT_Open_Face().
+
+ util/cairo-trace/trace.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit faa004033cde21cd81890c7f82abae8eb766bb4b
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jan 22 11:52:54 2009 +1100
+
+ cairo-trace: Print name of trace file.
+
+ It's just a lot easier to use cairo-trace if it tells you
+ what file it just created.
+
+ util/cairo-trace/trace.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit d108b2777fcd6ef4fa45aeeef457dc58522e325b
+Author: Daniel Holbert <dholbert@mozilla.com>
+Date: Fri Jan 23 10:18:48 2009 +0000
+
+ Spelling corrections: s/it's/its/
+
+ As a fun itch to scratch, I've been fixing incorrect uses of the
+ contraction "it's" in comments within the mozilla source tree (tracked
+ in https://bugzilla.mozilla.org/show_bug.cgi?id=458167 ), and I ran
+ across 6 instances of this typo in mozilla's snapshot of cairo.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+ src/cairo-ft-font.c | 2 +-
+ src/cairo-matrix.c | 2 +-
+ src/cairo-mutex-impl-private.h | 2 +-
+ src/cairo-pdf-operators.c | 2 +-
+ src/cairo-surface-fallback.c | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 6394ec3048f31b867d9588853fa400c6c630c6f1
+Author: Paolo Bonzini <bonzini@gnu.org>
+Date: Mon Dec 15 09:32:43 2008 +0100
+
+ [surface] add CAIRO_STATUS_INVALID_SIZE
+
+ Adds an error code replacing CAIRO_STATUS_NO_MEMORY in one case where it
+ is not really appropriate. CAIRO_STATUS_INVALID_SIZE is used by several
+ backends that do not support image sizes beyond 2^15 pixels on each side.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+ src/cairo-misc.c | 4 +++-
+ src/cairo-os2-surface.c | 9 +++++----
+ src/cairo-quartz-image-surface.c | 5 +++--
+ src/cairo-quartz-surface.c | 4 ++--
+ src/cairo-spans.c | 2 ++
+ src/cairo-surface.c | 1 +
+ src/cairo-xlib-surface.c | 7 +++----
+ src/cairo.h | 6 ++++--
+ src/cairoint.h | 2 +-
+ 9 files changed, 24 insertions(+), 16 deletions(-)
+
+commit 46acfd2e85dd6f7a73e1172d363d509c769376f2
+Author: Paolo Bonzini <bonzini@gnu.org>
+Date: Tue Dec 23 08:31:30 2008 +0100
+
+ [glitz] use image fallback if the cairo_content_t is unsupported
+
+ The agreement on the mailing list was that returning NULL is the right
+ thing to do, and indeed the callers of _cairo_glitz_surface_create_similar
+ are prepared to receive NULL and return CAIRO_STATUS_INT_UNSUPPORTED in
+ that case.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+ src/cairo-glitz-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 01d20b79daf0abe0f69ccec4ecd5122c5bfe9a4e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 23 10:09:37 2009 +0000
+
+ [scaled-font] Fix up syntax in doc comments
+
+ The old NULL vs %NULL conflict.
+
+ src/cairo-scaled-font-subsets-private.h | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+commit aaec63d48386ec825cd4d6e67b6adf7c5fd3b167
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 21 15:04:47 2008 +0000
+
+ [scaled-font] Global glyph cache
+
+ Currently glyphs are cached independently in each font i.e. each font
+ maintains a cache of up to 256 glyphs, and there can be as many scaled fonts
+ in use as the application needs and references (we maintain a holdover
+ cache of 512 scaled fonts as well).
+
+ Alternatively, as in this patch, we can maintain a global pool of glyphs
+ split between all open fonts. This allows a heavily used individual font
+ to cache more glyphs than we could allow if we used per-font glyph caches,
+ but at the same time maintains fairness across all fonts (by using random
+ replacement) and provides a cap on the maximum number of global glyphs.
+
+ The glyphs are allocated in pages, which are cached in the global pool.
+ Using pages means we can exploit spatial locality within the font
+ (nearby indices are typically used in clusters) to reduce frequency of small
+ allocations and allow the scaled font to reserve a single MRU page of
+ glyphs. This caching dramatically reduces the cairo overhead during the
+ cairo-perf benchmarks, and drastically reduces the number of allocations
+ made by the application (for example browsing multi-lingual site with
+ firefox).
+
+ boilerplate/cairo-boilerplate.c | 5 +-
+ src/cairo-cache-private.h | 8 ++
+ src/cairo-cache.c | 36 +++--
+ src/cairo-hash-private.h | 4 +
+ src/cairo-hash.c | 117 ++++++++++-----
+ src/cairo-mutex-list-private.h | 1 +
+ src/cairo-scaled-font-private.h | 6 +-
+ src/cairo-scaled-font.c | 306 ++++++++++++++++++++++++++++------------
+ src/cairoint.h | 9 +-
+ 9 files changed, 351 insertions(+), 141 deletions(-)
+
+commit 54f6a49ebb18cf396823d0d70b95e4e264142171
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 19 15:36:29 2009 +0000
+
+ [bounds] Skip spline evaluation based on bounding bbox of control points.
+
+ The bounding polygon of the control points, defines the extents of the
+ spline. Therefore if the control points are entirely contained within the
+ current path extents, so is the spline and we do not need to evaluate its
+ tight bounds.
+
+ src/cairo-path-bounds.c | 21 +++++++++++++++++++--
+ 1 file changed, 19 insertions(+), 2 deletions(-)
+
+commit e217c4da7bc5c4817e0d829ff61dd2bd5b3145a6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 19 15:28:05 2009 +0000
+
+ [in-stroke] Check point against extents before computing path.
+
+ We can avoid tessellating the path entirely by first checking whether the
+ query point is inside the path extents.
+
+ src/cairo-gstate.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+commit 48f9a0e6da0dd24ea9c809876ef3c745dcfd0d52
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 15 00:26:03 2009 +0000
+
+ [spline] Correct the definition of a cubic Bezier curve.
+
+ Add the missing coefficients for p1 and p2 so the derivation of the
+ derivative and the solution for its inflection points stands correct.
+
+ src/cairo-spline.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit ee7ac5681fa6a74b68beeae667d96d1421050fc9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 21 12:04:06 2009 +0000
+
+ [path] A degenerate curve_to becomes a line_to.
+
+ Be consistent.
+
+ src/cairo-path-fixed.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 778ced4879b09f7482bd41c398bf2d984754ed0b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 14 18:55:32 2009 +0000
+
+ [path] Rename _cairo_path_fixed_approximate_extents()
+
+ Rename approximate_extents() to approximate_clip_extents() so that it is
+ consistent with the fill and stroke variants and clearer under what
+ circumstances you may wish to use it.
+
+ src/cairo-analysis-surface.c | 2 +-
+ src/cairo-clip.c | 4 ++--
+ src/cairo-path-bounds.c | 4 ++--
+ src/cairo-surface-fallback.c | 2 +-
+ src/cairoint.h | 4 ++--
+ 5 files changed, 8 insertions(+), 8 deletions(-)
+
+commit 75f7c420b624049c1f6c51795679f8029cd2231d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 21 13:09:41 2009 +0000
+
+ [perf] Remove a redundant clear during source init.
+
+ After a short wild goose chase to see why
+ cairo_image_surface_fill_rectangles() was appearing in the profile,
+ tweak init_and_set_source_surface() to remove the redundant clear and
+ to propagate any errors in the auxiliary context.
+
+ perf/cairo-perf-cover.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+commit 706f6de68da65911f434d2065dcb143649fa793e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jan 18 16:47:59 2009 +0000
+
+ [perf] Add another variation on the many-rectangles case
+
+ This variation aims to show the difference between calling fill once
+ per-rectangle, or once for all rectangles.
+
+ perf/rectangles.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+commit ff5d37a8ad063e84e88f453a403715bc85f8a3ec
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 29 10:09:11 2009 +0000
+
+ [mutex] Civilise the comment.
+
+ Note bene that Behdad does not like people shouting.
+
+ src/cairo-mutex-impl-private.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f4ff6128d7fb6e4b5ba361a597fc6c0c88d5ec00
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Jan 28 17:16:32 2009 -0500
+
+ Avoid "empty body in an if-statement" warning
+
+ Use '(void)expr;' instead of 'if (expr) ;' to avoid getting the warning.
+ 'if (expr) {}' is an option, however '(void)expr;' seems like a more common
+ idiom and getting warnings for __attribute__((warn_unsed_result)) functions is
+ probably prefered.
+
+ src/cairo-mutex-impl-private.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 41feeedcc14bf8caef3c039de49f4f28143712c7
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Dec 3 23:58:22 2008 +1030
+
+ Use PS font name in PS TrueType fonts
+
+ src/cairo-ps-surface.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+commit b7a9e1d4ac3972bc3d215070124b6a9eda68d3e3
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Dec 3 23:58:05 2008 +1030
+
+ Embed full font name in PDF TrueType and CFF fonts
+
+ if the full font name was available in the font.
+
+ src/cairo-pdf-surface.c | 32 ++++++++++++++++++++++++--------
+ 1 file changed, 24 insertions(+), 8 deletions(-)
+
+commit 6f2db9a4b07cde2c4932ea481228abc248e90145
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Dec 3 23:57:38 2008 +1030
+
+ Use PS font name in CFF and TrueType PDF font subsets
+
+ James Cloos found that the font name in embedded fonts should be the
+ PostScript font name (nameID=6 in the name table).
+
+ http://lists.cairographics.org/archives/cairo/2008-December/015919.html
+
+ src/cairo-cff-subset.c | 70 +++++++++++++++---------
+ src/cairo-pdf-surface.c | 16 +++---
+ src/cairo-scaled-font-subsets-private.h | 19 +++++--
+ src/cairo-truetype-subset.c | 97 +++++++++++++++++++++++----------
+ 4 files changed, 136 insertions(+), 66 deletions(-)
+
+commit 2ed08f7801a2af27e35afcf57f00f4bf5d48384a
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Dec 3 23:56:01 2008 +1030
+
+ Factor out duplicate code in truetype and cff subsetting
+
+ The code for reading the font name from the name table has been moved
+ to a new function: _cairo_truetype_read_font_name().
+
+ src/cairo-cff-subset.c | 60 ++-----------
+ src/cairo-scaled-font-subsets-private.h | 18 ++++
+ src/cairo-truetype-subset.c | 149 +++++++++++++++++++-------------
+ 3 files changed, 114 insertions(+), 113 deletions(-)
+
+commit 1deb1e451022b9dd5aa6ecb0b580b006047b630e
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Nov 25 23:11:01 2008 +1030
+
+ PDF: Include subset tag in font name
+
+ PDF requires font names of subsetted fonts to be preprended with
+ "XXXXXX+" where XXXXXX is a sequence of 6 uppercase letters unique the
+ font and the set of glyphs in the subset.
+
+ src/cairo-pdf-surface.c | 112 ++++++++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 104 insertions(+), 8 deletions(-)
+
+commit c4e54629bb444ed3e850ca8deec175936b90c4e4
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jan 22 12:26:55 2009 +1100
+
+ Add details to test/COPYING about license of bundled fonts.
+
+ Just the public-doamin 6x13.pcf file for now, but Adrian will
+ be bundling more soon.
+
+ test/COPYING | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 6801f28f6dfeb21eec44052e75156e9d2b82422e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 14 13:59:28 2009 +0000
+
+ [perf] Add a utility to compare backends.
+
+ A minor variation on cairo-perf-diff-files that compares tests with the
+ same name for multiple backends.
+
+ perf/.gitignore | 1 +
+ perf/Makefile.am | 8 +-
+ perf/cairo-perf-compare-backends.c | 393 +++++++++++++++++++++++++++++++++++++
+ perf/cairo-perf-diff-files.c | 2 +-
+ perf/cairo-perf-graph-files.c | 2 +-
+ perf/cairo-perf-report.c | 43 +++-
+ perf/cairo-perf.h | 9 +-
+ 7 files changed, 448 insertions(+), 10 deletions(-)
+
+commit 4c79cd480db1cf10b6018bce3ea966587efc6081
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Jan 13 12:52:52 2009 +0000
+
+ [perf] Tweak dragon to hit fill_rectangles().
+
+ Add a second dragon path that is pixel-aligned and uses a solid pattern,
+ so that it can be drawn using fill-rectangles.
+
+ perf/dragon.c | 42 +++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 41 insertions(+), 1 deletion(-)
+
+commit de9e6b5a3f4e4752e0f99e3ae20ac263a5aae4bb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 12 01:00:30 2009 +0000
+
+ [perf] Cover linear gradient with 3 stops.
+
+ The i915 is able to special case gradients with just 2 color stops to
+ avoid creating temporary gradient textures, so add a 3 stop linear
+ gradient to compare the speed difference.
+
+ perf/cairo-perf-cover.c | 36 ++++++++++++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+commit 7cbc55f21624159dfa58a9a50ec004af9368ab3d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 10 00:12:06 2009 +0000
+
+ [perf] Add scaled similar surface sources.
+
+ Cover the similar source with min/mag scale factors as well, so we can
+ compare the performance impact with scaled image sources. This is useful
+ to distinguish between transport overhead and transform cost.
+
+ perf/cairo-perf-cover.c | 44 ++++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 40 insertions(+), 4 deletions(-)
+
+commit afce1cfe987eeec6516aed1eb8fd97c2d3b9b07b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 9 14:22:36 2009 +0000
+
+ [scaled-font] Avoid repeated lookup of the same unicode during text->glyphs
+
+ Performing the unicode to index is quite expensive, the
+ FcFreeTypeCharIndex() taking over 12% in the cairo-perf text benchmarks.
+ By adding a simple cache of translated unicode indices, we save around 25%
+ of the lookups during benchmarks, with a relative reduction in runtime.
+
+ src/cairo-scaled-font.c | 63 ++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 41 insertions(+), 22 deletions(-)
+
+commit 49eca78a4265432e285af58435219e8b804b38bb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Jan 12 12:42:46 2009 +0000
+
+ [test] Add a huge-radial test case.
+
+ Also test the handling of radial gradients with large radii.
+
+ test/Makefile.am | 11 ++--
+ test/{huge-pattern.c => huge-linear.c} | 6 +-
+ ...pattern.ps3.ref.png => huge-linear.ps3.ref.png} | Bin
+ test/{huge-pattern.ref.png => huge-linear.ref.png} | Bin
+ test/huge-pattern.pdf.argb32.ref.png | Bin 2430 -> 0 bytes
+ test/huge-pattern.pdf.ref.png | Bin 2716 -> 0 bytes
+ test/huge-pattern.pdf.rgb24.ref.png | Bin 2817 -> 0 bytes
+ test/huge-radial.c | 69 +++++++++++++++++++++
+ test/huge-radial.ps3.ref.png | Bin 0 -> 18449 bytes
+ test/huge-radial.ref.png | Bin 0 -> 41702 bytes
+ 10 files changed, 79 insertions(+), 7 deletions(-)
+
+commit 7709d1d9d43a42dd8f9293f18141c57c76ca0970
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 7 21:12:21 2009 +0000
+
+ [test] Add fill-image.
+
+ A filled equivalent of stroke-image, that checks that the pattern
+ matrices are applied correctly during fills - useful with the
+ segregation between fills and strokes introduced by spans.
+
+ test/Makefile.am | 2 ++
+ test/fill-image.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++
+ test/fill-image.ref.png | Bin 0 -> 1317 bytes
+ 3 files changed, 85 insertions(+)
+
+commit 5605e4bfcd0b6e3e34eed3785bc8ae51b24a7385
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Jan 4 11:26:45 2009 +0000
+
+ [test] Propagate failure from painting large-source-roi
+
+ Use cairo_get_target() to propagate any failure when creating the
+ large-source.
+
+ test/large-source-roi.c | 28 ++++++++++++++++++++--------
+ 1 file changed, 20 insertions(+), 8 deletions(-)
+
+commit 59a14f622389ae3f34f93c78b709df2ad6d1d624
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Jan 10 13:09:06 2009 -0500
+
+ Comment win32 maintainer-clean files again
+
+ Makefile.am | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit cc5119173918623ce13363f4b25cd06076fc3fbc
+Author: Søren Sandmann Pedersen <sandmann@redhat.com>
+Date: Sat Jan 10 12:13:40 2009 -0500
+
+ Uncomment win32 maintainer-clean files to make Makefile.am syntactically correct
+
+ Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 06deaa98b67f9e674a6933a8f54dae6a45faf6ff
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jan 9 15:55:24 2009 -0500
+
+ [build] Include all generated win32 build files in the repo
+
+ So a git clone can be built on win32. The files only change after adding
+ new backends.
+
+ Makefile.am | 4 +-
+ boilerplate/.gitignore | 2 +-
+ boilerplate/Makefile.am | 2 +-
+ boilerplate/Makefile.win32.features | 233 +++++++++++++++++++++++++++
+ build/.gitignore | 4 +-
+ build/Makefile.win32.features | 22 +++
+ build/Makefile.win32.features-h | 70 ++++++++
+ src/.gitignore | 3 +-
+ src/Makefile.am | 2 +-
+ src/Makefile.win32.features | 311 ++++++++++++++++++++++++++++++++++++
+ 10 files changed, 644 insertions(+), 9 deletions(-)
+
+commit a5c1cdf2b030959309e1645bd115f058f1367296
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Nov 13 12:11:12 2008 +0200
+
+ [clip] Fix uninitialised status return in _cairo_clip_intersect_mask() for empty extents.
+
+ This fixes the clip-all test case crashing for me.
+
+ src/cairo-clip.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8157bc8a2dc0d555606d19ad52ae7a603471edd6
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sun Jan 4 04:14:28 2009 +0200
+
+ [test] Stress test using large source images.
+
+ This test attempts to trigger failures in those backend clone_similar
+ methods that have size restrictions on the resulting image. It also
+ triggers errors in scaling down large image surfaces as the image
+ backend also fails this test.
+
+ test/Makefile.am | 2 ++
+ test/large-source-roi.c | 64 ++++++++++++++++++++++++++++++++++++++++++
+ test/large-source-roi.ref.png | Bin 0 -> 102 bytes
+ 3 files changed, 66 insertions(+)
+
+commit 388ae177e4100698289819429fa1f8e6958d1c60
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 3 22:51:28 2009 +0000
+
+ [boilerplate] Remove CAIRO_BOILERPLATE_LOG()
+
+ The variadic macro is only used within boilerplate/ so replace it with a
+ simple, and portable, call to fprintf.
+
+ boilerplate/cairo-boilerplate-beos.cpp | 19 +++----------------
+ boilerplate/cairo-boilerplate-glitz-agl.c | 10 +++++-----
+ boilerplate/cairo-boilerplate-glitz-glx.c | 6 +++---
+ boilerplate/cairo-boilerplate-glitz-wgl.c | 10 +++++-----
+ boilerplate/cairo-boilerplate-system.c | 16 ++++++++--------
+ boilerplate/cairo-boilerplate-xcb.c | 4 ++--
+ boilerplate/cairo-boilerplate.h | 4 ----
+ test/cairo-test.h | 1 -
+ 8 files changed, 26 insertions(+), 44 deletions(-)
+
+commit 5f816ccd25d1cd303fc1e9e44e80c1207b2a424a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 3 22:30:55 2009 +0000
+
+ [boilerplate] Redefine DEBUG() for portability concerns
+
+ Behdad warned that using an empty variadic macro was non-portable.
+
+ boilerplate/cairo-boilerplate-xlib.c | 18 +++++++++---------
+ boilerplate/cairo-boilerplate.h | 2 +-
+ 2 files changed, 10 insertions(+), 10 deletions(-)
+
+commit acb2717372f3862ddbde8cfdc814132808b71f86
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 3 21:50:55 2009 +0000
+
+ [quartz] Define RTLD_DEFAULT
+
+ RTLD_DEFAULT is a gnu-ism (at least according to the manpage on my linux
+ system) so declare _GNU_SOURCE before including dlfcn.h and failing that
+ provide our own definition.
+
+ src/cairo-quartz-surface.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit ff1f5de5511ba0b7842b53223c26986e4bcdc38a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Jan 3 11:44:58 2009 +0000
+
+ [boilerplate] Suppress xlib warnings on stderr
+
+ If we cannot test the xlib backend simply because there is no Display,
+ just report UNTESTED and do not clutter the output with superfluous
+ warnings [see the output from the buildbots for an example]. However,
+ keep the warnings around so that a developer can re-enable them
+ and so simply move them to a new "lower priority" macro.
+
+ boilerplate/cairo-boilerplate-xlib.c | 18 +++++++++---------
+ boilerplate/cairo-boilerplate.h | 4 ++++
+ 2 files changed, 13 insertions(+), 9 deletions(-)
+
+commit 75538962c8af11b1ec669caca6259b7769b5cc1d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 17:45:26 2009 +0000
+
+ [boilerplate] Check the return of pclose()
+
+ pclose() returns the child exit status, so we can use that to detect
+ errors in the convertor process.
+
+ boilerplate/cairo-boilerplate.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 333158ec85cf3c610cc8965fc3f99d72b534cc2e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 15:36:39 2009 +0000
+
+ [configure] Replace awk comparator with an aclocal version
+
+ As reported in https://bugs.freedesktop.org/show_bug.cgi?id=19283, the
+ fallback freetype version compare is broken inside the configure script as
+ the $1-$3 arguments are interpreted as the script is constructed. To avoid
+ making that awk comparison any more complicated, we import a version compare
+ from the autoconf archives - such that we have a reusable macro for the
+ furture.
+
+ build/aclocal.compare.m4 | 162 +++++++++++++++++++++++++++++++++++++++++++++++
+ configure.ac | 18 ++----
+ 2 files changed, 168 insertions(+), 12 deletions(-)
+
+commit dc33ae24619f4602c23716e9e407f8dd4f1b4a1d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 14:29:53 2009 +0000
+
+ [boilerplate] Use pclose() after popen
+
+ Joonas pointed out that we should be using pclose() on a stream returned
+ by popen().
+
+ boilerplate/cairo-boilerplate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f230ce7658910c7f4f8feb722b77a2141824f963
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 14:03:35 2009 +0000
+
+ [path] Fix typo in bounds for empty path.
+
+ We set the width to be zero, twice, and the height not even once!
+
+ src/cairo-path-bounds.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 163c326c82a45c1f3ee84bbfaee2cc2e6dc1fafc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 13:46:16 2009 +0000
+
+ [test] Free test name
+
+ Adding the missing free for the converted test name.
+
+ test/cairo-test.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit dd65be740c475daf75c602fc79ff25977674d9cf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 13:42:53 2009 +0000
+
+ [test/pdf-mime-data] Free data on error paths.
+
+ Cleanup the allocated buffers on error.
+
+ test/pdf-mime-data.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 65f9760d661a0eb2edf9e53fb1b74666ce0ba3b9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 13:43:33 2009 +0000
+
+ [toy-font-face] Return defaults for error objects.
+
+ Similar to the behaviour of the other objects, we return the default
+ conditions if the object is in any error (and not just a nil object).
+
+ src/cairo-toy-font-face.c | 28 ++++++++++++++++++++++++----
+ 1 file changed, 24 insertions(+), 4 deletions(-)
+
+commit d478d5ed5ce7c19a02e11435bcf69e867c6705d9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jan 2 06:48:54 2009 -0500
+
+ [doc] Give a small hint about Twin font
+
+ Though, the details are not documented yet. I'm not sure how much of it
+ I do want to document.
+
+ src/cairo-toy-font-face.c | 2 +-
+ src/cairo.c | 7 +++++++
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+commit a023104400f7f08775e9e52c304f5df2bc96382d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Jan 2 10:32:39 2009 +0000
+
+ [trace] Adopt _cairo_dtostr
+
+ In order to have locale-independent output of decimal values, we need to
+ manually transform such numbers into strings. As this is a solved problem
+ for cairo, we adopt _cairo_output_stream_printf() and in particular the
+ _cairo_dtostr() routine for our own printf processing.
+
+ util/cairo-trace/trace.c | 920 ++++++++++++++++++++++++++++-------------------
+ 1 file changed, 546 insertions(+), 374 deletions(-)
+
+commit c601f308430f4d33929109fb9170b9322edca3c6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Jan 1 16:55:08 2009 +0000
+
+ [cairo] Early return if we attempt to set the same colour.
+
+ Profiling a silly video renderer that called set-source; rectangle; fill;
+ for each pixel, we can shave 5% off the cairo overhead by introducing an
+ early return if we attempt to reset the current colour.
+
+ src/cairo.c | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+
+commit fb3522f33a565576002595bf03e07f6c8b16a471
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 20 19:19:54 2008 +0000
+
+ [os2] Fix memory leak of surface on error path
+
+ Of we fail to create the mutex, free the surface before returning the
+ failure.
+
+ Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19208.
+
+ src/cairo-os2-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 8d23c3a6c2ab0ae168afb695e2b8c5f121ed2be3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 20 19:17:28 2008 +0000
+
+ [quartz] Delay allocation of string until after guard.
+
+ Fixes a memory leak should we bail due to the version of Quartz being
+ insufficient.
+
+ Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19209.
+
+ src/cairo-quartz-font.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 9c9ed8f0b5ce8bc3036dcb0bf841ffaa24797cfa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 19 13:04:31 2008 +0000
+
+ [scaled-font] Post-process hash value.
+
+ Mix the bits within the hash value to reduce clustering.
+
+ src/cairo-scaled-font.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+commit 555dd6b97ec432787d83242727164d25b459cf54
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 19 13:02:00 2008 +0000
+
+ [scaled-font] Switch to a constant loop for hashing.
+
+ As we only use the FNV hash for hashing matrices, expose the constant size
+ to the compiler so that it can perform its magic.
+
+ src/cairo-scaled-font.c | 18 ++++++++----------
+ 1 file changed, 8 insertions(+), 10 deletions(-)
+
+commit f5274f5847519208865159fa9bb254d76ba8ddac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 19 16:31:28 2008 +0000
+
+ Iterate over hash table using foreach() in destructors.
+
+ Don't use the remarkably inefficient _cairo_hash_table_random_entry() to
+ remove all entries from the hash table!
+
+ src/cairo-cff-subset.c | 21 +++++++++++----------
+ src/cairo-ft-font.c | 47 ++++++++++++++++++++++-------------------------
+ 2 files changed, 33 insertions(+), 35 deletions(-)
+
+commit 1c4ea84b24f3f7e480f9c50b5bd77ac703c36ef0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 20:32:44 2008 +0000
+
+ [cairo] Early return if we attempt to set the same scaled_font
+
+ If the application calls cairo_set_scaled_font() with the current
+ scaled font, we can return early as it is a no-op.
+
+ src/cairo.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit b661f3d27ba77cdf470a86f6320b1bb31d92a9f0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 18:34:16 2008 +0000
+
+ [cairo] Embed a second gstate.
+
+ Experiment with embedding a second gstate into the initial context to
+ reduce allocations.
+
+ src/cairo-private.h | 2 +-
+ src/cairo.c | 12 ++++++------
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 8abd21bd3afc143501f66fdcdc0c6c4139df490b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 23 15:09:15 2008 +0000
+
+ [script] Call the context creation hook
+
+ Hook in the creation hook so applications can record or even modify the
+ contexts used in replay.
+
+ util/cairo-script/cairo-script-operators.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+commit 2c9323d3942cbf93b100f711000f48a3eb869271
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 19 14:11:37 2008 +0000
+
+ [script] more targets
+
+ util/cairo-script/csi-replay.c | 101 +++++++++++++++++++++++++++++++++++------
+ 1 file changed, 88 insertions(+), 13 deletions(-)
+
+commit fd96cea4fefeeee8bcccde663faa559151e2606e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 19 12:54:53 2008 +0000
+
+ [script] Improve array construction.
+
+ Limit the memory allocation to the initial array size and perform a direct
+ copy from the operand stack to the array.
+
+ util/cairo-script/cairo-script-objects.c | 27 +++++++++++++-----
+ util/cairo-script/cairo-script-operators.c | 45 ++++++++++++------------------
+ util/cairo-script/cairo-script-private.h | 1 +
+ util/cairo-script/cairo-script-scanner.c | 2 +-
+ util/cairo-script/cairo-script-stack.c | 2 +-
+ 5 files changed, 41 insertions(+), 36 deletions(-)
+
+commit ecb8dce27c769158fe4a92432a90b24a96f8afa9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 18:32:44 2008 +0000
+
+ [script] Recreate surface content.
+
+ Use the content recorded in the trace, defaulting to COLOR_ALPHA, to
+ determine the replayed surface type.
+
+ util/cairo-script/cairo-script-interpreter.h | 1 +
+ util/cairo-script/cairo-script-operators.c | 8 ++-
+ util/cairo-script/csi-exec.c | 1 +
+ util/cairo-script/csi-replay.c | 80 ++++++++++++++++++++--------
+ util/cairo-trace/trace.c | 8 ++-
+ 5 files changed, 74 insertions(+), 24 deletions(-)
+
+commit d21529b9ef31228182d2f61bb4f7beb6319b10c4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 20 15:38:13 2008 +0000
+
+ [trace] Correct escaped characters in string literal.
+
+ Laziness caused the control character to be used instead of its
+ replacement in the escaped string!
+
+ util/cairo-trace/trace.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+commit ca39c4bf7f90646b70b2bbe9e7318fcfae99e35e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 20 15:35:40 2008 +0000
+
+ [trace] Correct a couple of typos.
+
+ A couple of minor typos in the escaped characters strings.
+
+ util/cairo-trace/trace.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 1f2fec7388092c8fea87651f9094ca2e0be2104b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 19 18:04:03 2008 +0000
+
+ [trace] Fix OBO in emit_glyphs()
+
+ The largest index that will fit within 8 bits is 255 not 256!
+
+ util/cairo-trace/trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 7ebe9e68371e4e77139d9abeb7feb390203b1c8e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 21:59:16 2008 +0000
+
+ [trace] Minor tidy.
+
+ Improve scoping of variables.
+
+ util/cairo-trace/trace.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 931556005a1946c5e730afc7977551a2bc5be42c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 21:57:19 2008 +0000
+
+ [trace] Remove the forced switching to C locale
+
+ This interferes with the application being traced. It is not clear from
+ printf(3) whether "%.f" is locale dependent or not - but until we have a
+ failure do not break applications unnecessarily!
+
+ util/cairo-trace/cairo-trace.in | 4 ----
+ 1 file changed, 4 deletions(-)
+
+commit d0f41b92bf9a9ee313dde6f451b26fffb65a0906
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 17:26:43 2008 +0000
+
+ [trace] Do not force the output filename.
+
+ Handle the case of tracing an application that spawns it own graphical
+ children but using the autonaming facility within cairo-trace. Currently
+ the traced process tree would all attempt to write to the same file,
+ creating a broken trace. This means sacrificing the display of the output
+ name, but allows use for a wider range of applications.
+
+ util/cairo-trace/cairo-trace.in | 25 ++++++-------------------
+ 1 file changed, 6 insertions(+), 19 deletions(-)
+
+commit 19e8c5c7f4a561f2454380c8f4098a832d716d28
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 20 19:27:33 2008 +0000
+
+ [test] Fix mismatched free.
+
+ A couple of strings allocated using glib functions but freed with system
+ malloc.
+
+ Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19210.
+
+ test/pdf2png.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 6662eede2af2da50bff1902e694204c69e84f036
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 20 19:14:23 2008 +0000
+
+ [perf] Fix errors reported by cppcheck
+
+ Trivial mistakes, identified in bugs
+ http://bugs.freedesktop.org/show_bug.cgi?id=19206 and
+ http://bugs.freedesktop.org/show_bug.cgi?id=19207.
+
+ perf/cairo-perf-graph-files.c | 2 +-
+ perf/cairo-perf-report.c | 7 ++++---
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+commit 8419c4f124c6ffa75b44901dccab33df8bb6287a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 20 15:34:41 2008 +0000
+
+ [perf] Correct another reference to '<cairo>'
+
+ I think that's the last use of the old internal name for twin!
+
+ perf/twin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 14d94d9354170003ec15847873a273c1752cf9f2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jan 2 02:56:38 2009 -0500
+
+ Fix various README typos
+
+ HACKING | 2 +-
+ src/README | 4 ++--
+ util/README | 6 ++++++
+ 3 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 28a72648ba7abe02ebd4df7234424e333b85dc9c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Dec 30 13:48:47 2008 -0500
+
+ [gstate] Change the glyph dropping safety margin from 2em to 10em
+
+ The small margin caused bugs with math fonts. See:
+ https://bugzilla.mozilla.org/show_bug.cgi?id=460023
+
+ src/cairo-gstate.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit fa63c43532de4a38d59d2746c34c815d18121062
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Dec 29 16:11:29 2008 +0000
+
+ [spline] Be pedantic and propagate errors.
+
+ We know that the current users will always return SUCCESS, but propagate
+ the status return for future users.
+
+ src/cairo-path-bounds.c | 6 ++----
+ src/cairo-spline.c | 15 +++++++++++----
+ src/cairo-types-private.h | 2 +-
+ src/cairoint.h | 2 +-
+ 4 files changed, 15 insertions(+), 10 deletions(-)
+
+commit 7df082dd8aaa9d31479a8bb1f6f1dfe07f52019a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Dec 29 16:06:36 2008 +0000
+
+ [test] Update twin reference images
+
+ Subsequent to recent tweaks, update the reference images for twin.
+
+ test/Makefile.am | 6 ++----
+ test/twin.c | 2 +-
+ test/twin.pdf.ref.png | Bin 1669 -> 0 bytes
+ test/twin.ps.ref.png | Bin 0 -> 1114 bytes
+ test/twin.ps2.ref.png | Bin 1095 -> 0 bytes
+ test/twin.ps3.ref.png | Bin 1095 -> 0 bytes
+ test/twin.ref.png | Bin 1712 -> 1492 bytes
+ test/twin.svg.ref.png | Bin 0 -> 1487 bytes
+ test/twin.svg11.argb32.ref.png | Bin 1797 -> 0 bytes
+ test/twin.svg11.ref.png | Bin 1662 -> 0 bytes
+ test/twin.svg11.rgb24.ref.png | Bin 1797 -> 0 bytes
+ test/twin.svg12.argb32.ref.png | Bin 1797 -> 0 bytes
+ test/twin.svg12.ref.png | Bin 1662 -> 0 bytes
+ test/twin.svg12.rgb24.ref.png | Bin 1797 -> 0 bytes
+ 14 files changed, 3 insertions(+), 5 deletions(-)
+
+commit e10af38799eb77f1a7b5f75e76c733353c7b8622
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Dec 29 12:54:13 2008 +0000
+
+ make "make check" happy again
+
+ Add the missing scoping that caused check-plt to complain.
+
+ src/cairo-font-face-twin.c | 6 ++++--
+ src/cairo-scaled-font.c | 2 ++
+ src/cairo.c | 4 ++++
+ src/cairoint.h | 8 +++++++-
+ 4 files changed, 17 insertions(+), 3 deletions(-)
+
+commit 010085622674bd02098742f401409da8e7c1b1dc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Dec 29 12:45:13 2008 +0000
+
+ [path] Remove tolerance from path bounders
+
+ With Behdad's analytical analysis of the spline bbox, tolerance is now
+ redundant for the path extents and the approximate bounds, so remove it
+ from the functions parameters.
+
+ src/cairo-analysis-surface.c | 3 +--
+ src/cairo-gstate.c | 3 +--
+ src/cairo-path-bounds.c | 18 ++++++------------
+ src/cairo-surface-fallback.c | 1 -
+ src/cairoint.h | 5 +----
+ 5 files changed, 9 insertions(+), 21 deletions(-)
+
+commit 84b81388bef4a2f300580081415fe09947edb96e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Dec 29 12:16:53 2008 +0000
+
+ [test] Draw spline bbox
+
+ Add the stroked extents to the spline-decomposition test.
+
+ test/Makefile.am | 6 +--
+ test/spline-decomposition.c | 63 ++++++++++++++++++++++++++++++++
+ test/spline-decomposition.pdf.ref.png | Bin 20404 -> 19156 bytes
+ test/spline-decomposition.ps.ref.png | Bin 0 -> 9090 bytes
+ test/spline-decomposition.ps2.ref.png | Bin 8957 -> 0 bytes
+ test/spline-decomposition.ps3.ref.png | Bin 8957 -> 0 bytes
+ test/spline-decomposition.ref.png | Bin 20402 -> 19107 bytes
+ test/spline-decomposition.svg.ref.png | Bin 0 -> 19156 bytes
+ test/spline-decomposition.svg11.ref.png | Bin 20404 -> 0 bytes
+ test/spline-decomposition.svg12.ref.png | Bin 20404 -> 0 bytes
+ 10 files changed, 65 insertions(+), 4 deletions(-)
+
+commit efb17160904eda8fdb21fa1fd10a09081cf5cb3e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Dec 28 16:06:27 2008 -0500
+
+ [_cairo_spline_bound] Protect against b == 0
+
+ src/cairo-spline.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit 0b59e29004bb19eb9bd458bbe6a48a7c367f72d0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Dec 28 02:49:39 2008 -0500
+
+ [_cairo_spline_bound] Simplify condition
+
+ src/cairo-spline.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+commit 3bf1b7d574620b1ab3c1fa50977a23d36ab04a40
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Dec 28 02:41:39 2008 -0500
+
+ [_cairo_spline_bound] Fix the check for feasible solutions
+
+ Also make it more strict. The only times we call sqrt now is
+ when a solution in (0,1) exists.
+
+ src/cairo-spline.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+commit 7f840d156c1212eeb0fddad4b4a6844a9c070bd5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Dec 28 02:02:30 2008 -0500
+
+ [spline] Save a couple more muls
+
+ src/cairo-spline.c | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+commit 3292f9906b3637564c37863dde5d214b0fee2885
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Dec 28 01:59:12 2008 -0500
+
+ [spline] Do some checks to avoid calling sqrt() if no feasible solution exists
+
+ src/cairo-spline.c | 27 ++++++++++++++++++++-------
+ 1 file changed, 20 insertions(+), 7 deletions(-)
+
+commit efe4d2ce99e65f9841951d3ff3e0536973bfb12c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Dec 28 01:22:40 2008 -0500
+
+ [spline] Simplify code
+
+ src/cairo-spline.c | 19 +++++++++----------
+ 1 file changed, 9 insertions(+), 10 deletions(-)
+
+commit 8672178bf6c7f3a38e11e224f1d484b1f0c7fd7b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Dec 28 01:20:37 2008 -0500
+
+ [spline] Remove duplicated code by using a macro
+
+ src/cairo-spline.c | 50 +++++++++++++++++++++-----------------------------
+ 1 file changed, 21 insertions(+), 29 deletions(-)
+
+commit ef0f6c3ca311c41c9062e1298b020eae1212984e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Dec 27 23:13:45 2008 -0500
+
+ [spline] Add an analytical bounder for splines
+
+ The way this works is very simple: Once for X, and once for Y, it
+ takes the derivative of the bezier equation, equals it to zero and
+ solves to find the extreme points, and if the extreme points are
+ interesting, adds them to the bounder.
+
+ Not the fastest algorithm out there, but my estimate is that if
+ _de_casteljau() ends up breaking a stroke in at least 10 pieces,
+ then the new bounder is faster. Would be good to see some real
+ perf data.
+
+ src/cairo-path-bounds.c | 18 ++-----
+ src/cairo-spline.c | 131 ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/cairoint.h | 6 +++
+ 3 files changed, 141 insertions(+), 14 deletions(-)
+
+commit f2f62c7c4402a28a65c8171238d163af6b2fb95a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 20:28:54 2008 -0500
+
+ [twin] Micro-optimize
+
+ src/cairo-font-face-twin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 50bc2bc0170be2a9c84ae3064525b18190e22b48
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 27 11:46:24 2008 +0000
+
+ [path] Simply track the current point for bounds.
+
+ The idea is to track always update the current point, but not add it
+ during a move-to.
+
+ src/cairo-path-bounds.c | 25 +++++++++++--------------
+ 1 file changed, 11 insertions(+), 14 deletions(-)
+
+commit 078ebb01ba0b99ab4973ba479fe438f0674aa102
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 27 11:29:15 2008 +0000
+
+ [path] Initialise spline from current point
+
+ Joonas spotted that the breakage with the curve bounds was the result of
+ initialising the spline using the original move to point and not the
+ current point.
+
+ Fixes: Bug 19256 Gnome Foot in gnome-games rendered incorrectly
+ (https://bugs.freedesktop.org/show_bug.cgi?id=19256)
+
+ src/cairo-path-bounds.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 4320ea68875cc015dfecdf5ed40195e276efca07
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 26 00:01:01 2008 +0000
+
+ [trace] Fix up positional arguments
+
+ James Cloos pointed out that the correct form to use is "$@" when
+ executing the command line.
+
+ util/cairo-trace/cairo-trace.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit e76a676c8f3d6dc9199cf0bc0856af0c659f4a16
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 25 09:51:51 2008 +0000
+
+ [twin] Trivial spelling correction.
+
+ This ain't no decadent descendent of the Hershey font...
+
+ src/cairo-font-face-twin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9332c0a8eaf266e99555df9ad7769f8b5804cbfd
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 16:38:04 2008 -0500
+
+ [util] Add waterfall
+
+ util/Makefile.am | 3 +-
+ util/waterfall | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 99 insertions(+), 1 deletion(-)
+
+commit ab1febbf22a641feb2fda4b21156b2bd45df039b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 16:35:33 2008 -0500
+
+ [twin] Resnap margin under monospace
+
+ src/cairo-font-face-twin.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+commit 3c91d9f5a2a290653a56242eed6acae4f16e99e3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 16:30:01 2008 -0500
+
+ [twin] Adjust margins
+
+ src/cairo-font-face-twin.c | 114 ++++++++++++++++++++++++++++-----------------
+ 1 file changed, 70 insertions(+), 44 deletions(-)
+
+commit 0b5c60bae1fb0924bbd43daab38932052e10b3be
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 15:48:46 2008 -0500
+
+ [twin] Clean up hinting
+
+ src/cairo-font-face-twin.c | 89 ++++++++++++++++++++++------------------------
+ 1 file changed, 42 insertions(+), 47 deletions(-)
+
+commit 6e7a2c4ce32ddfb0e58a74fcba8c4e46e46d32a4
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 15:34:50 2008 -0500
+
+ [twin] Fix monospace for narrow glyphs
+
+ src/cairo-font-face-twin.c | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+commit e8e6ae1294f11addcbc8a95db471bb48a50b0b1a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 15:15:15 2008 -0500
+
+ [twin] Cache pen and other properties on the scaled font
+
+ src/cairo-font-face-twin.c | 170 +++++++++++++++++++++++++++------------------
+ 1 file changed, 101 insertions(+), 69 deletions(-)
+
+commit e133cc14469e8ebb8311bf8db206147f6b07786d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 14:56:32 2008 -0500
+
+ [twin] Don't stretch pen
+
+ src/cairo-font-face-twin.c | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+commit dec4d791f4cc626d1fa52d68518f787210240812
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 14:24:08 2008 -0500
+
+ [twin] Minor shuffling
+
+ src/cairo-font-face-twin.c | 142 ++++++++++++++++++++++++++-------------------
+ 1 file changed, 81 insertions(+), 61 deletions(-)
+
+commit c3de08ee2fcfb0e092f0299e249b0f5fe56b87bf
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 14:11:52 2008 -0500
+
+ [twin] Further reduce weight
+
+ src/cairo-font-face-twin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5c201ef5cfdfdd4e19db7e0995b85fbb3f2e6090
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 26 00:05:19 2008 -0500
+
+ [scaled-font] Make cairo_debug_reset_static_data() work again
+
+ I broke it in a5983929f8f07f384f78e0b604e22037cf5ed716
+
+ src/cairo-debug.c | 2 ++
+ src/cairo-scaled-font.c | 4 +---
+ src/cairoint.h | 3 +++
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+
+commit 730ed68ec1ac10dcb9c7c69759f72fcaa3ea82e5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 25 23:29:02 2008 -0500
+
+ [pattern] Fix comment typo
+
+ src/cairo-pattern.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a5f4a97aa4122d8c4b8f31053d421a52c356e270
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 25 02:48:26 2008 -0500
+
+ [twin] Don't hint pen if hint-style is SLIGHT
+
+ src/cairo-font-face-twin.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 0c7eaf6e0a2c2f0db634f8120fcbc03f7e8fd751
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 25 02:44:19 2008 -0500
+
+ [twin] Improve glyph hints
+
+ src/cairo-font-face-twin-data.c | 202 +++++++++++++++++++++++-----------------
+ 1 file changed, 116 insertions(+), 86 deletions(-)
+
+commit e6205ea5a38c9de4c08b313a1beb70d4a38b0676
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 25 02:10:16 2008 -0500
+
+ [twin] Improve hinting
+
+ src/cairo-font-face-twin.c | 90 +++++++++++++++++++---------------------------
+ 1 file changed, 36 insertions(+), 54 deletions(-)
+
+commit da8658b67510daaefd542b80e6a997bbdfd82d44
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 25 01:35:36 2008 -0500
+
+ [twin] Hint dots
+
+ src/cairo-font-face-twin-data.c | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+commit f4c81e18f85c6a68d682301abfd75e7c208c1e1a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 25 01:29:41 2008 -0500
+
+ [twin] Disable pen hinting if hinting is off
+
+ src/cairo-font-face-twin.c | 27 +++++++++++++++++++--------
+ 1 file changed, 19 insertions(+), 8 deletions(-)
+
+commit af91fc1974ce2dfbaab187e22769cdfb9e6279d9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 25 01:24:46 2008 -0500
+
+ [twin] Optimize hinting
+
+ src/cairo-font-face-twin.c | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+commit 439959d1af1f6c4ce174a3fee524eacfc18a00bd
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 25 01:06:47 2008 -0500
+
+ [twin] Implement hinting
+
+ src/cairo-font-face-twin.c | 148 +++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 129 insertions(+), 19 deletions(-)
+
+commit 9f9f5317dca6a9988a0a62aaa60393570157af63
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 22:29:59 2008 -0500
+
+ [util] Fix pangram
+
+ util/cairo-view | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8296bc74c8687a2f52e06174e9dc70d32d1181c8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 18:00:04 2008 -0500
+
+ [twin] Reduce the weight just a bit, such that bold doesn't look as bad
+
+ src/cairo-font-face-twin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b2f89625453e2a15da175ea5b4ca5af6c2201d96
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 17:29:21 2008 -0500
+
+ [twin] Adjust baseline
+
+ src/cairo-font-face-twin.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+commit f980d017d2360634f391eb1129317446bfe42cc9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 17:00:43 2008 -0500
+
+ [twin] Remove serif setting
+
+ I don't think I'm going to implement serif-drawing soon, so, remove the
+ infrastructure. Can always be added back later.
+
+ src/cairo-font-face-twin.c | 21 ++-------------------
+ 1 file changed, 2 insertions(+), 19 deletions(-)
+
+commit 1116febb40cb5e5f7eafe97999d1143347819b3f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 16:32:25 2008 -0500
+
+ [twin] Implement small-caps
+
+ src/cairo-font-face-twin.c | 27 ++++++++++++++++-----------
+ 1 file changed, 16 insertions(+), 11 deletions(-)
+
+commit 6767673961401c7ab7b92eb8dfbb345efb560741
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 16:13:12 2008 -0500
+
+ [twin] Implement stretch
+
+ src/cairo-font-face-twin.c | 27 +++++++++++++++++++++------
+ 1 file changed, 21 insertions(+), 6 deletions(-)
+
+commit 0656e947f11356877014df93bd083123c7313dc3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 15:43:17 2008 -0500
+
+ [twin] Implement slant
+
+ src/cairo-font-face-twin.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 9d493fcd16fb770f21fa732b08834f3a435fe1f2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 15:36:57 2008 -0500
+
+ [twin] Disable the serif mode
+
+ src/cairo-font-face-twin.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 6c1d21bf8947f5b11702626ddfd9bac18073188d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 03:47:21 2008 -0500
+
+ [twin] Implement monospace
+
+ src/cairo-font-face-twin.c | 30 +++++++++++++++++++++++-------
+ 1 file changed, 23 insertions(+), 7 deletions(-)
+
+commit 5def8c587b2b897bfebc6d77a6a3e13355cae2f2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 24 03:45:06 2008 -0500
+
+ [twin] Fix dots
+
+ src/cairo-font-face-twin-data.c | 54 +++++++++++++++++++++++++----------------
+ 1 file changed, 33 insertions(+), 21 deletions(-)
+
+commit a303bbaea332df20b81f068366d701d66913c043
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Dec 23 16:12:56 2008 -0500
+
+ [font-face-get-type] Fix test to cleanup the surface and context properly
+
+ Destroy the context and the surface even when the test fails.
+
+ I ran into this because cairo_debug_reset_static_data() is called between the
+ tests on the quartz backend (it doesn't fork) and isn't on other backends? This
+ is perhaps a mistake...
+
+ test/font-face-get-type.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit 52cc31a7fa6570e538762631359a92e7b717710e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Dec 23 13:48:52 2008 -0500
+
+ [util] Add cairo-view
+
+ util/Makefile.am | 3 +-
+ util/cairo-view | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 115 insertions(+), 1 deletion(-)
+
+commit 418c7ef133840c10eb0be7e75c7dd11533fbe897
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Dec 23 02:39:17 2008 -0500
+
+ [twin] Adjust font extents
+
+ src/cairo-font-face-twin.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 96e41c28e980f313c51a0eed81681e7e48752797
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Dec 20 23:30:59 2008 -0500
+
+ [twin] Minor cleanup
+
+ src/cairo-font-face-twin.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+commit 556f6ce364d81f9309162d21deb86a3d5b8b9a6e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Dec 20 23:16:53 2008 -0500
+
+ [twin] close_path the Q
+
+ src/cairo-font-face-twin-data.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6929ed800d19f359af7436636e8adc6203083a10
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Dec 20 20:25:01 2008 -0500
+
+ [twin] Fix serif option parsing. Also make serif and weight do something
+
+ src/cairo-font-face-twin.c | 20 ++++++++++++++++----
+ 1 file changed, 16 insertions(+), 4 deletions(-)
+
+commit d423339fcef3c41225196c4371fb2c133ca61144
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Dec 20 19:39:58 2008 -0500
+
+ [twin] Add face properties
+
+ Just parse them now. We don't use them yet.
+
+ src/cairo-font-face-twin.c | 191 +++++++++++++++++++++++++++++++++++++++++++--
+ src/cairo-user-font.c | 4 +-
+ src/cairoint.h | 6 +-
+ 3 files changed, 189 insertions(+), 12 deletions(-)
+
+commit 93672d842f2b2c840bb9e73901faa4ce5df9c792
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 23 15:00:47 2008 +0000
+
+ [test] Fix reference handling in user-font-rescale
+
+ user-font-rescale stored the current font on the context in order to
+ create a rescaling proxy font. As we failed to take a reference to the
+ font, it caught us by surprise when the font disappeared as we modified
+ the context before creating our proxy. Ho hum.
+
+ test/user-font-rescale.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 5ad65dc4be5964265946de59a951f2304d64159e
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Dec 23 14:56:48 2008 +1030
+
+ Document PDF restrict_to_version API
+
+ doc/public/cairo-sections.txt | 4 ++++
+ doc/public/tmpl/cairo-pdf.sgml | 35 +++++++++++++++++++++++++++++++++++
+ src/cairo-pdf.h | 2 ++
+ 3 files changed, 41 insertions(+)
+
+commit 1869e0240bcc93c93e8abd1c8f930cf08ca8ee24
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Dec 23 14:37:30 2008 +1030
+
+ Document cairo_surface_(set|get)_mime_data() and mime types
+
+ doc/public/cairo-sections.txt | 5 ++++
+ doc/public/tmpl/cairo-surface.sgml | 50 ++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 53 insertions(+), 2 deletions(-)
+
+commit 1f894033f077731485e1228f7e071e75c37a9947
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Tue Dec 23 03:14:38 2008 +0200
+
+ [spans] Close open subpaths when filling with a scan converter.
+
+ As reported by Christian Persch, open subpaths weren't being
+ closed when rendering to an image surface:
+
+ http://bugs.freedesktop.org/show_bug.cgi?id=19240
+
+ src/cairo-spans.c | 53 +++++++++++++++++++++++++++++++----------------------
+ 1 file changed, 31 insertions(+), 22 deletions(-)
+
+commit 0aa34c6435eaa260292cf10d270ebbf3314c7924
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Tue Dec 23 02:18:14 2008 +0200
+
+ [svg] Fix build when building only the svg vector surface.
+
+ The SVG vector surface pulls in font subsetting and that in turns
+ uses the PDF operators in cairo-type3-glyph-surface.c.
+
+ src/cairoint.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 38ec6e302cdd703447f169d95121d434c7495501
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Tue Dec 23 02:05:32 2008 +0200
+
+ [test] Fix any2ppm build when building without the full complement of surfaces.
+
+ It was complaining about g_init_type () being used without the proper includes
+ which would have been pulled in by the svg or poppler includes.
+
+ test/any2ppm.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 6ce97907edfa8a7b09abfc090a9c03d235de2ada
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Dec 22 11:09:27 2008 +1030
+
+ win32-font: truncate instead of fail if toy font name too long
+
+ http://lists.cairographics.org/archives/cairo/2008-December/016109.html
+
+ src/cairo-win32-font.c | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+commit d99583bae680fea852e957afdf674e2031aa7928
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Dec 21 17:03:17 2008 +1030
+
+ Fix win32 font breakage
+
+ as a result of the toy font face changes in f7ab65e9b0c0f08be8d294e90131baa2decf1f1d
+
+ src/cairo-win32-font.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit a5983929f8f07f384f78e0b604e22037cf5ed716
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Dec 20 01:18:12 2008 -0500
+
+ [toy-font-face] Move toy font face code in a file of its own
+
+ src/Makefile.sources | 1 +
+ src/cairo-debug.c | 2 +-
+ src/cairo-font-face.c | 449 -------------------------------------
+ src/cairo-mutex-list-private.h | 2 +-
+ src/cairo-os2-surface.c | 9 +-
+ src/cairo-scaled-font.c | 4 +-
+ src/cairo-toy-font-face.c | 489 +++++++++++++++++++++++++++++++++++++++++
+ src/cairoint.h | 5 +-
+ 8 files changed, 497 insertions(+), 464 deletions(-)
+
+commit 8bf49b27aeea8179b5862a424fb3ef1934be6e0e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Dec 19 20:46:36 2008 -0500
+
+ [font-face] Use cairo_font_face_t instead of toy, for nil objects
+
+ And with a NULL backend. We are not supposed to read the nil objects
+ afterall.
+
+ If this causes crashes, the crash site should be fixed.
+
+ src/cairo-font-face.c | 55 ++++++++++-----------------------------------------
+ src/cairoint.h | 2 +-
+ 2 files changed, 11 insertions(+), 46 deletions(-)
+
+commit e3675f8ac0acb285b2d669c0a44322623dac5fe9
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Fri Dec 19 08:50:26 2008 -0500
+
+ Fix definition of _cairo_quartz_font_face_backend
+
+ Removes the NULL so that _cairo_quartz_font_face_scaled_font_create
+ is in the correct location.
+
+ src/cairo-quartz-font.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit fa7d96e1236cdfa0016f96e5c7b6bd209c405cba
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Fri Dec 19 08:47:07 2008 -0500
+
+ Fix compilation of quartz surface.
+
+ Declares _cairo_quartz_scaled_font_backend ahead of time and makes it static.
+ Also, removes the 'static' from the _cairo_quartz_font_backend definition.
+
+ src/cairo-quartz-font.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit f8886ad1b30ec9c29ec5ac3e9cd5519dbc9e7b65
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 18 20:50:20 2008 -0500
+
+ [scaled-font-zero-matrix] Destrory scaled font and font options
+
+ Oops.
+
+ test/scaled-font-zero-matrix.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 4567692326daf592ab432670c6d33b49f940dd35
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 18 18:03:40 2008 -0500
+
+ Add test creating a scaled font with a zero ctm matrix
+
+ test/Makefile.am | 1 +
+ test/scaled-font-zero-matrix.c | 59 ++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 60 insertions(+)
+
+commit 18054ef00c69f62804e08734fd2c3286373b451f
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 18 18:01:52 2008 -0500
+
+ [test] Quartz doesn't like being forked
+
+ When the cairo-test-suite forks CoreFoundation complains with:
+ "The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
+ When forked so avoid doing it in the test suite for now. In the future we should investigate
+ the possibility of a work around.
+
+ test/cairo-test-runner.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+commit b4e0d489bb0317fdd935ad2d29830e48b5ce4f6c
+Merge: 813cbf13d f60da9a37
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 18 17:25:17 2008 -0500
+
+ Merge branch '1.8'
+
+ Conflicts:
+ NEWS
+ build/Makefile.am.changelog
+ cairo-version.h
+ src/cairo-gstate.c
+
+commit f60da9a379890a3a4cd74cdad48e73c22cb74160
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 18 17:07:25 2008 -0500
+
+ Fix _compute_transform to check for nearly degenerate matrices
+
+ If a matrix was something like [0 .000001 0, .000001 0 0] the old code would
+ assume that xx and yy were greater than 0 and turn the nearly degenerate matrix
+ into an actual degenerate one. This caused things to blow up later on. Now we
+ check that our nearly rectangular matrices are not nearly degenerate, and let
+ the nearly degenerate ones fall through to the non-rectangular path.
+
+ Note: I'm not sure why NEARLY_ZERO(d) is fabs(d) < 1/65536 instead of some
+ other value. Hopefully, it's a useful definition.
+
+ This problem was found by a test case attached to:
+ https://bugzilla.mozilla.org/show_bug.cgi?id=467423
+
+ src/cairo-win32-font.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 813cbf13ddbd3d4b708b3b362dd6c108966f44d5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 14:52:03 2008 +0000
+
+ [path] Separate the approx. bounds into 3 distinct functions
+
+ Based on feedback from Jeff Muizelaar, there is a case for a very quick
+ and dirty extents approximation based solely on the curve control points
+ (for example when computing the clip intersect rectangle of a path) and
+ by moving the stroke extension into a core function we can clean up the
+ interface for all users, and centralise the logic of approximating the
+ stroke extents.
+
+ src/cairo-analysis-surface.c | 32 ++++++--------
+ src/cairo-clip.c | 14 +++---
+ src/cairo-path-bounds.c | 101 ++++++++++++++++++++++++++++++++++++++++---
+ src/cairo-rectangle.c | 10 -----
+ src/cairo-surface-fallback.c | 10 ++---
+ src/cairoint.h | 19 +++++---
+ 6 files changed, 134 insertions(+), 52 deletions(-)
+
+commit dea40e61babe608315b6d365094cf518814b134e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 11:50:00 2008 +0000
+
+ [path] Return the fixed-point bounds of the path
+
+ When analysing the stroke extents, we need the original fixed-point
+ extents so that we do not incur an OBO when we round-to-integer a second
+ time. We also need a more accurate estimate than simply using the control
+ points of the curve, so pass in tolerance and decompose until someone
+ discovers a cheaper algorithm to determine the precise aligned bounding
+ box of a bezier curve.
+
+ src/cairo-analysis-surface.c | 30 +++++++-------
+ src/cairo-clip.c | 25 +++++++-----
+ src/cairo-path-bounds.c | 95 ++++++++++++++++++++++----------------------
+ src/cairo-rectangle.c | 10 +++++
+ src/cairo-surface-fallback.c | 9 +++--
+ src/cairoint.h | 9 ++++-
+ 6 files changed, 98 insertions(+), 80 deletions(-)
+
+commit 3a53e0261b1b5af21bf37e2a211eefd501bd5358
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 11:10:17 2008 +0000
+
+ [test] Update twin reference images.
+
+ Closing the 'o' in twin has removed a slight artefact - update the reference
+ images to match.
+
+ test/twin.pdf.ref.png | Bin 1673 -> 1669 bytes
+ test/twin.ref.png | Bin 1718 -> 1712 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+commit c2478de26cc1781b8f8604191a9f75ad29eac746
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 10:50:45 2008 +0000
+
+ [twin] Switch internal users to the new name.
+
+ s/<cairo>/@cairo:/
+
+ doc/tutorial/src/twin.c | 2 +-
+ test/twin.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 3424b5f8c8cb1f2ef16b9e8429e64f720106f4d8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 10:47:44 2008 +0000
+
+ [scaled-font] Make check-doc happy
+
+ Replace a structure marker '#' with a macro marker '%'.
+
+ src/cairo-scaled-font.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 449bf0bb7bff38da1c5d0286cb4f22c858bcc3a9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 10:45:22 2008 +0000
+
+ [script] Silence incorrect compiler warnings
+
+ Bah, the compiler failed to do its IPA correctly and wrongly complained
+ about potential use of uninitialised out-params guarded by the return
+ value. Silence them!
+
+ util/cairo-script/cairo-script-operators.c | 38 +++++++++++++++---------------
+ 1 file changed, 19 insertions(+), 19 deletions(-)
+
+commit ce0b136a441382b25d0932cd66a906a30a693365
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 17 20:34:45 2008 +0000
+
+ Query the backend to see if we can repaint the solid pattern.
+
+ If we are dithering on the Xlib backend we can not simply repaint the
+ surface used for a solid pattern and must recreate it from scratch.
+ However, for ordinary XRender usage we do not want to have to pay that
+ price - so query the backend to see if we can reuse the surface.
+
+ src/cairo-analysis-surface.c | 2 ++
+ src/cairo-meta-surface.c | 1 +
+ src/cairo-paginated-surface.c | 1 +
+ src/cairo-pdf-surface.c | 1 +
+ src/cairo-script-surface.c | 1 +
+ src/cairo-surface.c | 41 ++++++++++++++++++++++++-----------------
+ src/cairo-xlib-surface.c | 12 +++++++++++-
+ src/cairoint.h | 5 +++++
+ src/test-meta-surface.c | 1 +
+ src/test-paginated-surface.c | 1 +
+ 10 files changed, 48 insertions(+), 18 deletions(-)
+
+commit 0df43251d4b4641d16c0a2e2c49d18dd2a9c832e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 17 23:45:39 2008 +0000
+
+ [replay] Take advantage of unresolved fonts
+
+ As Behdad has changed the underlying ft-font to accept unresolved patterns,
+ take advantage of that to simplify the replay code.
+
+ util/cairo-script/cairo-script-operators.c | 16 ++--------------
+ 1 file changed, 2 insertions(+), 14 deletions(-)
+
+commit 97a00bdd4eefade8d0808b5572bcdbba26c9c8f3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 17 17:32:07 2008 +0000
+
+ [cairoint.h] Wrap macro in parenthesis
+
+ Ensure that the stride calculation macro is not influenced by surrounding
+ precedence issues by enclosing it in a pair of parenthesis.
+
+ src/cairoint.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit aa65e756d496f4c3a8b43d2100e17dc39c2c26b7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 5 11:21:11 2008 +0000
+
+ [script] Avoid creating 0x0 windows
+
+ XCreateWindow dies if asked to create a 0x0 window, so don't and use a 1x1
+ pixel window for a zero-sized surface.
+
+ util/cairo-script/csi-replay.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 6458903c95c2bba3f1b9ceaaafb6979d180ab039
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 17 10:07:32 2008 +0000
+
+ [image] Eliminate the short-lived context used for coercing.
+
+ When coercing from one image format to another we performed a paint
+ operation using a temporary context - this is overkill as we can just call
+ _cairo_surface_paint() directly.
+
+ src/cairo-image-surface.c | 42 +++++++++++++++++++++++------------------
+ src/cairo-scaled-font.c | 40 ++++++++++++++++++++-------------------
+ src/cairo-svg-surface.c | 18 ++++++++----------
+ src/cairo-type3-glyph-surface.c | 20 ++++----------------
+ src/cairoint.h | 4 ++--
+ 5 files changed, 59 insertions(+), 65 deletions(-)
+
+commit 9b46d13b6cd58c711010df89a41b216c5cc8c881
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 17 23:52:32 2008 +0000
+
+ [trace] Runtime version check.
+
+ Check that the application is using cairo >= 1.9 before attempting to
+ query the mime-data.
+
+ util/cairo-trace/trace.c | 47 +++++++++++++++++++++++++----------------------
+ 1 file changed, 25 insertions(+), 22 deletions(-)
+
+commit 2d790daa957471670f4ae0d3b22da89e4ee7111f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 18 00:47:08 2008 +0000
+
+ [pattern] Use a solid pattern for a uniform gradient.
+
+ If each color stop in a gradient is identical, replace the gradient
+ surface with a simple solid surface. As seen in the wild.
+
+ src/cairo-pattern.c | 54 ++++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 39 insertions(+), 15 deletions(-)
+
+commit 25a4677200ea6689be0dca9d533842dc7da54837
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 17 09:29:35 2008 +0000
+
+ [analysis] Use approximate extents.
+
+ Use the approximate path based extents to avoid tessellation.
+
+ src/cairo-analysis-surface.c | 54 ++++++++++++++------------------------------
+ 1 file changed, 17 insertions(+), 37 deletions(-)
+
+commit 18bca91411e9ba6e1e58dbc945a0567d2661568f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Dec 18 02:12:14 2008 -0500
+
+ [twin] close_path the 'o'
+
+ src/cairo-font-face-twin-data.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5ee6aad471d460f960a5e7a5a8e35aca0f0af60e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 17 18:05:51 2008 -0500
+
+ [toy] Use twin font if font backend returns UNSUPPORTED
+
+ src/cairo-font-face.c | 19 ++++++++-----------
+ 1 file changed, 8 insertions(+), 11 deletions(-)
+
+commit eb069094ea4471b3e63881fe0f8b958ad8924c7d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 17 17:30:34 2008 -0500
+
+ Treat any toy family starting with "@cairo:" as request for twin
+
+ src/cairo-font-face.c | 3 ++-
+ src/cairoint.h | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 32c66109059398e88f50335bef75fa8c0e51c4c8
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Dec 17 17:43:37 2008 -0500
+
+ Call _cairo_error when propagating error status from the font_face.
+
+ src/cairo-gstate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1d72e53c3e99f93aa59967c76f1b1b4c035b9130
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Dec 17 17:42:18 2008 -0500
+
+ Add a missing _cairo_error() to a bunch of status returns.
+
+ src/cairo-misc.c | 4 ++--
+ src/cairo-scaled-font.c | 14 +++++++-------
+ src/cairo.c | 2 +-
+ 3 files changed, 10 insertions(+), 10 deletions(-)
+
+commit af3a892c3ef6a7c1d28d523944bbb67e59edc1de
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 17 16:45:28 2008 -0500
+
+ [ft] Remove stale comment
+
+ src/cairo-ft-font.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+commit 0137b9bd320783264d865a397392b0ee14fd69b3
+Author: Karl Tomlinson <karlt+@karlt.net>
+Date: Wed Dec 17 16:40:12 2008 -0500
+
+ [ft] Don't call FT_Done_Face() on faces we did not create
+
+ src/cairo-ft-font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e4d7c87b5e449a743a68dd256faaa3242f191a44
+Author: Karl Tomlinson <karlt+@karlt.net>
+Date: Wed Dec 17 16:40:12 2008 -0500
+
+ [ft] Don't call FT_Done_Face() on faces we did not create
+
+ src/cairo-ft-font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6778a5f67ae2e35e809cf4464530e2bb05870378
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 17 16:19:45 2008 -0500
+
+ [.gitignore] Update
+
+ build/.gitignore | 2 ++
+ src/.gitignore | 1 +
+ 2 files changed, 3 insertions(+)
+
+commit 26f471999973c538e45db0ae9f0227fbe5dedf24
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 17 16:08:32 2008 -0500
+
+ [scaled-font] Improve docs
+
+ src/cairo-scaled-font.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+commit f7ab65e9b0c0f08be8d294e90131baa2decf1f1d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Dec 17 06:25:50 2008 -0500
+
+ Clean up toy font face handling
+
+ This commit moves the toy-to-real mapping from the scaled font creation
+ time to font face creation. A toy font face will keep an internal ref
+ to an implementation face. Then cairo_scaled_font_create() will simply
+ substitute the implementation face before creating anything.
+
+ This also modifies the cairo-ft toy creation in that we now create a
+ non-resolved pattern and store it in a cairo-ft font-face. We then
+ do the resolving and unscaled font creation at scaled-font creation
+ time. This also means that cairo_ft_font_face_create_for_pattern()
+ now accepts non-resolved patterns too, and does the right thing about
+ them. As much as that can be called right.
+
+ Some testing of toy font creation performance is in order, as is testing
+ win32 and quartz font backends.
+
+ src/cairo-font-face.c | 143 +++++++++----------
+ src/cairo-ft-font.c | 371 +++++++++++++++++++++++++++++-------------------
+ src/cairo-quartz-font.c | 208 ++++++++++-----------------
+ src/cairo-scaled-font.c | 19 ++-
+ src/cairo-user-font.c | 62 +-------
+ src/cairo-win32-font.c | 20 +--
+ src/cairoint.h | 40 +++---
+ 7 files changed, 412 insertions(+), 451 deletions(-)
+
+commit 43edb4dd7b8d0614a6c2be15dfa72f980dd55f1d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 12 18:10:58 2008 +0000
+
+ Fix compilation with gcov
+
+ We need to add --coverage to LDFLAGS, so create CAIRO_LDFLAGS and use that
+ to populate AM_LDFLAGS.
+
+ boilerplate/Makefile.am | 1 +
+ build/configure.ac.analysis | 6 +++++-
+ build/configure.ac.features | 1 +
+ src/Makefile.am | 3 ++-
+ test/Makefile.am | 17 +++++++++--------
+ 5 files changed, 18 insertions(+), 10 deletions(-)
+
+commit bcea3151d66495f03d67ce71274203d0515caf4c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 12 14:08:11 2008 +0000
+
+ [test] Add missing joins.ref.png
+
+ Missed this file when adding the reference images for joins.
+
+ test/joins.ref.png | Bin 0 -> 5879 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit 8cec548854d86dac8f0c99e99461421c8ad653b1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 14:06:07 2008 +0000
+
+ [NEWS] Add notes for 1.8.6
+
+ Add the historical blurb for 1.8.6.
+
+ NEWS | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 49 insertions(+)
+
+commit 0a1d194ad85398c8711268fd9ba679f8609206a1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 14:53:27 2008 +0000
+
+ [perf] Fix for git-1.6
+
+ git-1.6 moved all the subcommands out of the PATH so update our usage.
+
+ perf/cairo-perf-graph | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1c2eba92c16207a48f9c8f52065fbf9a65d16fcd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 13:05:01 2008 +0000
+
+ [RELEASING] Update Makefile for git-1.6
+
+ Git moved all the subcommands out of the PATH, so we need to update our
+ usage.
+
+ build/Makefile.am.changelog | 4 ++--
+ build/Makefile.am.releasing | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 2fa6b6353740b7941e90e50bf6b0eb5f06aa11b5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 11:40:12 2008 +0000
+
+ [RELEASING] Correct a few minor typos.
+
+ As I was reading through the instructions, take the opportunity to fix a
+ few spelling mistakes.
+
+ RELEASING | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit 1950abd14c28d58913c085d3829eb99a078cf2d1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 11:26:56 2008 +0000
+
+ [doc] Fix erroneous doc comment.
+
+ A normal comment was marked as a gtk-doc entry and thus causing gtk-doc to
+ complain.
+
+ src/cairo-path-fixed.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9485cd947f982ecd1e4f8d948786af3265d6eb74
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 16:35:14 2008 +0000
+
+ Increment version to 1.8.7 after the 1.8.6 release.
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e2a2eddcfb8fc73f3decdb91c00e8e6d5282e09c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 14:07:11 2008 +0000
+
+ Increment version to 1.8.6
+
+ In preparation for the next stable release.
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ef7c42a7d390064b2a5b08e14d5f65b8ea4628e3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 14:06:07 2008 +0000
+
+ [NEWS] Add notes for 1.8.6
+
+ Add the historical blurb for 1.8.6.
+
+ NEWS | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 50 insertions(+)
+
+commit ce91e6ac360e1dbe57a4e729b68d84499603e9ae
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 14:53:27 2008 +0000
+
+ [perf] Fix for git-1.6
+
+ git-1.6 moved all the subcommands out of the PATH so update our usage.
+
+ perf/cairo-perf-graph | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f8372509aff662e9cbabeb99560b01019395c15e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 13:05:01 2008 +0000
+
+ [RELEASING] Update Makefile for git-1.6
+
+ Git moved all the subcommands out of the PATH, so we need to update our
+ usage.
+
+ build/Makefile.am.changelog | 4 ++--
+ build/Makefile.am.releasing | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 9faa9a214994fe27a0cb27a298881f23c2050bbe
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 11:40:12 2008 +0000
+
+ [RELEASING] Correct a few minor typos.
+
+ As I was reading through the instructions, take the opportunity to fix a
+ few spelling mistakes.
+
+ RELEASING | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit b1be4196513263bdbf58944ea6ac87708a399c5f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Dec 14 11:26:56 2008 +0000
+
+ [doc] Fix erroneous doc comment.
+
+ A normal comment was marked as a gtk-doc entry and thus causing gtk-doc to
+ complain.
+
+ src/cairo-path-fixed.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 79bd32a6ccb1a882ddd2b1585ab155f568bf5ec7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 6 13:32:37 2008 +0200
+
+ [perf-diff] Fix cairo-perf-diff for git 1.6
+
+ Since git 1.6 the plumbing commands aren't installed in the user's
+ path by default. This patch fixes cairo-perf-diff to find the
+ git-sh-setup command from git's lib dir.
+ (cherry picked from commit 0c0f4862c52d68776024f125b003ade455044b27)
+
+ perf/cairo-perf-diff | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 97b5240beeb9206f4dbda6ffce33b51aa16eec2f
+Author: Julien Danjou <julien@danjou.info>
+Date: Tue Nov 18 10:01:49 2008 +0100
+
+ [xcb] check for render extension presence
+
+ Otherwise this may leads to an invalid memory access to r.
+
+ Fixes: Bug 18588 - XCB backend fails with missing render.
+ https://bugs.freedesktop.org/show_bug.cgi?id=18588
+
+ Signed-off-by: Julien Danjou <julien@danjou.info>
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+ (cherry picked from commit 834f1d7b7097dcc3a32f6c65d21e87fd272d924a)
+
+ AUTHORS | 1 +
+ src/cairo-xcb-surface.c | 8 ++++++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 6fed98c0d3b0708ad5171654179a482fa7d88805
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 5 21:14:45 2008 +0000
+
+ [gstate] Remove culled glyphs from clusters.
+
+ Sascha Steinbiss reported a bug where the PDF backend was reading beyond
+ the end of the glyph array:
+ http://lists.cairographics.org/archives/cairo/2008-December/015976.html.
+
+ It transpires that in the early glyph culling in the gstate we were
+ not updating the clusters to skip culled glyphs.
+
+ src/cairo-gstate.c | 223 ++++++++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 176 insertions(+), 47 deletions(-)
+
+commit 2b7c6f361a3cfe309ff0bcb606b808acbf36aa0f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 12:33:12 2008 +0000
+
+ [skiplist] Allocate elements in chunks.
+
+ Use a pool allocator to preallocate a chunk from which to allocate the
+ skiplist elements (if we failed to reallocate from the freelists).
+
+ src/cairo-bentley-ottmann.c | 33 ++++++++++++-----
+ src/cairo-skiplist-private.h | 3 +-
+ src/cairo-skiplist.c | 85 +++++++++++++++++++++++++++++++++++---------
+ 3 files changed, 94 insertions(+), 27 deletions(-)
+
+commit 903b39c30448d62e2cbf9d075c5256a333bd5d8f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 4 15:22:01 2008 +0000
+
+ [test] Make the xlib-fallback use the image refs.
+
+ The xlib-fallback is closer to the image than the xlib backend, so prefer
+ not to use the xlib.ref.png.
+
+ boilerplate/cairo-boilerplate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 792057539bf814cc00447a0a53978e0af3efe270
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 3 10:52:59 2008 +0000
+
+ [test] Only delete output images beneath output.
+
+ We were using an overly-liberal find that also deleted copied output for
+ use in CAIRO_REF_DIR if that directory was below test/. So only delete
+ files below output/ (which should only be used by cairo-test).
+
+ test/Makefile.am | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+commit 913cbad25e08a07c05b8c2e6ddd3c343ca2462b2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 2 13:06:50 2008 +0000
+
+ [test] Add a simple joins test case
+
+ Exercise joins between short (<LINE_WIDTH) lines - used in debugging
+ stroke-to-path.
+
+ test/Makefile.am | 3 ++
+ test/joins.c | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/joins.ps.ref.png | Bin 0 -> 5496 bytes
+ 3 files changed, 112 insertions(+)
+
+commit 9f4f41de7d20ee46ee8ca06716cbc18e55cfcf86
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 2 13:05:30 2008 +0000
+
+ [tutorial] Correct twin font name
+
+ We changed the name for the builtin font from "cairo" to "<cairo>" to
+ reduce possible naming conflicts - update the tutorial to match.
+
+ doc/tutorial/src/twin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4ff884fe4df64234a7da4635d78ffafabe00f18c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 30 19:18:15 2008 +0000
+
+ [test] Check idempotency of append_path() -> copy_path()
+
+ The API should preserve the precision across the public interface so that
+ the user is able to retrieve the co-ordinates that he used to construct
+ the path. However since we transform the path to a 24.8 fixed-point
+ internal represent we currently incur a precision-loss - the affects of
+ which can be seen in the miter-precision test case for example. It is
+ planned to move to keeping the path as doubles until the backend
+ explicitly requests the fixed-point coodinates (and some backends, e.g.
+ pdf, might only ever use the doubles). Then, barring rounding errors
+ during path transformations, we should be able to return the exact path
+ the user set (under an identity CTM, of course ;-).
+
+ test/Makefile.am | 1 +
+ test/path-precision.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 109 insertions(+)
+
+commit fe4af195a7880336894a5fbae86740ef55c14cbf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 30 13:48:11 2008 +0000
+
+ [test] Add a rectilinear-dash test case.
+
+ Exercise dashing on pixel-aligned boundaries to test extending the
+ rectilinear stroker to handle dashes.
+
+ test/Makefile.am | 2 +
+ test/rectilinear-dash.c | 176 ++++++++++++++++++++++++++++++++++++++++++
+ test/rectilinear-dash.ref.png | Bin 0 -> 291 bytes
+ 3 files changed, 178 insertions(+)
+
+commit 1d68ee73f8d406671d25a1ab6c3cfb096a7a6ce7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 23 08:59:56 2008 +0000
+
+ [pattern] Compute the combined color content.
+
+ When multiplying two colors together, the combined content is simply the
+ or of the their contents.
+
+ src/cairo-pattern.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 30cef3116ed960a94323477154896a03c4fb30bb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 11 01:45:31 2008 +0000
+
+ [spans] Add a sentinel cell to the cell_list.
+
+ By terminating the list with a cell for INT_MAX, we remove a few
+ conditionals from the hot-paths.
+
+ src/cairo-tor-scan-converter.c | 25 +++++++++++++++----------
+ 1 file changed, 15 insertions(+), 10 deletions(-)
+
+commit 3b2bb95249afdc3a705d0ce5205019e7d9d31020
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 11 01:22:37 2008 +0000
+
+ [spans] Embed 64 edge buckets into polygon
+
+ Frequently we only need a few y-buckets, so embed 64 into the parent
+ structure.
+
+ src/cairo-tor-scan-converter.c | 40 ++++++++++++----------------------------
+ 1 file changed, 12 insertions(+), 28 deletions(-)
+
+commit 70235df72e3f33482527090d7039d8cab7ef6ff9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 11 00:32:13 2008 +0000
+
+ [spans] Pool capacity is in bytes not elements.
+
+ Set the polygon capacity to a shade under 8k, not 200 bytes, reducing the
+ number of malloc calls made by the scan convertor by a factor of 40!
+
+ src/cairo-tor-scan-converter.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6f284587a4ef829a1666fe730e590b59e4eedd5e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 13:50:23 2008 +0000
+
+ [script] Add examples
+
+ Add some simple examples to demonstrate CairoScript, courtesy of M Joonas
+ Philaja.
+
+ configure.ac | 1 +
+ util/cairo-script/Makefile.am | 2 +
+ util/cairo-script/examples/Makefile.am | 10 +
+ util/cairo-script/examples/dragon.cs | 48 +
+ util/cairo-script/examples/hilbert.cs | 51 +
+ util/cairo-script/examples/infinichess.cs | 29 +
+ util/cairo-script/examples/interference.cs | 46 +
+ util/cairo-script/examples/pythagoras-tree.cs | 53 +
+ util/cairo-script/examples/sierpinski.cs | 37 +
+ .../examples/wedgeAnnulus_crop_ybRings.cs | 30 +
+ util/cairo-script/examples/world-map.cs | 209 +++
+ util/cairo-script/examples/zrusin.cs | 1333 ++++++++++++++++++++
+ 12 files changed, 1849 insertions(+)
+
+commit 463dc2891312e3658875d6964a91e7e875de4b38
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 21:09:14 2008 +0000
+
+ [script] Allocate the interned strings from a permanent pool
+
+ Reduce memory fragmentation by allocating the permanent strings from a
+ single pool.
+
+ util/cairo-script/cairo-script-interpreter.c | 52 ++++++++++++++++++++++------
+ util/cairo-script/cairo-script-private.h | 4 +++
+ 2 files changed, 45 insertions(+), 11 deletions(-)
+
+commit adc9c90d79cf4bf5e3789ceadab6a49da746274a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 21:00:11 2008 +0000
+
+ [script] Freed object cache.
+
+ Cache the last freed object to reduce malloc pressure.
+
+ util/cairo-script/cairo-script-hash.c | 3 -
+ util/cairo-script/cairo-script-interpreter.c | 16 ++--
+ util/cairo-script/cairo-script-objects.c | 118 ++++++++++++++++++---------
+ util/cairo-script/cairo-script-private.h | 5 +-
+ 4 files changed, 91 insertions(+), 51 deletions(-)
+
+commit 1042909796295234d8aadf674824d306d7bcc9b5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 17:56:19 2008 +0000
+
+ [script] Replay multiple files.
+
+ Iterate over the argument vector and replay each file on the command line.
+
+ util/cairo-script/csi-replay.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit c5c04528b51b9025f48fb0f3b1c4a8dc98acb214
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 17:30:21 2008 +0000
+
+ [script] Slab allocator
+
+ Allocate small objects from a pool and maintain a per-size free-list.
+
+ util/cairo-script/cairo-script-interpreter.c | 65 +++++++++++++++++++++++++++-
+ util/cairo-script/cairo-script-private.h | 22 ++++++++++
+ 2 files changed, 85 insertions(+), 2 deletions(-)
+
+commit 83f0e6cf6245c0b3fd7a9b572e5dcea9b633a644
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 16:46:05 2008 +0000
+
+ [script] Inline the stack push
+
+ Frequently to push an object onto the stack all we need is to simply
+ perform the struct copy - so inline it and only call the out-of-line
+ function if we need to enlarge the stack.
+
+ util/cairo-script/cairo-script-interpreter.c | 20 ++++++-------
+ util/cairo-script/cairo-script-operators.c | 43 +++++++---------------------
+ util/cairo-script/cairo-script-private.h | 14 ++++++++-
+ util/cairo-script/cairo-script-stack.c | 13 ++++-----
+ 4 files changed, 39 insertions(+), 51 deletions(-)
+
+commit 565b3d6ad64fe9d35ebddb4f6b46e492740ee59f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 15:16:02 2008 +0000
+
+ [script] Switch to hyphens.
+
+ Using hyphen in the operators is easier to read than underscores.
+
+ src/cairo-script-surface.c | 60 ++++-----
+ util/cairo-script/cairo-script-operators.c | 189 +++++++++++++++++++----------
+ util/cairo-trace/trace.c | 114 ++++++++---------
+ 3 files changed, 211 insertions(+), 152 deletions(-)
+
+commit 3abfd836a021a2950b7eea97f3b30011d58efcc8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 14:34:41 2008 +0000
+
+ [script] Null constructor
+
+ Expose 'null', principally for comparison purposes.
+
+ util/cairo-script/cairo-script-operators.c | 8 +++++++-
+ util/cairo-script/cairo-script-private.h | 7 +++++++
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+commit 7540ac7f23db47ee3f58a557ce91aaf1c0bc72d5
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Tue Dec 9 07:52:21 2008 +0200
+
+ [script] Reverse direction of bitshift.
+
+ Positive shift counts should shift left according to PostScript.
+
+ util/cairo-script/cairo-script-operators.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 4be479cc63a783da18652528f33bd08427a74fe7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 13:20:06 2008 +0000
+
+ [script] Add simple to integer converter
+
+ Simple operator to coerce the type of the object on top of the stack to
+ integer.
+
+ util/cairo-script/cairo-script-operators.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+commit 6711b591b9efd8f116f2683f17d52e9a9ddfbaba
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 12:34:30 2008 +0000
+
+ [script] Simple replay.
+
+ Basic script executer.
+
+ util/cairo-script/.gitignore | 1 +
+ util/cairo-script/Makefile.am | 5 ++++-
+ util/cairo-script/csi-exec.c | 29 +++++++++++++++++++++++++++++
+ 3 files changed, 34 insertions(+), 1 deletion(-)
+
+commit 177a68ef3ecd1717b81c93c53f8c7ae27838e2e5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 13:21:19 2008 +0000
+
+ [script] Add a few mathematical constants
+
+ Just pi and the sqrt(2) for the moment, more to come on demand.
+
+ util/cairo-script/cairo-script-interpreter.c | 26 ++++++++++++++++++++++++++
+ util/cairo-script/cairo-script-operators.c | 17 +++++++++++++++++
+ util/cairo-script/cairo-script-private.h | 8 ++++++++
+ 3 files changed, 51 insertions(+)
+
+commit 5dfaa22a578ff6561e8d15a8c08546c840476313
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 12:26:09 2008 +0000
+
+ [script] Add repeat operator.
+
+ Simple operator to repeat procedure n times.
+
+ util/cairo-script/cairo-script-operators.c | 37 +++++++++++++++++++++++++++++-
+ 1 file changed, 36 insertions(+), 1 deletion(-)
+
+commit 738cb327450821db2d3689e514376c0d9bc55e87
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Tue Dec 9 05:59:19 2008 +0200
+
+ [script] Fix \t escapes in string literals.
+
+ Typo \r -> \t.
+
+ util/cairo-script/cairo-script-scanner.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 265ebd372a4fd510bc29c749a46393ee7caace41
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Mon Dec 8 10:14:33 2008 +0200
+
+ [script] Flesh out the relational comparison operators to be more PostScript-like.
+
+ The relational comparison operators can now compare strings vs names
+ by content as well as performing automatic type promotions on the
+ numeric types. For other types relational comparisons succeeed
+ only if the values compare equal according to the eq operator, and
+ put the interpreter into a type-error state otherwise.
+
+ util/cairo-script/cairo-script-objects.c | 103 +++++++++++++++++++++
+ util/cairo-script/cairo-script-operators.c | 144 +++++------------------------
+ util/cairo-script/cairo-script-private.h | 5 +
+ 3 files changed, 132 insertions(+), 120 deletions(-)
+
+commit 05afec7a8ac590d0d53a254895796f36a8b0eaf3
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Mon Dec 8 10:06:53 2008 +0200
+
+ [script] Implement the ne operator.
+
+ util/cairo-script/cairo-script-operators.c | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+commit 1aeb96dc287b516955db1909995e45fe26d4f87a
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Mon Dec 8 10:03:57 2008 +0200
+
+ [script] Implement PostScript-like semantics for the eq operator.
+
+ The eq operator would only work for some types and put the
+ interpreter in an error state if passed objects it didn't
+ know how to compare. It would also not compare strings
+ by value nor allow strings to be compared to names.
+ This patch makes any two objects comparable.
+
+ util/cairo-script/cairo-script-objects.c | 92 ++++++++++++++++++++++++++++++
+ util/cairo-script/cairo-script-operators.c | 64 +--------------------
+ util/cairo-script/cairo-script-private.h | 4 ++
+ 3 files changed, 97 insertions(+), 63 deletions(-)
+
+commit 620028fd19b091f525964b689ebd3a70e1636da2
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Mon Dec 8 09:23:37 2008 +0200
+
+ [script] Don't segfault when hashing empty strings.
+
+ Check for the empty string.
+
+ util/cairo-script/cairo-script-interpreter.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+commit 4ba77f776509caad030edf818a076ea9b071ad23
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Mon Dec 8 07:16:14 2008 +0200
+
+ [script] Fix dictionary construction to access the right stack slots.
+
+ It bound values to themselves and ignored keys.
+
+ util/cairo-script/cairo-script-operators.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit af53297a97eec505ac2a90768badda72056c6e3b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Dec 11 00:35:20 2008 +0000
+
+ [cairo] Use a stack buffer for text path.
+
+ First try to allocate glyphs from the stack, similar to cairo_show_text().
+
+ src/cairo.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit 09589e20e14476df609581027d14628f52091e71
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 23:45:44 2008 +0000
+
+ [clip] Intersect to region extents.
+
+ When querying the intersection of a rectangle with the clip region, the
+ result only depends upon the region extents so we do not need to perform
+ an expensive region-region intersection computation.
+
+ src/cairo-clip.c | 18 +++++-------------
+ src/cairo-surface-fallback.c | 1 -
+ 2 files changed, 5 insertions(+), 14 deletions(-)
+
+commit c5acb125e9509570c407a069f7e89acfbadda57b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 23:06:22 2008 +0000
+
+ [surface] Avoid a short-lived context during fallback_clone_similar()
+
+ We can paint to the surface directly without need of a temporary context,
+ so do so.
+
+ src/cairo-surface-fallback.c | 41 +++++++++++++++++++----------------------
+ 1 file changed, 19 insertions(+), 22 deletions(-)
+
+commit 888f62feaa73be326d41a485c0bcf81a3e466ee1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 17:42:16 2008 +0000
+
+ [test] Propagate error from path
+
+ If the path is in error, just append it to the context so that the error
+ is propagated correctly.
+
+ test/copy-path.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit f13f63e3d85d28a17a3cb60b7d1a7b552f2b6872
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 08:54:03 2008 +0000
+
+ [test/clip-nesting] Propagate status from sub-context.
+
+ Use cairo_path_append() to propagate an error status from a child context
+ to it parent so that it is properly reported under memfault.
+
+ test/clip-nesting.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+commit e6e33b036f9de5087a72cf1de9c0a4ce97c75812
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Dec 10 08:50:57 2008 +0000
+
+ [test/solid-pattern-cache-stress] Propagate status from sub-contexts.
+
+ Use a cairo_append_path() to set an arbitrary error status on the parent
+ context, in order to propagate errors from a child.
+
+ test/solid-pattern-cache-stress.c | 32 +++++++++++++++++++++++++-------
+ 1 file changed, 25 insertions(+), 7 deletions(-)
+
+commit bcb2724920aa1bca1a9a82b5017d3180f5f9523e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 9 20:44:25 2008 +0000
+
+ [path] Mark points as const during _cairo_path_fixed_interpret()
+
+ Use const to document the read-only nature of the arguments passed to the
+ callbacks.
+
+ src/cairo-path-bounds.c | 33 ++++--------
+ src/cairo-path-fill.c | 33 +++---------
+ src/cairo-path-fixed.c | 86 ++++++++++++++---------------
+ src/cairo-path-in-fill.c | 12 +++--
+ src/cairo-path-stroke.c | 108 +++++++++++++------------------------
+ src/cairo-path.c | 26 +++++----
+ src/cairo-pdf-operators.c | 12 +++--
+ src/cairo-pen.c | 4 +-
+ src/cairo-quartz-surface.c | 11 ++--
+ src/cairo-rectangle.c | 6 +--
+ src/cairo-scaled-font.c | 12 +++--
+ src/cairo-script-surface.c | 12 +++--
+ src/cairo-spans.c | 18 +++----
+ src/cairo-svg-surface.c | 15 +++---
+ src/cairo-type1-fallback.c | 16 +++---
+ src/cairo-types-private.h | 3 +-
+ src/cairo-win32-printing-surface.c | 12 +++--
+ src/cairoint.h | 12 ++---
+ 18 files changed, 186 insertions(+), 245 deletions(-)
+
+commit 68b29cafa597128e7cae86608e04ecae6070dad9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 9 20:15:34 2008 +0000
+
+ [spline] Propagate errors during add point.
+
+ Yikes! The callback could fail so we need to propagate the error status.
+
+ src/cairo-path-fill.c | 11 +++--------
+ src/cairo-path-fixed.c | 7 ++-----
+ src/cairo-path-in-fill.c | 7 ++-----
+ src/cairo-path-stroke.c | 14 ++++++--------
+ src/cairo-pen.c | 23 ++++++++++++-----------
+ src/cairo-spline.c | 40 ++++++++++++++++++++--------------------
+ src/cairo-types-private.h | 6 +++++-
+ src/cairoint.h | 9 ++-------
+ 8 files changed, 52 insertions(+), 65 deletions(-)
+
+commit 2f3905dec38a710234aba30e1983b80ea3066a50
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 9 19:21:35 2008 +0000
+
+ [image] Set status on error path.
+
+ We failed to set the status after cairo_image_surface_create() returned an
+ error.
+
+ src/cairo-image-surface.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit dfc49a67e62bea359b33413e9b882e92952431de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 9 14:44:51 2008 +0000
+
+ [test] Trim the number of fallback resolutions tested.
+
+ Simplify the test matrix to only include testing the fallback-resolution
+ of a uniform scale in one or both axes.
+
+ test/Makefile.am | 20 ---
+ test/fallback-resolution.c | 222 ++++++++++++++------------
+ test/fallback-resolution.ppi150x150.ref.png | Bin 8043 -> 8058 bytes
+ test/fallback-resolution.ppi150x300.ref.png | Bin 6848 -> 0 bytes
+ test/fallback-resolution.ppi150x37.5.ref.png | Bin 13176 -> 0 bytes
+ test/fallback-resolution.ppi150x600.ref.png | Bin 6338 -> 0 bytes
+ test/fallback-resolution.ppi150x72.ref.png | Bin 8370 -> 8303 bytes
+ test/fallback-resolution.ppi150x75.ref.png | Bin 10445 -> 0 bytes
+ test/fallback-resolution.ppi300x150.ref.png | Bin 6851 -> 0 bytes
+ test/fallback-resolution.ppi300x300.ref.png | Bin 5637 -> 5639 bytes
+ test/fallback-resolution.ppi300x37.5.ref.png | Bin 12870 -> 0 bytes
+ test/fallback-resolution.ppi300x600.ref.png | Bin 4848 -> 0 bytes
+ test/fallback-resolution.ppi300x72.ref.png | Bin 7053 -> 7014 bytes
+ test/fallback-resolution.ppi300x75.ref.png | Bin 9617 -> 0 bytes
+ test/fallback-resolution.ppi37.5x150.ref.png | Bin 12728 -> 0 bytes
+ test/fallback-resolution.ppi37.5x300.ref.png | Bin 11981 -> 0 bytes
+ test/fallback-resolution.ppi37.5x37.5.ref.png | Bin 14098 -> 14092 bytes
+ test/fallback-resolution.ppi37.5x600.ref.png | Bin 11654 -> 0 bytes
+ test/fallback-resolution.ppi37.5x72.ref.png | Bin 12990 -> 12906 bytes
+ test/fallback-resolution.ppi37.5x75.ref.png | Bin 13787 -> 0 bytes
+ test/fallback-resolution.ppi600x150.ref.png | Bin 6096 -> 0 bytes
+ test/fallback-resolution.ppi600x300.ref.png | Bin 4812 -> 0 bytes
+ test/fallback-resolution.ppi600x37.5.ref.png | Bin 12401 -> 0 bytes
+ test/fallback-resolution.ppi600x600.ref.png | Bin 4104 -> 4090 bytes
+ test/fallback-resolution.ppi600x72.ref.png | Bin 6398 -> 6326 bytes
+ test/fallback-resolution.ppi600x75.ref.png | Bin 8974 -> 0 bytes
+ test/fallback-resolution.ppi72x150.ref.png | Bin 8069 -> 8061 bytes
+ test/fallback-resolution.ppi72x300.ref.png | Bin 6803 -> 6911 bytes
+ test/fallback-resolution.ppi72x37.5.ref.png | Bin 13147 -> 13167 bytes
+ test/fallback-resolution.ppi72x600.ref.png | Bin 6245 -> 6214 bytes
+ test/fallback-resolution.ppi72x72.ref.png | Bin 8409 -> 8416 bytes
+ test/fallback-resolution.ppi72x75.ref.png | Bin 10628 -> 10620 bytes
+ test/fallback-resolution.ppi75x150.ref.png | Bin 9940 -> 0 bytes
+ test/fallback-resolution.ppi75x300.ref.png | Bin 9003 -> 0 bytes
+ test/fallback-resolution.ppi75x37.5.ref.png | Bin 14020 -> 0 bytes
+ test/fallback-resolution.ppi75x600.ref.png | Bin 8455 -> 0 bytes
+ test/fallback-resolution.ppi75x72.ref.png | Bin 10202 -> 10119 bytes
+ test/fallback-resolution.ppi75x75.ref.png | Bin 12101 -> 12127 bytes
+ 38 files changed, 121 insertions(+), 121 deletions(-)
+
+commit 0ebbcd671c362d98a60214872fa48aee1e42dde1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 9 14:30:58 2008 +0000
+
+ [test] Fix memleak from fallback-resolution.
+
+ The test-name was being recreated for every pass, but was never freed.
+
+ test/fallback-resolution.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit a9697e5fb04d045fe7aaf0cee80c41eb9d09e1c1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 12 11:08:13 2008 +0000
+
+ [test] Exercise glyph culling.
+
+ Sascha Steinbiss reported an issue with glyph culling,
+ http://lists.cairographics.org/archives/cairo/2008-December/015976.html,
+ whereby we failed to update the text clusters upon culling the glyphs in
+ the gstate and proceeded to read beyond the end of the glyph array in the
+ PDF backend. This test case setups a similar condition as reported, by
+ trying to write a wide string into a small box.
+
+ test/Makefile.am | 3 ++
+ test/culled-glyphs.c | 62 ++++++++++++++++++++++++++++++++++++++++++
+ test/culled-glyphs.ps.ref.png | Bin 0 -> 372 bytes
+ test/culled-glyphs.ref.png | Bin 0 -> 434 bytes
+ 4 files changed, 65 insertions(+)
+
+commit 095a1fd7860bd1f6d4116766ade0ec9a382bb957
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 5 21:14:45 2008 +0000
+
+ [gstate] Remove culled glyphs from clusters.
+
+ Sascha Steinbiss reported a bug where the PDF backend was reading beyond
+ the end of the glyph array:
+ http://lists.cairographics.org/archives/cairo/2008-December/015976.html.
+
+ It transpires that in the early glyph culling in the gstate we were
+ not updating the clusters to skip culled glyphs.
+
+ src/cairo-gstate.c | 223 ++++++++++++++++++++++++++++++++++++++++++-----------
+ src/cairo.c | 9 ++-
+ 2 files changed, 183 insertions(+), 49 deletions(-)
+
+commit 834f1d7b7097dcc3a32f6c65d21e87fd272d924a
+Author: Julien Danjou <julien@danjou.info>
+Date: Tue Nov 18 10:01:49 2008 +0100
+
+ [xcb] check for render extension presence
+
+ Otherwise this may leads to an invalid memory access to r.
+
+ Fixes: Bug 18588 - XCB backend fails with missing render.
+ https://bugs.freedesktop.org/show_bug.cgi?id=18588
+
+ Signed-off-by: Julien Danjou <julien@danjou.info>
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+ AUTHORS | 1 +
+ src/cairo-xcb-surface.c | 8 ++++++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit e184bf0d3592c8703b1193d37553cdcdee313139
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Dec 12 10:12:43 2008 +0000
+
+ Fix compilation with --enable-png=no
+
+ Adrian Johnson spotted that the build was broken if the PNG functions were
+ disabled. Fix.
+
+ src/cairoint.h | 1 -
+ util/cairo-script/cairo-script-operators.c | 8 ++++++++
+ util/cairo-trace/trace.c | 4 ++++
+ 3 files changed, 12 insertions(+), 1 deletion(-)
+
+commit 391c6026402dee09bb34816637114cea990cd93a
+Merge: 2f1b581f5 d93bf10ed
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 11 14:41:01 2008 -0500
+
+ Merge branch '1.8'
+
+commit 2f1b581f54713c899f3b03af1e0ac8c38c36c385
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 11 10:34:37 2008 -0500
+
+ [quartz] Create a copy instead of increasing the reference
+
+ The pattern could be stack allocated so we can't take a reference to it.
+
+ Some testing of quartz shows that it doesn't deal with malloc failure particularily
+ well. In the best case CGFunctionCreate returns NULL, in the worst case it just crashes.
+ Quartz does seem to be able to handle a NULL CGFunctionRef, so returning NULL if
+ we fail to copy the pattern avoids complicating the code to deal with
+ propagating the failure and shouldn't cause any additional crashes.
+
+ Based on a patch by Paolo Bonzini.
+
+ src/cairo-quartz-surface.c | 16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+commit f7b3f1b7d70a271575d3bb233b7ee51a21861c05
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Dec 10 17:54:59 2008 -0500
+
+ [quartz] Propagate const patterns through the casts
+
+ As part of this avoid using cairo_pattern_get_matrix() because it requires a
+ 'cairo_pattern_t *' instead of 'const cairo_pattern *'
+
+ Also, make a copy of the pattern before pasing it in to cairo_set_source()
+
+ src/cairo-quartz-surface.c | 39 +++++++++++++++++++++++----------------
+ 1 file changed, 23 insertions(+), 16 deletions(-)
+
+commit d93bf10edc7e432349524221a3d1b0f0b2ec8090
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Dec 10 17:02:55 2008 -0500
+
+ [quartz] Create a copy of the pattern so that the reference counts are balanced
+
+ The pattern could be stack allocated so we can't take a reference to it;
+ instead make a copy.
+
+ Based on a patch by Paolo Bonzini.
+
+ src/cairo-quartz-surface.c | 16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+commit db4c427e8460b0e326691bd6d3784178a713eb33
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Dec 9 12:03:11 2008 -0500
+
+ [quartz] Change some pattern casts to access to the base class
+
+ Avoiding casts gives us some more type safety.
+
+ src/cairo-quartz-surface.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 5f60e2e00455f2894c7ce3805a029c806f21514a
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Dec 9 11:41:10 2008 -0500
+
+ Reorganize the (set|get)_antialias prototypes
+
+ Move _cairo_gstate_set_antialias() and _cairo_gstate_get_antialias() into the
+ gstate section of cairoint.h
+
+ src/cairoint.h | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+commit 673640a3b3931995897b01d49c5dd8d82b50dac2
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 4 17:53:06 2008 -0500
+
+ [win32] Use MOD instead of the '%' operator
+
+ Repeat should be handled using MOD instead of '%' so that negative numbers
+ are handled as expected. E.g. -1 mod 600 = 599, not 495 as the '%' operator
+ gives. This was causing https://bugzilla.mozilla.org/show_bug.cgi?id=466258
+
+ Patch from Robert O'Callahan
+
+ src/cairo-win32-surface.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit 5e06085b483dcaaa7b1b29b13cd2813c7e51e02a
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Aug 1 23:28:15 2008 +0300
+
+ [cairo-spans] Render clip mask surfaces with spans if we can.
+
+ Generating surface masks for clipping can also benefit from span
+ rendering sometimes.
+
+ src/cairo-clip.c | 140 +++++++++++++++++++++
+ test/clip-fill-rule.pdf.argb32.ref.png | Bin 0 -> 509 bytes
+ test/clip-fill-rule.rgb24.ref.png | Bin 380 -> 390 bytes
+ test/clip-fill-rule.test-paginated.rgb24.ref.png | Bin 0 -> 361 bytes
+ test/clip-fill-rule.xlib.rgb24.ref.png | Bin 0 -> 380 bytes
+ test/clip-nesting.pdf.argb32.ref.png | Bin 0 -> 850 bytes
+ test/clip-nesting.rgb24.ref.png | Bin 955 -> 963 bytes
+ test/clip-nesting.test-fallback.rgb24.ref.png | Bin 0 -> 936 bytes
+ test/clip-nesting.test-paginated.rgb24.ref.png | Bin 0 -> 936 bytes
+ test/clip-nesting.xlib.rgb24.ref.png | Bin 0 -> 955 bytes
+ test/clip-operator.pdf.argb32.ref.png | Bin 11600 -> 11604 bytes
+ test/clip-operator.ps3.argb32.ref.png | Bin 7574 -> 7576 bytes
+ test/clip-operator.ref.png | Bin 8247 -> 8210 bytes
+ test/clip-operator.test-paginated.argb32.ref.png | Bin 0 -> 8247 bytes
+ test/clip-twice.pdf.argb32.ref.png | Bin 1458 -> 1498 bytes
+ test/clip-twice.ref.png | Bin 1362 -> 1342 bytes
+ test/clip-twice.rgb24.ref.png | Bin 1198 -> 1203 bytes
+ test/clip-twice.test-fallback.argb32.ref.png | Bin 0 -> 1343 bytes
+ test/clip-twice.test-fallback.rgb24.ref.png | Bin 0 -> 1179 bytes
+ test/clip-twice.test-paginated.argb32.ref.png | Bin 0 -> 1361 bytes
+ test/clip-twice.test-paginated.rgb24.ref.png | Bin 0 -> 1199 bytes
+ test/clip-twice.xlib.ref.png | Bin 0 -> 1362 bytes
+ test/clip-twice.xlib.rgb24.ref.png | Bin 0 -> 1198 bytes
+ test/device-offset-fractional.pdf.argb32.ref.png | Bin 0 -> 275 bytes
+ test/device-offset-fractional.pdf.rgb24.ref.png | Bin 0 -> 275 bytes
+ test/filter-nearest-offset.pdf.argb32.ref.png | Bin 0 -> 4295 bytes
+ test/filter-nearest-offset.pdf.rgb24.ref.png | Bin 0 -> 4295 bytes
+ test/filter-nearest-transformed.pdf.argb32.ref.png | Bin 0 -> 488 bytes
+ test/filter-nearest-transformed.pdf.rgb24.ref.png | Bin 0 -> 488 bytes
+ test/linear-gradient.pdf.argb32.ref.png | Bin 1118 -> 1112 bytes
+ test/linear-gradient.pdf.rgb24.ref.png | Bin 1118 -> 1112 bytes
+ test/mask.pdf.argb32.ref.png | Bin 9956 -> 9903 bytes
+ test/mask.ref.png | Bin 8571 -> 8581 bytes
+ test/mask.svg11.argb32.ref.png | Bin 8625 -> 8682 bytes
+ test/mask.svg12.argb32.ref.png | Bin 8625 -> 8682 bytes
+ test/meta-surface-pattern.pdf.argb32.ref.png | Bin 4017 -> 4011 bytes
+ test/meta-surface-pattern.svg11.argb32.ref.png | Bin 3928 -> 3924 bytes
+ test/meta-surface-pattern.svg12.argb32.ref.png | Bin 3928 -> 3924 bytes
+ test/rotate-image-surface-paint.pdf.argb32.ref.png | Bin 209 -> 215 bytes
+ test/rotate-image-surface-paint.pdf.rgb24.ref.png | Bin 207 -> 215 bytes
+ test/surface-pattern-scale-down.pdf.argb32.ref.png | Bin 2386 -> 1532 bytes
+ test/surface-pattern-scale-down.pdf.rgb24.ref.png | Bin 2386 -> 1532 bytes
+ test/surface-pattern-scale-up.pdf.argb32.ref.png | Bin 4247 -> 3834 bytes
+ test/surface-pattern-scale-up.pdf.rgb24.ref.png | Bin 4247 -> 3834 bytes
+ test/surface-pattern.pdf.argb32.ref.png | Bin 0 -> 14808 bytes
+ test/surface-pattern.pdf.rgb24.ref.png | Bin 0 -> 14808 bytes
+ test/trap-clip.pdf.rgb24.ref.png | Bin 6642 -> 6621 bytes
+ test/trap-clip.ref.png | Bin 5865 -> 5829 bytes
+ test/trap-clip.test-paginated.argb32.ref.png | Bin 0 -> 5865 bytes
+ 49 files changed, 140 insertions(+)
+
+commit 18634c37026a2d6147443cb6d991576f62b07e6d
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Jul 24 20:47:14 2008 +0300
+
+ [cairo-spans] Hook up filling paths with spans to cairo-surface-fallback.c.
+
+ This speeds up the mask generation step in cairo_fill() for the image
+ surface by up to 10x in especially favourable cases.
+
+ image-rgba twin-800 7757.80 0.20% -> 749.41 0.29%: 10.36x speedup
+ image-rgba spiral-diag-pixalign-nonzero-fill-512 15.16 0.44% -> 3.45 8.80%: 5.54x speedup
+
+ More typical simple non-rectilinear geometries are sped up by 30-50%.
+ This patch does not affect any stroking operations or any fill
+ operations of pixel aligned rectilinear geometries; those are still
+ rendered using trapezoids.
+
+ src/cairo-surface-fallback.c | 86 ++++++++++++++++++++-
+ test/clip-fill-rule.test-fallback.rgb24.ref.png | Bin 0 -> 361 bytes
+ test/clip-operator.pdf.argb32.ref.png | Bin 12125 -> 11600 bytes
+ test/clip-operator.pdf.rgb24.ref.png | Bin 7367 -> 6882 bytes
+ test/clip-operator.ps2.rgb24.ref.png | Bin 3624 -> 3736 bytes
+ test/clip-operator.ps3.argb32.ref.png | Bin 0 -> 7574 bytes
+ test/clip-operator.ps3.rgb24.ref.png | Bin 3624 -> 3736 bytes
+ test/clip-operator.ref.png | Bin 8271 -> 8247 bytes
+ test/clip-operator.rgb24.ref.png | Bin 3258 -> 3279 bytes
+ test/clip-operator.test-fallback.argb32.ref.png | Bin 0 -> 8252 bytes
+ test/clip-operator.test-fallback.rgb24.ref.png | Bin 0 -> 3241 bytes
+ test/clip-operator.xlib-fallback.rgb24.ref.png | Bin 0 -> 3254 bytes
+ test/clip-operator.xlib.ref.png | Bin 0 -> 8271 bytes
+ test/clip-operator.xlib.rgb24.ref.png | Bin 0 -> 3258 bytes
+ test/clip-twice.pdf.argb32.ref.png | Bin 0 -> 1458 bytes
+ test/clipped-group.pdf.argb32.ref.png | Bin 0 -> 298 bytes
+ test/clipped-group.pdf.rgb24.ref.png | Bin 0 -> 298 bytes
+ test/degenerate-arc.ref.png | Bin 616 -> 544 bytes
+ test/degenerate-arc.test-fallback.argb32.ref.png | Bin 0 -> 547 bytes
+ test/degenerate-arc.test-fallback.rgb24.ref.png | Bin 0 -> 547 bytes
+ test/degenerate-arc.xlib.ref.png | Bin 0 -> 616 bytes
+ test/fill-alpha-pattern.pdf.argb32.ref.png | Bin 3887 -> 3750 bytes
+ test/fill-alpha-pattern.pdf.rgb24.ref.png | Bin 3840 -> 3758 bytes
+ test/fill-alpha-pattern.ps3.argb32.ref.png | Bin 0 -> 4070 bytes
+ test/fill-alpha-pattern.ps3.rgb24.ref.png | Bin 0 -> 4473 bytes
+ test/fill-alpha-pattern.ref.png | Bin 3653 -> 3374 bytes
+ ...fill-alpha-pattern.test-fallback.argb32.ref.png | Bin 0 -> 3379 bytes
+ .../fill-alpha-pattern.test-fallback.rgb24.ref.png | Bin 0 -> 3379 bytes
+ test/fill-alpha-pattern.xlib.ref.png | Bin 0 -> 3653 bytes
+ test/fill-alpha.ref.png | Bin 2989 -> 2728 bytes
+ test/fill-alpha.test-fallback.argb32.ref.png | Bin 0 -> 2824 bytes
+ test/fill-alpha.test-fallback.rgb24.ref.png | Bin 0 -> 2824 bytes
+ test/fill-alpha.xlib.ref.png | Bin 0 -> 2989 bytes
+ test/fill-degenerate-sort-order.ref.png | Bin 2397 -> 2406 bytes
+ test/fill-degenerate-sort-order.rgb24.ref.png | Bin 2060 -> 2052 bytes
+ ...enerate-sort-order.test-fallback.argb32.ref.png | Bin 0 -> 2378 bytes
+ ...generate-sort-order.test-fallback.rgb24.ref.png | Bin 0 -> 2041 bytes
+ test/fill-degenerate-sort-order.xlib.ref.png | Bin 0 -> 2397 bytes
+ test/fill-degenerate-sort-order.xlib.rgb24.ref.png | Bin 0 -> 2060 bytes
+ test/fill-missed-stop.pdf.argb32.ref.png | Bin 0 -> 452 bytes
+ test/fill-rule.ref.png | Bin 1979 -> 2061 bytes
+ test/fill-rule.rgb24.ref.png | Bin 1722 -> 1780 bytes
+ test/fill-rule.test-fallback.argb32.ref.png | Bin 0 -> 1979 bytes
+ test/fill-rule.test-fallback.rgb24.ref.png | Bin 0 -> 1703 bytes
+ test/fill-rule.xlib.ref.png | Bin 0 -> 1979 bytes
+ test/fill-rule.xlib.rgb24.ref.png | Bin 0 -> 1722 bytes
+ test/finer-grained-fallbacks.ps2.argb32.ref.png | Bin 0 -> 1173 bytes
+ test/finer-grained-fallbacks.ps2.rgb24.ref.png | Bin 1096 -> 1154 bytes
+ test/finer-grained-fallbacks.ps3.argb32.ref.png | Bin 0 -> 1173 bytes
+ test/finer-grained-fallbacks.ps3.rgb24.ref.png | Bin 1096 -> 1154 bytes
+ test/finer-grained-fallbacks.ref.png | Bin 1111 -> 1069 bytes
+ test/finer-grained-fallbacks.rgb24.ref.png | Bin 1114 -> 839 bytes
+ ...-grained-fallbacks.test-fallback.argb32.ref.png | Bin 0 -> 1111 bytes
+ ...r-grained-fallbacks.test-fallback.rgb24.ref.png | Bin 0 -> 854 bytes
+ test/finer-grained-fallbacks.xlib.ref.png | Bin 0 -> 1111 bytes
+ test/finer-grained-fallbacks.xlib.rgb24.ref.png | Bin 0 -> 1114 bytes
+ test/font-matrix-translation.svg11.argb32.ref.png | Bin 0 -> 857 bytes
+ test/font-matrix-translation.svg11.rgb24.ref.png | Bin 0 -> 857 bytes
+ test/font-matrix-translation.svg12.argb32.ref.png | Bin 0 -> 857 bytes
+ test/font-matrix-translation.svg12.rgb24.ref.png | Bin 0 -> 857 bytes
+ test/ft-show-glyphs-table.svg11.argb32.ref.png | Bin 0 -> 9953 bytes
+ test/ft-show-glyphs-table.svg11.rgb24.ref.png | Bin 0 -> 9953 bytes
+ test/ft-show-glyphs-table.svg12.argb32.ref.png | Bin 0 -> 9953 bytes
+ test/ft-show-glyphs-table.svg12.rgb24.ref.png | Bin 0 -> 9953 bytes
+ ...t-text-vertical-layout-type1.pdf.argb32.ref.png | Bin 0 -> 3632 bytes
+ ...ft-text-vertical-layout-type1.pdf.rgb24.ref.png | Bin 0 -> 3632 bytes
+ test/ft-text-vertical-layout-type1.ref.png | Bin 3980 -> 3643 bytes
+ ...text-vertical-layout-type1.svg11.argb32.ref.png | Bin 0 -> 3614 bytes
+ ...-text-vertical-layout-type1.svg11.rgb24.ref.png | Bin 0 -> 3614 bytes
+ ...text-vertical-layout-type1.svg12.argb32.ref.png | Bin 0 -> 3614 bytes
+ ...-text-vertical-layout-type1.svg12.rgb24.ref.png | Bin 0 -> 3614 bytes
+ ...tical-layout-type1.test-fallback.argb32.ref.png | Bin 0 -> 3639 bytes
+ ...rtical-layout-type1.test-fallback.rgb24.ref.png | Bin 0 -> 3639 bytes
+ test/ft-text-vertical-layout-type1.xlib.ref.png | Bin 0 -> 3980 bytes
+ ...t-text-vertical-layout-type3.pdf.argb32.ref.png | Bin 0 -> 3642 bytes
+ ...ft-text-vertical-layout-type3.pdf.rgb24.ref.png | Bin 0 -> 3642 bytes
+ test/ft-text-vertical-layout-type3.ref.png | Bin 3934 -> 3609 bytes
+ ...text-vertical-layout-type3.svg11.argb32.ref.png | Bin 0 -> 3640 bytes
+ ...-text-vertical-layout-type3.svg11.rgb24.ref.png | Bin 0 -> 3640 bytes
+ ...text-vertical-layout-type3.svg12.argb32.ref.png | Bin 0 -> 3640 bytes
+ ...-text-vertical-layout-type3.svg12.rgb24.ref.png | Bin 0 -> 3640 bytes
+ ...tical-layout-type3.test-fallback.argb32.ref.png | Bin 0 -> 3605 bytes
+ ...rtical-layout-type3.test-fallback.rgb24.ref.png | Bin 0 -> 3605 bytes
+ test/ft-text-vertical-layout-type3.xlib.ref.png | Bin 0 -> 3934 bytes
+ test/huge-pattern.pdf.argb32.ref.png | Bin 0 -> 2430 bytes
+ test/linear-gradient.pdf.argb32.ref.png | Bin 0 -> 1118 bytes
+ test/linear-gradient.pdf.rgb24.ref.png | Bin 0 -> 1118 bytes
+ test/linear-gradient.ref.png | Bin 1021 -> 983 bytes
+ test/linear-gradient.svg11.argb32.ref.png | Bin 0 -> 988 bytes
+ test/linear-gradient.svg11.rgb24.ref.png | Bin 0 -> 988 bytes
+ test/linear-gradient.svg12.argb32.ref.png | Bin 0 -> 988 bytes
+ test/linear-gradient.svg12.rgb24.ref.png | Bin 0 -> 988 bytes
+ test/linear-gradient.test-fallback.argb32.ref.png | Bin 0 -> 923 bytes
+ test/linear-gradient.test-fallback.rgb24.ref.png | Bin 0 -> 923 bytes
+ test/linear-gradient.xlib.ref.png | Bin 0 -> 1021 bytes
+ test/mask-alpha.ref.png | Bin 640 -> 643 bytes
+ test/mask-alpha.svg11.argb32.ref.png | Bin 615 -> 642 bytes
+ test/mask-alpha.svg11.rgb24.ref.png | Bin 0 -> 592 bytes
+ test/mask-alpha.svg12.argb32.ref.png | Bin 615 -> 642 bytes
+ test/mask-alpha.svg12.rgb24.ref.png | Bin 0 -> 592 bytes
+ test/mask-alpha.test-fallback.argb32.ref.png | Bin 0 -> 627 bytes
+ test/mask-alpha.xlib.ref.png | Bin 0 -> 640 bytes
+ test/mask-alpha.xlib.rgb24.ref.png | Bin 0 -> 599 bytes
+ test/mask.pdf.argb32.ref.png | Bin 8881 -> 9956 bytes
+ test/mask.pdf.rgb24.ref.png | Bin 8267 -> 8735 bytes
+ test/mask.ref.png | Bin 8476 -> 8571 bytes
+ test/mask.rgb24.ref.png | Bin 7041 -> 7216 bytes
+ test/mask.svg11.argb32.ref.png | Bin 8527 -> 8625 bytes
+ test/mask.svg11.rgb24.ref.png | Bin 7935 -> 7203 bytes
+ test/mask.svg12.argb32.ref.png | Bin 8527 -> 8625 bytes
+ test/mask.svg12.rgb24.ref.png | Bin 7935 -> 7203 bytes
+ test/mask.test-fallback.argb32.ref.png | Bin 0 -> 8457 bytes
+ test/mask.test-fallback.rgb24.ref.png | Bin 0 -> 7058 bytes
+ test/mask.xlib-fallback.rgb24.ref.png | Bin 0 -> 7216 bytes
+ test/mask.xlib.ref.png | Bin 0 -> 8476 bytes
+ test/mask.xlib.rgb24.ref.png | Bin 0 -> 7041 bytes
+ test/meta-surface-pattern.pdf.argb32.ref.png | Bin 0 -> 4017 bytes
+ test/meta-surface-pattern.pdf.rgb24.ref.png | Bin 4009 -> 3910 bytes
+ test/meta-surface-pattern.svg11.argb32.ref.png | Bin 3924 -> 3928 bytes
+ test/meta-surface-pattern.svg11.rgb24.ref.png | Bin 4593 -> 3914 bytes
+ test/meta-surface-pattern.svg12.argb32.ref.png | Bin 3924 -> 3928 bytes
+ test/meta-surface-pattern.svg12.rgb24.ref.png | Bin 4593 -> 3914 bytes
+ test/operator-clear.pdf.argb32.ref.png | Bin 1614 -> 1607 bytes
+ test/operator-clear.ps2.argb32.ref.png | Bin 0 -> 1156 bytes
+ test/operator-clear.ps3.argb32.ref.png | Bin 0 -> 1156 bytes
+ test/operator-source.pdf.argb32.ref.png | Bin 5149 -> 5112 bytes
+ test/operator-source.pdf.rgb24.ref.png | Bin 4354 -> 4186 bytes
+ test/operator-source.ref.png | Bin 4420 -> 4425 bytes
+ test/operator-source.rgb24.ref.png | Bin 3201 -> 3231 bytes
+ test/operator-source.test-fallback.argb32.ref.png | Bin 0 -> 4401 bytes
+ test/operator-source.test-fallback.rgb24.ref.png | Bin 0 -> 3200 bytes
+ test/operator-source.xlib-fallback.rgb24.ref.png | Bin 0 -> 3193 bytes
+ test/operator-source.xlib.ref.png | Bin 0 -> 4420 bytes
+ test/operator-source.xlib.rgb24.ref.png | Bin 0 -> 3201 bytes
+ test/over-above-source.ps2.argb32.ref.png | Bin 636 -> 558 bytes
+ test/over-above-source.ps3.argb32.ref.png | Bin 636 -> 558 bytes
+ test/over-above-source.ref.png | Bin 538 -> 560 bytes
+ test/over-above-source.rgb24.ref.png | Bin 461 -> 466 bytes
+ .../over-above-source.test-fallback.argb32.ref.png | Bin 0 -> 533 bytes
+ test/over-above-source.test-fallback.rgb24.ref.png | Bin 0 -> 450 bytes
+ test/over-above-source.xlib.ref.png | Bin 0 -> 538 bytes
+ test/over-above-source.xlib.rgb24.ref.png | Bin 0 -> 461 bytes
+ test/over-around-source.pdf.argb32.ref.png | Bin 0 -> 585 bytes
+ test/over-around-source.ps2.argb32.ref.png | Bin 632 -> 522 bytes
+ test/over-around-source.ps3.argb32.ref.png | Bin 632 -> 522 bytes
+ test/over-around-source.ref.png | Bin 614 -> 645 bytes
+ ...over-around-source.test-fallback.argb32.ref.png | Bin 0 -> 610 bytes
+ test/over-around-source.xlib.ref.png | Bin 0 -> 614 bytes
+ test/over-around-source.xlib.rgb24.ref.png | Bin 0 -> 503 bytes
+ test/over-below-source.pdf.argb32.ref.png | Bin 0 -> 464 bytes
+ test/over-between-source.ps2.argb32.ref.png | Bin 678 -> 551 bytes
+ test/over-between-source.ps3.argb32.ref.png | Bin 678 -> 551 bytes
+ test/over-between-source.ref.png | Bin 575 -> 612 bytes
+ ...ver-between-source.test-fallback.argb32.ref.png | Bin 0 -> 578 bytes
+ test/over-between-source.xlib.ref.png | Bin 0 -> 575 bytes
+ test/over-between-source.xlib.rgb24.ref.png | Bin 0 -> 473 bytes
+ test/push-group.pdf.argb32.ref.png | Bin 0 -> 2722 bytes
+ test/push-group.pdf.rgb24.ref.png | Bin 2714 -> 2740 bytes
+ test/push-group.ref.png | Bin 3126 -> 3060 bytes
+ test/push-group.rgb24.ref.png | Bin 2961 -> 2912 bytes
+ test/push-group.svg11.argb32.ref.png | Bin 2935 -> 3034 bytes
+ test/push-group.svg12.argb32.ref.png | Bin 2935 -> 3034 bytes
+ test/push-group.test-fallback.argb32.ref.png | Bin 0 -> 3107 bytes
+ test/push-group.test-fallback.rgb24.ref.png | Bin 0 -> 2942 bytes
+ test/push-group.xlib-fallback.rgb24.ref.png | Bin 0 -> 2912 bytes
+ test/push-group.xlib.ref.png | Bin 0 -> 3126 bytes
+ test/push-group.xlib.rgb24.ref.png | Bin 0 -> 2961 bytes
+ test/radial-gradient.pdf.argb32.ref.png | Bin 0 -> 79601 bytes
+ test/radial-gradient.pdf.rgb24.ref.png | Bin 0 -> 79601 bytes
+ test/random-intersections.ref.png | Bin 148722 -> 133462 bytes
+ ...ndom-intersections.test-fallback.argb32.ref.png | Bin 0 -> 132312 bytes
+ ...andom-intersections.test-fallback.rgb24.ref.png | Bin 0 -> 132312 bytes
+ test/random-intersections.xlib.ref.png | Bin 0 -> 148722 bytes
+ test/smask-fill.pdf.argb32.ref.png | Bin 0 -> 1909 bytes
+ test/smask-fill.pdf.rgb24.ref.png | Bin 0 -> 1909 bytes
+ test/smask-fill.ref.png | Bin 1223 -> 1156 bytes
+ test/smask-fill.svg11.argb32.ref.png | Bin 0 -> 1128 bytes
+ test/smask-fill.svg11.rgb24.ref.png | Bin 0 -> 1128 bytes
+ test/smask-fill.svg12.argb32.ref.png | Bin 0 -> 1128 bytes
+ test/smask-fill.svg12.rgb24.ref.png | Bin 0 -> 1128 bytes
+ test/smask-fill.test-fallback.argb32.ref.png | Bin 0 -> 1148 bytes
+ test/smask-fill.test-fallback.rgb24.ref.png | Bin 0 -> 1148 bytes
+ test/smask-fill.xlib-fallback.ref.png | Bin 0 -> 1156 bytes
+ test/smask-fill.xlib.ref.png | Bin 0 -> 1223 bytes
+ test/smask-image-mask.pdf.argb32.ref.png | Bin 0 -> 1651 bytes
+ test/smask-image-mask.pdf.rgb24.ref.png | Bin 0 -> 1651 bytes
+ test/smask-mask.pdf.argb32.ref.png | Bin 0 -> 4398 bytes
+ test/smask-mask.pdf.rgb24.ref.png | Bin 0 -> 4398 bytes
+ test/smask-paint.pdf.argb32.ref.png | Bin 0 -> 4496 bytes
+ test/smask-paint.pdf.rgb24.ref.png | Bin 0 -> 4496 bytes
+ test/smask-stroke.pdf.argb32.ref.png | Bin 0 -> 1417 bytes
+ test/smask-stroke.pdf.rgb24.ref.png | Bin 0 -> 1417 bytes
+ test/smask-text.svg11.argb32.ref.png | Bin 0 -> 1791 bytes
+ test/smask-text.svg11.rgb24.ref.png | Bin 0 -> 1791 bytes
+ test/smask-text.svg12.argb32.ref.png | Bin 0 -> 1791 bytes
+ test/smask-text.svg12.rgb24.ref.png | Bin 0 -> 1791 bytes
+ test/smask.pdf.argb32.ref.png | Bin 0 -> 4496 bytes
+ test/smask.pdf.rgb24.ref.png | Bin 0 -> 4496 bytes
+ test/text-pattern.pdf.argb32.ref.png | Bin 1823 -> 2151 bytes
+ test/text-pattern.svg11.argb32.ref.png | Bin 1733 -> 1743 bytes
+ test/text-pattern.svg12.argb32.ref.png | Bin 1733 -> 1743 bytes
+ test/text-rotate.svg11.argb32.ref.png | Bin 0 -> 16942 bytes
+ test/text-rotate.svg11.rgb24.ref.png | Bin 0 -> 16942 bytes
+ test/text-rotate.svg12.argb32.ref.png | Bin 0 -> 16942 bytes
+ test/text-rotate.svg12.rgb24.ref.png | Bin 0 -> 16942 bytes
+ test/text-transform.svg11.argb32.ref.png | Bin 0 -> 5677 bytes
+ test/text-transform.svg11.rgb24.ref.png | Bin 0 -> 5677 bytes
+ test/text-transform.svg12.argb32.ref.png | Bin 0 -> 5677 bytes
+ test/text-transform.svg12.rgb24.ref.png | Bin 0 -> 5677 bytes
+ test/trap-clip.pdf.argb32.ref.png | Bin 5809 -> 6720 bytes
+ test/trap-clip.pdf.rgb24.ref.png | Bin 5768 -> 6642 bytes
+ test/trap-clip.ps2.argb32.ref.png | Bin 5690 -> 4849 bytes
+ test/trap-clip.ref.png | Bin 5772 -> 5865 bytes
+ test/trap-clip.rgb24.ref.png | Bin 5365 -> 5457 bytes
+ test/trap-clip.test-fallback.argb32.ref.png | Bin 0 -> 5753 bytes
+ test/trap-clip.test-fallback.rgb24.ref.png | Bin 0 -> 5379 bytes
+ test/trap-clip.xlib.ref.png | Bin 0 -> 5772 bytes
+ test/trap-clip.xlib.rgb24.ref.png | Bin 0 -> 5365 bytes
+ test/twin.svg11.argb32.ref.png | Bin 0 -> 1797 bytes
+ test/twin.svg11.rgb24.ref.png | Bin 0 -> 1797 bytes
+ test/twin.svg12.argb32.ref.png | Bin 0 -> 1797 bytes
+ test/twin.svg12.rgb24.ref.png | Bin 0 -> 1797 bytes
+ test/unbounded-operator.pdf.argb32.ref.png | Bin 0 -> 2713 bytes
+ test/unbounded-operator.ps2.argb32.ref.png | Bin 0 -> 2713 bytes
+ test/unbounded-operator.ps3.argb32.ref.png | Bin 0 -> 2713 bytes
+ test/unbounded-operator.rgb24.ref.png | Bin 1315 -> 1341 bytes
+ .../unbounded-operator.test-fallback.rgb24.ref.png | Bin 0 -> 1306 bytes
+ test/unbounded-operator.xlib.rgb24.ref.png | Bin 0 -> 1315 bytes
+ test/user-font-proxy.pdf.argb32.ref.png | Bin 0 -> 16937 bytes
+ test/user-font-proxy.pdf.rgb24.ref.png | Bin 0 -> 16937 bytes
+ test/user-font-proxy.ref.png | Bin 18121 -> 16937 bytes
+ test/user-font-proxy.svg11.argb32.ref.png | Bin 0 -> 16836 bytes
+ test/user-font-proxy.svg11.rgb24.ref.png | Bin 0 -> 16836 bytes
+ test/user-font-proxy.svg12.argb32.ref.png | Bin 0 -> 16836 bytes
+ test/user-font-proxy.svg12.rgb24.ref.png | Bin 0 -> 16836 bytes
+ test/user-font-proxy.test-fallback.argb32.ref.png | Bin 0 -> 16835 bytes
+ test/user-font-proxy.test-fallback.rgb24.ref.png | Bin 0 -> 16835 bytes
+ test/user-font-proxy.xlib.ref.png | Bin 0 -> 18121 bytes
+ test/user-font.ref.png | Bin 6183 -> 6082 bytes
+ test/user-font.svg11.argb32.ref.png | Bin 0 -> 6411 bytes
+ test/user-font.svg11.rgb24.ref.png | Bin 0 -> 6411 bytes
+ test/user-font.svg12.argb32.ref.png | Bin 0 -> 6411 bytes
+ test/user-font.svg12.rgb24.ref.png | Bin 0 -> 6411 bytes
+ test/user-font.test-fallback.argb32.ref.png | Bin 0 -> 5601 bytes
+ test/user-font.test-fallback.rgb24.ref.png | Bin 0 -> 5601 bytes
+ test/user-font.xlib.ref.png | Bin 0 -> 6183 bytes
+ 246 files changed, 85 insertions(+), 1 deletion(-)
+
+commit 85b81a3e59401e2fc68209634f7622694e7d30e1
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Jul 11 13:10:20 2008 +0300
+
+ [cairo-spans] Implement a span renderer for cairo_image_surface_t.
+
+ This implementation first produces an A8 alpha mask and then
+ pixman_image_composites the result to the destination with the source.
+ Clipping is handled by pixman when it is region clipping or by
+ cairo-surface-fallback when it is something more complex.
+
+ src/cairo-image-surface.c | 273 +++++++++++++++++++++++++++++++++++++++-------
+ 1 file changed, 233 insertions(+), 40 deletions(-)
+
+commit 7994fc06ad66e31fcbc16f6e8cd9ad226022ec8c
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Aug 28 22:16:07 2008 +0300
+
+ [cairo-spans] New cairo_tor_scan_converter_t.
+
+ Imports a new polygon scan converter implementation from the
+ repository at
+
+ http://cgit.freedesktop.org/~joonas/glitter-paths/
+
+ Glitter paths is a stand alone polygon rasteriser derived from David
+ Turner's reimplementation of Tor Anderssons's 15x17 supersampling
+ rasteriser from the Apparition graphics library. The main new feature
+ in this implementation is cheaply choosing per-scan line between doing
+ fully analytical coverage computation for an entire row at a time
+ vs. using a supersampling approach.
+
+ src/Makefile.sources | 1 +
+ src/cairo-spans-private.h | 10 +
+ src/cairo-spans.c | 18 +-
+ src/cairo-tor-scan-converter.c | 2003 ++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 2027 insertions(+), 5 deletions(-)
+
+commit 2078e5b20fdff76ada6e13b29b2775b7dcd35439
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Jul 31 01:58:08 2008 +0300
+
+ [cairo-spans] New _cairo_path_fixed_fill_using_spans().
+
+ Adds a helper function for backends to use for filling a path using
+ spans.
+
+ src/cairo-spans-private.h | 10 ++++
+ src/cairo-spans.c | 145 ++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 155 insertions(+)
+
+commit 4a9b274eebe674bbc5c66dc3e33256723cdf9829
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Jul 11 00:59:47 2008 +0300
+
+ [cairo-spans] Add a check/create_span_renderer backend methods.
+
+ A surface will have the chance to use span rendering at cairo_fill()
+ time by creating a renderer for a specific combination of
+ pattern/dst/op before the path is scan converted. The protocol is to
+ first call check_span_renderer() to see if the surface wants to render
+ with spans and then later call create_span_renderer() to create the
+ renderer for real once the extents of the path are known.
+
+ No backends have an implementation yet.
+
+ src/cairo-analysis-surface.c | 4 +++
+ src/cairo-beos-surface.cpp | 2 ++
+ src/cairo-directfb-surface.c | 2 ++
+ src/cairo-glitz-surface.c | 2 ++
+ src/cairo-image-surface.c | 2 ++
+ src/cairo-meta-surface.c | 2 ++
+ src/cairo-os2-surface.c | 2 ++
+ src/cairo-paginated-surface.c | 2 ++
+ src/cairo-pdf-surface.c | 2 ++
+ src/cairo-ps-surface.c | 2 ++
+ src/cairo-quartz-image-surface.c | 2 ++
+ src/cairo-quartz-surface.c | 2 ++
+ src/cairo-script-surface.c | 2 ++
+ src/cairo-sdl-surface.c | 2 ++
+ src/cairo-surface.c | 53 ++++++++++++++++++++++++++++++++++++++
+ src/cairo-svg-surface.c | 2 ++
+ src/cairo-type3-glyph-surface.c | 2 ++
+ src/cairo-win32-printing-surface.c | 2 ++
+ src/cairo-win32-surface.c | 2 ++
+ src/cairo-xcb-surface.c | 2 ++
+ src/cairo-xlib-surface.c | 2 ++
+ src/cairoint.h | 30 +++++++++++++++++++++
+ src/test-fallback-surface.c | 2 ++
+ src/test-meta-surface.c | 2 ++
+ src/test-paginated-surface.c | 2 ++
+ 25 files changed, 131 insertions(+)
+
+commit 948c3526dcdbc440395fff4ce9bf4b7553930d92
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Oct 24 17:37:30 2008 +0300
+
+ [cairo-spans] New abstract types for scan converting polygons.
+
+ A cairo_span_renderer_t implementation can be provided by a surface if
+ it wants to render paths as horizontal spans of the alpha component of
+ a mask. Its job is to composite a source pattern to the destination
+ surface when given spans of alpha coverage for a row while taking care
+ of backend specific clipping.
+
+ A cairo_scan_converter_t takes edges of a flattened path and generates
+ spans for a span renderer to render.
+
+ src/Makefile.sources | 2 +
+ src/cairo-spans-private.h | 124 ++++++++++++++++++++++++
+ src/cairo-spans.c | 242 ++++++++++++++++++++++++++++++++++++++++++++++
+ src/cairoint.h | 1 +
+ 4 files changed, 369 insertions(+)
+
+commit 4b227143b3daab75148cd54c9e7580d509864e0d
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Jul 31 01:54:53 2008 +0300
+
+ [cairo-spans] Introduce a type to track which pixels combine in a compositing op.
+
+ A cairo_composite_rectangles_t contains the coordinates of rectangular
+ windows into each of the source pattern, mask, clip and destination
+ surface containing the pixels that will combine in a compositing
+ operation. The idea is to have a uniform way to represent all the
+ translations involved rather than overloading parameters like src_x/y,
+ dst_x/y, etc., sometimes with different incompatible meanings across
+ functions.
+
+ src/cairo-rectangle.c | 21 +++++++++++++++++++++
+ src/cairo-types-private.h | 24 ++++++++++++++++++++++++
+ src/cairoint.h | 7 +++++++
+ 3 files changed, 52 insertions(+)
+
+commit a370d077bc697588b6dac2556afa0b95ff83a77d
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Jul 25 16:35:14 2008 +0300
+
+ [path-fixed] New _cairo_path_fixed_is_region().
+
+ We want to hit the current fast paths for rendering axis aligned
+ rectilinear paths rather than spans, and for that we need to be able
+ to identify regional paths.
+
+ src/cairo-path-fixed.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/cairoint.h | 3 ++
+ 2 files changed, 99 insertions(+)
+
+commit 6acb8223930081f70b422ef93a49ea645c2cc12d
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Sep 12 19:32:12 2008 +0300
+
+ [path-fixed] Avoid extra indirection when iterating already flat paths.
+
+ Perform a plain iteration rather than a flattening one if the path
+ knows it doesn't have any curves.
+
+ src/cairo-path-fixed.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit 0c0f4862c52d68776024f125b003ade455044b27
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Dec 6 13:32:37 2008 +0200
+
+ [perf-diff] Fix cairo-perf-diff for git 1.6
+
+ Since git 1.6 the plumbing commands aren't installed in the user's
+ path by default. This patch fixes cairo-perf-diff to find the
+ git-sh-setup command from git's lib dir.
+
+ perf/cairo-perf-diff | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit afba0c312958852586b846ec615cff1bd3e5cde7
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Sep 12 17:41:45 2008 +0300
+
+ [perf] Add perf tests to hit rectilinear code paths.
+
+ These tests look at the differences in code paths
+ hit by filling paths that are rectilinear (or not) and
+ pixel aligned (or not) with the even-odd and non-zero
+ fill rules. The paths are not simple, so they don't
+ hit the special case quad/triangle tessellator.
+
+ perf/Makefile.am | 3 +-
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/spiral.c | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 204 insertions(+), 1 deletion(-)
+
+commit 8ec58113df417e1ec1d331ab65267c34e6d32096
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Fri Sep 12 17:32:40 2008 +0300
+
+ [perf] Explicitly test rendering a path with lots of intersections.
+
+ We don't have one just for this purpose. The only other
+ path with many intersections that gets actually rendered is zrusin-another,
+ but that might be sped up in the future (say by identifying
+ collinearities up front or something like that.)
+
+ perf/Makefile.am | 3 +-
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/intersections.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 101 insertions(+), 1 deletion(-)
+
+commit 08b486c9aa1d6ad01f1b17a16dcb4d695e8cbf7d
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Thu Dec 4 17:53:06 2008 -0500
+
+ [win32] Use MOD instead of the '%' operator
+
+ Repeat should be handled using MOD instead of '%' so that negative numbers
+ are handled as expected. E.g. -1 mod 600 = 599, not 495 as the '%' operator
+ gives. This was causing https://bugzilla.mozilla.org/show_bug.cgi?id=466258
+
+ Patch from Robert O'Callahan
+
+ src/cairo-win32-surface.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit 540de34453d16092acd2978b513831a02f01f59f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 26 12:53:29 2008 +0000
+
+ [matrix] Optimise invert for simple scaling|translation matrices.
+
+ Peter Hercek reported, and provided a very useful test case for, a bug
+ that caused his applications to crash with Cairo detecting an
+ non-invertible pattern matrix and thus asserting the impossible happened.
+ Bisecting revealed that the bug first appeared with 3c18d95 and
+ disappeared with 0d0c6a1. Since neither of these explain the crash,
+ further investigation revealed a compiler bug (gcc 4.3.3 20081130,
+ earlier versions have different bugs!) that caused the matrix inversion
+ to be invalid iff _cairo_matrix_scalar_multiply() was inlined (i.e. -O0,
+ or an explicit noinline atttribute on that function prevented the bug, as
+ did -msse.) So we apply this workaround to hide the bug in the stable
+ series...
+
+ The matrix is quite often just a simple scale and translate (or even
+ identity!). For this class of matrix, we can skip the full adjoint
+ rearrangement and determinant calculation and just compute the inverse
+ directly.
+ (cherry picked from commit 0d0c6a199c5b631299c72dce80d66ac0f4936a64)
+
+ src/cairo-matrix.c | 26 +++++++++++++++++++++++++-
+ 1 file changed, 25 insertions(+), 1 deletion(-)
+
+commit aff32019a70600fec5040a5a73c4f0b688826064
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Nov 30 23:28:59 2008 -0500
+
+ [Makefile.am] Use top_srcdir instead of srcdir
+
+ Doesn't make much difference here, but makes our intention clear.
+
+ build/Makefile.am.changelog | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 51a75ad932af4a3c3da96ef98de79328afa200c3
+Author: Luo Jinghua <sunmoon1997@gmail.com>
+Date: Sun Nov 30 20:42:49 2008 +0800
+
+ glitz: Replace specified color with an opaque one if dst surface don't have an alpha channel.
+
+ Otherwise if underlying glitz drawable has an alpha channel, glitz_set_rectangles
+ will set its alpha channel to specified value instead of opaque one and effects following
+ composite operations since glitz draws to attached drawable then copies its content to
+ the dst surface. With this commit, three test cases such as operator, operator-alpha and
+ unbounded-operator passes now.
+
+ src/cairo-glitz-surface.c | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+commit 7247017cf5e6b497a5836d9081ee153d27c6b15e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Nov 29 11:47:25 2008 +0000
+
+ Fix up a couple of likely(malloc==NULL)
+
+ Adrian Johnson spotted that I marked a few malloc failures as likely,
+ whoops.
+
+ src/cairo-cff-subset.c | 4 ++--
+ src/cairo-clip.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 1659db2c1f4cc72e51fb43d119822ec7aaa77ac0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Nov 29 10:37:58 2008 +0000
+
+ [test] Fix surface leak from device-offset-positive.
+
+ A forgotten cairo_surface_destroy() caused the similar surface to be
+ leaked during the test.
+
+ test/device-offset-positive.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 0d757a793d7fe2860c6a522124a123864fc97f0a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Nov 29 10:36:34 2008 +0000
+
+ [png] Fix leak of original png data on error path.
+
+ The error path was missing a _cairo_output_stream_destroy() to cleanup a
+ copy of the incoming PNG data.
+
+ src/cairo-png.c | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+commit e6963a5bfebda69a1ef0a986cede84bcd955b6d4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 18 17:26:55 2008 +0000
+
+ Mark allocation failures as unlikely.
+
+ Use the gcc likelihood annotation to indicate that allocation failures are
+ extremely unlikely.
+
+ src/cairo-analysis-surface.c | 4 +--
+ src/cairo-array.c | 4 +--
+ src/cairo-base85-stream.c | 2 +-
+ src/cairo-bentley-ottmann.c | 13 ++++----
+ src/cairo-cache.c | 6 ++--
+ src/cairo-cff-subset.c | 66 ++++++++++++++++++++---------------------
+ src/cairo-clip.c | 8 ++---
+ src/cairo-deflate-stream.c | 2 +-
+ src/cairo-directfb-surface.c | 2 +-
+ src/cairo-font-face.c | 6 ++--
+ src/cairo-ft-font.c | 25 ++++++++--------
+ src/cairo-gstate.c | 17 ++++++-----
+ src/cairo-hash.c | 6 ++--
+ src/cairo-hull.c | 2 +-
+ src/cairo-image-surface.c | 12 ++++----
+ src/cairo-lzw.c | 4 +--
+ src/cairo-meta-surface.c | 24 +++++++--------
+ src/cairo-misc.c | 24 ++++++++++-----
+ src/cairo-output-stream.c | 14 ++++-----
+ src/cairo-paginated-surface.c | 2 +-
+ src/cairo-path-fixed.c | 4 +--
+ src/cairo-path-stroke.c | 4 +--
+ src/cairo-path.c | 8 ++---
+ src/cairo-pattern.c | 36 +++++++++++-----------
+ src/cairo-pdf-operators.c | 6 ++--
+ src/cairo-pdf-surface.c | 34 ++++++++++-----------
+ src/cairo-pen.c | 8 ++---
+ src/cairo-png.c | 14 ++++-----
+ src/cairo-polygon.c | 2 +-
+ src/cairo-ps-surface.c | 16 +++++-----
+ src/cairo-region.c | 2 +-
+ src/cairo-scaled-font-subsets.c | 28 ++++++++---------
+ src/cairo-scaled-font.c | 29 +++++++++---------
+ src/cairo-script-surface.c | 14 ++++-----
+ src/cairo-sdl-surface.c | 2 +-
+ src/cairo-skiplist.c | 2 +-
+ src/cairo-stroke-style.c | 2 +-
+ src/cairo-surface-fallback.c | 2 +-
+ src/cairo-surface.c | 4 +--
+ src/cairo-svg-surface.c | 16 +++++-----
+ src/cairo-traps.c | 4 +--
+ src/cairo-truetype-subset.c | 30 +++++++++----------
+ src/cairo-type1-fallback.c | 15 +++++-----
+ src/cairo-type1-subset.c | 22 +++++++-------
+ src/cairo-type3-glyph-surface.c | 2 +-
+ src/cairo-user-font.c | 2 +-
+ src/cairo-xlib-display.c | 4 +--
+ src/cairo-xlib-screen.c | 2 +-
+ src/cairo-xlib-surface.c | 25 ++++++++--------
+ src/cairo-xlib-visual.c | 2 +-
+ src/cairo.c | 4 +--
+ src/test-fallback-surface.c | 2 +-
+ src/test-meta-surface.c | 2 +-
+ src/test-paginated-surface.c | 2 +-
+ 54 files changed, 300 insertions(+), 294 deletions(-)
+
+commit d1801c23fae3777c7c59e084894a3410f7a1f932
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 18 15:38:37 2008 +0000
+
+ Mark if(status) as being unlikely.
+
+ The error paths should be hit very rarely during normal operation, so mark
+ them as being unlikely so gcc may emit better code.
+
+ src/cairo-analysis-surface.c | 24 +--
+ src/cairo-array.c | 6 +-
+ src/cairo-cache.c | 4 +-
+ src/cairo-cff-subset.c | 208 ++++++++++++-------------
+ src/cairo-clip.c | 23 ++-
+ src/cairo-font-face.c | 14 +-
+ src/cairo-ft-font.c | 44 +++---
+ src/cairo-gstate.c | 66 ++++----
+ src/cairo-image-surface.c | 16 +-
+ src/cairo-lzw.c | 4 +-
+ src/cairo-meta-surface.c | 42 ++---
+ src/cairo-misc.c | 6 +-
+ src/cairo-output-stream.c | 2 +-
+ src/cairo-paginated-surface.c | 38 ++---
+ src/cairo-path-fill.c | 6 +-
+ src/cairo-path-fixed.c | 14 +-
+ src/cairo-path-stroke.c | 56 +++----
+ src/cairo-path.c | 6 +-
+ src/cairo-pattern.c | 34 ++--
+ src/cairo-pdf-operators.c | 60 ++++----
+ src/cairo-pdf-surface.c | 334 ++++++++++++++++++++--------------------
+ src/cairo-pen.c | 6 +-
+ src/cairo-png.c | 14 +-
+ src/cairo-ps-surface.c | 122 +++++++--------
+ src/cairo-scaled-font-subsets.c | 30 ++--
+ src/cairo-scaled-font.c | 72 ++++-----
+ src/cairo-script-surface.c | 160 +++++++++----------
+ src/cairo-sdl-surface.c | 4 +-
+ src/cairo-surface-fallback.c | 82 +++++-----
+ src/cairo-surface.c | 60 ++++----
+ src/cairo-svg-surface.c | 84 +++++-----
+ src/cairo-traps.c | 12 +-
+ src/cairo-truetype-subset.c | 98 ++++++------
+ src/cairo-type1-fallback.c | 44 +++---
+ src/cairo-type1-subset.c | 46 +++---
+ src/cairo-type3-glyph-surface.c | 10 +-
+ src/cairo-user-font.c | 18 +--
+ src/cairo-xlib-screen.c | 4 +-
+ src/cairo-xlib-surface.c | 92 +++++------
+ src/cairo.c | 138 ++++++++---------
+ 40 files changed, 1053 insertions(+), 1050 deletions(-)
+
+commit f0804d4856496a46d0b2270d5815856bf63b4cf8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 28 23:58:55 2008 +0000
+
+ [test] Exercise caps and joins under reflection.
+
+ The nature of the joins depends critically upon whether the joint is
+ clockwise or counter-clockwise, so extend the basic caps-joins test to
+ exercise both conditions i.e. repeat the test under a reflection.
+
+ test/Makefile.am | 6 ++-
+ test/caps-joins-curve.c | 111 +++++++++++++++++++++++++++++++++++++++
+ test/caps-joins-curve.ps.ref.png | Bin 0 -> 3728 bytes
+ test/caps-joins-curve.ref.png | Bin 0 -> 5132 bytes
+ test/caps-joins.c | 40 +++++++++-----
+ test/caps-joins.ps.ref.png | Bin 0 -> 2282 bytes
+ test/caps-joins.ps2.ref.png | Bin 1459 -> 0 bytes
+ test/caps-joins.ps3.ref.png | Bin 1459 -> 0 bytes
+ test/caps-joins.ref.png | Bin 1488 -> 2380 bytes
+ test/dash-curve.ref.png | Bin 39642 -> 39696 bytes
+ 10 files changed, 143 insertions(+), 14 deletions(-)
+
+commit f39dd86e292e9af3438acb041a3a7330fb4a3b22
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 27 00:23:11 2008 +0000
+
+ [test] Add simple cap test.
+
+ Add a test case that only exercises capping, useful for developing
+ new strokers.
+
+ test/Makefile.am | 3 ++
+ test/caps.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/caps.ps.ref.png | Bin 0 -> 1466 bytes
+ test/caps.ref.png | Bin 0 -> 1601 bytes
+ 4 files changed, 90 insertions(+)
+
+commit f2982e103c27cad1edf648dadcfffe1a15763efd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 25 17:23:33 2008 +0000
+
+ [fill] Allow rectangles to be implicitly closed.
+
+ Also scan for appendages of simple rectangles.
+
+ src/cairo-path-fill.c | 2 +-
+ src/cairo-path-fixed-private.h | 4 ++--
+ src/cairo-path-fixed.c | 14 +++++++++-----
+ 3 files changed, 12 insertions(+), 8 deletions(-)
+
+commit d2bcf1d76defda861e1a7f2271046851083ad694
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 28 17:12:03 2008 +0000
+
+ [path] Carefully check for no more points.
+
+ As the empty path points to an embedded buf, we cannot rely on the buf
+ pointer being NULL to mark end-of-path.
+
+ src/cairo-path-fixed-private.h | 10 +++++-----
+ src/cairo-path-fixed.c | 15 ++++++++++++---
+ 2 files changed, 17 insertions(+), 8 deletions(-)
+
+commit 424aba9be558e89b4d42554ca6a5042574e3df75
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 20:38:24 2008 +0000
+
+ [check] Search for the word NOTE
+
+ Add word boundary markers around the regexp so that we only match for the
+ word NOTE and not on substrings like GL_NOTEQUAL.
+
+ src/check-doc-syntax.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 36147140ce56d8d3492b971a9b6ceff97e212e01
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 28 18:54:02 2008 +0000
+
+ [perf] Fix build
+
+ If automake detects the use of cairo_perf_LDADD in an unused conditional
+ that overrides the default - so we need to manually set cairo_perf_LDADD.
+
+ perf/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit ed6bd4766cb47e97b1a6ecb81eff5bf4673d549b
+Author: Luo Jinghua <sunmoon1997@gmail.com>
+Date: Fri Nov 28 07:54:41 2008 +0800
+
+ image: Use unsigned long to compute color masks.
+
+ Use unsigned long in the first place to prevent compiler from
+ expanding signed bit to all upper bits. e.g, a alpha mask 0xff0000
+ will expand to 0xffffffffff00000 on 64 bit platform which is not
+ what we expected.
+
+ src/cairo-image-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 41cb91d417e7c0dc1cc767ea0fb38a1f8b3f4e43
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Wed Nov 26 23:49:12 2008 +0200
+
+ [script] Use the in-tree libcairo for csi-replay.
+
+ csi-replay was missing the in-tree libcairo.la so the build was
+ failing while looking for new symbols from the system libcairo.
+
+ util/cairo-script/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f5634818f1e5cc0adaa326662c099a75f4e615eb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 13 14:56:38 2008 +0000
+
+ [os2] Move include cairo.h before os2.h
+
+ The defines need to come first, but we specify that cairo.h is the first
+ header file to be included by files.
+
+ src/cairo-os2.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 2f0f9a1a593db43dd04507c5989cd0af4b1486de
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Nov 13 10:50:41 2008 +0100
+
+ [os2] Fix includes
+
+ Patch from Dave Yeo to make cairo-os2.h include os2.h directly so the
+ header is standalone.
+
+ src/cairo-os2-private.h | 11 -----------
+ src/cairo-os2-surface.c | 5 -----
+ src/cairo-os2.h | 8 ++++++++
+ 3 files changed, 8 insertions(+), 16 deletions(-)
+
+commit 5591cb58fd94483ec3dc7c169ae8cf0a6b7841bd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 17:43:22 2008 +0000
+
+ [script] Only use zlib if available.
+
+ Conditionally link against zlib - replaying a script will fail if the
+ trace uses a compressed format.
+
+ configure.ac | 5 ++++-
+ util/cairo-script/Makefile.am | 2 +-
+ util/cairo-script/cairo-script-file.c | 5 ++++-
+ util/cairo-script/cairo-script-operators.c | 2 ++
+ 4 files changed, 11 insertions(+), 3 deletions(-)
+
+commit 9432c0c9b89ed6b3d369b377cf884918cd6180db
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 17:33:35 2008 +0000
+
+ [script] Link the interpreter against the built library.
+
+ Ensure we correctly link against the version of cairo just built.
+
+ util/cairo-script/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 815e5b962ef8477c344da0f0b52c1f85c9854777
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 17:30:29 2008 +0000
+
+ [script] Add a fallback image surface for replay
+
+ If we do not have a native windowing surface compiled into the library,
+ just replay the script to an image surface.
+
+ util/cairo-script/csi-replay.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 5e376523628d5e2078e395ea7263a04bacd37c47
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 17:26:57 2008 +0000
+
+ [skiplist] Check for ffs()
+
+ Wine at least does not provide ffs(), so check at configure time and
+ open-code a replacement.
+
+ build/configure.ac.system | 2 +-
+ src/cairo-skiplist.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+commit 60282b866aab359840b4bcaa6aaccaca2eccd3d2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 16:58:29 2008 +0000
+
+ [glitz] Fix clone_similar().
+
+ Clone similar open-coded various image surface functions and failed to
+ clone a sub-region resulting in failures for mask-transformed-* and
+ large-source.
+
+ src/cairo-glitz-surface.c | 458 ++++++++++++++--------------------------------
+ 1 file changed, 137 insertions(+), 321 deletions(-)
+
+commit 47275c7ece06c0d02f2d7c9aa81d87a7144392b0
+Author: Paolo Bonzini <bonzini@gnu.org>
+Date: Wed Nov 26 15:56:48 2008 +0100
+
+ [test] Fix glitz-surface-source test
+
+ The recent changes to separate glitz/agl broke the compilation of the
+ glitz-surface-source test.
+
+ test/glitz-surface-source.c | 96 +++++++++++++++++++++++++++++++++-
+ test/glitz-surface-source.ps2.ref.png | Bin 0 -> 376 bytes
+ test/glitz-surface-source.ps3.ref.png | Bin 0 -> 376 bytes
+ 3 files changed, 94 insertions(+), 2 deletions(-)
+
+commit a84ea7829065b7e1d33d6fed6bcf0c7c8abd383a
+Author: Paolo Bonzini <bonzini@gnu.org>
+Date: Wed Nov 26 15:49:00 2008 +0100
+
+ [test] Add quartz-surface-source test
+
+ Add a simple test to exercise using a Quartz surface as a source.
+
+ test/Makefile.am | 6 ++++-
+ test/quartz-surface-source.c | 42 +++++++++++++++++++++++++++++++++
+ test/quartz-surface-source.ps2.ref.png | Bin 0 -> 376 bytes
+ test/quartz-surface-source.ps3.ref.png | Bin 0 -> 376 bytes
+ test/quartz-surface-source.ref.png | Bin 0 -> 332 bytes
+ 5 files changed, 47 insertions(+), 1 deletion(-)
+
+commit 993941cfd701eb222b81cdddeabf6f7ff2daa150
+Author: Paolo Bonzini <bonzini@gnu.org>
+Date: Wed Nov 26 13:32:11 2008 +0000
+
+ [perf] Fix SDL compilation for MacOS X
+
+ The attached patch makes the SDL tests compile under Mac OS X. The
+ problem is:
+
+ 1) that <SDL_main.h> should be included in files that define the main
+ function for SDL Mac OS X programs (this is not true with the upcoming
+ SDL 1.3 release).
+
+ 2) that -lSDLmain, because it is statically linked, needs the Cocoa
+ framework in the LDADD of the main program. Again, 1.3 will not require
+ this.
+
+ perf/Makefile.am | 4 ++++
+ perf/cairo-perf.c | 4 ++++
+ test/Makefile.am | 4 ++++
+ test/cairo-test-runner.c | 4 ++++
+ 4 files changed, 16 insertions(+)
+
+commit 8a5b55ca6c69671a138f65ab15bcf93163f24a37
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 13:26:40 2008 +0000
+
+ [matrix] Impose a maximum number of refinement iterations
+
+ Ensure we do not loop forever trying to minimise the error between the
+ pixman and cairo matrices - for instance when the FPU is not running at
+ full precision.
+
+ src/cairo-matrix.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 4218699642c621eb3098a5251ef88d8c7d8a96d2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 11:54:29 2008 +0000
+
+ [skiplist] Use ffs()
+
+ Use ffs() [find-first-set-bit] instead of open-coding, which is about 25%
+ faster on my test machine.
+
+ src/cairo-skiplist.c | 11 +----------
+ 1 file changed, 1 insertion(+), 10 deletions(-)
+
+commit 039437c9cfaeed7a2cc1977623ab8bda9854b58a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 26 10:31:09 2008 +0000
+
+ [png] Use FILE* instead of void*.
+
+ Adrian Johnson reported that cygwin complained about the use of the void *
+ within feof() as it was using a macro and attempted a to deference the
+ void*...
+
+ src/cairo-png.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 8fa3cd95641e9138406d651b0734ee84f1da60d2
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Nov 26 06:40:47 2008 +1030
+
+ Change uint to uint32_t
+
+ src/cairo-image-info.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e828f7330633cd839f094bf8409de0bcff17c95c
+Author: Luo Jinghua <sunmoon1997@gmail.com>
+Date: Wed Nov 26 00:09:11 2008 +0800
+
+ glitz: Apply fixup to unbounded operators to clear area outside of mask
+
+ src/cairo-glitz-surface.c | 79 +++++++++++++++++++++++++++++++++++++++--------
+ 1 file changed, 66 insertions(+), 13 deletions(-)
+
+commit 449e7518bee5d0238138176b3b71d137c6fc01e7
+Author: Luo Jinghua <sunmoon1997@gmail.com>
+Date: Tue Nov 25 22:55:24 2008 +0800
+
+ glitz: set correct parameters for linear and radial pattern.
+
+ Glitz expects 16.16 fixed point, but we use 24.8 fixed point by default.
+
+ src/cairo-glitz-surface.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+commit 3bde440e00ba19e968b854c1505dc4d1ace83504
+Author: Luo Jinghua <sunmoon1997@gmail.com>
+Date: Tue Nov 25 22:36:53 2008 +0800
+
+ glitz: fixup another stupid bug in fill_rectangles.
+
+ Wny I doesn't notice them before. Without fixes it fills n_rect times of
+ the first one in the rectangle list.
+
+ src/cairo-glitz-surface.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit 4ac38f7c2bde67cab37805cab8a2effb2a8617e4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 25 11:52:01 2008 +0000
+
+ [fill] Emit rectangles for GdkRegion
+
+ Scan the path for a series of consistently wound rectangles.
+
+ src/cairo-path-fill.c | 85 ++++++++++++++++++++++------
+ src/cairo-path-fixed-private.h | 17 ++++++
+ src/cairo-path-fixed.c | 124 ++++++++++++++++++++++++++++++++++++++---
+ 3 files changed, 201 insertions(+), 25 deletions(-)
+
+commit 23df74e5ffd6be876f3c19ee9d71683f5a0ed6f4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 25 11:45:30 2008 +0000
+
+ [xlib] Cosmetic tweak.
+
+ Tightly scope the local rects.
+
+ src/cairo-xlib-surface.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 06fabd6cbd0ad187f5f9f155d6b7962f76ec5dda
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 25 12:05:26 2008 +0000
+
+ [path] Fix up extents.
+
+ Forgot to round the box to the integer rectangle and missed why only
+ testing on image. Very naughty.
+
+ src/cairo-analysis-surface.c | 2 +-
+ src/cairo-path-bounds.c | 20 +++++++++++---------
+ 2 files changed, 12 insertions(+), 10 deletions(-)
+
+commit 1f44fb97f3973aa90c4f27bcf9341149370c825d
+Author: Luo Jinghua <sunmoon1997@gmail.com>
+Date: Tue Nov 25 20:45:03 2008 +0800
+
+ cairo-script: add $(top_builddir)/src to CPPPATH.
+
+ $(top_builddir)/src is needed to find cairo-features.h while
+ building out of tree.
+
+ util/cairo-script/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 487c708b3b6727eb2f8d3714edeae356a7cbbd40
+Author: Paolo Bonzini <bonzini@gnu.org>
+Date: Tue Nov 25 20:40:37 2008 +0800
+
+ [boilerplate] fix compilation for glitz-agl
+
+ As suggested on the list, this splits the cairo-boilerplate-glitz.c
+ file in three separate files, one for each backend. Furthermore,
+ it fixes a few problems in compilation of the AGL backend test harness.
+
+ boilerplate/Makefile.sources | 6 +-
+ boilerplate/cairo-boilerplate-glitz-agl.c | 166 +++++++++
+ boilerplate/cairo-boilerplate-glitz-glx.c | 244 ++++++++++++
+ boilerplate/cairo-boilerplate-glitz-private.h | 6 +
+ boilerplate/cairo-boilerplate-glitz-wgl.c | 164 ++++++++
+ boilerplate/cairo-boilerplate-glitz.c | 517 --------------------------
+ 6 files changed, 585 insertions(+), 518 deletions(-)
+
+commit ca80b8c652dde4449216da9d11691202eef97bbd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 25 10:25:24 2008 +0000
+
+ [pdf] Add a default case to silence the compiler.
+
+ The foolish compiler was emitting a warning about a potential
+ uninitialized variable even though the switch was fully populated.
+
+ src/cairo-pdf-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit b8991a1c69ae5d8fb630296a3c689aa8d1546671
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 25 10:11:59 2008 +0000
+
+ [in-fill] Add the implicit close-path during move-to.
+
+ When interpreting a fixed-path for a fill operation, any move-to
+ implicitly closes the current path.
+
+ src/cairo-gstate.c | 12 ++++++------
+ src/cairo-path-in-fill.c | 23 +++++++++++++----------
+ src/cairo.c | 11 ++++-------
+ src/cairoint.h | 4 ++--
+ 4 files changed, 25 insertions(+), 25 deletions(-)
+
+commit 59de6fb89e80ee6aeeb2984b545ceb9bb9f0f7bb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 25 10:04:50 2008 +0000
+
+ [path] Compute approximate extents.
+
+ When computing the bounds of the clip path, we care more for a fast result
+ than absolute precision as the extents are only used as a guide to trim
+ the future operations. So computing the extents of the path suffices.
+
+ src/cairo-analysis-surface.c | 16 +++--------
+ src/cairo-clip.c | 25 +++---------------
+ src/cairo-gstate.c | 13 +++------
+ src/cairo-path-bounds.c | 63 ++++++++++++++++++++++++++++++++++++++++----
+ src/cairo-surface.c | 8 +++---
+ src/cairo.c | 10 +++----
+ src/cairoint.h | 8 ++++--
+ 7 files changed, 82 insertions(+), 61 deletions(-)
+
+commit b6bf047494fc308fff00d818b2920d8ba4aa7aed
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 21 15:27:31 2008 +0000
+
+ [clip] Check for error surface
+
+ The update to use a NULL backend with an error surface broke creating a
+ context from an error surface.
+
+ src/cairo-clip.c | 2 +-
+ src/cairo.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 721cad9b24c2ad049320950d231ed84046c5b8ab
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Nov 24 22:41:03 2008 +1030
+
+ Fix typo
+
+ src/cairo-misc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 70e4c532722bbcad1eca50438e6ab2cdd0ea9b53
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Nov 24 22:38:30 2008 +1030
+
+ Document location of image format specifications
+
+ src/cairo-image-info.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+commit 4ca644af274bda4603e7d02dbeca8641bbb3ff79
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Nov 24 00:29:54 2008 +1030
+
+ Win32-print: Add PNG embedding support
+
+ src/cairo-win32-printing-surface.c | 106 +++++++++++++++++++++++++++----------
+ src/cairo-win32-private.h | 3 ++
+ 2 files changed, 82 insertions(+), 27 deletions(-)
+
+commit f59a3e03fc91dc4a1769b07bda77a364cc570bc8
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 23 22:27:49 2008 +1030
+
+ Add PNG get info function
+
+ src/cairo-image-info-private.h | 5 +++++
+ src/cairo-image-info.c | 46 ++++++++++++++++++++++++++++++++++++------
+ 2 files changed, 45 insertions(+), 6 deletions(-)
+
+commit 1892907e24d9f9f31942c6962aaa6d2ff9553ce7
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 23 21:36:40 2008 +1030
+
+ PDF: Disable PDF 1.5 features when version 1.4 is selected
+
+ JPEG 2000 image embedding and ActualText marked content are
+ PDF 1.5 features.
+
+ src/cairo-pdf-operators-private.h | 5 +++++
+ src/cairo-pdf-operators.c | 8 ++++++++
+ src/cairo-pdf-surface.c | 7 +++++++
+ 3 files changed, 20 insertions(+)
+
+commit c4a57385fa2e69020f43519bea21b98182bf5fd7
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 23 21:12:08 2008 +1030
+
+ PDF: Add cairo_pdf_surface_restrict_to_version API
+
+ Now that we are using PDF 1.5 features, add an api to select between
+ version 1.4 or 1.5.
+
+ src/cairo-pdf-surface-private.h | 2 +
+ src/cairo-pdf-surface.c | 116 +++++++++++++++++++++++++++++++++++++---
+ src/cairo-pdf.h | 24 +++++++++
+ 3 files changed, 136 insertions(+), 6 deletions(-)
+
+commit d85e836911d661275c29f2348a047e5d911f9004
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 23 21:03:22 2008 +1030
+
+ PDF: Add newline to end of binary streams
+
+ PDF requires white space before the "endstream"
+
+ src/cairo-pdf-surface.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit b87d81ef0bb52570385a3c9e331651cbeb87b2bb
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 23 19:29:26 2008 +1030
+
+ Add image/jp2 to mime-data test
+
+ test/jp2.jp2 | Bin 0 -> 2999 bytes
+ test/mime-data.c | 7 ++++++-
+ test/mime-data.pdf.ref.png | Bin 4466 -> 6482 bytes
+ test/mime-data.ps.ref.png | Bin 4466 -> 4554 bytes
+ test/mime-data.ref.png | Bin 155 -> 185 bytes
+ test/mime-data.svg.ref.png | Bin 6153 -> 6264 bytes
+ 6 files changed, 6 insertions(+), 1 deletion(-)
+
+commit 7fdb712cbaadc95c02f607a9f6c995f8beb01342
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 23 18:56:12 2008 +1030
+
+ PDF: Add JPEG2000 image embedding
+
+ Requires increasing the PDF version to 1.5.
+
+ src/cairo-pdf-surface.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 51 insertions(+), 1 deletion(-)
+
+commit 0746efbf0718095920d9258942d32a7023d22131
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 23 18:47:13 2008 +1030
+
+ Add JPEG2000 mimetype and image info function
+
+ src/cairo-image-info-private.h | 4 ++
+ src/cairo-image-info.c | 100 +++++++++++++++++++++++++++++++++++++++++
+ src/cairo-surface-fallback.c | 1 +
+ src/cairo.h | 1 +
+ 4 files changed, 106 insertions(+)
+
+commit 5de1e4de938d03406ce3364c6c1baa958f210410
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 23 18:33:58 2008 +1030
+
+ Move cairo-jpeg-info.c to cairo-image-info.c
+
+ Other image formats will be added to the same file.
+
+ src/Makefile.sources | 4 ++--
+ ...ro-jpeg-info-private.h => cairo-image-info-private.h} | 16 ++++++++--------
+ src/{cairo-jpeg-info.c => cairo-image-info.c} | 16 ++++++++--------
+ src/cairo-pdf-surface.c | 6 +++---
+ src/cairo-ps-surface.c | 6 +++---
+ src/cairo-svg-surface.c | 6 +++---
+ src/cairo-win32-printing-surface.c | 6 +++---
+ 7 files changed, 30 insertions(+), 30 deletions(-)
+
+commit 63180edf6f7cc81beda626190ca1055efa330fda
+Author: Luo Jinghua <sunmoon1997@gmail.com>
+Date: Sun Nov 23 11:42:26 2008 +0800
+
+ glitz: set clone_offset_{x, y} on success in clone_similar.
+
+ With this fix, glitz backend passes 135 test cases and fails 66 test cases.
+
+ src/cairo-glitz-surface.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 36c1b3e5919f119a054e425ca03f7ce810d3e7ec
+Author: Luo Jinghua <sunmoon1997@gmail.com>
+Date: Sun Nov 23 10:27:49 2008 +0800
+
+ glitz: fixup a stupid bug in get_image.
+
+ _pixman_format_from_masks returns a boolean instead of cairo status code.
+ Without this fix, get_image bails out over and over again even operations
+ was completed successfully. :-(
+
+ src/cairo-glitz-surface.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+commit c8b70aacc6b5523e2f73bebf4f61e876de1c3b3f
+Author: Nicolas Bruguier <gandalfn@club-internet.fr>
+Date: Sat Nov 22 18:16:17 2008 +0800
+
+ glitz: bring glitz backend to more or less working state.
+
+ Thanks Nicolas Bruguier for writing the original patch and
+ thanks Paolo Bonzini for pointing out. This patch converts 24.8
+ fixed point values into 16.16 ones before passing them down to glitz.
+ And I fixed a use-after-free issue in _cairo_glitz_surface_set_clip_region.
+ glitz_surface_set_clip_region takes the pointer and doesn't copy the
+ clip boxes, the original code frees the clip boxes immediately after
+ setting clip region. Keeping the box around with the life time of clip
+ region fixes the bug.
+
+ src/cairo-glitz-surface.c | 329 +++++++++++++++++++++++-----------------------
+ 1 file changed, 163 insertions(+), 166 deletions(-)
+
+commit 77e60df32fa59328bd32095c77f8c360805b5db7
+Author: Maarten Maathuis <madman2003@gmail.com>
+Date: Sat Nov 8 15:29:40 2008 +0100
+
+ cairo-xcb: avoid leaking memory
+
+ src/cairo-xcb-surface.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 361962b7fb4385f164673991670b6fce0839d32a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 08:42:30 2008 +0000
+
+ [directfb] Compile fix with debug enabled.
+
+ Fix a trivial compile failure reported here:
+ Bug 18322 - bug in _cairo_directfb_surface_release_source_image function
+ (http://bugs.freedesktop.org/show_bug.cgi?id=18322)
+
+ src/cairo-directfb-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit f15b1f26becf28457e9ccf8903257a0dec25d547
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 20 23:19:19 2008 +0000
+
+ [region] Use the caller supplied array for extracting boxes.
+
+ Allow the user to pass in a pre-allocated array and use it if the number
+ of boxes permits. This eliminates the frequent allocations during clipping
+ by toolkits.
+
+ src/cairo-directfb-surface.c | 6 ++++--
+ src/cairo-glitz-surface.c | 1 +
+ src/cairo-paginated-surface.c | 3 +++
+ src/cairo-region.c | 11 ++++++-----
+ src/cairo-sdl-surface.c | 1 +
+ src/cairo-surface.c | 15 ++++++++-------
+ src/cairo-win32-surface.c | 3 ++-
+ src/cairo-xcb-surface.c | 1 +
+ src/cairo-xlib-surface-private.h | 2 +-
+ src/cairo-xlib-surface.c | 13 ++++++++-----
+ 10 files changed, 35 insertions(+), 21 deletions(-)
+
+commit 9d2c55c661885c06eed44e810004c2ebe07038d3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 20 21:53:34 2008 +0000
+
+ [traps] Embed sufficient traps to accommodate a stroke rectangle
+
+ Small numbers of traps are frequently generated from either a path of a
+ single line, or that of a rectangle. Therefore should embed sufficient
+ storage with cairo_traps_t to accommodate the stroke of a single rectangle
+ (e.g. a pango unknown glyph hexbox) to avoid frequent allocations.
+
+ src/cairoint.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit a11442154d958d5c9694eb944a715a6c689fda85
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 20 18:00:40 2008 +0000
+
+ [cairo] Allocate glyphs on the stack for show_text().
+
+ First try to use a stack buffer for the glyphs and clusters if the user
+ calls cairo_show_text() - for example, as pango does to draw the unknown hex
+ box.
+
+ src/cairo.c | 18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
+
+commit 9556266ffcb1c34187730af90bb847950d6db66e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 20 09:40:25 2008 +0000
+
+ [surface] Make the error surfaces have a NULL backend.
+
+ By using a NULL backend for the error surfaces, instead of a pointer to
+ the image surface backend end, we save a few lookup/redirections during
+ dynamic linking.
+
+ src/cairo-surface.c | 22 ++++++----------------
+ 1 file changed, 6 insertions(+), 16 deletions(-)
+
+commit cfd2c73826f5bf20624fbdf5b16fd08fbe18a914
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 20 09:36:02 2008 +0000
+
+ [image] Trim image surface size by a few bytes
+
+ Convert an infrequently accessed series of cairo_bool_t and short enums
+ to a common bitfield.
+
+ src/cairo-image-surface.c | 11 ++++++-----
+ src/cairoint.h | 7 ++++---
+ 2 files changed, 10 insertions(+), 8 deletions(-)
+
+commit 1f48b36933b5ff082edf3e221563c15c3bf16b75
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 20 12:41:18 2008 +0000
+
+ [script] Build fix for ! HAS_FT_FONT
+
+ Correct the macro definition used when compiling without FreeType.
+
+ util/cairo-script/cairo-script-operators.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit 0d5e533b6cc43c4ebc030140933247cf160d47cd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 17:03:13 2008 +0000
+
+ [trace] Correctly push font-face onto the operand stack.
+
+ We tried to push a reference to an undefined font-face, now we just copy
+ from the operand stack.
+
+ util/cairo-trace/trace.c | 61 ++++++++++++++++++++++++++++--------------------
+ 1 file changed, 36 insertions(+), 25 deletions(-)
+
+commit b426346b482e2687081433213ae107cb7b2ebe58
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 16:04:57 2008 +0000
+
+ [trace] Construct matrices directly
+
+ Avoid building a temporary array by constructing the matrix directly.
+
+ util/cairo-trace/trace.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit 727ff2bd7260f26c9390079258c43e6890ef2284
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 14:25:20 2008 +0000
+
+ [xlib] Explicitly track whether the GC has clip_rects.
+
+ Simplify the logic and remove some pessimism from the code by explicitly
+ tracking when we set clip rectangles on the GC.
+
+ src/cairo-xlib-surface-private.h | 1 +
+ src/cairo-xlib-surface.c | 6 +++---
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+commit 63a86a470fb88ee876414164e7e26789c1065b82
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 14:04:01 2008 +0000
+
+ [surface] Replay meta surfaces to a similar surface.
+
+ When cloning a meta-surface, first attempt to replay it to a similar
+ surface rather than a full-sized image buffer.
+
+ src/cairo-surface.c | 30 ++++++++++++++++++++++++++++--
+ 1 file changed, 28 insertions(+), 2 deletions(-)
+
+commit 7657bda0172f823fba61db4f66e0166c7619fbd2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 18 11:23:33 2007 +0000
+
+ [perf/pythagoras_tree] Another fractal.
+
+ Test lots of rectangles and recursion path construction.
+
+ perf/Makefile.am | 3 +-
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/pythagoras-tree.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 90 insertions(+), 1 deletion(-)
+
+commit abd0a2627d198eddb628bbc1f2974435a74655a2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Dec 18 10:49:23 2007 +0000
+
+ [perf/dragon] Add a dragon curve perf case.
+
+ Inspired by http://labs.trolltech.com/blogs/2007/08/31/rasterizing-dragons/
+ and http://en.wikipedia.org/wiki/Dragon_curve, add a performance test case
+ to measure drawing this space-filling fractal curve.
+
+ perf/Makefile.am | 3 +-
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/dragon.c | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 170 insertions(+), 1 deletion(-)
+
+commit 81ef772aa0bf512ec5ad8752da160117498bdb30
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 11:00:35 2008 +0000
+
+ [xlib] Mark GC as dirty if we have an outstanding clip.
+
+ Ginn Chen reported a regression with Firefox where "the whole area of web
+ page is transparent until it redraws", and bisected it to the change to
+ lazily clear the clip.
+
+ The bug would appears to be when we have an inconsistent GC clip - i.e.
+ the clip on the surface has been cleared, but we have not yet used and
+ thus cleared the GC, so that we did not mark the GC as having a clip set
+ when we freed it.
+
+ src/cairo-xlib-surface.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit c41b99268dd2424d09ab12ca560d5db30b6b6faf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 11:49:04 2008 +0000
+
+ Conditionally include byteswap.h
+
+ Fixup compilation by copying the checks from cairo-wideint-private.h to
+ conditionally include byteswap.h and provide fallback implementations.
+
+ util/cairo-script/cairo-script-interpreter.c | 1 -
+ util/cairo-script/cairo-script-operators.c | 1 -
+ util/cairo-script/cairo-script-private.h | 17 +++++++++++++++++
+ util/cairo-script/cairo-script-scanner.c | 1 -
+ util/cairo-trace/trace.c | 17 ++++++++++++++++-
+ 5 files changed, 33 insertions(+), 4 deletions(-)
+
+commit 8345fedbe4d4d003c1f26a78ac7c512c04d04173
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 11:44:42 2008 +0000
+
+ [spline] Fix compile.
+
+ Do not return the result of a void function. gcc chose to not warn about
+ this when removing the return parameter...
+
+ src/cairo-spline.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit b6c371a47f33ec10d4d6130cc15677761df2bdfd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 08:44:24 2008 +0000
+
+ [pattern] Cosmetic.
+
+ surface is equal to pattern->surface at this point.
+
+ src/cairo-pattern.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 7894abbe6d43b10ab2a92d99bdd6a08878e9022c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 19 08:37:26 2008 +0000
+
+ [test] Support foreground only execution.
+
+ Add an option to prevent forking - which makes it difficult to
+ valgrind/gdb individual tests.
+
+ test/Makefile.am | 1 +
+ test/cairo-test-runner.c | 120 ++++++++++++++++++++++++++---------------------
+ 2 files changed, 67 insertions(+), 54 deletions(-)
+
+commit 645df0c6d2a3d9999bb18ddb8bb9995b3d597554
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 18 16:37:59 2008 +0000
+
+ [scaled-font] Clean-up compiler warning.
+
+ gcc warns that the status may be used uninitialized, so fix it.
+
+ src/cairo-scaled-font-subsets.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+commit 2fdee490745a6c3a75691907aadf8ae38c57234c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 17 12:22:39 2008 +0000
+
+ [compiler] likelihood macros
+
+ Behdad prefers these to be upper-case to be consistent with G_UNLIKELY and
+ friends. However, as I intend to use these for nearly all instances of
+ if(status), I suggest that we keep to the short and not so loud:
+ if (unlikely (status))
+ return status;
+
+ src/cairo-compiler-private.h | 8 ++++----
+ src/cairo-hash.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 97edc680c189205ac2f4e150009f1f1cbe55ba1a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 18 10:49:27 2008 +0000
+
+ [twin] Reduce tolerance.
+
+ As the glyphs are rendered to cache, ensure that they are rendered at the
+ highest quality settings.
+
+ src/cairo-font-face-twin.c | 1 +
+ src/cairo.c | 1 +
+ src/cairoint.h | 1 +
+ test/Makefile.am | 1 +
+ test/twin.pdf.ref.png | Bin 0 -> 1673 bytes
+ test/twin.ref.png | Bin 1673 -> 1718 bytes
+ 6 files changed, 4 insertions(+)
+
+commit e50538863a2c063eba61b36cc08eff6eeb712956
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 18 10:45:19 2008 +0000
+
+ [twin] Tweak line width.
+
+ Slightly increase line width to eliminate internal holes in the characters
+ where the strokes were not quite overlapping.
+
+ src/cairo-font-face-twin.c | 2 +-
+ test/twin.c | 2 +-
+ test/twin.ps2.ref.png | Bin 1167 -> 1095 bytes
+ test/twin.ps3.ref.png | Bin 1167 -> 1095 bytes
+ test/twin.ref.png | Bin 1836 -> 1673 bytes
+ test/twin.svg11.ref.png | Bin 1773 -> 1662 bytes
+ test/twin.svg12.ref.png | Bin 1773 -> 1662 bytes
+ 7 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 91c17d33324b51a3876bc6ce778c684111139303
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 18 00:32:54 2008 +0000
+
+ [trace] Simple unbounded cache for symbol lookups.
+
+ Reparsing the dwarf info for every lookup is very slow, so cache the
+ symbol lookups. This initial implementation is unbounded in the simple
+ belief that the actual number of unique lookups during a program's
+ lifetime should be fairly small. (Extending to a bounded MRU list is left
+ as an exercise for the reader.)
+
+ util/cairo-trace/lookup-symbol.c | 70 ++++++++++++++++++++++++++++++++++------
+ util/cairo-trace/trace.c | 9 +++---
+ 2 files changed, 65 insertions(+), 14 deletions(-)
+
+commit 2839a0e800d6cc12b28da44f30a9e278ceac65aa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 16 20:04:55 2008 +0000
+
+ [script] Add a simple replay.
+
+ A very simple replay program for trace replay.
+
+ util/cairo-script/.gitignore | 1 +
+ util/cairo-script/Makefile.am | 7 +++-
+ util/cairo-script/csi-replay.c | 85 ++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 92 insertions(+), 1 deletion(-)
+
+commit b091c5bfcad170fd563699a1c8b11e7d25d159a2
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Tue Nov 18 00:20:38 2008 +0200
+
+ BIBLIOGRAPHY: Cite Hars & Petruska's Pseudorandom Recursions paper.
+
+ BIBLIOGRAPHY | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+commit 3a82f943988413e0d3fada9932bb385f4cbdb3c7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 16 18:21:52 2008 +0000
+
+ [test] Add util/cairo-script to include path.
+
+ any2ppm needs the include path for cairo-script-interpreter so that it can
+ be built without an existing install.
+
+ test/Makefile.am | 3 ++-
+ test/any2ppm.c | 3 ---
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+commit 997fa6a7729b72b25d9275929bf190e71eed1b9d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 16 17:43:40 2008 +0000
+
+ [configure] Remove old line for CairoScript testing.
+
+ CairoScript testing should now be unconditional so remove the surplus
+ message.
+
+ build/configure.ac.features | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit a2eff7c7deb9b41c387472bb91b9a7b9c8f319f0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 16 16:19:25 2008 +0000
+
+ [test] Add build rule for libcairo-script-interpreter.la
+
+ Add a rule to build the cairo-script-interpreter on behalf of any2ppm.
+
+ test/Makefile.am | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit bf309aab6072ee1004073e71bccdf3c8040a8ad6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Nov 15 11:36:41 2008 +0000
+
+ [configure] Delete CAN_TEST_SCRIPT
+
+ A CairoScript interpreter is built under utils and so is always available.
+
+ configure.ac | 3 ---
+ test/any2ppm.c | 8 --------
+ 2 files changed, 11 deletions(-)
+
+commit d7873eecc598a558a2a862add8e9b056c4a23a4a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 14 17:18:47 2008 +0000
+
+ [spline] Eliminate intermediate allocations during spline decomposition.
+
+ The spline decomposition code allocates and stores points in a temporary
+ buffer which is immediately consumed by the caller. If the caller supplies
+ a callback that handles each point computed along the spline, then we can
+ use the point immediately and avoid the allocation.
+
+ src/cairo-bentley-ottmann.c | 12 +--
+ src/cairo-path-fill.c | 23 ++--
+ src/cairo-path-fixed.c | 27 ++---
+ src/cairo-path-in-fill.c | 21 ++--
+ src/cairo-path-stroke.c | 101 +++++++++---------
+ src/cairo-pen.c | 254 +++++++++++++++++++++++++++++---------------
+ src/cairo-polygon.c | 23 ++--
+ src/cairo-spline.c | 121 ++++-----------------
+ src/cairo-types-private.h | 13 ++-
+ src/cairoint.h | 65 ++++++++----
+ 10 files changed, 331 insertions(+), 329 deletions(-)
+
+commit 3bf8379408ce9b1e08d130bcd1076766e36f1bef
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 14 09:50:29 2008 +0000
+
+ [type1] Propagate fatal NO_MEMORY erro from FreeType.
+
+ If FreeType fails to load the glyph, check for a fatal error before
+ falling back (and effectively masking the fatal condition).
+
+ src/cairo-type1-subset.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+commit db9ed77d8aa4f4b4c8410e52e5bbd16ffa94ee24
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 13 20:36:14 2008 +0000
+
+ [cairo] FLush surface on cairo_destroy()
+
+ When discussing the implications of snapshot cow, one of the questions
+ that we raised was what happens on cairo_destroy()? The lifetime of the
+ context implicitly marks the extents of the drawing operations, typically
+ the expose event (or perhaps one phase of it). Therefore at the end of the
+ sequence we implicitly wish to flush the graphics events to the surface.
+
+ src/cairo.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+commit 032be9849dfc32ec8802a4f086619755a3a397f5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 13 16:36:01 2008 +0000
+
+ [skiplist] Inline testing.
+
+ Add a loop to create a skip list to allow manual checking.
+
+ src/Makefile.am | 5 ++++-
+ src/cairo-skiplist.c | 36 ++++++++++++++++++++++++++++++++++++
+ 2 files changed, 40 insertions(+), 1 deletion(-)
+
+commit e44c1f26e48cfb2f74834b6a8ef8532b0bd28982
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Sat Oct 18 01:15:44 2008 +0300
+
+ Use a smaller and faster random number generator.
+
+ The previous LFSR generator used a large table to be speedy. The
+ replacement generator is the single stage generator (1) from section
+ 5.4 of [HP2007], requires no tables or extra state. I've run the
+ generator through Rob Brown's extended Dieharder test suite and it
+ passes all but one self-proclaimed buggy test (-d2) and the 2D sphere
+ minimum distance test (-d12).
+
+ [HP2007] Hars L. and Petruska G., ``Pseudorandom Recursions: Small and Fast Pseurodandom Number Generators for Embedded Applications'',
+ Hindawi Publishing Corporation
+ EURASIP Journal on Embedded Systems
+ Volume 2007, Article ID 98417, 13 pages
+ doi:10.1155/2007/98417
+ http://www.hindawi.com/getarticle.aspx?doi=10.1155/2007/98417&e=cta
+
+ src/cairo-skiplist.c | 200 +++------------------------------------------------
+ 1 file changed, 11 insertions(+), 189 deletions(-)
+
+commit a4c5371b5e6d0df71efc75fee6f6a8fe8c6d3488
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 13 14:56:38 2008 +0000
+
+ [os2] Move include cairo.h before os2.h
+
+ The defines need to come first, but we specify that cairo.h is the first
+ header file to be included by files.
+
+ src/cairo-os2.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 456252a1c2b00685bee18c01bf27738d6125b4f8
+Merge: 3b11997a2 ab61544b3
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Nov 14 15:27:34 2008 +0100
+
+ Merge branch '1.8'
+
+ Conflicts:
+
+ NEWS
+ cairo-version.h
+
+commit ab61544b30406a49abc1f559d81129edce6d41ec
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Nov 14 13:17:01 2008 +0100
+
+ Increment version to 1.8.5 after the 1.8.4 release.
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 66e8f142e381501d114888c2d1fc1e7f6d6a9857
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Nov 14 11:08:40 2008 +0100
+
+ Increment version to 1.8.4
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b9c1344ad82d38bb86fa85fbb565b2de64aa0e35
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Nov 14 11:07:10 2008 +0100
+
+ NEWS: Add notes for cairo 1.8.4
+
+ Just a few bug fixes here.
+
+ NEWS | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 52 insertions(+)
+
+commit 3b11997a23baa9e38e87b584ee29f4888a5d92f7
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Nov 13 18:01:47 2008 +0200
+
+ [cairo-script] Remove outdated #error to allow compilation to succeed.
+
+ The interpreter doesn't depend on the script surface anymore.
+
+ util/cairo-script/cairo-script-interpreter.h | 6 ------
+ 1 file changed, 6 deletions(-)
+
+commit d654d528de16769932131da80f4b925151d50103
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Nov 13 16:45:15 2008 +0100
+
+ Blacklist "X.Org" < 7.0 with the buggy_repeat workaround.
+
+ This is in response to a report that a 6.9 server crashes with
+ cairo's extend-reflect test:
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=15628#c2
+
+ src/cairo-xlib-display.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 35a1ba0ddc45f9cc785c6f8a37b6bb49c953e047
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Nov 13 16:36:20 2008 +0100
+
+ Document the buggy_repeat workaround more carefully.
+
+ It's a confusing condition, so let's be explicit about where
+ the various numbers come from.
+
+ src/cairo-xlib-display.c | 54 ++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 38 insertions(+), 16 deletions(-)
+
+commit cdfffc7420e005b2a7d1979feef8bd304183126c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 13 11:07:45 2008 +0000
+
+ Add CairoScript interpreter
+
+ Add a CairoScript interpreter library and use it to replay the test output
+ for the CairoScript backend. The library is also used by the currently
+ standalone Sphinx debugger [git://anongit.freedesktop.org/~ickle/sphinx].
+ The syntax/operator semantics are not yet finalized, but are expected to
+ mature before the next stable release.
+
+ configure.ac | 20 +-
+ test/Makefile.am | 4 +-
+ test/any2ppm.c | 41 +-
+ util/Makefile.am | 2 +-
+ util/cairo-script/COPYING | 17 +
+ util/cairo-script/Makefile.am | 21 +
+ util/cairo-script/cairo-script-file.c | 1018 +++++
+ util/cairo-script/cairo-script-hash.c | 448 ++
+ util/cairo-script/cairo-script-interpreter.c | 473 +++
+ util/cairo-script/cairo-script-interpreter.h | 104 +
+ util/cairo-script/cairo-script-objects.c | 666 +++
+ util/cairo-script/cairo-script-operators.c | 5791 ++++++++++++++++++++++++++
+ util/cairo-script/cairo-script-private.h | 853 ++++
+ util/cairo-script/cairo-script-scanner.c | 1180 ++++++
+ util/cairo-script/cairo-script-stack.c | 196 +
+ 15 files changed, 10801 insertions(+), 33 deletions(-)
+
+commit a856371bef496da0e84226f4fd2fc3cb72e955ac
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 10:45:34 2008 +0000
+
+ Add CairoScript backend.
+
+ A new meta-surface backend for serialising drawing operations to a
+ CairoScript file. The principal use (as currently envisaged) is to provide
+ a round-trip testing mechanism for CairoScript - i.e. we can generate
+ script files for every test in the suite and check that we can replay them
+ with perfect fidelity. (Obviously this does not provide complete coverage
+ of CairoScript's syntax, but should give reasonable coverage over the
+ operators.)
+
+ boilerplate/Makefile.sources | 3 +
+ boilerplate/cairo-boilerplate-script-private.h | 57 +
+ boilerplate/cairo-boilerplate-script.c | 125 ++
+ boilerplate/cairo-boilerplate.c | 16 +
+ build/configure.ac.features | 2 +
+ configure.ac | 16 +
+ doc/public/tmpl/cairo-surface.sgml | 1 +
+ src/Makefile.sources | 3 +
+ src/cairo-base85-stream.c | 1 +
+ src/cairo-cache-private.h | 2 +-
+ src/cairo-cache.c | 41 +-
+ src/cairo-deflate-stream.c | 1 +
+ src/cairo-ft-font.c | 12 +
+ src/cairo-ft-private.h | 3 +
+ src/cairo-gstate.c | 3 +-
+ src/cairo-output-stream-private.h | 19 +-
+ src/cairo-output-stream.c | 43 +-
+ src/cairo-path-fixed-private.h | 11 +
+ src/cairo-path-fixed.c | 164 ++
+ src/cairo-pattern.c | 255 +++
+ src/cairo-pdf-operators.c | 1 +
+ src/cairo-ps-surface.c | 2 +
+ src/cairo-scaled-font-private.h | 9 +-
+ src/cairo-scaled-font.c | 5 +
+ src/cairo-script-surface.c | 2598 ++++++++++++++++++++++++
+ src/cairo-script.h | 74 +
+ src/cairo-types-private.h | 1 +
+ src/cairo.h | 4 +-
+ src/cairoint.h | 18 +
+ test/Makefile.am | 4 +-
+ test/any2ppm.c | 87 +-
+ test/mime-data.script.ref.png | Bin 0 -> 1982 bytes
+ 32 files changed, 3540 insertions(+), 41 deletions(-)
+
+commit 47a56e08501ec9375f75c15e35a68c77b313ada4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Sep 10 16:51:52 2008 +0100
+
+ [type1] Bind the RD procedure
+
+ As the RD procedure may be called several hundred times for a full font,
+ it is worth binding.
+
+ src/cairo-type1-fallback.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0769d39d0093ec3bff5b72ecbfcef1bae2f03be2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 13 11:13:22 2008 +0000
+
+ Add predicate likelihood macros.
+
+ Define the couple of standard macros that we can use to guide gcc
+ optimisations of which code path will be most likely taken.
+
+ src/cairo-compiler-private.h | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+commit b06c50cc54140a662adacde6336a3e7777f26ac3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 13 11:21:26 2008 +0000
+
+ [cairoint.h] Remove unused PLT entries.
+
+ Trim the slim_hidden_proto/def to match the currently used functions.
+
+ src/cairo-pattern.c | 1 -
+ src/cairo.c | 3 ---
+ src/cairoint.h | 16 ++++++----------
+ 3 files changed, 6 insertions(+), 14 deletions(-)
+
+commit 20fc2a2f92e27082a8806b9acb4b904dc84da672
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 11 11:35:14 2008 +0000
+
+ [in-fill] Fixup boundary insideness testing
+
+ Benjamin Otte noticed that the top-left vertex was now included within the
+ fill extents. Having updated the test case to check the insideness
+ conditions as defined by flash, fix the edge handling to match.
+
+ src/cairo-path-in-fill.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9afad537301529a5a4b4ddf8b7e4425002ea39c7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 11 10:22:17 2008 +0000
+
+ [test] Expand in-fill-trapezoid
+
+ Test vertices and edges of a rectangle to probe 'corner-cases', using the
+ insideness conditions from flash.
+
+ test/in-fill-trapezoid.c | 34 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 34 insertions(+)
+
+commit cebc84f367a81eedebf7ab0b6b082691923c3ef7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Nov 8 00:06:38 2008 +0000
+
+ [hash] Separate out unique patterns of iterating over the table.
+
+ Avoid unnecessary conditionals for the hotpaths by separating out the
+ iteration over the elements into their distinct modes.
+
+ src/cairo-font-face.c | 2 +-
+ src/cairo-hash.c | 185 ++++++++++++++++++++++--------------------------
+ src/cairo-scaled-font.c | 11 +--
+ 3 files changed, 93 insertions(+), 105 deletions(-)
+
+commit 5f0aa274459fa182d1f82d393224c46ce2b12785
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 13 10:45:15 2008 +0000
+
+ [trace] Add caller line info.
+
+ Use lookup_symbol() on the return address to identify the caller and emit
+ useful debug info to the trace.
+
+ util/cairo-trace/cairo-trace.in | 27 +++++++-
+ util/cairo-trace/lookup-symbol.c | 72 ++++++++++-----------
+ util/cairo-trace/trace.c | 134 +++++++++++++++++++++++++++++++++++----
+ 3 files changed, 178 insertions(+), 55 deletions(-)
+
+commit 4cd6b0c0b9862f398877cb23c294399b480ac8d0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 12 00:37:40 2008 +0000
+
+ [trace] Check for an undefined pattern and use index instead.
+
+ util/cairo-trace/trace.c | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
+
+commit 76f249a49399744d6d936e36ca4d68ab4a1f3d3b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 11 09:12:50 2008 +0000
+
+ [trace] Detect and report broken traces.
+
+ We cannot trace the cairo-script-interpreter as that uses Cairo's private
+ symbols.
+
+ util/cairo-trace/trace.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+commit 01e2021b2b7b66e7cdb9c4b0326fd5793759848b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 10 16:15:28 2008 +0000
+
+ [trace] Trace mark-dirty
+
+ Capture the image data on mark dirty and record in the trace.
+
+ util/cairo-trace/cairo-trace.in | 2 +-
+ util/cairo-trace/trace.c | 121 ++++++++++++++++++++++++++++++++++------
+ 2 files changed, 106 insertions(+), 17 deletions(-)
+
+commit 8f3d0b55f50168f061a01eecfcb4ebecbff0e1c6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 11 09:25:24 2008 +0000
+
+ [trace] Add unstable warning.
+
+ Add warning that CairoScript is unfinished and I may radically alter the
+ format/syntax/language before release.
+
+ util/cairo-trace/trace.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 7ad2635ebe84ba7c050a7f00c5389cdc31ab1172
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 11 09:46:38 2008 +0000
+
+ [trace] Disable stdout by default.
+
+ Don't hog the terminal when we save to a trace file anyway.
+
+ util/cairo-trace/cairo-trace.in | 48 +++++++++++++++++++++++++----------------
+ 1 file changed, 29 insertions(+), 19 deletions(-)
+
+commit efa9e1088cbf1b5331cc0bab3348520f3b91ae4b
+Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
+Date: Thu Nov 13 12:11:12 2008 +0200
+
+ [clip] Fix uninitialised status return in _cairo_clip_intersect_mask() for empty extents.
+
+ This fixes the clip-all test case crashing for me.
+
+ src/cairo-clip.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 279a7cef349cf5aa87cdeacb9424413f51117fe8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Nov 13 10:50:41 2008 +0100
+
+ [os2] Fix includes
+
+ Patch from Dave Yeo to make cairo-os2.h include os2.h directly so the
+ header is standalone.
+
+ src/cairo-os2-private.h | 11 -----------
+ src/cairo-os2-surface.c | 5 -----
+ src/cairo-os2.h | 8 ++++++++
+ 3 files changed, 8 insertions(+), 16 deletions(-)
+
+commit 0a682034a04fa7fc1407e7bc093ae01f4b385ad7
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Nov 11 13:26:09 2008 -0500
+
+ Make the clipping implementation comment clearer
+
+ When reviewing the spans changes, I reread this comment and it wasn't as clear
+ as it could be.
+
+ src/cairo-clip.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 4fdd856569a67636aaf29bc1a76eed44418db484
+Author: Peter Weilbacher <mozilla@weilbacher.org>
+Date: Tue Nov 11 15:37:09 2008 +0100
+
+ README: adapt pixman version requirement to match configure.ac
+
+ README | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9c0042840c70c14e3e608ac3849edf5f1ef99816
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue Nov 11 08:41:31 2008 -0500
+
+ [quartz] Add the proper propagation of extents
+
+ This fixes the problems introduced by d682d275b90f7326df76d2764c513c8b6d5b551b
+
+ src/cairo-quartz-surface.c | 24 +++++++++++++-----------
+ 1 file changed, 13 insertions(+), 11 deletions(-)
+
+commit 57551a91168a68399add9e5c324fba03961b7747
+Author: Jeff Muizelaar <jeff@infidigm.net>
+Date: Tue Nov 11 08:31:23 2008 -0500
+
+ [quartz] Fix fallout caused by const cairo_pattern_t *
+
+ 794460186459981cd43ca38f3eba07e3f6bf8908 broke the quartz backend.
+ Fix it by adding const to the appropriate parameters in the function
+ declarations and copying the pattern when needed.
+
+ src/cairo-quartz-surface.c | 41 ++++++++++++++++++++++++-----------------
+ 1 file changed, 24 insertions(+), 17 deletions(-)
+
+commit 164069b339843837e04e2522a615f03a83b362c0
+Author: Maarten Maathuis <madman2003@gmail.com>
+Date: Sat Nov 8 15:29:40 2008 +0100
+
+ cairo-xcb: avoid leaking memory
+
+ src/cairo-xcb-surface.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 5badcf6e370b9808374a1fa547383b236a9dcd21
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Nov 8 11:17:34 2008 +0000
+
+ [trace] Use a string literal for the type.
+
+ In order that the string is interned and so is only allocated the once.
+
+ util/cairo-trace/trace.c | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+commit 1d0faefbc8700833e9bde8a9c825b02b0f3cf910
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 7 22:48:21 2008 +0000
+
+ [trace] Record the XID as a number
+
+ Don't waste string constants (which get interned) for a simple number!
+
+ util/cairo-trace/trace.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 899a159b133e22f71e2a176785c91e78838c3fee
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Nov 8 11:16:03 2008 +0000
+
+ [trace] Remove stray /source
+
+ An accidental /source was pushing pushed onto the operand stack and never
+ used.
+
+ util/cairo-trace/trace.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit f1cae5c52a5ee71b7933fca702bb525d98936838
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 7 20:52:08 2008 +0000
+
+ [ps] Trivial compile warning clenaup.
+
+ Add a missing const to silence the compiler.
+
+ src/cairo-ps-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2b32c8b9e572c96ce8ba5c7d43b568f18f6da295
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 7 20:30:33 2008 +0000
+
+ [hash] Return lookup entry.
+
+ Use the return value to return the result from _cairo_hash_table_lookup()
+ (as opposed to filling an output parameter on the stack) as this (a)
+ results in cleaner code (no strict-alias breaking pointer casts), (b)
+ produces a smaller binary and (c) is measurably faster.
+
+ src/cairo-cache-private.h | 5 ++---
+ src/cairo-cache.c | 8 +++----
+ src/cairo-cff-subset.c | 24 +++++++++------------
+ src/cairo-font-face.c | 9 ++++----
+ src/cairo-ft-font.c | 6 +++---
+ src/cairo-hash-private.h | 7 +++---
+ src/cairo-hash.c | 24 +++++++--------------
+ src/cairo-misc.c | 7 +++---
+ src/cairo-scaled-font-subsets.c | 47 ++++++++++++++++++++---------------------
+ src/cairo-scaled-font.c | 18 +++++++---------
+ 10 files changed, 67 insertions(+), 88 deletions(-)
+
+commit d15fb9344bf86dd52cda0b43d3dfc49397fd84ec
+Author: Karl Tomlinson <karlt+@karlt.net>
+Date: Fri Nov 7 20:06:35 2008 +0000
+
+ [hash] Set is_unique when finding an available for inserts
+
+ As we obey the rule in Cairo that we only insert if we know that there is
+ no existing entry in the hash table, we can therefore perform a much quicker
+ search knowing that the key is unique.
+
+ src/cairo-hash.c | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+commit cd2e18ddc65959a736fc7b7f6bbd3e76af0495a9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 7 18:35:39 2008 +0000
+
+ [test] Fix-up rgb byte packing
+
+ Another embarrassing, but thankfully, trivial bug.
+
+ boilerplate/cairo-boilerplate.c | 2 ++
+ test/any2ppm.c | 14 +++++++++-----
+ 2 files changed, 11 insertions(+), 5 deletions(-)
+
+commit 2554d1759835a174b89107808d81d044c3e2e098
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Nov 7 13:26:46 2008 +0000
+
+ [surface] Pass a separate closure for the mime-type destroy notifier.
+
+ A limitation of the current API was that the destroy notifier was called
+ on the mime-data block. This prevents the user from passing in a pointer
+ to a managed block, for example a mime-data block belonging to a
+ ref-counted object. We can overcome this by allowing the user to specify
+ the closure to be used with the destroy notifier.
+
+ src/cairo-png.c | 3 ++-
+ src/cairo-surface.c | 9 ++++++---
+ src/cairo-types-private.h | 1 +
+ src/cairo.h | 11 ++++++-----
+ test/mime-data.c | 3 ++-
+ test/pdf-mime-data.c | 4 +++-
+ util/cairo-trace/trace.c | 6 ++++--
+ 7 files changed, 24 insertions(+), 13 deletions(-)
+
+commit ff0bd64e9436026f11e85eafcd74e9a0131c8b9f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 6 01:22:39 2008 +0000
+
+ [NEWS] Add a few notes.
+
+ Help Carl with a speedy snapshot by writing a few notes about what has been
+ added so far to 1.9.
+
+ NEWS | 42 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 42 insertions(+)
+
+commit 13627b46209f9239d10a155f2de7e53c0585e4c2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 6 01:04:52 2008 +0000
+
+ [in-fill] Fix transposed arguments.
+
+ Silly typo that escaped the test suite.
+
+ src/cairo-path-in-fill.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9dee7af41f4f5a4c1285e9d7951148e78659c064
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 6 01:02:23 2008 +0000
+
+ [test] Add off-centre tests to in-fill-trapezoid.
+
+ Reading through the previous commit spotted that the arguments to
+ edge_compare_for_y_against_x were transposed, but the test-suite had
+ failed to catch detect it. This is due that in order to actually
+ solve the equation we need to have a diagonal edge passing near an
+ off-centre point of interest, which was not among the test cases. So add
+ some off-centre tests to fully exercise the code.
+
+ test/in-fill-trapezoid.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 66 insertions(+)
+
+commit f5965cb7d6559e051c2581fe446d0b9f40427eb2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 23:48:52 2008 +0000
+
+ [in-fill] Avoid tessellation by counting number of edge crossing to -∞
+
+ Benjamin Otte reports that in one particular benchmark cairo_in_fill() is
+ a hotspot in the profile. Currently we tessellate the entire path and then
+ search for a containing trapezoid. This is very expensive compared to the
+ simple method of counting the number of edge crossing between the point of
+ interest and x=-∞. For example, this speeds tessellate-256 up by almost 3
+ orders of magnitude.
+
+ src/Makefile.sources | 1 +
+ src/cairo-gstate.c | 30 +-----
+ src/cairo-path-in-fill.c | 264 +++++++++++++++++++++++++++++++++++++++++++++++
+ src/cairoint.h | 9 ++
+ 4 files changed, 279 insertions(+), 25 deletions(-)
+
+commit 0ac98461597420d3dfe52e405c6b3322d32f4854
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Nov 6 00:04:11 2008 +0000
+
+ [test] Add WINDING variants to in-fill test
+
+ Check cairo_in_fill() with some WINDING tests as well as the current
+ EVEN_ODD.
+
+ test/in-fill-trapezoid.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 56 insertions(+)
+
+commit 476d5daa9bfc5e9014d1b6572853d1d78ce6a6d9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 19:29:04 2008 +0000
+
+ [trace] Only build if we have zlib.
+
+ Use the configure check for libz and do not attempt to build the trace
+ unless we have zlib.
+
+ configure.ac | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 34564aa84a4642dceba75efdeef438be6c6896c8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 19:27:49 2008 +0000
+
+ [test/pdf2png] Remove dependency on GdkPixbuf
+
+ It's appears to be dropped from the current poppler trunk, so just use our
+ own venerable cairo_surface_write_ton_png().
+
+ configure.ac | 2 +-
+ test/pdf2png.c | 32 +++++++++++++++++++-------------
+ 2 files changed, 20 insertions(+), 14 deletions(-)
+
+commit 564d64a1323c5cbcde2dd9365ac790fe8aa1c5a6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 18:47:34 2008 +0000
+
+ [png] Complete the idempotent read_png() -> write_png()
+
+ Write out the original PNG mime-data if attached to the surface during
+ cairo_surface_write_to_png(). Similar to how the compressed alternate
+ representations are handled by the other backends.
+
+ Note: by automatically attaching and using the mime-data in preference to
+ the image data, we break the read_from_png(); draw(); write_to_png()
+ cycle.
+
+ src/cairo-png.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+commit ec559822cfe6df0006ca2db2aa3a11699326865c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 18:11:36 2008 +0000
+
+ [trace] Use the mime-type image representation
+
+ When emitting image data, first check to see if we have a pre-compressed
+ alternate representation.
+
+ util/cairo-trace/trace.c | 303 +++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 214 insertions(+), 89 deletions(-)
+
+commit d63267e4e7e148836dcfc4c8e2a8396ddaab70d8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 17:18:51 2008 +0000
+
+ [test] Update mime-data to check image/png
+
+ Add a "image/png" mime-type test.
+
+ test/Makefile.am | 1 +
+ test/mime-data.c | 67 +++++++++++++++++++++++++++++----------------
+ test/mime-data.pdf.ref.png | Bin 4345 -> 4466 bytes
+ test/mime-data.ps.ref.png | Bin 4345 -> 4466 bytes
+ test/mime-data.ref.png | Bin 127 -> 155 bytes
+ test/mime-data.svg.ref.png | Bin 0 -> 6153 bytes
+ test/png.png | Bin 0 -> 2096 bytes
+ 7 files changed, 45 insertions(+), 23 deletions(-)
+
+commit e4ec5c762f6d01cc5af28dc0a256e268a04101aa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 16:44:49 2008 +0000
+
+ [svg] Embed original PNG data.
+
+ Embed the attached PNG representation of a surface in preference to
+ re-encoding the surface.
+
+ src/cairo-svg-surface.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 38 insertions(+)
+
+commit e40d62a0fe96b8b937017a3bc2f18766c411ec41
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 16:38:34 2008 +0000
+
+ [png] Attach the png representation to cairo_surface_create_from_png().
+
+ Attach the original png data as an alternate representation for image
+ surfaces created by cairo_surface_create_from_png().
+
+ src/cairo-output-stream-private.h | 5 ++
+ src/cairo-output-stream.c | 28 ++++++++-
+ src/cairo-png.c | 127 +++++++++++++++++++++++---------------
+ src/cairo-surface-fallback.c | 20 +++---
+ src/cairo.h | 1 +
+ 5 files changed, 122 insertions(+), 59 deletions(-)
+
+commit 89616dee8f11c6a7de3fa476b13661420648786f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 16:41:13 2008 +0000
+
+ [surface] Don't allocate a structure for mime_data == NULL.
+
+ If the user attempts to clear the attached mime data representation, just
+ clear the user data slot and do not allocate an empty structure.
+
+ src/cairo-surface.c | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+commit a1ab11df01962bea5752f5a5b53926a26a6f34ae
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Nov 5 11:50:20 2008 -0500
+
+ Define RepeatNone, etc if the available Render version doesn't (#18385)
+
+ src/cairo-xlib-xrender-private.h | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+commit 43cfaec39cc742ddfbf566b36391d620400e10be
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Nov 5 11:50:20 2008 -0500
+
+ Define RepeatNone, etc if the available Render version doesn't (#18385)
+
+ src/cairo-xlib-xrender-private.h | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+commit 199c0e71139fe9baf83e74ea69c01629ace5f9a2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 15:12:19 2008 +0000
+
+ [svg] Embed jpeg data.
+
+ Support jpeg embedding for svg output.
+
+ src/cairo-svg-surface.c | 50 +++++++++++++++++++++++++++++++++++++++++++++----
+ test/Makefile.am | 1 +
+ 2 files changed, 47 insertions(+), 4 deletions(-)
+
+commit 2261590875b4be7aa258c51e766f68974750e9e7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 15:11:32 2008 +0000
+
+ [trace] Trim a few bytes from glyph arrays
+
+ Remove some redundant whitespace from the glyph arrays to improve
+ readability and shrink the output file size.
+
+ util/cairo-trace/trace.c | 65 ++++++++++++++++++++++++++++--------------------
+ 1 file changed, 38 insertions(+), 27 deletions(-)
+
+commit 248dd97075b50cd91619022098ed5dd35a66b5df
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Thu Nov 6 00:17:53 2008 +1030
+
+ win32-printing: Implement JPEG support
+
+ src/cairo-win32-printing-surface.c | 91 ++++++++++++++++++++++++++++++++++----
+ src/cairo-win32-private.h | 3 ++
+ 2 files changed, 85 insertions(+), 9 deletions(-)
+
+commit 29621bd3995c5269fd6f73ab501383433bd29768
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 12:16:47 2008 +0000
+
+ [matrix] Remove stray offset from previous commit.
+
+ I moved the pixel centre to xc,yc but forgot to remove it during
+ compensation - as caught by the test suite.
+
+ Refresh a couple of reference images that depend upon exact pixel-centre
+ rounding conditions.
+
+ src/cairo-matrix.c | 8 ++++----
+ test/rotate-image-surface-paint.ref.png | Bin 232 -> 190 bytes
+ test/surface-pattern.pdf.ref.png | Bin 14776 -> 14791 bytes
+ test/surface-pattern.ref.png | Bin 11044 -> 11100 bytes
+ test/surface-pattern.svg.ref.png | Bin 16151 -> 16069 bytes
+ 5 files changed, 4 insertions(+), 4 deletions(-)
+
+commit e811173311ebe76d47eebcf5c6c5c798f9d3ea72
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 10:59:15 2008 +0000
+
+ [matrix] Compensate pixman_matrix in device space.
+
+ We wish to reduce the visible error when converting to a pixman matrix, so
+ perform the compensation in device space instead of pattern space.
+
+ src/cairo-image-surface.c | 4 ++--
+ src/cairo-matrix.c | 53 ++++++++++++++++++++++++++++-------------------
+ 2 files changed, 34 insertions(+), 23 deletions(-)
+
+commit c95eebc92316ad50840fab1cec6c14b6c3e50fa5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 09:56:02 2008 +0000
+
+ [pattern] Split the translation between the matrix and [xy]_offset
+
+ pixman limits the src] co-ordinates (and thus [xy]_offset] to 16bits,
+ so we need to be careful how much of the translation vector to push into
+ [xy]_offset. Since the range is the same for both, split the integer
+ component between the matrix and the offset.
+
+ test/scale-offset* now at least shows the source image, even if it is
+ misplaced.
+
+ src/cairo-pattern.c | 7 +++++--
+ test/scale-offset-image.ps.ref.png | Bin 7445 -> 7289 bytes
+ test/scale-offset-image.ref.png | Bin 10005 -> 9953 bytes
+ test/scale-offset-similar.ps.ref.png | Bin 7819 -> 7860 bytes
+ test/scale-offset-similar.ref.png | Bin 10005 -> 9953 bytes
+ 5 files changed, 5 insertions(+), 2 deletions(-)
+
+commit d1b8186fd75922e73e62ef8f2ebb011e334ebe36
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 01:16:25 2008 +0000
+
+ [trace] Correct emission of set_font_face and set_source
+
+ set_font_face was not consuming it's operand but blithely placing an
+ undefined font_face onto the operand stack, whereas set_source was
+ performing invalid exchanges on the stack.
+
+ util/cairo-trace/trace.c | 36 +++++++++++++++++++++++++++---------
+ 1 file changed, 27 insertions(+), 9 deletions(-)
+
+commit 4a4b10271a614ee9bf982994b8f9ec6b6102ee10
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 00:02:09 2008 +0000
+
+ [trace] Capture foreign drawables.
+
+ If we attempt to use a surface as a source before we write to it, record
+ the surface contents.
+
+ util/cairo-trace/trace.c | 102 ++++++++++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 93 insertions(+), 9 deletions(-)
+
+commit 432fe1ec2792153ec2559ef52aece3fcdc9c5df4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 15:30:23 2008 +0000
+
+ [trace] Mark filter mode as immediate.
+
+ Be consistent and use "//" for the filter mode to indicate a constant.
+
+ util/cairo-trace/trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 68309481aa9295026e3e7e6407c793f899b5e600
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Nov 5 08:03:01 2008 +0000
+
+ [test] Mark targets with is_meta?
+
+ Allow tests to skip targets based on whether they are a meta surface or
+ not.
+
+ boilerplate/cairo-boilerplate.c | 40 ++++++++++++++++++++++++----------------
+ boilerplate/cairo-boilerplate.h | 1 +
+ test/cairo-test.c | 13 ++++++++++++-
+ 3 files changed, 37 insertions(+), 17 deletions(-)
+
+commit 8855f9583e84ae2e6d981e21133f590bff2065ab
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 20:04:02 2008 +0000
+
+ [test] Add scale-offset-(similar|image)
+
+ Add a test case for the scaling bug reported by Michel Iwaniec:
+ http://lists.cairographics.org/archives/cairo/2008-November/015660.html
+
+ test/Makefile.am | 6 ++
+ test/scale-offset-image.c | 142 ++++++++++++++++++++++++++++++++++
+ test/scale-offset-image.ps.ref.png | Bin 0 -> 7445 bytes
+ test/scale-offset-image.ref.png | Bin 0 -> 10005 bytes
+ test/scale-offset-similar.c | 143 +++++++++++++++++++++++++++++++++++
+ test/scale-offset-similar.ps.ref.png | Bin 0 -> 7819 bytes
+ test/scale-offset-similar.ref.png | Bin 0 -> 10005 bytes
+ 7 files changed, 291 insertions(+)
+
+commit aad980900314bd032468f41a3216769c66e62097
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 19:11:55 2008 +0000
+
+ [test] Only depend on any2ppm if we build it.
+
+ Do not add a dependency to any2ppm if it has been deconfigured.
+
+ test/Makefile.am | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 59bdeba9abd7bef15c6855d707c4cf92b623cb00
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 18:42:05 2008 +0000
+
+ [matrix] Minimise pixman conversion error.
+
+ Minimise the error of the pixman matrix about the centre of the displayed
+ area rather than the origin.
+
+ src/cairo-image-surface.c | 25 +++++++++++++++++--------
+ src/cairo-matrix.c | 24 ++++++++++++++----------
+ src/cairo-pattern.c | 3 ++-
+ src/cairo-xlib-surface.c | 33 +++++++++++++++++++++++----------
+ src/cairoint.h | 4 +++-
+ test/Makefile.am | 3 +--
+ test/surface-pattern.pdf.ref.png | Bin 15996 -> 14776 bytes
+ test/surface-pattern.ref.png | Bin 11439 -> 11044 bytes
+ test/surface-pattern.svg.ref.png | Bin 0 -> 16151 bytes
+ test/surface-pattern.svg11.ref.png | Bin 17663 -> 0 bytes
+ test/surface-pattern.svg12.ref.png | Bin 17663 -> 0 bytes
+ 11 files changed, 60 insertions(+), 32 deletions(-)
+
+commit 068d465bb3541cc0ffc3cb9daa0848365c0a6a24
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 14:57:21 2008 +0000
+
+ [trace] Fix emission of cairo_scaled_font_create()
+
+ In the case where the font face was no longer on the operand stack, the
+ font face would not have been passed to cairo_scaled_font_create().
+
+ util/cairo-trace/trace.c | 27 +++++++++++++--------------
+ 1 file changed, 13 insertions(+), 14 deletions(-)
+
+commit a3d56c60e85176526d6cce139441b6921acc9218
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 14:06:02 2008 +0000
+
+ [trace] Use a common directory by default.
+
+ If called directly (e.g. via /etc/ld.so.preload) put the output trace into
+ a central directory, and not the pwd.
+
+ util/cairo-trace/Makefile.am | 10 ++++++++--
+ util/cairo-trace/trace.c | 8 ++++++--
+ 2 files changed, 14 insertions(+), 4 deletions(-)
+
+commit 3f7a21c5c93d8648ded097757852df44fc9fcaeb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 13:46:10 2008 +0000
+
+ [test] Add jpeg.jpg to EXTRA_DIST
+
+ Forgot to add the new file to the distribution with the previous commit.
+
+ test/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 9900a2adf3e43e752bd421f00e81873b41db4c30
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 13:41:02 2008 +0000
+
+ [test] Update mime-data jpeg reference data.
+
+ <adrianj> ickle_: If we are going to use a different image for jpeg in
+ mime-data maybe we could create a jpg that contains the text "jpeg". That
+ way when support for the other image formats is added the mime-data test
+ could have one image for each type with each image and it is easy to see
+ that each image is the correct one.
+
+ test/jpeg.jpg | Bin 0 -> 2316 bytes
+ test/mime-data.c | 6 +++---
+ test/mime-data.pdf.ref.png | Bin 96 -> 4345 bytes
+ test/mime-data.ps.ref.png | Bin 368 -> 4345 bytes
+ test/mime-data.ref.png | Bin 263 -> 127 bytes
+ 5 files changed, 3 insertions(+), 3 deletions(-)
+
+commit c13a09ddb411287224c15728b14f23fef472f7d0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 13:00:36 2008 +0000
+
+ [test] Use a different jpeg image for mime-data
+
+ Detect when we successfully encode the JPEG data from the mime-type by
+ using a completely image.
+
+ test/Makefile.am | 3 +++
+ test/mime-data.c | 6 +++++-
+ test/mime-data.pdf.ref.png | Bin 0 -> 96 bytes
+ test/mime-data.ps.ref.png | Bin 0 -> 368 bytes
+ test/scarab.jpg | Bin 0 -> 9650 bytes
+ 5 files changed, 8 insertions(+), 1 deletion(-)
+
+commit 8407470409ad9cb93263a1c2da7dd7446d3f897e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 12:45:47 2008 +0000
+
+ [test] Adapt pdf-mime-data for non-srcdir build.
+
+ Need to look for reference/input images from srcdir as well.
+
+ test/Makefile.am | 2 +-
+ test/pdf-mime-data.c | 44 ++++++++++++++++++++++++++++++++------------
+ 2 files changed, 33 insertions(+), 13 deletions(-)
+
+commit 8007618837c0292b6ebc6a4f954c5049d4e99d8a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 12:31:10 2008 +0000
+
+ [test] Fix compilation of imagediff.
+
+ imagediff broke once again.
+
+ test/Makefile.am | 3 ++-
+ test/imagediff.c | 17 +++++++++++++++++
+ 2 files changed, 19 insertions(+), 1 deletion(-)
+
+commit 282d7744275f623ce550638df953ef279d2209f0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 12:53:15 2008 +0000
+
+ [mime-type] Request the mime-data for the source surface, not ourselves!
+
+ Fixup a typo I introduced that caused us to request the jpeg data for the
+ destination surface and not the source.
+
+ src/cairo-pdf-surface.c | 2 +-
+ src/cairo-ps-surface.c | 5 ++---
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+commit aa616abc9ab02e333cf0cad4f524b15c710bf449
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 11:18:22 2008 +0000
+
+ [png] Use RGB for opaque images.
+
+ If the ARGB32 is opaque, discard the alpha channel - so we should generate
+ byte identical output to the reference images.
+
+ src/cairo-png.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+commit 30976635d7072c06d00e39b106e41be7b08c6c49
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Nov 4 22:52:45 2008 +1030
+
+ PS: Implement JPEG embedding
+
+ src/cairo-ps-surface.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 101 insertions(+), 3 deletions(-)
+
+commit 73bc278c7a4630cd9299c974771ffd6e9245d0ac
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue Nov 4 22:25:26 2008 +1030
+
+ Add pdf mime data test
+
+ To test that images in PDF files correctly embedded the mime data.
+
+ test/Makefile.am | 2 +
+ test/pdf-mime-data.c | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 153 insertions(+)
+
+commit 3f18d38fbdc661d34e0fd951e0fd3aa1aa2cbcc9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 10:31:48 2008 +0000
+
+ [win32] Compile fix for extend-pad extents.
+
+ Update the show_glyphs() prototype to include the extents argument.
+
+ src/cairo-win32-printing-surface.c | 3 ++-
+ src/cairo-win32-private.h | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+commit 5ba95b7e1287ade0b8a1acf2f5cb73fa1f44c451
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 09:22:28 2008 +0000
+
+ [trace] Convert [1 0 0 1 0 0] to identity
+
+ Simplify the trace/replay by replacing the identity array with the
+ identity operator.
+
+ util/cairo-trace/trace.c | 34 +++++++++++++++++++++++++---------
+ 1 file changed, 25 insertions(+), 9 deletions(-)
+
+commit 3664b32195b101ebab9a5f9087095306f8969c80
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 4 10:38:41 2008 +0000
+
+ [trace] Remove more @..@ from Makefile.am
+
+ Use $(..) for make variable substitution as opposed to incorrectly using
+ @..@ for substitution by configure.
+
+ util/cairo-trace/Makefile.am | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 1d8ad69abb88f6e0283b6ce2aadc5d801b8e3722
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Nov 4 01:51:06 2008 -0500
+
+ [aclocal.dolt.m4] Fix build with bash versions <= 3.0 (bug #18363)
+
+ build/aclocal.dolt.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 310026ab42c2078e2749c886c74c5b38cab41671
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Nov 4 01:51:06 2008 -0500
+
+ [aclocal.dolt.m4] Fix build with bash versions <= 3.0 (bug #18363)
+
+ build/aclocal.dolt.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 90217550120f129004bc555b59ced28b4b25a4d4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 23:45:12 2008 +0000
+
+ [mime-data] Copy a reference to the mime-data on snapshotting.
+
+ Instead of doing a full-copy of the mime data (which can be 10K-100K,
+ or even larger) just copy a reference to the original mime to the
+ snapshot surface (as suggested by Behdad).
+
+ src/cairo-surface-fallback.c | 29 +++--------------
+ src/cairo-surface.c | 77 +++++++++++++++++++++++++++++++-------------
+ src/cairo-types-private.h | 2 ++
+ src/cairoint.h | 5 +++
+ 4 files changed, 66 insertions(+), 47 deletions(-)
+
+commit 4f032ca35a7086b76775e4b53c6b99ba4e1eb3cb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 23:23:09 2008 +0000
+
+ [trace] Install cairo-trace.so into $(libdir)/cairo
+
+ Install the auxiliary library into the cairo subdirectory within the
+ lib path, so that it doesn't clutter $(libdir) and sets a precedent for
+ future auxiliary libraries.
+
+ util/cairo-trace/Makefile.am | 7 ++++---
+ util/cairo-trace/cairo-trace.in | 13 ++++++++++---
+ 2 files changed, 14 insertions(+), 6 deletions(-)
+
+commit c80a1c68c19f876c9f55b7c6d62b18ae110b11d0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 23:16:09 2008 +0000
+
+ [configure] Make trace consistent.
+
+ Remove the debianism from the comments for HAVE_BFD and comply with
+ Behdad's guidelines on using $(...) within Makefile.am.
+
+ configure.ac | 5 ++---
+ util/cairo-trace/Makefile.am | 6 +++---
+ 2 files changed, 5 insertions(+), 6 deletions(-)
+
+commit 43e2370b024f66d995c514fd53414d3d8588a481
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 14:20:35 2008 +0000
+
+ [test] Update extend-pad.
+
+ extend-pad was not a clear demonstration of the EXTEND_PAD mode, so revamp
+ it to show the filter extending a 4 pixel surface to cover the entire
+ output. However, this hides a discrepancy with the vector surfaces that we
+ cannot prevent the external renders from applying an interpolation to the
+ border pixels, so we copy the original test to extend-pad-border to check
+ the desired behaviour on boundary pixels.
+
+ test/Makefile.am | 4 ++
+ test/extend-pad-border.c | 95 ++++++++++++++++++++++++++++++++++++++++
+ test/extend-pad-border.ref.png | Bin 0 -> 616 bytes
+ test/extend-pad-similar.c | 82 ++++++++++++++++++++++++++++++++++
+ test/extend-pad-similar.ref.png | Bin 0 -> 315 bytes
+ test/extend-pad.c | 50 ++++++++-------------
+ test/extend-pad.ref.png | Bin 616 -> 315 bytes
+ 7 files changed, 200 insertions(+), 31 deletions(-)
+
+commit b3462c5616ae24fd391ad0872d2fbb98c6cd0c92
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 13:10:42 2008 +0000
+
+ [test] Convert a few residual '-out.*'
+
+ Catch a few -out.* hiding in boilerplate.
+
+ boilerplate/cairo-boilerplate-pdf.c | 2 +-
+ boilerplate/cairo-boilerplate-ps.c | 2 +-
+ boilerplate/cairo-boilerplate-svg.c | 2 +-
+ boilerplate/cairo-boilerplate-win32-printing.c | 2 +-
+ test/Makefile.am | 6 +++---
+ 5 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 34586860ef08e6aab988ba227997dfe376f9d319
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 12:11:14 2008 +0000
+
+ [trace] Big-endian compile fixes.
+
+ A few typos.
+
+ util/cairo-trace/trace.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit ca83df55a63eab1821dbc009f65b3b09d61f5b62
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 11:46:31 2008 +0000
+
+ [trace] Wrap test surfaces.
+
+ Wrap the test surfaces to avoid crashes whilst tracing the test suite.
+
+ util/cairo-trace/trace.c | 116 +++++++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 108 insertions(+), 8 deletions(-)
+
+commit 2c08f3f83b1acd168cd74b300272970658179a0f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 11:30:38 2008 +0000
+
+ [trace] Autodetect -lbfd during configure
+
+ Stop being lazy and detect libbfd during configure.
+
+ configure.ac | 10 ++++++++++
+ util/cairo-trace/Makefile.am | 2 +-
+ util/cairo-trace/lookup-symbol.c | 6 +++---
+ 3 files changed, 14 insertions(+), 4 deletions(-)
+
+commit 8fc3d0ffebea5622332327cdef9222486cc85581
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 11:01:22 2008 +0000
+
+ [mime-data] Allow embedding of arbitrary mime-types.
+
+ Use the surface user-data array allow to store an arbitrary set of
+ alternate image representations keyed by an interned string (which
+ ensures that it has a unique key in the user-visible namespace).
+
+ Update the API to mirror that of cairo_surface_set_user_data() [i.e.
+ return a status indicator] and switch internal users of the mime-data to
+ the public functions.
+
+ src/cairo-debug.c | 2 +
+ src/cairo-jpeg-info-private.h | 6 +--
+ src/cairo-jpeg-info.c | 19 ++++---
+ src/cairo-misc.c | 98 ++++++++++++++++++++++++++++++++++++
+ src/cairo-mutex-list-private.h | 1 +
+ src/cairo-pdf-surface.c | 16 +++---
+ src/cairo-surface-fallback.c | 37 ++++++++++----
+ src/cairo-surface-private.h | 4 --
+ src/cairo-surface.c | 91 ++++++++++++++++++++++++++-------
+ src/cairo-types-private.h | 7 +++
+ src/cairo.h | 4 +-
+ src/cairoint.h | 8 +++
+ test/Makefile.am | 3 ++
+ test/mime-data.c | 111 +++++++++++++++++++++++++++++++++++++++++
+ test/mime-data.ref.png | Bin 0 -> 263 bytes
+ test/romedalen.jpg | Bin 0 -> 11400 bytes
+ util/cairo-trace/trace.c | 2 +-
+ 17 files changed, 351 insertions(+), 58 deletions(-)
+
+commit afef83a1fae028b45cefd6b4698e7b32ad4d6fc7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Nov 3 09:40:35 2008 +0000
+
+ Compile tidy.
+
+ Fix a few minor compiler warnings.
+
+ src/cairo-pdf-surface.c | 2 +-
+ src/cairo-ps-surface.c | 2 +-
+ src/cairo-surface.c | 6 +++---
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+commit f77723fc88c12ebf6f5bff5a1797649d134ecc5d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 2 19:59:53 2008 +0000
+
+ [pdf] Missing status check.
+
+ Check that stream was successfully opened before attempting to write to
+ it.
+
+ src/cairo-pdf-surface.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 04e3bb932eeac4f403b512087b96a164d082d52c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Nov 2 21:51:37 2008 +0000
+
+ [trace] Emit set_mime_data().
+
+ Wrap the new cairo_surface_set_mime_data() function.
+
+ util/cairo-trace/trace.c | 30 ++++++++++++++++++++++++++++--
+ 1 file changed, 28 insertions(+), 2 deletions(-)
+
+commit 350fa7b98e5045a4fa05f64a1ad7d8167036be34
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Nov 1 13:12:43 2008 +0000
+
+ [trace] Fix boundary terminations
+
+ Don't increment the terminator!
+
+ util/cairo-trace/trace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f3cbc5cf4580da83b7edacfd381afee3d571c659
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 23:47:16 2008 +0000
+
+ [trace] Use utf8 len in show_text_glyphs().
+
+ Honour the parameter specifying the length of the utf8 string when
+ emitting show_text_glyphs.
+
+ util/cairo-trace/trace.c | 36 ++++++++++++++++++++----------------
+ 1 file changed, 20 insertions(+), 16 deletions(-)
+
+commit 6434cddb899d750b815d71f8f51ae3e4568dd3c0
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 2 11:42:33 2008 +1030
+
+ type1-subset: return unsupported on FT errors
+
+ and let type1-fallback handle it. This fixes the bug reported by
+ Peter Weilbacher in
+ http://lists.cairographics.org/archives/cairo/2008-October/015569.html
+
+ src/cairo-type1-subset.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+commit 1685bbee1bf1ebc015ada94f77756d8d10c7818d
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 2 19:50:59 2008 +1030
+
+ test/README: fix typo
+
+ test/README | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 540ac11113015f0fd6856d016cb38fec5282b6ce
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 2 11:42:33 2008 +1030
+
+ type1-subset: return unsupported on FT errors
+
+ and let type1-fallback handle it. This fixes the bug reported by
+ Peter Weilbacher in
+ http://lists.cairographics.org/archives/cairo/2008-October/015569.html
+
+ src/cairo-type1-subset.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+commit 3707178fa48e23b85c5640f3cee72e19f49c700b
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Sep 8 10:26:58 2008 +0930
+
+ PDF: Implement JPEG image embedding
+
+ src/Makefile.sources | 2 +
+ src/cairo-jpeg-info-private.h | 54 ++++++++++++++++
+ src/cairo-jpeg-info.c | 142 ++++++++++++++++++++++++++++++++++++++++++
+ src/cairo-pdf-surface.c | 55 ++++++++++++++++
+ 4 files changed, 253 insertions(+)
+
+commit 3c684347f49a581bfba35202ec61a5f6334acd4a
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Sep 7 20:46:20 2008 +0930
+
+ Add cairo_surface_set_mime_data()
+
+ Currently only handles jpeg data.
+
+ src/cairo-surface-fallback.c | 15 ++++++++++
+ src/cairo-surface-private.h | 4 +++
+ src/cairo-surface.c | 67 ++++++++++++++++++++++++++++++++++++++++++++
+ src/cairo.h | 15 ++++++++++
+ 4 files changed, 101 insertions(+)
+
+commit a39a4f52ac4a057f579e881a9a929029bcc514d1
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Oct 1 21:02:26 2008 +0930
+
+ PS: meta-surface patterns with EXTEND_PAD are unsupported
+
+ We have to use fallback images for this.
+
+ src/cairo-ps-surface.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 19ee13ca2b5b1e08a7fc965516be514d2fe40232
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Oct 1 21:01:17 2008 +0930
+
+ PS: Implement EXTEND_PAD for image patterns
+
+ Images with EXTEND_PAD are painted into a new image the size of the
+ operation extents. The new image is then embedded in the PS file with
+ the pattern matrix adjusted to ensure the image origin is in the
+ correct location.
+
+ src/cairo-ps-surface-private.h | 1 +
+ src/cairo-ps-surface.c | 99 ++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 83 insertions(+), 17 deletions(-)
+
+commit e639b536711c07bc09355205f476ab3f73012268
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Oct 1 21:00:30 2008 +0930
+
+ PDF: meta-surface patterns with EXTEND_PAD are unsupported
+
+ We have to use fallback images for this.
+
+ src/cairo-pdf-surface.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit 6c92edd9a3b0c79857cfa8dee482efa56f40c714
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Oct 1 20:56:49 2008 +0930
+
+ PDF: Implement EXTEND_PAD for image patterns
+
+ Images with EXTEND_PAD are painted into a new image the size of the
+ operation extents. The new image is then embedded in the PDF file with
+ the pattern matrix adjusted to ensure the image origin is in the
+ correct location.
+
+ src/cairo-pdf-surface.c | 70 +++++++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 62 insertions(+), 8 deletions(-)
+
+commit d146cb4056ab54cf85454a6fe9d36282ca7a3f2e
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Oct 1 20:56:01 2008 +0930
+
+ PDF: Store the operation extents in each pattern
+
+ The extents will be used by EXTEND_PAD patterns as well as any other
+ pattern that can benefit from knowing the extents of the operation it
+ will be used with.
+
+ src/cairo-pdf-surface-private.h | 1 +
+ src/cairo-pdf-surface.c | 30 ++++++++++++++++++++++++------
+ 2 files changed, 25 insertions(+), 6 deletions(-)
+
+commit fb7cfdd94d4e436e066d884f6dc294efd896b344
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Oct 1 20:52:08 2008 +0930
+
+ Make meta-surface store and replay extents of each operation
+
+ To be able to provide the extents of each operation to the backend
+ during the render phase the meta-surface needs to store the extents
+ computed by the analysis surface during the analysis phase.
+
+ The extents argument is either a pointer to the extents of the operation
+ stored in the meta-surface or NULL. During analysis the analysis surface
+ writes the extents to the meta-surface. During the render phase the extents
+ is made available to paginated surface backends.
+
+ src/cairo-analysis-surface.c | 12 ++++++++++++
+ src/cairo-meta-surface-private.h | 1 +
+ src/cairo-meta-surface.c | 33 +++++++++++++++++++++++++++------
+ 3 files changed, 40 insertions(+), 6 deletions(-)
+
+commit d682d275b90f7326df76d2764c513c8b6d5b551b
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Oct 1 20:50:53 2008 +0930
+
+ Add an extents argument to the high level surface backend functions
+
+ Add a "cairo_rectangle_int_t *extents" argument to to the following
+ backend functions:
+ paint
+ mask,
+ stroke
+ fill
+ show_glyphs
+ show_text_glyphs
+
+ This will be used to pass the extents of each operation computed by
+ the analysis surface to the backend. This is required for implementing
+ EXTEND_PAD.
+
+ src/cairo-analysis-surface.c | 49 +++++++++++++++++++++++---------------
+ src/cairo-directfb-surface.c | 3 ++-
+ src/cairo-gstate.c | 12 +++++-----
+ src/cairo-meta-surface.c | 27 ++++++++++++---------
+ src/cairo-paginated-surface.c | 27 ++++++++++++---------
+ src/cairo-pdf-surface.c | 18 +++++++++-----
+ src/cairo-ps-surface.c | 12 ++++++----
+ src/cairo-quartz-surface.c | 15 ++++++++----
+ src/cairo-surface.c | 45 +++++++++++++++++++---------------
+ src/cairo-svg-surface.c | 24 ++++++++++++-------
+ src/cairo-type3-glyph-surface.c | 17 ++++++++-----
+ src/cairo-win32-printing-surface.c | 12 ++++++----
+ src/cairo-win32-surface.c | 3 ++-
+ src/cairo-xlib-surface.c | 8 ++++---
+ src/cairoint.h | 39 ++++++++++++++++++++----------
+ src/test-meta-surface.c | 25 +++++++++++--------
+ src/test-paginated-surface.c | 25 +++++++++++--------
+ 17 files changed, 223 insertions(+), 138 deletions(-)
+
+commit ed2081d97401741db10b0244eaba7ff31ae63346
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 2 15:05:07 2008 +1030
+
+ Specify a background color for XFAIL text
+
+ To improve readability on terminals with a white background.
+
+ test/cairo-test.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 81c3009c077ddab40df052bffaa646526e2b8dfc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 31 16:45:58 2008 -0400
+
+ [boilerplate/Makefile.win32] Only build source files, not headers
+
+ boilerplate/Makefile.win32 | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit d5f88c28021907ad761a1bf1c311bfd206db617e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Oct 31 13:43:37 2008 -0400
+
+ [.gitignore] Add
+
+ util/cairo-trace/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 49bd253fd36dc93219a5414c6e7a6daeaa9c63b9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 16:40:49 2008 +0000
+
+ [tessellator] Refine the math comments.
+
+ First of a simple substitution for -?-, as they are very confusing in
+ context with other minus signs floating around.
+
+ Carl has promised to go over these docs with me at the HackFest in order
+ to improve them (and verify them).
+
+ src/cairo-bentley-ottmann.c | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+commit ab8a0bfd82f8f474714d7aae4ceff4e7848c9b4b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 16:09:13 2008 +0000
+
+ Add a COPYING file to each aux. source directory
+
+ Include a COPYING inside perf/, test/, util/ to clarify the licensing
+ conditions beneath the respective directories. This is because cairo
+ itself (libcairo.so) is LGPL-2.1/MPL-1.1 but that only relates to src/.
+ The auxiliary source files are under a mix of free licenses and we wish to
+ be clear just what license applies to each file.
+
+ In particular, cairo-trace needs to include the GPL terms and conditions.
+
+ COPYING | 17 +-
+ perf/COPYING | 5 +
+ perf/Makefile.am | 2 +-
+ test/COPYING | 5 +
+ test/Makefile.am | 2 +-
+ util/COPYING | 4 +
+ util/Makefile.am | 1 +
+ util/cairo-trace/COPYING | 5 +
+ util/cairo-trace/COPYING-GPL-3 | 674 +++++++++++++++++++++++++++++++++++++++++
+ util/cairo-trace/Makefile.am | 5 +-
+ 10 files changed, 709 insertions(+), 11 deletions(-)
+
+commit c554f18d78fff71aff2d79309b19155de407363d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 15:37:58 2008 +0000
+
+ [util] Add cairo-trace.
+
+ This tool can be used to trace all the cairo function calls made by an
+ applications. This is useful for either extracting a test case triggering
+ a bug from an application, or simply to get a general idea of how an
+ application is using cairo.
+
+ After make install, cairo-trace program arguments, will print out all the
+ cairo calls to the terminal and also capture theme in ./program.$pid.trace
+
+ The format of the output is CairoScript, watch this space for more
+ cairo-script tools!
+
+ build/configure.ac.system | 2 +
+ configure.ac | 17 +
+ util/Makefile.am | 6 +
+ util/README | 8 -
+ util/cairo-trace/Makefile.am | 21 +
+ util/cairo-trace/cairo-trace.in | 58 +
+ util/cairo-trace/lookup-symbol.c | 290 ++++
+ util/cairo-trace/lookup-symbol.h | 24 +
+ util/cairo-trace/trace.c | 3345 ++++++++++++++++++++++++++++++++++++++
+ 9 files changed, 3763 insertions(+), 8 deletions(-)
+
+commit 992f74d884c9ea83f7b51c6959dd93718027b99a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 13:50:55 2008 +0000
+
+ [test] Use '.' as the field separator in the names
+
+ We frequently use '-' within the test name or format name and so we
+ encounter confusion as '-' is also used as the field separator. At times
+ this has caused a new test to break an old test because the new test would
+ match one of the old test's target specific reference images. So switch
+ everything over to use '.' between fields (test name, target, format,
+ subtest, etc.).
+
+ test/.gitignore | 8 +-
+ test/Makefile.am | 1402 ++++++++++----------
+ ...mage-sample-ref.png => a1-image-sample.ref.png} | Bin
+ test/{a1-mask-ref.png => a1-mask.ref.png} | Bin
+ ...raps-sample-ref.png => a1-traps-sample.ref.png} | Bin
+ test/{a8-mask-ref.png => a8-mask.ref.png} | Bin
+ ...alpha-similar-ref.png => alpha-similar.ref.png} | Bin
+ ...r-rgb24-ref.png => alpha-similar.rgb24.ref.png} | Bin
+ .../{big-line-ps2-ref.png => big-line.ps2.ref.png} | Bin
+ ...s2-rgb24-ref.png => big-line.ps2.rgb24.ref.png} | Bin
+ .../{big-line-ps3-ref.png => big-line.ps3.ref.png} | Bin
+ ...s3-rgb24-ref.png => big-line.ps3.rgb24.ref.png} | Bin
+ ...line-quartz-ref.png => big-line.quartz.ref.png} | Bin
+ ...rgb24-ref.png => big-line.quartz.rgb24.ref.png} | Bin
+ test/{big-line-ref.png => big-line.ref.png} | Bin
+ ...g-line-rgb24-ref.png => big-line.rgb24.ref.png} | Bin
+ ...bilevel-image-ref.png => bilevel-image.ref.png} | Bin
+ test/{bitmap-font-ref.png => bitmap-font.ref.png} | Bin
+ ...ont-rgb24-ref.png => bitmap-font.rgb24.ref.png} | Bin
+ test/cairo-test.c | 68 +-
+ test/cairo-test.h | 1 +
+ ...rtz-ref.png => caps-joins-alpha.quartz.ref.png} | Bin
+ ...oins-alpha-ref.png => caps-joins-alpha.ref.png} | Bin
+ ...vg11-ref.png => caps-joins-alpha.svg11.ref.png} | Bin
+ ...vg12-ref.png => caps-joins-alpha.svg12.ref.png} | Bin
+ ...ps-joins-ps2-ref.png => caps-joins.ps2.ref.png} | Bin
+ ...ps-joins-ps3-ref.png => caps-joins.ps3.ref.png} | Bin
+ test/{caps-joins-ref.png => caps-joins.ref.png} | Bin
+ ...ps-sub-paths-ref.png => caps-sub-paths.ref.png} | Bin
+ test/{clip-all-ref.png => clip-all.ref.png} | Bin
+ test/{clip-empty-ref.png => clip-empty.ref.png} | Bin
+ ...ef.png => clip-fill-rule-pixel-aligned.ref.png} | Bin
+ ... => clip-fill-rule-pixel-aligned.rgb24.ref.png} | Bin
+ ...2-ref.png => clip-fill-rule.ps2.argb32.ref.png} | Bin
+ ...24-ref.png => clip-fill-rule.ps2.rgb24.ref.png} | Bin
+ ...2-ref.png => clip-fill-rule.ps3.argb32.ref.png} | Bin
+ ...24-ref.png => clip-fill-rule.ps3.rgb24.ref.png} | Bin
+ ...ip-fill-rule-ref.png => clip-fill-rule.ref.png} | Bin
+ ...-rgb24-ref.png => clip-fill-rule.rgb24.ref.png} | Bin
+ ...b32-ref.png => clip-nesting.ps2.argb32.ref.png} | Bin
+ ...gb24-ref.png => clip-nesting.ps2.rgb24.ref.png} | Bin
+ ...b32-ref.png => clip-nesting.ps3.argb32.ref.png} | Bin
+ ...gb24-ref.png => clip-nesting.ps3.rgb24.ref.png} | Bin
+ ...-quartz-ref.png => clip-nesting.quartz.ref.png} | Bin
+ ...4-ref.png => clip-nesting.quartz.rgb24.ref.png} | Bin
+ .../{clip-nesting-ref.png => clip-nesting.ref.png} | Bin
+ ...ng-rgb24-ref.png => clip-nesting.rgb24.ref.png} | Bin
+ ...32-ref.png => clip-operator.pdf.argb32.ref.png} | Bin
+ ...b24-ref.png => clip-operator.pdf.rgb24.ref.png} | Bin
+ ...b24-ref.png => clip-operator.ps2.rgb24.ref.png} | Bin
+ ...rator-ps3-ref.png => clip-operator.ps3.ref.png} | Bin
+ ...b24-ref.png => clip-operator.ps3.rgb24.ref.png} | Bin
+ ...quartz-ref.png => clip-operator.quartz.ref.png} | Bin
+ ...-ref.png => clip-operator.quartz.rgb24.ref.png} | Bin
+ ...clip-operator-ref.png => clip-operator.ref.png} | Bin
+ ...r-rgb24-ref.png => clip-operator.rgb24.ref.png} | Bin
+ ...-ref.png => clip-push-group.ps2.argb32.ref.png} | Bin
+ ...4-ref.png => clip-push-group.ps2.rgb24.ref.png} | Bin
+ ...-ref.png => clip-push-group.ps3.argb32.ref.png} | Bin
+ ...4-ref.png => clip-push-group.ps3.rgb24.ref.png} | Bin
+ ...artz-ref.png => clip-push-group.quartz.ref.png} | Bin
+ ...-push-group-ref.png => clip-push-group.ref.png} | Bin
+ ...rgb32-ref.png => clip-twice.ps2.argb32.ref.png} | Bin
+ ...-rgb24-ref.png => clip-twice.ps2.rgb24.ref.png} | Bin
+ ...rgb32-ref.png => clip-twice.ps3.argb32.ref.png} | Bin
+ ...-rgb24-ref.png => clip-twice.ps3.rgb24.ref.png} | Bin
+ ...ce-quartz-ref.png => clip-twice.quartz.ref.png} | Bin
+ ...b24-ref.png => clip-twice.quartz.rgb24.ref.png} | Bin
+ test/{clip-twice-ref.png => clip-twice.ref.png} | Bin
+ ...wice-rgb24-ref.png => clip-twice.rgb24.ref.png} | Bin
+ ...group-ps2-ref.png => clipped-group.ps2.ref.png} | Bin
+ ...group-ps3-ref.png => clipped-group.ps3.ref.png} | Bin
+ ...clipped-group-ref.png => clipped-group.ref.png} | Bin
+ ...ped-surface-ref.png => clipped-surface.ref.png} | Bin
+ ...ose-path-ps2-ref.png => close-path.ps2.ref.png} | Bin
+ ...ose-path-ps3-ref.png => close-path.ps3.ref.png} | Bin
+ test/{close-path-ref.png => close-path.ref.png} | Bin
+ ...site-integer-translate-over-repeat.ps2.ref.png} | Bin
+ ...site-integer-translate-over-repeat.ps3.ref.png} | Bin
+ ...omposite-integer-translate-over-repeat.ref.png} | Bin
+ ...> composite-integer-translate-over.ps2.ref.png} | Bin
+ ...> composite-integer-translate-over.ps3.ref.png} | Bin
+ ...ng => composite-integer-translate-over.ref.png} | Bin
+ ...composite-integer-translate-source.ps2.ref.png} | Bin
+ ...composite-integer-translate-source.ps3.ref.png} | Bin
+ ... => composite-integer-translate-source.ref.png} | Bin
+ ...copy-path-ps2-ref.png => copy-path.ps2.ref.png} | Bin
+ ...copy-path-ps3-ref.png => copy-path.ps3.ref.png} | Bin
+ test/{copy-path-ref.png => copy-path.ref.png} | Bin
+ test/create-for-stream.c | 2 +-
+ test/create-from-png-stream.c | 2 +-
+ ...ream-ref.png => create-from-png-stream.ref.png} | Bin
+ ...alpha-ref.png => create-from-png.alpha.ref.png} | Bin
+ test/create-from-png.c | 16 +-
+ ...-ref.png => create-from-png.gray-alpha.ref.png} | Bin
+ ...g-gray-ref.png => create-from-png.gray.ref.png} | Bin
+ ...f.png => create-from-png.indexed-alpha.ref.png} | Bin
+ ...xed-ref.png => create-from-png.indexed.ref.png} | Bin
+ ...te-from-png-ref.png => create-from-png.ref.png} | Bin
+ ...-ref.png => dash-caps-joins.ps2.argb32.ref.png} | Bin
+ ...4-ref.png => dash-caps-joins.ps2.rgb24.ref.png} | Bin
+ ...-ref.png => dash-caps-joins.ps3.argb32.ref.png} | Bin
+ ...4-ref.png => dash-caps-joins.ps3.rgb24.ref.png} | Bin
+ ...artz-ref.png => dash-caps-joins.quartz.ref.png} | Bin
+ ...-caps-joins-ref.png => dash-caps-joins.ref.png} | Bin
+ ...sh-curve-ps2-ref.png => dash-curve.ps2.ref.png} | Bin
+ ...sh-curve-ps3-ref.png => dash-curve.ps3.ref.png} | Bin
+ ...ve-quartz-ref.png => dash-curve.quartz.ref.png} | Bin
+ test/{dash-curve-ref.png => dash-curve.ref.png} | Bin
+ .../{dash-no-dash-ref.png => dash-no-dash.ref.png} | Bin
+ ...gative-ref.png => dash-offset-negative.ref.png} | Bin
+ ...rgb32-ref.png => dash-scale.ps2.argb32.ref.png} | Bin
+ ...-rgb24-ref.png => dash-scale.ps2.rgb24.ref.png} | Bin
+ ...rgb32-ref.png => dash-scale.ps3.argb32.ref.png} | Bin
+ ...-rgb24-ref.png => dash-scale.ps3.rgb24.ref.png} | Bin
+ ...le-quartz-ref.png => dash-scale.quartz.ref.png} | Bin
+ test/{dash-scale-ref.png => dash-scale.ref.png} | Bin
+ ...sh-state-ps2-ref.png => dash-state.ps2.ref.png} | Bin
+ ...sh-state-ps3-ref.png => dash-state.ps3.ref.png} | Bin
+ ...te-quartz-ref.png => dash-state.quartz.ref.png} | Bin
+ test/{dash-state-ref.png => dash-state.ref.png} | Bin
+ ...th-ps2-ref.png => dash-zero-length.ps2.ref.png} | Bin
+ ...-ref.png => dash-zero-length.ps2.rgb24.ref.png} | Bin
+ ...th-ps3-ref.png => dash-zero-length.ps3.ref.png} | Bin
+ ...-ref.png => dash-zero-length.ps3.rgb24.ref.png} | Bin
+ ...ero-length-ref.png => dash-zero-length.ref.png} | Bin
+ ...gb24-ref.png => dash-zero-length.rgb24.ref.png} | Bin
+ ...-arc-ps2-ref.png => degenerate-arc.ps2.ref.png} | Bin
+ ...-arc-ps3-ref.png => degenerate-arc.ps3.ref.png} | Bin
+ ...generate-arc-ref.png => degenerate-arc.ref.png} | Bin
+ ...nerate-dash-ref.png => degenerate-dash.ref.png} | Bin
+ ...-ref.png => degenerate-path.ps2.argb32.ref.png} | Bin
+ ...4-ref.png => degenerate-path.ps2.rgb24.ref.png} | Bin
+ ...-ref.png => degenerate-path.ps3.argb32.ref.png} | Bin
+ ...4-ref.png => degenerate-path.ps3.rgb24.ref.png} | Bin
+ ...artz-ref.png => degenerate-path.quartz.ref.png} | Bin
+ ...ef.png => degenerate-path.quartz.rgb24.ref.png} | Bin
+ ...nerate-path-ref.png => degenerate-path.ref.png} | Bin
+ ...rgb24-ref.png => degenerate-path.rgb24.ref.png} | Bin
+ ...-pen-ps2-ref.png => degenerate-pen.ps2.ref.png} | Bin
+ ...-pen-ps3-ref.png => degenerate-pen.ps3.ref.png} | Bin
+ ...uartz-ref.png => degenerate-pen.quartz.ref.png} | Bin
+ ...generate-pen-ref.png => degenerate-pen.ref.png} | Bin
+ ...ef.png => device-offset-fractional.pdf.ref.png} | Bin
+ ...ef.png => device-offset-fractional.ps2.ref.png} | Bin
+ ...ef.png => device-offset-fractional.ps3.ref.png} | Bin
+ ...al-ref.png => device-offset-fractional.ref.png} | Bin
+ ...tive-ref.png => device-offset-positive.ref.png} | Bin
+ ...ef.png => device-offset-positive.rgb24.ref.png} | Bin
+ ...t-scale-ref.png => device-offset-scale.ref.png} | Bin
+ ...device-offset-ref.png => device-offset.ref.png} | Bin
+ ...t-rgb24-ref.png => device-offset.rgb24.ref.png} | Bin
+ test/{extend-pad-ref.png => extend-pad.ref.png} | Bin
+ ...-ref.png => extend-reflect-similar.ps2.ref.png} | Bin
+ ...-ref.png => extend-reflect-similar.ps3.ref.png} | Bin
+ ...lect-ref.png => extend-reflect-similar.ref.png} | Bin
+ ...ilar-ps2-ref.png => extend-reflect.ps2.ref.png} | Bin
+ ...ilar-ps3-ref.png => extend-reflect.ps3.ref.png} | Bin
+ ...lect-similar-ref.png => extend-reflect.ref.png} | Bin
+ ...2-ref.png => extend-repeat-similar.ps2.ref.png} | Bin
+ ...3-ref.png => extend-repeat-similar.ps3.ref.png} | Bin
+ ...epeat-ref.png => extend-repeat-similar.ref.png} | Bin
+ ...milar-ps2-ref.png => extend-repeat.ps2.ref.png} | Bin
+ ...milar-ps3-ref.png => extend-repeat.ps3.ref.png} | Bin
+ ...epeat-similar-ref.png => extend-repeat.ref.png} | Bin
+ test/fallback-resolution.c | 11 +-
+ ....png => fallback-resolution.ppi150x150.ref.png} | Bin
+ ....png => fallback-resolution.ppi150x300.ref.png} | Bin
+ ...png => fallback-resolution.ppi150x37.5.ref.png} | Bin
+ ....png => fallback-resolution.ppi150x600.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi150x72.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi150x75.ref.png} | Bin
+ ....png => fallback-resolution.ppi300x150.ref.png} | Bin
+ ....png => fallback-resolution.ppi300x300.ref.png} | Bin
+ ...png => fallback-resolution.ppi300x37.5.ref.png} | Bin
+ ....png => fallback-resolution.ppi300x600.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi300x72.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi300x75.ref.png} | Bin
+ ...png => fallback-resolution.ppi37.5x150.ref.png} | Bin
+ ...png => fallback-resolution.ppi37.5x300.ref.png} | Bin
+ ...ng => fallback-resolution.ppi37.5x37.5.ref.png} | Bin
+ ...png => fallback-resolution.ppi37.5x600.ref.png} | Bin
+ ....png => fallback-resolution.ppi37.5x72.ref.png} | Bin
+ ....png => fallback-resolution.ppi37.5x75.ref.png} | Bin
+ ....png => fallback-resolution.ppi600x150.ref.png} | Bin
+ ....png => fallback-resolution.ppi600x300.ref.png} | Bin
+ ...png => fallback-resolution.ppi600x37.5.ref.png} | Bin
+ ....png => fallback-resolution.ppi600x600.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi600x72.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi600x75.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi72x150.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi72x300.ref.png} | Bin
+ ....png => fallback-resolution.ppi72x37.5.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi72x600.ref.png} | Bin
+ ...ef.png => fallback-resolution.ppi72x72.ref.png} | Bin
+ ...ef.png => fallback-resolution.ppi72x75.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi75x150.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi75x300.ref.png} | Bin
+ ....png => fallback-resolution.ppi75x37.5.ref.png} | Bin
+ ...f.png => fallback-resolution.ppi75x600.ref.png} | Bin
+ ...ef.png => fallback-resolution.ppi75x72.ref.png} | Bin
+ ...ef.png => fallback-resolution.ppi75x75.ref.png} | Bin
+ ...f.png => fill-alpha-pattern.pdf.argb32.ref.png} | Bin
+ ...ef.png => fill-alpha-pattern.pdf.rgb24.ref.png} | Bin
+ ...-ps3-ref.png => fill-alpha-pattern.ps3.ref.png} | Bin
+ ...-pattern-ref.png => fill-alpha-pattern.ref.png} | Bin
+ test/{fill-alpha-ref.png => fill-alpha.ref.png} | Bin
+ ...ng => fill-and-stroke-alpha-add.quartz.ref.png} | Bin
+ ...d-ref.png => fill-and-stroke-alpha-add.ref.png} | Bin
+ ...ef.png => fill-and-stroke-alpha.quartz.ref.png} | Bin
+ ...alpha-ref.png => fill-and-stroke-alpha.ref.png} | Bin
+ ...-ref.png => fill-and-stroke.ps2.argb32.ref.png} | Bin
+ ...4-ref.png => fill-and-stroke.ps2.rgb24.ref.png} | Bin
+ ...-ref.png => fill-and-stroke.ps3.argb32.ref.png} | Bin
+ ...4-ref.png => fill-and-stroke.ps3.rgb24.ref.png} | Bin
+ ...artz-ref.png => fill-and-stroke.quartz.ref.png} | Bin
+ ...ef.png => fill-and-stroke.quartz.rgb24.ref.png} | Bin
+ ...-and-stroke-ref.png => fill-and-stroke.ref.png} | Bin
+ ...rgb24-ref.png => fill-and-stroke.rgb24.ref.png} | Bin
+ ...g => fill-degenerate-sort-order.quartz.ref.png} | Bin
+ ...ill-degenerate-sort-order.quartz.rgb24.ref.png} | Bin
+ ...-ref.png => fill-degenerate-sort-order.ref.png} | Bin
+ ...ng => fill-degenerate-sort-order.rgb24.ref.png} | Bin
+ ...ref.png => fill-missed-stop.ps2.argb32.ref.png} | Bin
+ ...-ref.png => fill-missed-stop.ps2.rgb24.ref.png} | Bin
+ ...ref.png => fill-missed-stop.ps3.argb32.ref.png} | Bin
+ ...-ref.png => fill-missed-stop.ps3.rgb24.ref.png} | Bin
+ ...issed-stop-ref.png => fill-missed-stop.ref.png} | Bin
+ ...gb24-ref.png => fill-missed-stop.rgb24.ref.png} | Bin
+ ...argb32-ref.png => fill-rule.ps2.argb32.ref.png} | Bin
+ ...2-rgb24-ref.png => fill-rule.ps2.rgb24.ref.png} | Bin
+ ...argb32-ref.png => fill-rule.ps3.argb32.ref.png} | Bin
+ ...3-rgb24-ref.png => fill-rule.ps3.rgb24.ref.png} | Bin
+ ...ule-quartz-ref.png => fill-rule.quartz.ref.png} | Bin
+ ...gb24-ref.png => fill-rule.quartz.rgb24.ref.png} | Bin
+ test/{fill-rule-ref.png => fill-rule.ref.png} | Bin
+ ...-rule-rgb24-ref.png => fill-rule.rgb24.ref.png} | Bin
+ ...ref.png => filter-bilinear-extents.pdf.ref.png} | Bin
+ ...ref.png => filter-bilinear-extents.ps2.ref.png} | Bin
+ ...ref.png => filter-bilinear-extents.ps3.ref.png} | Bin
+ ...nts-ref.png => filter-bilinear-extents.ref.png} | Bin
+ ...f-ref.png => filter-nearest-offset.pdf.ref.png} | Bin
+ ...2-ref.png => filter-nearest-offset.ps2.ref.png} | Bin
+ ...3-ref.png => filter-nearest-offset.ps3.ref.png} | Bin
+ ...ffset-ref.png => filter-nearest-offset.ref.png} | Bin
+ ...ref.png => filter-nearest-offset.svg11.ref.png} | Bin
+ ...ref.png => filter-nearest-offset.svg12.ref.png} | Bin
+ ....png => filter-nearest-transformed.pdf.ref.png} | Bin
+ ...-ref.png => filter-nearest-transformed.ref.png} | Bin
+ ...ng => filter-nearest-transformed.svg11.ref.png} | Bin
+ ...ng => filter-nearest-transformed.svg12.ref.png} | Bin
+ ...ref.png => finer-grained-fallbacks.ps2.ref.png} | Bin
+ ...g => finer-grained-fallbacks.ps2.rgb24.ref.png} | Bin
+ ...ref.png => finer-grained-fallbacks.ps3.ref.png} | Bin
+ ...g => finer-grained-fallbacks.ps3.rgb24.ref.png} | Bin
+ ...cks-ref.png => finer-grained-fallbacks.ref.png} | Bin
+ ...f.png => finer-grained-fallbacks.rgb24.ref.png} | Bin
+ ... => font-matrix-translation.ps2.argb32.ref.png} | Bin
+ ...g => font-matrix-translation.ps2.rgb24.ref.png} | Bin
+ ... => font-matrix-translation.ps3.argb32.ref.png} | Bin
+ ...g => font-matrix-translation.ps3.rgb24.ref.png} | Bin
+ ....png => font-matrix-translation.quartz.ref.png} | Bin
+ ...ion-ref.png => font-matrix-translation.ref.png} | Bin
+ ...f.png => font-matrix-translation.svg11.ref.png} | Bin
+ ...f.png => font-matrix-translation.svg12.ref.png} | Bin
+ ....png => ft-show-glyphs-positioning.pdf.ref.png} | Bin
+ ....png => ft-show-glyphs-positioning.ps2.ref.png} | Bin
+ ....png => ft-show-glyphs-positioning.ps3.ref.png} | Bin
+ ...-ref.png => ft-show-glyphs-positioning.ref.png} | Bin
+ ...ng => ft-show-glyphs-positioning.svg11.ref.png} | Bin
+ ...ng => ft-show-glyphs-positioning.svg12.ref.png} | Bin
+ ...s2-ref.png => ft-show-glyphs-table.ps2.ref.png} | Bin
+ ...s3-ref.png => ft-show-glyphs-table.ps3.ref.png} | Bin
+ ...-table-ref.png => ft-show-glyphs-table.ref.png} | Bin
+ ...g => ft-text-antialias-none.ps2.argb32.ref.png} | Bin
+ ...g => ft-text-antialias-none.ps3.argb32.ref.png} | Bin
+ ...none-ref.png => ft-text-antialias-none.ref.png} | Bin
+ ...g => ft-text-vertical-layout-type1.pdf.ref.png} | Bin
+ ...g => ft-text-vertical-layout-type1.ps2.ref.png} | Bin
+ ...g => ft-text-vertical-layout-type1.ps3.ref.png} | Bin
+ ...f.png => ft-text-vertical-layout-type1.ref.png} | Bin
+ ...=> ft-text-vertical-layout-type1.svg11.ref.png} | Bin
+ ...=> ft-text-vertical-layout-type1.svg12.ref.png} | Bin
+ ...g => ft-text-vertical-layout-type3.pdf.ref.png} | Bin
+ ...g => ft-text-vertical-layout-type3.ps2.ref.png} | Bin
+ ...g => ft-text-vertical-layout-type3.ps3.ref.png} | Bin
+ ...f.png => ft-text-vertical-layout-type3.ref.png} | Bin
+ ...=> ft-text-vertical-layout-type3.svg11.ref.png} | Bin
+ ...=> ft-text-vertical-layout-type3.svg12.ref.png} | Bin
+ ...oup-target-ref.png => get-group-target.ref.png} | Bin
+ ...source-ref.png => glitz-surface-source.ref.png} | Bin
+ ...s2-ref.png => glyph-cache-pressure.ps2.ref.png} | Bin
+ ...s3-ref.png => glyph-cache-pressure.ps3.ref.png} | Bin
+ ...ref.png => glyph-cache-pressure.quartz.ref.png} | Bin
+ ...essure-ref.png => glyph-cache-pressure.ref.png} | Bin
+ ...2-ref.png => gradient-alpha.pdf.argb32.ref.png} | Bin
+ ...24-ref.png => gradient-alpha.pdf.rgb24.ref.png} | Bin
+ ...2-ref.png => gradient-alpha.ps2.argb32.ref.png} | Bin
+ ...24-ref.png => gradient-alpha.ps2.rgb24.ref.png} | Bin
+ ...2-ref.png => gradient-alpha.ps3.argb32.ref.png} | Bin
+ ...24-ref.png => gradient-alpha.ps3.rgb24.ref.png} | Bin
+ ...adient-alpha-ref.png => gradient-alpha.ref.png} | Bin
+ ...-rgb24-ref.png => gradient-alpha.rgb24.ref.png} | Bin
+ ... => gradient-constant-alpha.pdf.argb32.ref.png} | Bin
+ ...g => gradient-constant-alpha.pdf.rgb24.ref.png} | Bin
+ ...ref.png => gradient-constant-alpha.ps3.ref.png} | Bin
+ ...g => gradient-constant-alpha.ps3.rgb24.ref.png} | Bin
+ ...pha-ref.png => gradient-constant-alpha.ref.png} | Bin
+ ...f.png => gradient-constant-alpha.rgb24.ref.png} | Bin
+ ...o-stops-ref.png => gradient-zero-stops.ref.png} | Bin
+ ...4-ref.png => gradient-zero-stops.rgb24.ref.png} | Bin
+ test/{group-paint-ref.png => group-paint.ref.png} | Bin
+ ...attern-pdf-ref.png => huge-pattern.pdf.ref.png} | Bin
+ ...gb24-ref.png => huge-pattern.pdf.rgb24.ref.png} | Bin
+ ...attern-ps3-ref.png => huge-pattern.ps3.ref.png} | Bin
+ .../{huge-pattern-ref.png => huge-pattern.ref.png} | Bin
+ ...s2-ref.png => image-surface-source.ps2.ref.png} | Bin
+ ...s3-ref.png => image-surface-source.ps3.ref.png} | Bin
+ ...source-ref.png => image-surface-source.ref.png} | Bin
+ ...-join-ps2-ref.png => infinite-join.ps2.ref.png} | Bin
+ ...-join-ps3-ref.png => infinite-join.ps3.ref.png} | Bin
+ ...infinite-join-ref.png => infinite-join.ref.png} | Bin
+ test/{large-clip-ref.png => large-clip.ref.png} | Bin
+ test/{large-font-ref.png => large-font.ref.png} | Bin
+ .../{large-source-ref.png => large-source.ref.png} | Bin
+ ...rgb32-ref.png => leaky-dash.ps2.argb32.ref.png} | Bin
+ ...-rgb24-ref.png => leaky-dash.ps2.rgb24.ref.png} | Bin
+ ...rgb32-ref.png => leaky-dash.ps3.argb32.ref.png} | Bin
+ ...-rgb24-ref.png => leaky-dash.ps3.rgb24.ref.png} | Bin
+ ...sh-quartz-ref.png => leaky-dash.quartz.ref.png} | Bin
+ test/{leaky-dash-ref.png => leaky-dash.ref.png} | Bin
+ ...-ref.png => leaky-dashed-rectangle.ps2.ref.png} | Bin
+ ...-ref.png => leaky-dashed-rectangle.ps3.ref.png} | Bin
+ ...ngle-ref.png => leaky-dashed-rectangle.ref.png} | Bin
+ ...ps2-ref.png => leaky-dashed-stroke.ps2.ref.png} | Bin
+ ...ps3-ref.png => leaky-dashed-stroke.ps3.ref.png} | Bin
+ ...-stroke-ref.png => leaky-dashed-stroke.ref.png} | Bin
+ ...lygon-ps2-ref.png => leaky-polygon.ps2.ref.png} | Bin
+ ...lygon-ps3-ref.png => leaky-polygon.ps3.ref.png} | Bin
+ ...leaky-polygon-ref.png => leaky-polygon.ref.png} | Bin
+ ...le-ps2-ref.png => line-width-scale.ps2.ref.png} | Bin
+ ...le-ps3-ref.png => line-width-scale.ps3.ref.png} | Bin
+ ...rtz-ref.png => line-width-scale.quartz.ref.png} | Bin
+ ...idth-scale-ref.png => line-width-scale.ref.png} | Bin
+ test/{line-width-ref.png => line-width.ref.png} | Bin
+ ... => linear-gradient-reflect.pdf.argb32.ref.png} | Bin
+ ...g => linear-gradient-reflect.pdf.rgb24.ref.png} | Bin
+ ...ref.png => linear-gradient-reflect.ps3.ref.png} | Bin
+ ....png => linear-gradient-reflect.quartz.ref.png} | Bin
+ ...ect-ref.png => linear-gradient-reflect.ref.png} | Bin
+ ...ent-pdf-ref.png => linear-gradient.pdf.ref.png} | Bin
+ ...ent-ps3-ref.png => linear-gradient.ps3.ref.png} | Bin
+ ...artz-ref.png => linear-gradient.quartz.ref.png} | Bin
+ ...ar-gradient-ref.png => linear-gradient.ref.png} | Bin
+ ...svg11-ref.png => linear-gradient.svg11.ref.png} | Bin
+ ...svg12-ref.png => linear-gradient.svg12.ref.png} | Bin
+ ...s-ps2-ref.png => long-dashed-lines.ps2.ref.png} | Bin
+ ...s-ps3-ref.png => long-dashed-lines.ps3.ref.png} | Bin
+ ...tz-ref.png => long-dashed-lines.quartz.ref.png} | Bin
+ ...hed-lines-ref.png => long-dashed-lines.ref.png} | Bin
+ test/{long-lines-ref.png => long-lines.ref.png} | Bin
+ ...32-ref.png => mask-alpha.quartz.argb32.ref.png} | Bin
+ test/{mask-alpha-ref.png => mask-alpha.ref.png} | Bin
+ ...lpha-rgb24-ref.png => mask-alpha.rgb24.ref.png} | Bin
+ ...b32-ref.png => mask-alpha.svg11.argb32.ref.png} | Bin
+ ...b32-ref.png => mask-alpha.svg12.argb32.ref.png} | Bin
+ test/{mask-ctm-ref.png => mask-ctm.ref.png} | Bin
+ ...sk-ctm-rgb24-ref.png => mask-ctm.rgb24.ref.png} | Bin
+ ...rgb32-ref.png => mask-ctm.svg11.argb32.ref.png} | Bin
+ ...rgb32-ref.png => mask-ctm.svg12.argb32.ref.png} | Bin
+ ...urface-ctm-ref.png => mask-surface-ctm.ref.png} | Bin
+ ...gb24-ref.png => mask-surface-ctm.rgb24.ref.png} | Bin
+ ...f.png => mask-surface-ctm.svg11.argb32.ref.png} | Bin
+ ...f.png => mask-surface-ctm.svg12.argb32.ref.png} | Bin
+ ...mage-ref.png => mask-transformed-image.ref.png} | Bin
+ ...ef.png => mask-transformed-similar.pdf.ref.png} | Bin
+ ...ar-ref.png => mask-transformed-similar.ref.png} | Bin
+ ....png => mask-transformed-similar.svg11.ref.png} | Bin
+ ....png => mask-transformed-similar.svg12.ref.png} | Bin
+ ...-pdf-argb32-ref.png => mask.pdf.argb32.ref.png} | Bin
+ ...sk-pdf-rgb24-ref.png => mask.pdf.rgb24.ref.png} | Bin
+ test/{mask-quartz-ref.png => mask.quartz.ref.png} | Bin
+ ...rtz-rgb24-ref.png => mask.quartz.rgb24.ref.png} | Bin
+ test/{mask-ref.png => mask.ref.png} | Bin
+ test/{mask-rgb24-ref.png => mask.rgb24.ref.png} | Bin
+ ...11-argb32-ref.png => mask.svg11.argb32.ref.png} | Bin
+ ...vg11-rgb24-ref.png => mask.svg11.rgb24.ref.png} | Bin
+ ...12-argb32-ref.png => mask.svg12.argb32.ref.png} | Bin
+ ...vg12-rgb24-ref.png => mask.svg12.rgb24.ref.png} | Bin
+ ...df-ref.png => meta-surface-pattern.pdf.ref.png} | Bin
+ ....png => meta-surface-pattern.pdf.rgb24.ref.png} | Bin
+ ...png => meta-surface-pattern.ps2.argb32.ref.png} | Bin
+ ....png => meta-surface-pattern.ps2.rgb24.ref.png} | Bin
+ ...png => meta-surface-pattern.ps3.argb32.ref.png} | Bin
+ ....png => meta-surface-pattern.ps3.rgb24.ref.png} | Bin
+ ...ref.png => meta-surface-pattern.quartz.ref.png} | Bin
+ ...g => meta-surface-pattern.quartz.rgb24.ref.png} | Bin
+ ...attern-ref.png => meta-surface-pattern.ref.png} | Bin
+ ...-ref.png => meta-surface-pattern.rgb24.ref.png} | Bin
+ ...g => meta-surface-pattern.svg11.argb32.ref.png} | Bin
+ ...ng => meta-surface-pattern.svg11.rgb24.ref.png} | Bin
+ ...g => meta-surface-pattern.svg12.argb32.ref.png} | Bin
+ ...ng => meta-surface-pattern.svg12.rgb24.ref.png} | Bin
+ ...ion-ps2-ref.png => miter-precision.ps2.ref.png} | Bin
+ ...ion-ps3-ref.png => miter-precision.ps3.ref.png} | Bin
+ ...r-precision-ref.png => miter-precision.ref.png} | Bin
+ ...urface-ref.png => move-to-show-surface.ref.png} | Bin
+ test/multi-page.c | 4 +-
+ ...b32-ref.png => new-sub-path.ps2.argb32.ref.png} | Bin
+ ...gb24-ref.png => new-sub-path.ps2.rgb24.ref.png} | Bin
+ ...b32-ref.png => new-sub-path.ps3.argb32.ref.png} | Bin
+ ...gb24-ref.png => new-sub-path.ps3.rgb24.ref.png} | Bin
+ ...-quartz-ref.png => new-sub-path.quartz.ref.png} | Bin
+ ...4-ref.png => new-sub-path.quartz.rgb24.ref.png} | Bin
+ .../{new-sub-path-ref.png => new-sub-path.ref.png} | Bin
+ ...th-rgb24-ref.png => new-sub-path.rgb24.ref.png} | Bin
+ test/{nil-surface-ref.png => nil-surface.ref.png} | Bin
+ ...ace-rgb24-ref.png => nil-surface.rgb24.ref.png} | Bin
+ ...erator-alpha-ref.png => operator-alpha.ref.png} | Bin
+ ...-rgb24-ref.png => operator-alpha.rgb24.ref.png} | Bin
+ ...2-ref.png => operator-clear.pdf.argb32.ref.png} | Bin
+ ...24-ref.png => operator-clear.pdf.rgb24.ref.png} | Bin
+ ...uartz-ref.png => operator-clear.quartz.ref.png} | Bin
+ ...ref.png => operator-clear.quartz.rgb24.ref.png} | Bin
+ ...erator-clear-ref.png => operator-clear.ref.png} | Bin
+ ...-rgb24-ref.png => operator-clear.rgb24.ref.png} | Bin
+ ...-ref.png => operator-source.pdf.argb32.ref.png} | Bin
+ ...4-ref.png => operator-source.pdf.rgb24.ref.png} | Bin
+ ...artz-ref.png => operator-source.quartz.ref.png} | Bin
+ ...ef.png => operator-source.quartz.rgb24.ref.png} | Bin
+ ...ator-source-ref.png => operator-source.ref.png} | Bin
+ ...rgb24-ref.png => operator-source.rgb24.ref.png} | Bin
+ test/{operator-ref.png => operator.ref.png} | Bin
+ ...erator-rgb24-ref.png => operator.rgb24.ref.png} | Bin
+ ...ef.png => over-above-source.ps2.argb32.ref.png} | Bin
+ ...ef.png => over-above-source.ps3.argb32.ref.png} | Bin
+ ...tz-ref.png => over-above-source.quartz.ref.png} | Bin
+ ....png => over-above-source.quartz.rgb24.ref.png} | Bin
+ ...ve-source-ref.png => over-above-source.ref.png} | Bin
+ ...b24-ref.png => over-above-source.rgb24.ref.png} | Bin
+ ...f.png => over-around-source.ps2.argb32.ref.png} | Bin
+ ...ef.png => over-around-source.ps2.rgb24.ref.png} | Bin
+ ...f.png => over-around-source.ps3.argb32.ref.png} | Bin
+ ...ef.png => over-around-source.ps3.rgb24.ref.png} | Bin
+ ...z-ref.png => over-around-source.quartz.ref.png} | Bin
+ ...png => over-around-source.quartz.rgb24.ref.png} | Bin
+ ...d-source-ref.png => over-around-source.ref.png} | Bin
+ ...24-ref.png => over-around-source.rgb24.ref.png} | Bin
+ ...ef.png => over-below-source.ps2.argb32.ref.png} | Bin
+ ...ef.png => over-below-source.ps3.argb32.ref.png} | Bin
+ ...ow-source-ref.png => over-below-source.ref.png} | Bin
+ ...b24-ref.png => over-below-source.rgb24.ref.png} | Bin
+ ....png => over-between-source.ps2.argb32.ref.png} | Bin
+ ....png => over-between-source.ps3.argb32.ref.png} | Bin
+ ...-ref.png => over-between-source.quartz.ref.png} | Bin
+ ...ng => over-between-source.quartz.rgb24.ref.png} | Bin
+ ...-source-ref.png => over-between-source.ref.png} | Bin
+ ...4-ref.png => over-between-source.rgb24.ref.png} | Bin
+ .../{paint-repeat-ref.png => paint-repeat.ref.png} | Bin
+ ...f.png => paint-source-alpha.pdf.argb32.ref.png} | Bin
+ ...-pdf-ref.png => paint-source-alpha.pdf.ref.png} | Bin
+ ...ce-alpha-ref.png => paint-source-alpha.ref.png} | Bin
+ ...11-ref.png => paint-source-alpha.svg11.ref.png} | Bin
+ ...12-ref.png => paint-source-alpha.svg12.ref.png} | Bin
+ ...ha-pdf-ref.png => paint-with-alpha.pdf.ref.png} | Bin
+ ...with-alpha-ref.png => paint-with-alpha.ref.png} | Bin
+ ...vg11-ref.png => paint-with-alpha.svg11.ref.png} | Bin
+ ...vg12-ref.png => paint-with-alpha.svg12.ref.png} | Bin
+ test/{paint-ref.png => paint.ref.png} | Bin
+ .../{pass-through-ref.png => pass-through.ref.png} | Bin
+ ...gh-rgb24-ref.png => pass-through.rgb24.ref.png} | Bin
+ ...ern-getters-ref.png => pattern-getters.ref.png} | Bin
+ test/pdf-features.c | 2 +-
+ test/pdf-surface-source.c | 2 +-
+ ...e-source-ref.png => pdf-surface-source.ref.png} | Bin
+ ...pixman-rotate-ref.png => pixman-rotate.ref.png} | Bin
+ ...e-rgb24-ref.png => pixman-rotate.rgb24.ref.png} | Bin
+ test/png.c | 2 +-
+ test/ps-features.c | 2 +-
+ test/ps-surface-source.c | 2 +-
+ ...ce-source-ref.png => ps-surface-source.ref.png} | Bin
+ ...sh-group-pdf-ref.png => push-group.pdf.ref.png} | Bin
+ ...-rgb24-ref.png => push-group.pdf.rgb24.ref.png} | Bin
+ test/{push-group-ref.png => push-group.ref.png} | Bin
+ ...roup-rgb24-ref.png => push-group.rgb24.ref.png} | Bin
+ ...b32-ref.png => push-group.svg11.argb32.ref.png} | Bin
+ ...b32-ref.png => push-group.svg12.argb32.ref.png} | Bin
+ ...ent-pdf-ref.png => radial-gradient.pdf.ref.png} | Bin
+ ...artz-ref.png => radial-gradient.quartz.ref.png} | Bin
+ ...al-gradient-ref.png => radial-gradient.ref.png} | Bin
+ ...svg11-ref.png => radial-gradient.svg11.ref.png} | Bin
+ ...svg12-ref.png => radial-gradient.svg12.ref.png} | Bin
+ ...s2-ref.png => random-intersections.ps2.ref.png} | Bin
+ ...s3-ref.png => random-intersections.ps3.ref.png} | Bin
+ ...ref.png => random-intersections.quartz.ref.png} | Bin
+ ...ctions-ref.png => random-intersections.ref.png} | Bin
+ ...or-ref.png => rectangle-rounding-error.ref.png} | Bin
+ ...inear-fill-ref.png => rectilinear-fill.ref.png} | Bin
+ ...ref.png => rectilinear-miter-limit.ps2.ref.png} | Bin
+ ...ref.png => rectilinear-miter-limit.ps3.ref.png} | Bin
+ ...mit-ref.png => rectilinear-miter-limit.ref.png} | Bin
+ ...r-stroke-ref.png => rectilinear-stroke.ref.png} | Bin
+ ...ke-ps2-ref.png => reflected-stroke.ps2.ref.png} | Bin
+ ...ke-ps3-ref.png => reflected-stroke.ps3.ref.png} | Bin
+ ...rtz-ref.png => reflected-stroke.quartz.ref.png} | Bin
+ ...ted-stroke-ref.png => reflected-stroke.ref.png} | Bin
+ ...s2-rgb24-ref.png => rel-path.ps2.rgb24.ref.png} | Bin
+ ...s3-rgb24-ref.png => rel-path.ps3.rgb24.ref.png} | Bin
+ ...path-quartz-ref.png => rel-path.quartz.ref.png} | Bin
+ ...rgb24-ref.png => rel-path.quartz.rgb24.ref.png} | Bin
+ test/{rel-path-ref.png => rel-path.ref.png} | Bin
+ ...l-path-rgb24-ref.png => rel-path.rgb24.ref.png} | Bin
+ ...re-alpha-ref.png => rgb24-ignore-alpha.ref.png} | Bin
+ ... rotate-image-surface-paint.pdf.argb32.ref.png} | Bin
+ ...> rotate-image-surface-paint.pdf.rgb24.ref.png} | Bin
+ ....png => rotate-image-surface-paint.ps2.ref.png} | Bin
+ ....png => rotate-image-surface-paint.ps3.ref.png} | Bin
+ ...g => rotate-image-surface-paint.quartz.ref.png} | Bin
+ ...-ref.png => rotate-image-surface-paint.ref.png} | Bin
+ ...ng => rotate-image-surface-paint.svg11.ref.png} | Bin
+ ...ng => rotate-image-surface-paint.svg12.ref.png} | Bin
+ ...png => scale-down-source-surface-paint.ref.png} | Bin
+ ... scale-source-surface-paint.pdf.argb32.ref.png} | Bin
+ ...> scale-source-surface-paint.pdf.rgb24.ref.png} | Bin
+ ...-ref.png => scale-source-surface-paint.ref.png} | Bin
+ ...ng => scale-source-surface-paint.rgb24.ref.png} | Bin
+ ...cale-source-surface-paint.svg11.argb32.ref.png} | Bin
+ ...scale-source-surface-paint.svg11.rgb24.ref.png} | Bin
+ ...cale-source-surface-paint.svg12.argb32.ref.png} | Bin
+ ...scale-source-surface-paint.svg12.rgb24.ref.png} | Bin
+ ...ce-ps2-ref.png => select-font-face.ps2.ref.png} | Bin
+ ...ce-ps3-ref.png => select-font-face.ps3.ref.png} | Bin
+ ...rtz-ref.png => select-font-face.quartz.ref.png} | Bin
+ ...-font-face-ref.png => select-font-face.ref.png} | Bin
+ ...y-overlap-ref.png => self-copy-overlap.ref.png} | Bin
+ ...b24-ref.png => self-copy-overlap.rgb24.ref.png} | Bin
+ ...self-copy-ps2-ref.png => self-copy.ps2.ref.png} | Bin
+ ...self-copy-ps3-ref.png => self-copy.ps3.ref.png} | Bin
+ test/{self-copy-ref.png => self-copy.ref.png} | Bin
+ ...ersecting-ref.png => self-intersecting.ref.png} | Bin
+ ...b24-ref.png => self-intersecting.rgb24.ref.png} | Bin
+ test/{set-source-ref.png => set-source.ref.png} | Bin
+ ...urce-rgb24-ref.png => set-source.rgb24.ref.png} | Bin
+ ...b32-ref.png => set-source.svg11.argb32.ref.png} | Bin
+ ...b32-ref.png => set-source.svg12.argb32.ref.png} | Bin
+ ...lyphs-many-ref.png => show-glyphs-many.ref.png} | Bin
+ ...ref.png => show-text-current-point.ps2.ref.png} | Bin
+ ...ref.png => show-text-current-point.ps3.ref.png} | Bin
+ ....png => show-text-current-point.quartz.ref.png} | Bin
+ ...int-ref.png => show-text-current-point.ref.png} | Bin
+ ...xtreme-ps2-ref.png => skew-extreme.ps2.ref.png} | Bin
+ ...xtreme-ps3-ref.png => skew-extreme.ps3.ref.png} | Bin
+ .../{skew-extreme-ref.png => skew-extreme.ref.png} | Bin
+ ...ask-fill-pdf-ref.png => smask-fill.pdf.ref.png} | Bin
+ test/{smask-fill-ref.png => smask-fill.ref.png} | Bin
+ ...fill-svg11-ref.png => smask-fill.svg11.ref.png} | Bin
+ ...fill-svg12-ref.png => smask-fill.svg12.ref.png} | Bin
+ ...sk-pdf-ref.png => smask-image-mask.pdf.ref.png} | Bin
+ ...image-mask-ref.png => smask-image-mask.ref.png} | Bin
+ ...ask-mask-pdf-ref.png => smask-mask.pdf.ref.png} | Bin
+ test/{smask-mask-ref.png => smask-mask.ref.png} | Bin
+ ...mask-svg11-ref.png => smask-mask.svg11.ref.png} | Bin
+ ...mask-svg12-ref.png => smask-mask.svg12.ref.png} | Bin
+ ...k-paint-pdf-ref.png => smask-paint.pdf.ref.png} | Bin
+ test/{smask-paint-ref.png => smask-paint.ref.png} | Bin
+ ...int-svg11-ref.png => smask-paint.svg11.ref.png} | Bin
+ ...int-svg12-ref.png => smask-paint.svg12.ref.png} | Bin
+ ...stroke-pdf-ref.png => smask-stroke.pdf.ref.png} | Bin
+ .../{smask-stroke-ref.png => smask-stroke.ref.png} | Bin
+ ...ask-text-pdf-ref.png => smask-text.pdf.ref.png} | Bin
+ ...ask-text-ps2-ref.png => smask-text.ps2.ref.png} | Bin
+ ...ask-text-ps3-ref.png => smask-text.ps3.ref.png} | Bin
+ test/{smask-text-ref.png => smask-text.ref.png} | Bin
+ ...text-svg11-ref.png => smask-text.svg11.ref.png} | Bin
+ ...text-svg12-ref.png => smask-text.svg12.ref.png} | Bin
+ test/{smask-pdf-ref.png => smask.pdf.ref.png} | Bin
+ test/{smask-ps2-ref.png => smask.ps2.ref.png} | Bin
+ test/{smask-ps3-ref.png => smask.ps3.ref.png} | Bin
+ test/{smask-ref.png => smask.ref.png} | Bin
+ test/{smask-svg11-ref.png => smask.svg11.ref.png} | Bin
+ test/{smask-svg12-ref.png => smask.svg12.ref.png} | Bin
+ ...-ref.png => solid-pattern-cache-stress.ref.png} | Bin
+ ...e-pdf-ref.png => source-clip-scale.pdf.ref.png} | Bin
+ ...ef.png => source-clip-scale.ps2.argb32.ref.png} | Bin
+ ...ref.png => source-clip-scale.ps2.rgb24.ref.png} | Bin
+ ...ef.png => source-clip-scale.ps3.argb32.ref.png} | Bin
+ ...ref.png => source-clip-scale.ps3.rgb24.ref.png} | Bin
+ ...tz-ref.png => source-clip-scale.quartz.ref.png} | Bin
+ ...lip-scale-ref.png => source-clip-scale.ref.png} | Bin
+ ...g11-ref.png => source-clip-scale.svg11.ref.png} | Bin
+ ...g12-ref.png => source-clip-scale.svg12.ref.png} | Bin
+ test/{source-clip-ref.png => source-clip.ref.png} | Bin
+ ...-ref.png => source-surface-scale-paint.ref.png} | Bin
+ ...ng => source-surface-scale-paint.rgb24.ref.png} | Bin
+ ...df-ref.png => spline-decomposition.pdf.ref.png} | Bin
+ ...s2-ref.png => spline-decomposition.ps2.ref.png} | Bin
+ ...s3-ref.png => spline-decomposition.ps3.ref.png} | Bin
+ ...sition-ref.png => spline-decomposition.ref.png} | Bin
+ ...-ref.png => spline-decomposition.svg11.ref.png} | Bin
+ ...-ref.png => spline-decomposition.svg12.ref.png} | Bin
+ ...aps-ps2-ref.png => stroke-ctm-caps.ps2.ref.png} | Bin
+ ...aps-ps3-ref.png => stroke-ctm-caps.ps3.ref.png} | Bin
+ ...artz-ref.png => stroke-ctm-caps.quartz.ref.png} | Bin
+ ...ke-ctm-caps-ref.png => stroke-ctm-caps.ref.png} | Bin
+ ...-image-pdf-ref.png => stroke-image.pdf.ref.png} | Bin
+ ...-image-ps2-ref.png => stroke-image.ps2.ref.png} | Bin
+ ...-image-ps3-ref.png => stroke-image.ps3.ref.png} | Bin
+ ...-quartz-ref.png => stroke-image.quartz.ref.png} | Bin
+ .../{stroke-image-ref.png => stroke-image.ref.png} | Bin
+ ....png => surface-pattern-big-scale-down.ref.png} | Bin
+ ... surface-pattern-scale-down.pdf.argb32.ref.png} | Bin
+ ...> surface-pattern-scale-down.pdf.rgb24.ref.png} | Bin
+ ....png => surface-pattern-scale-down.ps2.ref.png} | Bin
+ ....png => surface-pattern-scale-down.ps3.ref.png} | Bin
+ ...g => surface-pattern-scale-down.quartz.ref.png} | Bin
+ ...-ref.png => surface-pattern-scale-down.ref.png} | Bin
+ ...=> surface-pattern-scale-up.pdf.argb32.ref.png} | Bin
+ ... => surface-pattern-scale-up.pdf.rgb24.ref.png} | Bin
+ ...ef.png => surface-pattern-scale-up.ps2.ref.png} | Bin
+ ...ef.png => surface-pattern-scale-up.ps3.ref.png} | Bin
+ ...up-ref.png => surface-pattern-scale-up.ref.png} | Bin
+ ...ern-pdf-ref.png => surface-pattern.pdf.ref.png} | Bin
+ ...ern-ps2-ref.png => surface-pattern.ps2.ref.png} | Bin
+ ...ern-ps3-ref.png => surface-pattern.ps3.ref.png} | Bin
+ ...ace-pattern-ref.png => surface-pattern.ref.png} | Bin
+ ...svg11-ref.png => surface-pattern.svg11.ref.png} | Bin
+ ...svg12-ref.png => surface-pattern.svg12.ref.png} | Bin
+ test/svg-clip.c | 2 +-
+ test/svg-surface-source.c | 2 +-
+ ...e-source-ref.png => svg-surface-source.ref.png} | Bin
+ test/svg-surface.c | 2 +-
+ ...-ref.png => text-antialias-gray.quartz.ref.png} | Bin
+ ...as-gray-ref.png => text-antialias-gray.ref.png} | Bin
+ ...-ref.png => text-antialias-none.quartz.ref.png} | Bin
+ ...as-none-ref.png => text-antialias-none.ref.png} | Bin
+ ....png => text-antialias-subpixel.quartz.ref.png} | Bin
+ ...xel-ref.png => text-antialias-subpixel.ref.png} | Bin
+ ...ge-ps2-ref.png => text-glyph-range.ps2.ref.png} | Bin
+ ...ge-ps3-ref.png => text-glyph-range.ps3.ref.png} | Bin
+ ...lyph-range-ref.png => text-glyph-range.ref.png} | Bin
+ ...b32-ref.png => text-pattern.pdf.argb32.ref.png} | Bin
+ ...gb24-ref.png => text-pattern.pdf.rgb24.ref.png} | Bin
+ ...b32-ref.png => text-pattern.ps3.argb32.ref.png} | Bin
+ ...gb24-ref.png => text-pattern.ps3.rgb24.ref.png} | Bin
+ ...-quartz-ref.png => text-pattern.quartz.ref.png} | Bin
+ ...4-ref.png => text-pattern.quartz.rgb24.ref.png} | Bin
+ .../{text-pattern-ref.png => text-pattern.ref.png} | Bin
+ ...rn-rgb24-ref.png => text-pattern.rgb24.ref.png} | Bin
+ ...2-ref.png => text-pattern.svg11.argb32.ref.png} | Bin
+ ...24-ref.png => text-pattern.svg11.rgb24.ref.png} | Bin
+ ...2-ref.png => text-pattern.svg12.argb32.ref.png} | Bin
+ ...24-ref.png => text-pattern.svg12.rgb24.ref.png} | Bin
+ ...-rotate-pdf-ref.png => text-rotate.pdf.ref.png} | Bin
+ ...-rotate-ps2-ref.png => text-rotate.ps2.ref.png} | Bin
+ ...-rotate-ps3-ref.png => text-rotate.ps3.ref.png} | Bin
+ ...e-quartz-ref.png => text-rotate.quartz.ref.png} | Bin
+ test/{text-rotate-ref.png => text-rotate.ref.png} | Bin
+ ...ate-svg11-ref.png => text-rotate.svg11.ref.png} | Bin
+ ...ate-svg12-ref.png => text-rotate.svg12.ref.png} | Bin
+ ...form-pdf-ref.png => text-transform.pdf.ref.png} | Bin
+ ...form-ps2-ref.png => text-transform.ps2.ref.png} | Bin
+ ...form-ps3-ref.png => text-transform.ps3.ref.png} | Bin
+ ...xt-transform-ref.png => text-transform.ref.png} | Bin
+ ...ansforms-ps2-ref.png => transforms.ps2.ref.png} | Bin
+ ...ansforms-ps3-ref.png => transforms.ps3.ref.png} | Bin
+ test/{transforms-ref.png => transforms.ref.png} | Bin
+ ...face-ref.png => translate-show-surface.ref.png} | Bin
+ ...argb32-ref.png => trap-clip.pdf.argb32.ref.png} | Bin
+ ...f-rgb24-ref.png => trap-clip.pdf.rgb24.ref.png} | Bin
+ ...argb32-ref.png => trap-clip.ps2.argb32.ref.png} | Bin
+ ...2-rgb24-ref.png => trap-clip.ps2.rgb24.ref.png} | Bin
+ ...argb32-ref.png => trap-clip.ps3.argb32.ref.png} | Bin
+ ...3-rgb24-ref.png => trap-clip.ps3.rgb24.ref.png} | Bin
+ ...lip-quartz-ref.png => trap-clip.quartz.ref.png} | Bin
+ ...gb24-ref.png => trap-clip.quartz.rgb24.ref.png} | Bin
+ test/{trap-clip-ref.png => trap-clip.ref.png} | Bin
+ ...-clip-rgb24-ref.png => trap-clip.rgb24.ref.png} | Bin
+ test/{twin-ps2-ref.png => twin.ps2.ref.png} | Bin
+ test/{twin-ps3-ref.png => twin.ps3.ref.png} | Bin
+ test/{twin-ref.png => twin.ref.png} | Bin
+ test/{twin-svg11-ref.png => twin.svg11.ref.png} | Bin
+ test/{twin-svg12-ref.png => twin.svg12.ref.png} | Bin
+ ...ref.png => unantialiased-shapes.quartz.ref.png} | Bin
+ ...shapes-ref.png => unantialiased-shapes.ref.png} | Bin
+ ...z-ref.png => unbounded-operator.quartz.ref.png} | Bin
+ ...png => unbounded-operator.quartz.rgb24.ref.png} | Bin
+ ...operator-ref.png => unbounded-operator.ref.png} | Bin
+ ...24-ref.png => unbounded-operator.rgb24.ref.png} | Bin
+ ...mask-pdf-ref.png => user-font-mask.pdf.ref.png} | Bin
+ ...mask-ps2-ref.png => user-font-mask.ps2.ref.png} | Bin
+ ...mask-ps3-ref.png => user-font-mask.ps3.ref.png} | Bin
+ ...er-font-mask-ref.png => user-font-mask.ref.png} | Bin
+ ...-svg11-ref.png => user-font-mask.svg11.ref.png} | Bin
+ ...oxy-pdf-ref.png => user-font-proxy.pdf.ref.png} | Bin
+ ...oxy-ps2-ref.png => user-font-proxy.ps2.ref.png} | Bin
+ ...oxy-ps3-ref.png => user-font-proxy.ps3.ref.png} | Bin
+ ...-font-proxy-ref.png => user-font-proxy.ref.png} | Bin
+ ...svg11-ref.png => user-font-proxy.svg11.ref.png} | Bin
+ ...svg12-ref.png => user-font-proxy.svg12.ref.png} | Bin
+ ...e-ps2-ref.png => user-font-rescale.ps2.ref.png} | Bin
+ ...e-ps3-ref.png => user-font-rescale.ps3.ref.png} | Bin
+ ...t-rescale-ref.png => user-font-rescale.ref.png} | Bin
+ ...g11-ref.png => user-font-rescale.svg11.ref.png} | Bin
+ ...g12-ref.png => user-font-rescale.svg12.ref.png} | Bin
+ ...user-font-ps2-ref.png => user-font.ps2.ref.png} | Bin
+ ...user-font-ps3-ref.png => user-font.ps3.ref.png} | Bin
+ test/{user-font-ref.png => user-font.ref.png} | Bin
+ ...-font-svg11-ref.png => user-font.svg11.ref.png} | Bin
+ ...-font-svg12-ref.png => user-font.svg12.ref.png} | Bin
+ test/xlib-expose-event.c | 4 +-
+ ...ose-event-ref.png => xlib-expose-event.ref.png} | Bin
+ ...ps2-ref.png => xlib-surface-source.ps2.ref.png} | Bin
+ ...ps3-ref.png => xlib-surface-source.ps3.ref.png} | Bin
+ ...-source-ref.png => xlib-surface-source.ref.png} | Bin
+ test/{zero-alpha-ref.png => zero-alpha.ref.png} | Bin
+ 715 files changed, 782 insertions(+), 752 deletions(-)
+
+commit e90073f7ddc6f461a935bc360c409b04f1fe9f74
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Sep 3 16:38:03 2008 +0100
+
+ [test] Build test suite into single binary.
+
+ Avoid calling libtool to link every single test case, by building just one
+ binary from all the sources.
+
+ This binary is then given the task of choosing tests to run (based on user
+ selection and individual test requirement), forking each test into its own
+ process and accumulating the results.
+
+ Makefile.am | 1 +
+ boilerplate/cairo-boilerplate.c | 658 +++++++++-------
+ boilerplate/cairo-boilerplate.h | 1 +
+ build/configure.ac.noversion | 12 +
+ build/configure.ac.system | 57 ++
+ build/configure.ac.version | 8 -
+ configure.ac | 16 +
+ doc/public/tmpl/cairo-surface.sgml | 1 +
+ test/.gitignore | 237 +-----
+ test/Makefile.am | 572 +++++++-------
+ test/README | 28 +-
+ test/a1-image-sample.c | 20 +-
+ test/a1-mask.c | 38 +-
+ test/a1-traps-sample.c | 20 +-
+ test/a8-mask.c | 37 +-
+ test/alpha-similar.c | 23 +-
+ test/big-line.c | 22 +-
+ test/big-trap.c | 22 +-
+ test/bilevel-image.c | 20 +-
+ test/bitmap-font.c | 22 +-
+ test/cairo-test-private.h | 74 ++
+ test/cairo-test-runner.c | 907 ++++++++++++++++++++++
+ test/cairo-test.c | 594 +++++++-------
+ test/cairo-test.h | 99 ++-
+ test/caps-joins-alpha.c | 26 +-
+ test/caps-joins.c | 27 +-
+ test/caps-sub-paths.c | 21 +-
+ test/clip-all.c | 21 +-
+ test/clip-empty.c | 20 +-
+ test/clip-fill-rule-pixel-aligned.c | 22 +-
+ test/clip-fill-rule.c | 20 +-
+ test/clip-nesting.c | 20 +-
+ test/clip-operator.c | 21 +-
+ test/clip-push-group.c | 20 +-
+ test/clip-twice.c | 20 +-
+ test/clip-zero.c | 20 +-
+ test/clipped-group.c | 20 +-
+ test/clipped-surface.c | 19 +-
+ test/close-path.c | 18 +-
+ test/composite-integer-translate-over-repeat.c | 20 +-
+ test/composite-integer-translate-over.c | 22 +-
+ test/composite-integer-translate-source.c | 22 +-
+ test/copy-path.c | 33 +-
+ test/create-for-stream.c | 53 +-
+ test/create-from-png-stream.c | 20 +-
+ test/create-from-png.c | 82 +-
+ test/dash-caps-joins.c | 26 +-
+ test/dash-curve.c | 20 +-
+ test/dash-no-dash.c | 20 +-
+ test/dash-offset-negative.c | 20 +-
+ test/dash-scale.c | 26 +-
+ test/dash-state.c | 22 +-
+ test/dash-zero-length.c | 20 +-
+ test/degenerate-arc.c | 20 +-
+ test/degenerate-dash.c | 20 +-
+ test/degenerate-path.c | 21 +-
+ test/degenerate-pen.c | 20 +-
+ test/device-offset-fractional.c | 20 +-
+ test/device-offset-positive.c | 20 +-
+ test/device-offset-scale.c | 21 +-
+ test/device-offset.c | 20 +-
+ test/extend-pad.c | 20 +-
+ test/extend-reflect-similar.c | 22 +-
+ test/extend-reflect.c | 22 +-
+ test/extend-repeat-similar.c | 22 +-
+ test/extend-repeat.c | 22 +-
+ test/fallback-resolution.c | 28 +-
+ test/fill-alpha-pattern.c | 20 +-
+ test/fill-alpha.c | 20 +-
+ test/fill-and-stroke-alpha-add.c | 20 +-
+ test/fill-and-stroke-alpha.c | 20 +-
+ test/fill-and-stroke.c | 20 +-
+ test/fill-degenerate-sort-order.c | 20 +-
+ test/fill-missed-stop.c | 19 +-
+ test/fill-rule.c | 20 +-
+ test/filter-bilinear-extents.c | 22 +-
+ test/filter-nearest-offset.c | 21 +-
+ test/filter-nearest-transformed.c | 19 +-
+ test/finer-grained-fallbacks.c | 20 +-
+ test/font-face-get-type.c | 28 +-
+ test/font-matrix-translation.c | 20 +-
+ test/font-options.c | 17 +-
+ test/ft-font-create-for-ft-face.c | 21 +-
+ test/ft-show-glyphs-positioning.c | 20 +-
+ test/ft-show-glyphs-table.c | 21 +-
+ test/ft-text-antialias-none.c | 20 +-
+ test/ft-text-vertical-layout-type1.c | 23 +-
+ test/ft-text-vertical-layout-type3.c | 20 +-
+ test/get-and-set.c | 20 +-
+ test/get-clip.c | 21 +-
+ test/get-group-target.c | 20 +-
+ test/get-path-extents.c | 20 +-
+ test/get-xrender-format.c | 35 +-
+ test/glyph-cache-pressure.c | 20 +-
+ test/gradient-alpha.c | 20 +-
+ test/gradient-constant-alpha.c | 20 +-
+ test/gradient-zero-stops.c | 22 +-
+ test/group-paint.c | 20 +-
+ test/huge-pattern.c | 21 +-
+ test/image-surface-source.c | 8 +-
+ test/in-fill-empty-trapezoid.c | 24 +-
+ test/in-fill-trapezoid.c | 20 +-
+ test/infinite-join.c | 22 +-
+ test/invalid-matrix.c | 20 +-
+ test/large-clip.c | 22 +-
+ test/large-font.c | 22 +-
+ test/large-source.c | 20 +-
+ test/leaky-dash.c | 22 +-
+ test/leaky-dashed-rectangle.c | 20 +-
+ test/leaky-dashed-stroke.c | 20 +-
+ test/leaky-polygon.c | 20 +-
+ test/line-width-scale.c | 20 +-
+ test/line-width-zero.c | 20 +-
+ test/line-width.c | 20 +-
+ test/linear-gradient-reflect.c | 21 +-
+ test/linear-gradient.c | 20 +-
+ test/long-dashed-lines.c | 20 +-
+ test/long-lines.c | 24 +-
+ test/make-cairo-test-constructors.pl | 18 +
+ test/mask-alpha.c | 20 +-
+ test/mask-ctm.c | 21 +-
+ test/mask-surface-ctm.c | 20 +-
+ test/mask-transformed-image.c | 19 +-
+ test/mask-transformed-similar.c | 19 +-
+ test/mask.c | 23 +-
+ test/meta-surface-pattern.c | 20 +-
+ test/miter-precision.c | 22 +-
+ test/move-to-show-surface.c | 20 +-
+ test/multi-page.c | 30 +-
+ test/new-sub-path.c | 22 +-
+ test/nil-surface.c | 20 +-
+ test/operator-alpha.c | 21 +-
+ test/operator-clear.c | 20 +-
+ test/operator-source.c | 20 +-
+ test/operator.c | 21 +-
+ test/over-above-source.c | 20 +-
+ test/over-around-source.c | 20 +-
+ test/over-below-source.c | 20 +-
+ test/over-between-source.c | 20 +-
+ test/paint-repeat.c | 20 +-
+ test/paint-source-alpha.c | 20 +-
+ test/paint-with-alpha.c | 20 +-
+ test/paint.c | 20 +-
+ test/pattern-get-type.c | 21 +-
+ test/pattern-getters.c | 20 +-
+ test/pdf-features.c | 31 +-
+ test/pdf-surface-source.c | 10 +-
+ test/pixman-rotate.c | 20 +-
+ test/png.c | 56 +-
+ test/ps-features.c | 29 +-
+ test/ps-surface-source.c | 10 +-
+ test/pthread-show-text.c | 41 +-
+ test/push-group.c | 20 +-
+ test/radial-gradient.c | 22 +-
+ test/random-intersections.c | 21 +-
+ test/rectangle-rounding-error.c | 22 +-
+ test/rectilinear-fill.c | 20 +-
+ test/rectilinear-miter-limit.c | 20 +-
+ test/rectilinear-stroke.c | 21 +-
+ test/reflected-stroke.c | 21 +-
+ test/rel-path.c | 20 +-
+ test/rgb24-ignore-alpha.c | 20 +-
+ test/rotate-image-surface-paint.c | 22 +-
+ test/scale-down-source-surface-paint.c | 20 +-
+ test/scale-source-surface-paint.c | 20 +-
+ test/select-font-face.c | 28 +-
+ test/select-font-no-show-text.c | 20 +-
+ test/self-copy-overlap.c | 22 +-
+ test/self-copy.c | 20 +-
+ test/self-intersecting.c | 22 +-
+ test/set-source.c | 20 +-
+ test/show-glyphs-many.c | 20 +-
+ test/show-text-current-point.c | 22 +-
+ test/skew-extreme.c | 20 +-
+ test/smask-fill.c | 20 +-
+ test/smask-image-mask.c | 20 +-
+ test/smask-mask.c | 20 +-
+ test/smask-paint.c | 20 +-
+ test/smask-stroke.c | 20 +-
+ test/smask-text.c | 20 +-
+ test/smask.c | 20 +-
+ test/solid-pattern-cache-stress.c | 20 +-
+ test/source-clip-scale.c | 20 +-
+ test/source-clip.c | 20 +-
+ test/source-surface-scale-paint.c | 20 +-
+ test/spline-decomposition.c | 20 +-
+ test/stroke-ctm-caps.c | 20 +-
+ test/stroke-image.c | 20 +-
+ test/surface-finish-twice.c | 20 +-
+ test/surface-pattern-big-scale-down.c | 20 +-
+ test/surface-pattern-scale-down-pdf-rgb24-ref.png | Bin 0 -> 2386 bytes
+ test/surface-pattern-scale-down.c | 21 +-
+ test/surface-pattern-scale-up.c | 21 +-
+ test/surface-pattern.c | 24 +-
+ test/surface-source.c | 15 +-
+ test/svg-clip.c | 26 +-
+ test/svg-surface-source.c | 11 +-
+ test/svg-surface.c | 26 +-
+ test/text-antialias-gray.c | 20 +-
+ test/text-antialias-none.c | 20 +-
+ test/text-antialias-subpixel.c | 20 +-
+ test/text-cache-crash.c | 40 +-
+ test/text-glyph-range-ps2-ref.png | Bin 0 -> 1389 bytes
+ test/text-glyph-range-ps3-ref.png | Bin 0 -> 1389 bytes
+ test/text-glyph-range-ref.png | Bin 1810 -> 2211 bytes
+ test/text-glyph-range-rgb24-ref.png | Bin 1645 -> 0 bytes
+ test/text-glyph-range.c | 62 +-
+ test/text-pattern.c | 54 +-
+ test/text-rotate.c | 22 +-
+ test/text-transform.c | 22 +-
+ test/text-zero-len.c | 20 +-
+ test/toy-font-face.c | 16 +-
+ test/transforms.c | 20 +-
+ test/translate-show-surface.c | 20 +-
+ test/trap-clip.c | 22 +-
+ test/truetype-tables.c | 18 +-
+ test/twin.c | 20 +-
+ test/unantialiased-shapes.c | 20 +-
+ test/unbounded-operator.c | 20 +-
+ test/user-data.c | 17 +-
+ test/user-font-mask.c | 28 +-
+ test/user-font-proxy.c | 28 +-
+ test/user-font-rescale.c | 20 +-
+ test/user-font.c | 28 +-
+ test/xlib-expose-event.c | 28 +-
+ test/xlib-surface-source.c | 8 +-
+ test/xlib-surface.c | 36 +-
+ test/zero-alpha.c | 20 +-
+ 228 files changed, 3770 insertions(+), 4123 deletions(-)
+
+commit 8457972d40088cda165f31fdd7bd9b4c19c6e095
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 02:16:54 2008 +0000
+
+ [type3] Whitespace.
+
+ Tightly scope the output stream.
+
+ src/cairo-type3-glyph-surface.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 08f4d49a9464bc19bc2ca7f2356a6eb8d62f5daf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 02:03:41 2008 +0000
+
+ [xlib] Intialise clip_dirty.
+
+ Eeek, forgot to set the clip_dirty to 0 on construction.
+
+ src/cairo-xlib-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit b722d5b2b988d43931648d8377a9433d75f7d95f
+Merge: 05fce5bce 710f7d30d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 02:24:25 2008 +0000
+
+ Merge branch '1.8'
+
+commit 710f7d30d348517602293f123525aef7677d69cf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 31 02:14:53 2008 +0000
+
+ [scaled-font] Fix typo that prevented meta_surface lookup.
+
+ test/text-glyph-range was crashing since we requested the meta_surface but
+ the glyph wrongly believed it already had the meta_surface but was
+ checking for a path instead.
+
+ src/cairo-scaled-font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 05fce5bced9718ffa803f5a87df00f96809d1f53
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sat Apr 5 13:32:51 2008 +1030
+
+ PS/PDF: Set image Interpolation flag
+
+ If the filter mode is anything other than DEFAILT, FAST or NEAREST set the
+ Interpolate flag in the image dictionary so that a smoothing filter is
+ applied when rasterising the vector file.
+
+ As we have no control over the implementation of the Interpolate filter
+ (the PS/PDF specifications leave it undefined) we need to capture the
+ output of poppler/GS and update our reference images. (For a couple of
+ tests, the filtering is irrelevant so for those we set the filter to
+ NEAREST.)
+
+ Note that GhostScript's Interpolate filter does not work on rotated images
+ (and a variety of other transformations) so several of the PS reference
+ images have use nearest-neighbour sampling instead of a bilinear filter.
+
+ src/cairo-pdf-surface.c | 28 +++++++++--
+ src/cairo-ps-surface.c | 28 +++++++++--
+ test/Makefile.am | 54 +++++++++++++++------
+ test/bilevel-image.c | 1 +
+ test/composite-integer-translate-over-ps2-ref.png | Bin 0 -> 15783 bytes
+ test/composite-integer-translate-over-ps3-ref.png | Bin 0 -> 15783 bytes
+ ...osite-integer-translate-over-repeat-ps2-ref.png | Bin 0 -> 448 bytes
+ ...osite-integer-translate-over-repeat-ps3-ref.png | Bin 0 -> 448 bytes
+ .../composite-integer-translate-source-ps2-ref.png | Bin 0 -> 15783 bytes
+ .../composite-integer-translate-source-ps3-ref.png | Bin 0 -> 15783 bytes
+ test/create-from-png-stream.c | 1 +
+ test/create-from-png.c | 1 +
+ test/device-offset-fractional-ps2-ref.png | Bin 201 -> 200 bytes
+ test/device-offset-fractional-ps3-ref.png | Bin 201 -> 200 bytes
+ test/extend-reflect-ps2-ref.png | Bin 153322 -> 146990 bytes
+ test/extend-reflect-ps3-ref.png | Bin 153322 -> 146990 bytes
+ test/extend-reflect-similar-ps2-ref.png | Bin 153322 -> 146990 bytes
+ test/extend-reflect-similar-ps3-ref.png | Bin 153322 -> 146990 bytes
+ test/extend-repeat-ps2-ref.png | Bin 0 -> 119246 bytes
+ test/extend-repeat-ps3-ref.png | Bin 0 -> 119246 bytes
+ test/extend-repeat-similar-ps2-ref.png | Bin 0 -> 119246 bytes
+ test/extend-repeat-similar-ps3-ref.png | Bin 0 -> 119246 bytes
+ test/filter-bilinear-extents-ps2-ref.png | Bin 173 -> 556 bytes
+ test/filter-bilinear-extents-ps3-ref.png | Bin 173 -> 556 bytes
+ test/image-surface-source-ps2-ref.png | Bin 0 -> 376 bytes
+ test/image-surface-source-ps3-ref.png | Bin 0 -> 376 bytes
+ test/image-surface-source-ref.png | Bin 268 -> 332 bytes
+ test/stroke-image-ps2-ref.png | Bin 1786 -> 2121 bytes
+ test/stroke-image-ps3-ref.png | Bin 1786 -> 2121 bytes
+ test/surface-pattern-pdf-argb32-ref.png | Bin 14880 -> 0 bytes
+ test/surface-pattern-pdf-ref.png | Bin 0 -> 15996 bytes
+ test/surface-pattern-ps2-argb32-ref.png | Bin 2520 -> 0 bytes
+ test/surface-pattern-ps2-ref.png | Bin 0 -> 2364 bytes
+ test/surface-pattern-ps3-argb32-ref.png | Bin 2520 -> 0 bytes
+ test/surface-pattern-ps3-ref.png | Bin 0 -> 2364 bytes
+ test/surface-pattern-scale-down-pdf-argb32-ref.png | Bin 1565 -> 2386 bytes
+ test/surface-pattern-scale-down-ps2-argb32-ref.png | Bin 1400 -> 0 bytes
+ test/surface-pattern-scale-down-ps2-ref.png | Bin 0 -> 1324 bytes
+ test/surface-pattern-scale-down-ps3-argb32-ref.png | Bin 1400 -> 0 bytes
+ test/surface-pattern-scale-down-ps3-ref.png | Bin 0 -> 1324 bytes
+ test/surface-pattern-scale-down.c | 3 +-
+ test/surface-pattern-scale-up-pdf-argb32-ref.png | Bin 3886 -> 4247 bytes
+ test/surface-pattern-scale-up-pdf-rgb24-ref.png | Bin 0 -> 4247 bytes
+ test/surface-pattern-scale-up-ps2-argb32-ref.png | Bin 1011 -> 0 bytes
+ test/surface-pattern-scale-up-ps2-ref.png | Bin 0 -> 943 bytes
+ test/surface-pattern-scale-up-ps3-argb32-ref.png | Bin 1011 -> 0 bytes
+ test/surface-pattern-scale-up-ps3-ref.png | Bin 0 -> 943 bytes
+ test/surface-pattern-scale-up-ref.png | Bin 3825 -> 4061 bytes
+ test/surface-pattern-scale-up.c | 6 ++-
+ test/surface-pattern.c | 6 ++-
+ test/xlib-surface-source-ps2-ref.png | Bin 0 -> 376 bytes
+ test/xlib-surface-source-ps3-ref.png | Bin 0 -> 376 bytes
+ 52 files changed, 98 insertions(+), 30 deletions(-)
+
+commit 2c53bdb82a955c672c8fee2b1b4c991af2654ae0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 21:12:53 2008 +0100
+
+ [paginated] Emit fallback images using FILTER_NEAREST.
+
+ Fallback images should (in theory) be emitted at native resolution, so
+ disable filtering to avoid introducing potential artifacts into cairo's
+ ideal output.
+
+ src/cairo-paginated-surface.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+commit f03d3f9f7f923730cdc4c5f21364f752f705086a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 19:24:29 2008 +0000
+
+ [boilerplate] Remove #if VERSION>1.9.0
+
+ Remove the obsolete #if statement.
+
+ boilerplate/cairo-boilerplate.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit ef98eb26f7484019b023cd4c93dce44f23e3a594
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 19:23:17 2008 +0000
+
+ [test] Reenable device offset testing.
+
+ Restore device offset testing that was temporarily disable in the run up
+ to the 1.8 release.
+
+ test/cairo-test.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4f2f46ef1bd793a712df045178b3d00d027e3ba6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 19:14:07 2008 +0000
+
+ Restore the ability to choose the internal font.
+
+ Behdad wants to include the feature with 1.10, so we enable it as early as
+ possible in 1.9 dev cycle to generate as much feedback as possible.
+
+ The first change is to use "<cairo>" as being a name unlikely to clash
+ with any real font names.
+
+ This reverts commits:
+ a824d284be23793a5c48b9ae833dcb7b2d5fff80,
+ 292233685534aed712dfd45e8ccf498b792ce496,
+ e0046aaf417a61da008dc6374871fa3687ba94ab,
+ f534bd549e1e2283735d1eabb60c015a5949a735.
+
+ perf/Makefile.am | 1 +
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/twin.c | 50 ++++++++++++++++++++++++++++++++++++++++
+ src/cairo-font-face.c | 6 +++--
+ src/cairoint.h | 1 +
+ test/.gitignore | 1 +
+ test/Makefile.am | 6 +++++
+ test/twin-ps2-ref.png | Bin 0 -> 1167 bytes
+ test/twin-ps3-ref.png | Bin 0 -> 1167 bytes
+ test/twin-ref.png | Bin 0 -> 1836 bytes
+ test/twin-svg11-ref.png | Bin 0 -> 1773 bytes
+ test/twin-svg12-ref.png | Bin 0 -> 1773 bytes
+ test/twin.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 14 files changed, 125 insertions(+), 2 deletions(-)
+
+commit 52c3fc58b52c77282998f9ad75657a6bec5956f8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 8 13:04:37 2008 +0100
+
+ [tessellator] Simplify dequeuing by using a sentinel value.
+
+ Instead of maintaining an index and comparing it to the count, just mark
+ the last startstop event with NULL and stop dequeuing events upon seeing
+ that sentinel value. (Removes an unreadable line, and cachegrind hints
+ that it may be a tiny bit faster.)
+
+ src/cairo-bentley-ottmann.c | 32 ++++++++++++++++----------------
+ 1 file changed, 16 insertions(+), 16 deletions(-)
+
+commit ef9e0a5d1d74ac92a1fcde5a657c866a8e6509e6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 7 22:09:37 2008 +0100
+
+ [tessellator] Use a combsort for sorting the event queue.
+
+ In my experiments using cairo-perf, the inlined combsort is ~20% quicker
+ than the library qsort.
+
+ src/Makefile.sources | 1 +
+ src/cairo-bentley-ottmann.c | 39 ++++++++++++------------
+ src/cairo-combsort-private.h | 71 ++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 92 insertions(+), 19 deletions(-)
+
+commit b1461308416fa83d1de0016a9d4804b68a1f1d8f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Oct 30 14:18:18 2008 -0400
+
+ [Makefile.am.releasing] Symlink /manual and /cairo-manual.tar.gz only for releases
+
+ And not for snapshots. Also symlink /cairo-manual-X.Y.Z.tar.gz for all
+ versions.
+
+ build/Makefile.am.releasing | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+commit e3a7f522a6b96729b2a0122f8c430c24dc17fc5a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 7 23:33:32 2008 +0100
+
+ [tessellator] Perform cheap checks before computing intersect.
+
+ First check if we can reject the intersection without having to perform
+ the full divides, based on analysing:
+ t * (ady*bdx - bdy*adx) = bdy * (ax - bx) - bdx * (ay - by)
+ s * (ady*bdx - bdy*adx) = ady * (ax - bx) - adx * (ay - by)
+ and excluding the result if by inspection we know that
+ (s, t) <= 0 || (s, t) => 1.
+
+ Doing so virtually eliminates all division and speeds up the strokes (when
+ performing self-intersection elimination using the tessellator) perf cases
+ by about 5%.
+
+ src/cairo-bentley-ottmann.c | 51 ++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 50 insertions(+), 1 deletion(-)
+
+commit 553fde4bb3e913de7e26bf416166d69bae4d02e1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 4 13:15:08 2008 +0100
+
+ [tessellator] Simplify special cases of edges to compare.
+
+ Use our prior knowledge of the inputs and trivial conditions to simplify
+ the edge equations and in many common conditions, such as vertical edges
+ and common points, reduce the operations down to a just returning the
+ non-degenerate 32 bit value. This adds an overhead of a few conditionals,
+ but on the fast paths we actually generate fewer branches and many fewer
+ arithmetic operations such that it improves performance of the fill
+ performance tests by around 10%.
+
+ src/cairo-bentley-ottmann.c | 132 +++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 106 insertions(+), 26 deletions(-)
+
+commit cc109df2a70e953d71e3e6fc4e6e54cce4ba0d47
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 15:50:20 2008 +0000
+
+ [test] Update .gitignore
+
+ Add a couple of new programs to gitignore.
+
+ test/.gitignore | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 7d546bba213c3b89404bb3c58a5665343abfcd51
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 29 15:46:10 2008 +0000
+
+ [xlib] Eliminate shadowed variable.
+
+ Cleanup a minor -Wshadow warning.
+
+ src/cairo-xlib-surface.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit e3388b8180e38f79e0d5b66cc640c3d5c37db2a8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 29 15:45:09 2008 +0000
+
+ [cff-subset] Eliminate shadowed variable.
+
+ Cleanup a minor -Wshadow warning.
+
+ src/cairo-cff-subset.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 3e18114aff21acfa73a7d13a419719375ae9b5a6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 29 15:43:23 2008 +0000
+
+ [user-font] Eliminate shadowed variable
+
+ Cleanup a minor -Wshadow warning.
+
+ src/cairo-user-font.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit d073537e82b57738068a7e1cf1d36ce452876804
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 29 15:41:44 2008 +0000
+
+ [scaled-font] Eliminate shadowed variable.
+
+ Cleanup a minor -Wshadow warning.
+
+ src/cairo-scaled-font.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 6429e3f39468ef4f865681b3b5988d35906deeb0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 28 17:38:09 2008 +0000
+
+ [xlib] Only set Picture clip as necessary.
+
+ Only set ClipRectangles on a new Picture, avoiding redundant calls to
+ clear the non-existent ClipMask otherwise.
+
+ src/cairo-xlib-surface.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit cd45258c5bf6a06f7bd3f2bfaf928e423a9b70e1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 28 16:54:10 2008 +0000
+
+ [xlib] Only clear the GC clip mask as necessary.
+
+ Avoid redundant calls to XSetClipMask() for clean GCs.
+
+ src/cairo-xlib-private.h | 10 ++++++++--
+ src/cairo-xlib-screen.c | 8 ++++++--
+ src/cairo-xlib-surface.c | 7 ++++---
+ 3 files changed, 18 insertions(+), 7 deletions(-)
+
+commit d384f864992fbf7513446a70158135a08e704678
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 28 16:33:51 2008 +0000
+
+ [xlib] Propagate real status from get_screen_info().
+
+ Return the real error from _cairo_xlib_screen_info_get() in order to avoid
+ having to create a fake NO_MEMORY error.
+
+ src/cairo-xlib-private.h | 6 +++--
+ src/cairo-xlib-screen.c | 66 +++++++++++++++++++++++++++---------------------
+ src/cairo-xlib-surface.c | 6 ++---
+ 3 files changed, 44 insertions(+), 34 deletions(-)
+
+commit e25b106e9c33e220fb104afb0929e766647b6de9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 28 16:27:58 2008 +0000
+
+ [xlib] Propagate real status from get_display()
+
+ Avoid throwing away the error and inventing a new NO_MEMORY error for
+ _cairo_xlib_display_get().
+
+ src/cairo-xlib-display.c | 13 ++++++++-----
+ src/cairo-xlib-private.h | 4 ++--
+ src/cairo-xlib-surface.c | 14 ++++++++------
+ 3 files changed, 18 insertions(+), 13 deletions(-)
+
+commit 2555f83b11ee23829cfdeaae703420ca3e572fa1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 28 16:22:49 2008 +0000
+
+ [xlib] Avoid repeated calls to XRenderQueryVersion
+
+ Use the value determined during display initialisation in order to avoid
+ redundant XRenderQueryFormats requests.
+
+ src/cairo-xlib-display.c | 6 ++++--
+ src/cairo-xlib-private.h | 2 ++
+ src/cairo-xlib-surface.c | 7 ++-----
+ 3 files changed, 8 insertions(+), 7 deletions(-)
+
+commit 0d0c6a199c5b631299c72dce80d66ac0f4936a64
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 26 12:53:29 2008 +0000
+
+ [matrix] Optimise invert for simple scaling|translation matrices.
+
+ The matrix is quite often just a simple scale and translate (or even
+ identity!). For this class of matrix, we can skip the full adjoint
+ rearrangement and determinant calculation and just compute the inverse
+ directly.
+
+ src/cairo-matrix.c | 26 +++++++++++++++++++++++++-
+ 1 file changed, 25 insertions(+), 1 deletion(-)
+
+commit 74876b00cd969d5cfc209fa903dfad50bda59361
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 25 11:33:52 2008 +0100
+
+ [xlib] Exploit compaction of XRenderFillRectangle()
+
+ libXrender amalgamates sequences of XRenderFillRectangle() into a single
+ XRenderFillRectangles request (when permissible). Since it is common for a
+ cairo application to draw rectangles individually in order to exploit fast
+ paths within cairo [rectilinear fills], it is a reasonably common pattern.
+
+ src/cairo-xlib-surface.c | 50 +++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 32 insertions(+), 18 deletions(-)
+
+commit 64726ccfb99ba964420f3a840fd707998927e902
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 24 17:06:04 2008 +0100
+
+ [traps] Whitespace.
+
+ Fixup whitespace in line with CODING_STYLE and rest of file.
+
+ src/cairo-region.c | 6 +++---
+ src/cairo-traps.c | 33 ++++++++++++++++++++-------------
+ 2 files changed, 23 insertions(+), 16 deletions(-)
+
+commit d5543005e7b7cc08f97578f301182ef4807a05fe
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 24 09:00:45 2008 +0100
+
+ [surface] Only copy font options if the target surface has them.
+
+ No need to copy font options if the similar surface is from the same
+ backend and no special options have been applied by the user. Doing so
+ breaks lazy initialisation of backend specific options.
+
+ src/cairo-surface.c | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+commit a0023758104b700751ba8d7a66d75db139eea6cb
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 24 08:39:29 2008 +0100
+
+ [xlib] Defer querying of font options until first use
+
+ Constructing the font options cause the initialisation of Xlc and invoke
+ several round-trips to the X server, significantly delaying the creation
+ of the first surface. By deferring that operation until the first use of
+ fonts then we avoid that overhead for very simple applications (like the
+ test suite) and should improve start-up latency for larger application.
+
+ src/cairo-xlib-private.h | 4 ++++
+ src/cairo-xlib-screen.c | 28 +++++++++++++++++++++++++---
+ src/cairo-xlib-surface.c | 2 +-
+ 3 files changed, 30 insertions(+), 4 deletions(-)
+
+commit 6706590d4e7ad19dae0b8e3efe6f573d5688e19a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 16:22:48 2008 +0100
+
+ [pattern] Reduce likelihood of range overflow with large downscaling.
+
+ Exploit the auxiliary offset vector in the attributes to reduce
+ likelihood of range overflow in the translation components when converting
+ the pattern matrix to fixed-point pixman_matrix_t.
+
+ An example of this is bug 9148
+ Bug 9148 - invalid rendering when painting large scaled-down surfaces
+ (https://bugs.freedesktop.org/show_bug.cgi?id=9148)
+ but the issue is perhaps even more likely with high resolution fallback
+ images.
+
+ src/cairo-pattern.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+commit c0af8c70635d641fc5770afc0cd6e9285122fd72
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 16:49:23 2008 +0100
+
+ [pattern] Tweak REFLECT HACK
+
+ In order to workaound a directfb bug, tweak the reflect->repeat pattern so
+ that it covers the destination rectangle. Although the number of paint()
+ increases, the number of read/written pixels remain the same so that
+ performance should not deteriorate, but instead be improved by using a
+ cloned source. The early return of the REFLECT surface is discarded so
+ that the latter optimisations for surface sources can be applied. One side
+ effect of this is that acquire_source_image() is removed due to its lax
+ reference counting which thereby exposes the ROI optimisations for image
+ destinations as well.
+
+ src/cairo-pattern.c | 279 +++++++++++++++++++++++++---------------------------
+ src/cairoint.h | 1 -
+ 2 files changed, 136 insertions(+), 144 deletions(-)
+
+commit 234623b3d5884b02a0619de8ddd57bbed36ef4fd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 23 14:55:26 2008 +0100
+
+ [pattern] Support unbounded surfaces.
+
+ An unbounded surface should just report an infinite pattern extent and not
+ return UNSUPPORTED from _cairo_pattern_get_extents().
+
+ src/cairo-pattern.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 2836be6f7565684e86b3cc8a3d2db4ba690b3718
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 23 14:42:47 2008 +0100
+
+ Cleanup 'status && status != UNSUPPORTED'
+
+ Replace instances of 'status && status != UNSUPPORTED' with the more
+ readable _cairo_status_is_error().
+
+ src/cairo-analysis-surface.c | 14 +++++++-------
+ src/cairo-clip.c | 4 ++--
+ src/cairo-pdf-surface.c | 8 ++++----
+ src/cairo-ps-surface.c | 4 ++--
+ src/cairo-scaled-font-subsets.c | 4 ++--
+ 5 files changed, 17 insertions(+), 17 deletions(-)
+
+commit 13ba43eb8ffc3bb6c8881d91824102a8df86d928
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 23 12:28:25 2008 +0100
+
+ [matrix] Optimize finding the bounding box under an orthogonal matrix.
+
+ We frequently need to find the bounds of a pattern under an identity
+ matrix, or a simple scale+translation. For these cases we do not need to
+ transform each corner and search for the bounds as the matrix is x/y
+ separable and so allows us to inspect the results for the extreme x/y
+ points independently.
+
+ src/cairo-matrix.c | 42 +++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 41 insertions(+), 1 deletion(-)
+
+commit 6ed957fc242d7890117f4dea121c03ec2523470c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 22:02:05 2008 +0100
+
+ [gstate] Use _cairo_pattern_black for the default source.
+
+ Avoid allocating a default source pattern by using the static black pattern
+ object. The one complication is that we need to ensure that the static
+ pattern does leak to the application, so we replace it with an allocated
+ solid pattern within _cairo_gstate_get_source().
+
+ src/cairo-gstate.c | 9 +++++++--
+ src/cairo-pattern.c | 12 +++++++-----
+ src/cairo.c | 6 +++---
+ src/cairoint.h | 2 +-
+ 4 files changed, 18 insertions(+), 11 deletions(-)
+
+commit 794460186459981cd43ca38f3eba07e3f6bf8908
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 19:24:44 2008 +0100
+
+ [pattern] Avoid needless copying of patterns.
+
+ Only copy the pattern if we need to modify it, e.g. preserve a copy in a
+ snapshot or a soft-mask, or to modify the matrix. Otherwise we can
+ continue to use the original pattern and mark it as const in order to
+ generate compiler warnings if we do attempt to write to it.
+
+ src/cairo-analysis-surface.c | 37 +++----
+ src/cairo-directfb-surface.c | 33 +++----
+ src/cairo-glitz-surface.c | 42 ++++----
+ src/cairo-gstate.c | 117 ++++++++++++++--------
+ src/cairo-image-surface.c | 6 +-
+ src/cairo-meta-surface.c | 12 +--
+ src/cairo-paginated-surface.c | 12 +--
+ src/cairo-pattern.c | 70 ++++++--------
+ src/cairo-pdf-surface.c | 88 +++++++++++------
+ src/cairo-ps-surface.c | 39 ++++----
+ src/cairo-quartz-surface.c | 10 +-
+ src/cairo-scaled-font.c | 2 +-
+ src/cairo-sdl-surface.c | 22 ++---
+ src/cairo-surface-fallback-private.h | 45 ++++-----
+ src/cairo-surface-fallback.c | 65 ++++++-------
+ src/cairo-surface.c | 181 +++++++++++++++++++++--------------
+ src/cairo-svg-surface.c | 50 +++++-----
+ src/cairo-type3-glyph-surface.c | 18 ++--
+ src/cairo-win32-font.c | 26 ++---
+ src/cairo-win32-printing-surface.c | 51 +++++-----
+ src/cairo-win32-private.h | 2 +-
+ src/cairo-win32-surface.c | 6 +-
+ src/cairo-xcb-surface.c | 42 ++++----
+ src/cairo-xlib-surface.c | 14 +--
+ src/cairoint.h | 74 +++++++-------
+ src/test-meta-surface.c | 28 +++---
+ src/test-paginated-surface.c | 40 ++++----
+ 27 files changed, 605 insertions(+), 527 deletions(-)
+
+commit 9d2189afbd2aa1413f620a4d35016ef3be3fc0e9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 18:29:02 2008 +0100
+
+ [pattern] Do not recompute the inverse if setting an identical matrix.
+
+ More micro-optimisation.
+
+ src/cairo-pattern.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 2c277ddbea42222130b8b1c2a2b4934503b40188
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 18:17:49 2008 +0100
+
+ [matrix] Avoid error correction overhead for translation matrices.
+
+ We can only correct rounding errors between cairo and pixman matrices for
+ scaled matrices - so skip the inversion and point transformation overhead
+ for simple translation matrices.
+
+ src/cairo-matrix.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+commit 57a1d932f3e9d79f3259a536ec2f45f020d46de5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 18:12:10 2008 +0100
+
+ [array] Rearrange user_data_fini() to optimize common case.
+
+ Micro-optimisation to avoid the _cairo_array_index() for the common case
+ of 0 elements.
+
+ src/cairo-array.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+commit 2852127c72fa6cfe246e6ece0433be6c3f2a93ab
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 18:04:30 2008 +0100
+
+ [cairoint] Add a few cairo_pure.
+
+ Start marking up the prototypes with function attributes - first the
+ obvious pure functions.
+
+ src/cairoint.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit cf072c7203dfce989ee60e56352f548329d3d616
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 14:35:49 2008 +0000
+
+ [sdl] Add new backend.
+
+ Add a new backend to allow easy interoperability with the Simple
+ DirectMedia Layer.
+
+ boilerplate/Makefile.sources | 3 +
+ boilerplate/cairo-boilerplate-sdl-private.h | 56 ++++
+ boilerplate/cairo-boilerplate-sdl.c | 69 +++++
+ boilerplate/cairo-boilerplate.c | 13 +
+ build/configure.ac.features | 1 +
+ configure.ac | 8 +
+ src/Makefile.sources | 3 +
+ src/cairo-sdl-surface.c | 418 ++++++++++++++++++++++++++++
+ src/cairo-sdl.h | 54 ++++
+ src/cairo.h | 4 +-
+ 10 files changed, 628 insertions(+), 1 deletion(-)
+
+commit 31ada1ea15d14c0a843728b105340c270e4e4613
+Merge: 30f2df1de ab15d7627
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 16:56:07 2008 +0000
+
+ Merge branch '1.8'
+
+commit ab15d7627506a837fea7101661425bb923ef5b4f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 16:54:23 2008 +0000
+
+ [test] Remove XFAIL from user-font-mask
+
+ user-font-mask should PASS modulo the scaling anomalies in the external
+ renderers, so remove it from the XFAIL list.
+
+ test/Makefile.am | 15 ++++++---------
+ test/user-font-mask-pdf-ref.png | Bin 0 -> 1927 bytes
+ test/user-font-mask-ps2-ref.png | Bin 0 -> 1927 bytes
+ test/user-font-mask-ps3-ref.png | Bin 0 -> 1927 bytes
+ test/user-font-mask-svg11-ref.png | Bin 0 -> 2224 bytes
+ 5 files changed, 6 insertions(+), 9 deletions(-)
+
+commit 540f555840ba4076e3ab86669daf9bee5695afa2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 23 14:38:44 2008 +0100
+
+ [analysis] Only limit to mask extends if bounded by mask.
+
+ The extents of cairo_mask() is only limited to the mask if the operation
+ is bounded by the mask.
+
+ src/cairo-analysis-surface.c | 8 ++++++--
+ test/clip-operator-pdf-argb32-ref.png | Bin 11145 -> 12125 bytes
+ test/clip-operator-pdf-rgb24-ref.png | Bin 6530 -> 7367 bytes
+ test/operator-clear-pdf-argb32-ref.png | Bin 1438 -> 1614 bytes
+ test/operator-clear-pdf-rgb24-ref.png | Bin 1170 -> 1402 bytes
+ test/operator-source-pdf-argb32-ref.png | Bin 4694 -> 5149 bytes
+ test/operator-source-pdf-rgb24-ref.png | Bin 3848 -> 4354 bytes
+ 7 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 4b2998893930e4bab19646e6f0a0c8d2a47f12a2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 23 14:34:30 2008 +0100
+
+ Review users of cairo_rectangle_int_t for incorrect unsigned promotion.
+
+ Adrian Johnson discovered cases where we mistakenly compared the result
+ of unsigned arithmetic where we need signed quantities. Look for similar
+ cases in the users of cairo_rectangle_int_t.
+
+ src/cairo-analysis-surface.c | 48 +++++++++++++++++++++++--------------
+ src/cairo-clip.c | 43 +++++++++++++++++-----------------
+ src/cairo-gstate.c | 4 ++--
+ src/cairo-pattern.c | 13 ++++++----
+ src/cairo-rectangle.c | 6 ++++-
+ src/cairo-region-private.h | 3 ++-
+ src/cairo-region.c | 3 ++-
+ src/cairo-surface-fallback.c | 31 +++++++++++++++---------
+ src/cairo-surface.c | 27 +++++++++++----------
+ src/cairo-win32-surface.c | 4 ++--
+ src/cairo-xcb-surface.c | 56 ++++++++++++++------------------------------
+ src/cairo-xlib-surface.c | 52 ++++++++++++++--------------------------
+ src/cairoint.h | 2 +-
+ 13 files changed, 144 insertions(+), 148 deletions(-)
+
+commit 0e4156121f05b14f800289ea34c5382de1f20869
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 23 13:37:41 2008 +0100
+
+ [rectangle] Fix unsigned promotion whilst computing intersect.
+
+ _cairo_rectangle_intersect() incorrectly allows unsigned promotion during
+ its arithmetic.
+
+ src/cairo-rectangle.c | 31 +++++++++++++++++--------------
+ src/cairoint.h | 3 ++-
+ 2 files changed, 19 insertions(+), 15 deletions(-)
+
+commit 2464b8a0a9f7db7421c257eb4e3ac0d98af34761
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 23 13:36:19 2008 +0100
+
+ [pattern] Allow the projected surface extents to be negative.
+
+ In order to handle projection of analysis surface with user-fonts we need
+ to accommodate patterns extending into negative coordinate space.
+
+ src/cairo-pattern.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit d5d29075bdbb7f412fa6dc182573da18fd81af54
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 23 15:24:13 2008 +0100
+
+ [gstate] Allocate temporary variable for backend_to_user transform.
+
+ _cairo_gstate_backend_to_user_rectangle() requires that its input
+ arguments are non-NULL and describe the input rectangle to be transformed.
+ However, we were passing through output parameters from the public API
+ which were allowed to be NULL. So we need to allocate temporary variables
+ in which to compute the output rectangle, but only copy them as required.
+
+ src/cairo-gstate.c | 69 +++++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 50 insertions(+), 19 deletions(-)
+
+commit 30f2df1dec419a10408b53ecd26cebfcf607bf27
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Oct 30 08:40:35 2008 -0700
+
+ Fix typo in bug URL.
+
+ Thanks to AndrewR in IRC for pointing out the typo.
+
+ NEWS | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b598dcd1b1726184506de6a9d253f6091a000922
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Oct 30 08:29:51 2008 -0700
+
+ Fix release-publish to also update the current manual.
+
+ That is, the vesion that appears as:
+
+ http://cairographics.org/manual
+ and:
+ http://cairographics.org/cairo-manual.tar.gz
+
+ It was silly that we previously required a manual step to
+ upload the documentation (which we regularly forgot to do)
+ and that it uploaded with a date in the name rather than a
+ version. So we just drop the old doc-publish Makefile target
+ now as it's just not useful anymore.
+
+ RELEASING | 3 ++-
+ build/Makefile.am.releasing | 18 ++++--------------
+ 2 files changed, 6 insertions(+), 15 deletions(-)
+
+commit 91183a503e3b7bed11e0149783d3974e26daf623
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Oct 30 08:26:55 2008 -0700
+
+ RELEASING: Mention that a versioned manual is uploaded.
+
+ RELEASING | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 5037fa238e820419824773fa2ea475c949e23a8c
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Oct 30 08:23:06 2008 -0700
+
+ Increment version to 1.9.1
+
+ We're finalyl opening the 1.9 development series in order to land
+ lots of exciting new features that people have been working on.
+
+ cairo-version.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit d53537e8b5e3a8345983d8a0529cb230fa2886d1
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Oct 30 08:20:59 2008 -0700
+
+ Increment version to 1.8.3 after the 1.8.2 release.
+
+ Thanks to Chris Wilson (who else?) for the last-minute bug fix.
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f7c958d97221375fdcbb6c58c3b58c07676b7589
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 21:02:04 2008 -0700
+
+ Increment cairo version to 1.8.2.
+
+ Hurrah! We're finally there.
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 42711a5586cba5db5451ce2400ee5fe655700391
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 09:54:47 2008 +0000
+
+ [xlib] Fix _draw_image_surface() with opaque images.
+
+ If the image was opaque with no alpha channel, we filled the output alpha
+ with 0. Typically, the destination surface for dithering is an RGB window,
+ so this bug went unnoticed. However, test/xlib-expose-event is an example
+ where we generate an intermediate alpha-only pixmap for use as a stencil
+ and this was failing as the mask was left completely transparent. The
+ simple solution is to ensure that for opaque images, the output alpha is
+ set to the maximum permissible value.
+
+ src/cairo-xlib-surface.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+commit c3940d342ac506055c2ce6b7e9b27f92d8a63999
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 09:59:48 2008 +0000
+
+ [xlib] whitespace
+
+ Tweak the whitespace to lose some unnecessary line wrapping, casts and
+ blanks.
+
+ src/cairo-xlib-surface.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit e51648b601de274559800c63575c7f7e0288f596
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Oct 30 04:43:45 2008 -0400
+
+ [test/xlib-expose-event] Save the output image to disk
+
+ test/xlib-expose-event.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit f534bd549e1e2283735d1eabb60c015a5949a735
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 21:28:56 2008 -0700
+
+ Remove test/twin-ref.png.
+
+ I missed this in a previous commit, (I think I had used a
+ pattern of twin-*-ref.png which of course didn't match
+ this file).
+
+ test/twin-ref.png | Bin 1836 -> 0 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+commit cf97966c07bc64ff4b169d1d8239407883a26747
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 21:01:01 2008 -0700
+
+ NEWS: Finish the entry for the 1.8.2 release.
+
+ Add some summarizing paragraphs and organize bug-fixes and optimizations
+ into separate sections.
+
+ NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++----------------------
+ 1 file changed, 60 insertions(+), 29 deletions(-)
+
+commit b6741cffef6e86d59fa4809d32de14b9c5e8afbf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 01:15:45 2008 +0000
+
+ [NEWS] Spot another couple of typos.
+
+ Proof-reading is difficult, even with the squiggly lines.
+
+ NEWS | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit d20cc827791e177eb73a9003c6704b7a5bc49f71
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 30 01:06:08 2008 +0000
+
+ [NEWS] Correct a couple of typos.
+
+ Whilst Carl's not looking, fix a couple of typos -- in particular the one
+ calling me a bug! ;-)
+
+ NEWS | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit 0ceda81dfdfc4adcec28c71be7822caa0627d818
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 17:38:36 2008 -0700
+
+ NEWS: Add long list of bugs fixed for 1.8.2.
+
+ (Still need to add a paragraph or two summarizing the release.)
+
+ NEWS | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 110 insertions(+)
+
+commit e0046aaf417a61da008dc6374871fa3687ba94ab
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 16:25:00 2008 -0700
+
+ Remove twin perf case.
+
+ This performance test relied on the recently-removed ability
+ to select the internal twin-based font family with a name of
+ "cairo".
+
+ Presumably, we'll want to bring this performance case back when
+ some other means of requesting that font face is added.
+
+ perf/Makefile.am | 1 -
+ perf/cairo-perf.c | 1 -
+ perf/cairo-perf.h | 1 -
+ perf/twin.c | 50 --------------------------------------------------
+ 4 files changed, 53 deletions(-)
+
+commit 292233685534aed712dfd45e8ccf498b792ce496
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 16:25:00 2008 -0700
+
+ Remove twin test case.
+
+ This test relied on the recently-removed ability to select
+ the internal twin-based font family with a name of "cairo".
+
+ Presumably, we'll want to bring this test case back when
+ some other means of requesting that font face is added.
+
+ test/.gitignore | 1 -
+ test/Makefile.am | 6 -----
+ test/twin-ps2-ref.png | Bin 1167 -> 0 bytes
+ test/twin-ps3-ref.png | Bin 1167 -> 0 bytes
+ test/twin-svg11-ref.png | Bin 1773 -> 0 bytes
+ test/twin-svg12-ref.png | Bin 1773 -> 0 bytes
+ test/twin.c | 60 ------------------------------------------------
+ 7 files changed, 67 deletions(-)
+
+commit a824d284be23793a5c48b9ae833dcb7b2d5fff80
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 16:21:42 2008 -0700
+
+ Remove the ability to select the internal font face with a name of "cairo".
+
+ It's not fair to steal this name from the namespace of family names.
+ There are definitely cairo.ttf files that exist out there, and people
+ may already be using these, (or may use them in the future), with
+ cairo_select_font_face and a family name of "cairo".
+
+ In place of this, we'll want to come up with some other new, and
+ documented API for selecting the internal font face.
+
+ src/cairo-font-face.c | 6 ++----
+ src/cairoint.h | 1 -
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+
+commit f039da8d9172a6fb60082901c8dc56c7159ecd24
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 16:17:24 2008 -0700
+
+ Add doltcompile and doltlibtool to .gitignore.
+
+ These generated files were recently added to our build system.
+ We definitely don't want to see them in git-status output.
+
+ .gitignore | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 81439b3bc8656b34c13b3cc7b5b6a9f03a3c8c54
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 29 16:15:12 2008 -0700
+
+ Add missing files to CLEANFILES and DISTCLEANFILES.
+
+ Without these files in these lists, "make distcheck" is unhappy.
+
+ Makefile.am | 4 +++-
+ test/Makefile.am | 9 +++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+commit dd0416f5d47a946498219616f53abdad81d4fc38
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 18:01:09 2008 -0700
+
+ Add recently added reference images to REFERENCE_IMAGES list.
+
+ This is just part of the make-distcheck routine for me. I know
+ Behdad added a test to check for missing images in the list, but
+ it doesn't seem to be getting run automatically as part of
+ 'make test' nor 'make distcheck', (or if it it, then I'm not
+ noticing its output).
+
+ test/Makefile.am | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 9cd9644c1d993f86c6eb7bee692fe642d6d280b1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 29 21:56:36 2008 +0000
+
+ [test] Add a pass-through test.
+
+ Check that colour values are correctly passed through all the backends.
+ Simple test of the most fundamental functionality.
+
+ test/.gitignore | 1 +
+ test/Makefile.am | 3 ++
+ test/pass-through-ref.png | Bin 0 -> 221 bytes
+ test/pass-through-rgb24-ref.png | Bin 0 -> 179 bytes
+ test/pass-through.c | 99 ++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 103 insertions(+)
+
+commit cec689eab628b59ee1d69e241c5d336760304ea0
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 17:18:34 2008 -0700
+
+ RELEASING: Suggest running 'make distcheck' against Xvfb.
+
+ This avoids hitting driver-specific bugs in the X server, and is
+ better than doing 'DISPLAY= make distcheck' which simply disables
+ all xlib testing completely.
+
+ RELEASING | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit 0ca6ba18e398db7ed8f8bca5faa93d48aa3a4878
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 17:15:42 2008 -0700
+
+ Add note to test/README on running with Xvfb.
+
+ This X server has been tested to run through the test suite with
+ no unexpected failures, and it avoids hitting any X-driver-specific
+ bugs.
+
+ test/README | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+commit eed67717649c343e42ce102a4d78a245dba48925
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 17:12:15 2008 -0700
+
+ Disable the svg12 target in boilerplate.
+
+ This target was added to the boilerplate during 1.8.1. It currently
+ shows many failures in the test suite. These failures likely fall
+ into three different classes:
+
+ * Tests needing new svg12-specific reference images
+
+ * Tests exercising bugs in librsvg
+
+ * Tests exercising existing cairo bugs
+
+ We haven't gone through the effort to separate these, but even for
+ the tests that are exercising actual cairo bugs, these are likely
+ bugs that existed in the cairo 1.8.0 release and not regressions.
+
+ Because of that, in this commit I'm conditionally disabling the
+ testing of the svg12 target. As soon as we increment the cairo
+ version to 1.9.0 or higher, this target will get re-enabled
+ automatically and we can begin the work to separate the tests as
+ described above and also fix the bugs.
+
+ boilerplate/cairo-boilerplate.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit a94928ddfa066f6e6824775b9d0b6008f3fcbf26
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 15:55:38 2008 -0700
+
+ Add svg-specific reference images for the twin test.
+
+ A bit annoying that I have to add the same image as both -svg11
+ and -svg12 but that's all the support we have in the current
+ test suite. I suppose I could avoid doing that by figuring out
+ why this test case cannot successfully roundtrip through librsvg
+ and back through cairo.
+
+ test/twin-svg11-ref.png | Bin 0 -> 1773 bytes
+ test/twin-svg12-ref.png | Bin 0 -> 1773 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+commit 53554ea8892893098b29a27a23c069f0ee584a06
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 15:50:44 2008 -0700
+
+ Add ps2-specific reference images for trap-clip test.
+
+ These are quite similar to the existing ps3-specific reference images.
+ I definitely don't see any reason why this output should be considered
+ a failure.
+
+ test/trap-clip-ps2-argb32-ref.png | Bin 0 -> 5690 bytes
+ test/trap-clip-ps2-rgb24-ref.png | Bin 0 -> 5617 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+commit 10fd16a05d8549753179ab5cca855539fb7dec94
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 15:41:40 2008 -0700
+
+ Mark user-font-mask as XFAIL.
+
+ This test is expected to fail due to a couple of known bugs. Chris
+ has fixes for both bugs, but is holding off on them until after 1.8.2
+ to prevent introducing any possible new bugs with his fixes.
+
+ test/Makefile.am | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+commit 655546243f57ae2a5c1813bd45994b18061f1c74
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 15:35:35 2008 -0700
+
+ Rename user-font-image test to user-font-mask.
+
+ Otherwise the reference image (user-font-image-ref.png) gets
+ interpreted as an image-specific reference image for the
+ user-font test case resulting in a bogus failure.
+
+ test/Makefile.am | 4 ++--
+ test/{user-font-image-ref.png => user-font-mask-ref.png} | Bin
+ test/{user-font-image.c => user-font-mask.c} | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 42d2d1b6d3b187b5dbdb630783d7c9bf90c66fb2
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Oct 28 12:48:03 2008 -0700
+
+ Correct NEWS to say 'release' instead of 'snapshot' for 1.8.0
+
+ A copy-and-paste bug strikes again.
+
+ NEWS | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 1327ec232cfca675647fb03876487c92fb638354
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 28 10:00:38 2008 +0000
+
+ [image] Remove invalid assert.
+
+ The assert can fail for an error surface.
+
+ TODO: Decide what values should be returned from getters for error
+ surfaces.
+
+ src/cairo-image-surface.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit 9481d999df8d399543bdbb45b85bd24b1725bece
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 28 09:59:01 2008 +0000
+
+ [image] Check create_for_data() to ensure a valid minimum stride.
+
+ Double check that the user is not being silly by passing in a stride that
+ is too small for the width. evince/poppler is one such example...
+
+ src/cairo-image-surface.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+commit 88f628b3972819c0f6ce8e5f06d0f7e6abb9d661
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 28 09:11:23 2008 +0000
+
+ [perf] Fix rectangular case of unaligned-clip.
+
+ Janoos spotted that the unaligned clip actually degenerated to an empty
+ clip due to a typo when constructing the second rectangle. Simply use a
+ cairo_rectangle() instead.
+
+ perf/unaligned-clip.c | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+commit 1522805f39c505ff05231e67de5a6e6686081d46
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 27 20:57:56 2008 -0400
+
+ [Makefile.am.releasing] Fix typo
+
+ build/Makefile.am.releasing | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 3386794d96d2b1616af9db5b7df1fc5c7a5796a7
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Oct 27 14:09:19 2008 -0700
+
+ Add creation of a versioned manual to the release-publish target.
+
+ This arranges so that a versioned manual will be available of the form:
+
+ http://cairographics.org/manual-X.Y.Z
+
+ for all future releases and snapshots. We're going through the process
+ of manually doing all former releases, such as:
+
+ http://cairographics.org/manual-1.2.0/
+
+ which the LSB folks wanted to reference.
+
+ build/Makefile.am.releasing | 27 ++++++++++++++++++---------
+ 1 file changed, 18 insertions(+), 9 deletions(-)
+
+commit a1a7ec6a056fa36389a48c0f53884ae7e92ebc1a
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Oct 27 23:13:05 2008 +1030
+
+ Change ps to ps3 in test/README
+
+ The ps target no longer exists.
+
+ test/README | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 670d942fe3dafbed5ceca234e760f29f793233cb
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Oct 27 23:04:16 2008 +1030
+
+ Change user-font-image test to use a pattern
+
+ This can be used to expose a bug in _cairo_rectangle_intersect() by
+ changing:
+
+ fixed_scale = 1024 to 1 in cairo-user-font.c
+
+ and
+
+ cairo_matrix_translate (&matrix, 0, -8) to (&matrix, 0, -9) in
+ user-font-image.c
+
+ This will cause cairo_text_extents (cr, text, &extents) in
+ user-font-image.c to return a height of 8388683.
+
+ test/user-font-image-ref.png | Bin 5502 -> 6011 bytes
+ test/user-font-image.c | 13 +++++++++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit cdacf55e1b16a6982c681fab212405fc4af4f1db
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Oct 27 22:07:04 2008 +1030
+
+ Add user-font-image test
+
+ Draws bitmap glyphs using cairo_mask(). This test exposes a bug in the
+ calculation of the glyph extents.
+
+ test/Makefile.am | 2 +
+ test/user-font-image-ref.png | Bin 0 -> 5502 bytes
+ test/user-font-image.c | 245 +++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 247 insertions(+)
+
+commit 22e2dac819de3c082424ebf3ce8f64c9c4797e8a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 26 10:21:37 2008 +0000
+
+ [stroke] Ensure we record the first face for a dashed path.
+
+ If the first face was outside the bounds then we skipped it, and so a
+ close would incorrectly connect to the first visible face.
+
+ src/cairo-path-stroke.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 64fb3290f00bafc4a10e6432226f669a51fa0bc6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 26 09:54:03 2008 +0000
+
+ [stroke] _cairo_stroker_line_to_dashed() whitespace
+
+ A couple of comment spelling mistakes and rearrange whitespace to more
+ closely match CODING_STYLE.
+
+ src/cairo-path-stroke.c | 57 +++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 39 insertions(+), 18 deletions(-)
+
+commit 88935947d11762c91e282fb129c493afc6f2f1a6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 26 08:19:31 2008 +0000
+
+ [test] Add leaky-dashed-stroke
+
+ A test case for a leak whilst closing a dashed stroke extracted from the
+ report by Jeff Muizelaar who found the artifact whilst looking at
+ firefox http://people.mozilla.com/~jmuizelaar/BerlinDistricts-check.svg
+
+ test/.gitignore | 1 +
+ test/Makefile.am | 4 +
+ test/leaky-dashed-stroke-ps2-ref.png | Bin 0 -> 5511 bytes
+ test/leaky-dashed-stroke-ps3-ref.png | Bin 0 -> 5511 bytes
+ test/leaky-dashed-stroke-ref.png | Bin 0 -> 9214 bytes
+ test/leaky-dashed-stroke.c | 174 +++++++++++++++++++++++++++++++++++
+ 6 files changed, 179 insertions(+)
+
+commit 195fd27cc64c7aaf18a6d48ccd9d94548331fd4d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 22:04:53 2008 +0100
+
+ [build] Use AC_LINK_IFELSE for testing linker flags.
+
+ Richard Hult reported that -Wl,--allow-shlib-undefined was incorrectly
+ being identified as supported by gcc under Mac OS/X:
+
+ configure:25103: checking whether gcc supports -Wl,--allow-shlib-undefined
+ configure:25117: gcc -c -Werror -Wl,--allow-shlib-undefined conftest.c
+ >&5
+ i686-apple-darwin9-gcc-4.0.1: --allow-shlib-undefined: linker input file
+ unused because linking not done
+
+ So instead of just checking whether the compiler accepts the flag, check
+ that we can actually link a dummy file.
+
+ build/aclocal.cairo.m4 | 20 ++++++++++++++++++++
+ build/configure.ac.warnings | 2 +-
+ 2 files changed, 21 insertions(+), 1 deletion(-)
+
+commit d692284ab8f90d7402621f1a07aaddcf11d87ef5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Oct 23 01:45:35 2008 -0400
+
+ [test/user-font] Exercise glyph 0
+
+ Previously there was a bug in cairo and/or poppler causing glyph 0 of
+ user fonts to not show up. This is fixed now, so we exercise glyph 0.
+
+ test/user-font.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+commit e6219f7116311d999054dc31df081aa66a0cd2d3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 17:53:05 2008 +0100
+
+ [win32] Correct error paths in text_to_glyphs().
+
+ Carl spotted that 1db894 introduced an error into text_to_glyphs() such
+ that following an allocation error the code would attempt to thaw an
+ unfrozen glyph cache, leading to an attempt to unlock an unlocked mutex -
+ which causes a deadlock under win32.
+
+ src/cairo-win32-font.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 09651a1c1a4856607423e9b06c1f7c397ba4f304
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 8 22:39:48 2008 +0100
+
+ Twin perf case
+
+ perf/Makefile.am | 3 ++-
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/twin.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 54 insertions(+), 1 deletion(-)
+
+commit 954ebacb71071c53c4e4092b469417f01478bc2d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 15:43:56 2008 +0100
+
+ Map toy font face to implementation.
+
+ Quartz fonts and user fonts use an indirect font face when creating a
+ scaled font for the toy font face. This means that they insert a scaled
+ font into the font map that has a different font face to the one that is
+ initially searched upon. The result is that when we try to create an
+ identical scaled font, we fail to find the existing scaled font and
+ attempt to insert a duplicate into the hash table - which triggers an
+ assert.
+
+ In order to avoid creating duplicate fonts, we add a new method to the
+ font backends that allows cairo_scaled_font_create() to peek at the
+ font_face that will be used to actually implement the scaled font
+ constructor - thus we are able to use the correct font_face as part of the
+ hash key.
+
+ src/cairo-font-face.c | 34 ++++++++++++++++++++++++++++++
+ src/cairo-ft-font.c | 2 ++
+ src/cairo-quartz-font.c | 55 +++++++++++++++++++++++++++++++++++++++----------
+ src/cairo-scaled-font.c | 11 +++++++++-
+ src/cairo-user-font.c | 37 +++++++++++++++++++++++++--------
+ src/cairo-win32-font.c | 2 ++
+ src/cairoint.h | 8 +++++++
+ 7 files changed, 128 insertions(+), 21 deletions(-)
+
+commit 5e4a1cb0b830f069d99c9512563c82ad628587e3
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Oct 22 21:36:42 2008 +1030
+
+ Don't add a notdef glyph to Type 3 font subsets
+
+ This allows user-fonts to use glyph 0 when embedding in PS/PDF.
+ According to ISO32000 Type 3 fonts do not require a notdef glyph.
+
+ src/cairo-pdf-surface.c | 19 ++++-------
+ src/cairo-ps-surface.c | 21 ++++--------
+ src/cairo-scaled-font-subsets.c | 59 +++++++++++++++++++--------------
+ src/cairo-type3-glyph-surface-private.h | 6 ----
+ src/cairo-type3-glyph-surface.c | 16 ---------
+ 5 files changed, 48 insertions(+), 73 deletions(-)
+
+commit 170686d4b0ed913a1a175f3f354ec5796814b416
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 22 01:01:06 2008 +0100
+
+ [cairoint] Remove the duplicate prototype.
+
+ In the previous commit I added comments and a duplicate prototype. Remove
+ the duplicate - but keep the comments.
+
+ src/cairoint.h | 3 ---
+ 1 file changed, 3 deletions(-)
+
+commit 1db8949f2baf1e620e1d5ef73a66de211420bd0a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 22:48:17 2008 +0100
+
+ Ensure that the scaled font is frozen for the lifetime of the scaled glyph.
+
+ After discussing the scaled font locking with Behdad, it transpired that it
+ is not sufficient for a font to be locked for the lifetime of a scaled glyph,
+ but that the scaled font's glyph cache must be frozen for the glyph'
+ lifetime. If the cache is not frozen, then there is a possibility that the
+ glyph may be evicted before the reference goes out of scope i.e. the glyph
+ becomes invalid whilst we are trying to use it.
+
+ Since the freezing of the cache is the stronger barrier, we remove the
+ locking/unlocking of the mutex from the backends and instead move the
+ mutex acquisition into the freeze/thaw routines. Then update the rule on
+ acquiring glyphs to enforce that the cache is frozen and review the usage
+ of freeze/thaw by all the backends to ensure that the cache is frozen for
+ the lifetime of the glyph.
+
+ src/cairo-directfb-surface.c | 4 +-
+ src/cairo-glitz-surface.c | 2 +-
+ src/cairo-gstate.c | 4 -
+ src/cairo-meta-surface.c | 2 -
+ src/cairo-mutex-impl-private.h | 3 +-
+ src/cairo-mutex-type-private.h | 3 +
+ src/cairo-paginated-surface.c | 2 -
+ src/cairo-pdf-surface.c | 2 -
+ src/cairo-scaled-font-subsets.c | 30 +++---
+ src/cairo-scaled-font.c | 81 ++++++++++-----
+ src/cairo-surface-fallback.c | 1 +
+ src/cairo-surface.c | 4 -
+ src/cairo-svg-surface.c | 4 +-
+ src/cairo-type1-fallback.c | 9 +-
+ src/cairo-type3-glyph-surface.c | 18 ++--
+ src/cairo-user-font.c | 1 -
+ src/cairo-win32-font.c | 12 ++-
+ src/cairo-xcb-surface.c | 216 ++++++++++++++++++++++++----------------
+ src/cairo-xlib-surface.c | 57 ++++++-----
+ src/cairoint.h | 4 +
+ src/test-meta-surface.c | 25 +----
+ src/test-paginated-surface.c | 25 +----
+ 22 files changed, 280 insertions(+), 229 deletions(-)
+
+commit b2cbbceb4ca57816a498c2c1e676b19182c34e12
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 19:44:42 2008 +0100
+
+ [test/meta-surface-pattern] Propagate errors.
+
+ Use cairo_get_target() to propagate any errors from the secondary context.
+
+ test/meta-surface-pattern.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit 9d4262ebe07bacacd6e743dea616b37ac51eac01
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Oct 21 17:44:47 2008 -0400
+
+ [build] Use dolt
+
+ Dolt is a hack to speed up libtool-based build systems:
+
+ http://dolt.freedesktop.org/
+
+ It's completely transparent to the user. Brings make time
+ of cairo from 70s down to 20s. Yay!
+
+ build/aclocal.dolt.m4 | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.ac | 1 +
+ 2 files changed, 178 insertions(+)
+
+commit 5a822046cc66d8405618370c1071433016969020
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:22:48 2008 +0100
+
+ [test/xlib-expose-event] Propagate errors.
+
+ Use cairo_get_target() to propagate errors from secondary contexts.
+
+ test/xlib-expose-event.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit 21223cc12ca00c52c0b39dc60db410f29e4e76c9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:29:12 2008 +0100
+
+ [test/unbounded-operator] Propagate errors.
+
+ Use cairo_get_target() to propagate errors from secondary contexts.
+
+ test/unbounded-operator.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 4c8de6d99d337338d6fd57134247515f9815b5e5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:21:37 2008 +0100
+
+ [test/surface-pattern-scale-up] Propagate errors.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/surface-pattern-scale-up.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit e8de7d1c3605fa6d89640fb4e0631c07e5366348
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:20:54 2008 +0100
+
+ [test/surface-pattern-scale-down] Propagate errors.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/surface-pattern-scale-down.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit b5551cfce2969358746dadae90cbe1add012e29c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:19:40 2008 +0100
+
+ [test/rotate-image-surface-paint] Proapgate errors.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/rotate-image-surface-paint.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 6d41ffbbed2ad3bab2b1a58e1e5d9e1570a37926
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:18:37 2008 +0100
+
+ [test/pixman-rotate] Propagate errors
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/pixman-rotate.c | 33 ++++++++++++++++-----------------
+ 1 file changed, 16 insertions(+), 17 deletions(-)
+
+commit 64949b81735ee4e43772224d10031f7edfbc8068
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:17:13 2008 +0100
+
+ [test/operator-source] Propagate errors.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/operator-source.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+commit 971f030b7dca7ce24e54d0465900e6984020345e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:27:17 2008 +0100
+
+ [test/operator-clear] Propagate errors.
+
+ Use cairo_get_target() to propagate errors from secondary contexts.
+
+ test/operator-clear.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 9b919b0e91b6c64acbcbfc05c72610188327be67
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:14:51 2008 +0100
+
+ [test/extend-pad] Propagate errors.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/extend-pad.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 69415b4fc6387acda7498847f8181c802c8b0982
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:25:38 2008 +0100
+
+ [test/device-offset-scale] Propagate errors
+
+ Use cairo_get_target() to propagate errors from the secondary contexts.
+
+ test/device-offset-scale.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+commit 9ab296123ef49259a67e8dc43708023da2759283
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:14:01 2008 +0100
+
+ [test/device-offset-positive] Propagate errors.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/device-offset-positive.c | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+commit 594fa0836f2526e0a7f44fc7184f7f09de7dd41f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 11:12:11 2008 +0100
+
+ [test/device-offset] Propagate error.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/device-offset.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 29da47be60b0373ff93769f9f373a20b15a01e0f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 10:42:41 2008 +0100
+
+ [ps] Check for an empty font subset.
+
+ Return early before trying to emit an empty subset into the document -
+ avoids a potential use of an uninitialised status variable.
+
+ src/cairo-ps-surface.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit fd1f3c27e093b1f51f0c1a381cc02cbf8f9889d7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 21 09:17:56 2008 +0100
+
+ [configure] Check for atomic xchg.
+
+ Bug 18140 identifies a case where we have an atomic increment, but not an
+ atomic exchange. We need both to implement atomic reference counting, so
+ add a second check to detect whether __sync_val_compare_and_swap
+ generates a non-atomic instruction.
+
+ Fixes http://bugs.freedesktop.org/show_bug.cgi?id=18140.
+
+ build/aclocal.cairo.m4 | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 71e4f7e3a10e6c9794360473d0114b27b42bcead
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 23:54:57 2008 +0100
+
+ Add API documentation for NULL filenames and write_funcs.
+
+ Mention in the API docs that you can pass a NULL filename to
+ cairo_(pdf|ps|svg)_surface_create in order to construct a queryable
+ surface without generating any temporary files. Similarly when passing a
+ NULL write_func to cairo_pdf_surface_create_for_stream et al.
+
+ src/cairo-pdf-surface.c | 10 ++++++++--
+ src/cairo-ps-surface.c | 10 ++++++++--
+ src/cairo-svg-surface.c | 10 ++++++++--
+ 3 files changed, 24 insertions(+), 6 deletions(-)
+
+commit 6cb2b29434ffd5e718868d90e31cb050904b3ea7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 23:22:16 2008 +0100
+
+ [mutex] s/HOLDS_MUTEX/MUTEX_IS_LOCKED/
+
+ Behdad prefers the latter to keep a clean namespace.
+
+ src/cairo-mutex-impl-private.h | 2 +-
+ src/cairo-mutex-type-private.h | 4 ++--
+ src/cairo-scaled-font.c | 18 +++++++++---------
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+commit ae9d17c015867002895c8aa4e1c6dd1ef370dd20
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 22:31:17 2008 +0100
+
+ [directfb] Unbounded operators are unsupported.
+
+ Currently the emulation of Porter-Duff operators does not correctly
+ handle the unbounded operators.
+
+ src/cairo-directfb-surface.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+commit 1f35f31c4ee50dcc2f7c8616b9bbb5c45b4ed707
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 22:14:41 2008 +0100
+
+ [directfb] Fallback for SATURATE
+
+ We're unable to satisfactorily emulate SATURATE using the src/dst blend
+ modes, so fallback. (Might just be a bug in libdirectfb...)
+
+ src/cairo-directfb-surface.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit c7951c4a368baaeeadca4e2a18d3ad45225380a0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 22:04:58 2008 +0100
+
+ [directfb] Perfom text fallback if emulating clip regions.
+
+ Fallback if we have a clip that is not a simple region.
+
+ src/cairo-directfb-surface.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+commit 98933fd4b8579b68623a8212015769b058db43f5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 20:59:14 2008 +0100
+
+ [directfb] When blitting check if we need the un-premultiplied color.
+
+ When blitting whether we need to use the premultiplied color is dependent
+ upon the destination surface capabilities.
+
+ src/cairo-color.c | 3 ++
+ src/cairo-directfb-surface.c | 75 ++++++++++++++++++++++++++++++--------------
+ 2 files changed, 54 insertions(+), 24 deletions(-)
+
+commit 4af8aa5f4d31141a6a4ba914cc860aff5d342d5b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 20:15:12 2008 +0100
+
+ [directfb] Apply clip to release_dest_image()
+
+ We need to respect the current clip when copying the fallback image back to
+ the target surface.
+
+ src/cairo-directfb-surface.c | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+commit 0ba5085ba06fd1c0ff1ebc88111d4573675a2e17
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 19:41:20 2008 +0100
+
+ [directfb] Fix OBO in clip.
+
+ DirectFB seems to use inclusive upper bounds.
+
+ src/cairo-directfb-surface.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 2743e84171fd2a548ac37b1fdd3611d319acded0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 19:32:21 2008 +0100
+
+ [directfb] Force NEAREST.
+
+ The current version of DirectFB does not support any filters, so set
+ NEAREST on the source patterns so that we can fully optimize the pattern
+ inside core.
+
+ src/cairo-directfb-surface.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit f1669d31c0064b8ffbc7db2527fed85488fb305c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 19:03:33 2008 +0100
+
+ [directfb] Track the empty clip rectangle.
+
+ A region with no extents means everything should be clipped out, so we
+ need an extra flag to disambiguate when we have 0 clip rectangles.
+
+ src/cairo-directfb-surface.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit ebe3048f9b74ff949795a807a7076ec756150ede
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 18:59:03 2008 +0100
+
+ [directfb] Cap the maximum surface size to use for the font cache.
+
+ Fallback if we need to create a cache larger than the maximum usable
+ surface.
+
+ src/cairo-directfb-surface.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit 6f35c2d13e4cb736634bf446d3b8ee38cc6a6b9b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 18:39:45 2008 +0100
+
+ [directfb] Only use the pure BLIT for integer translations.
+
+ If we have non-integer translation on a source pattern then we need to use
+ STRECTHBLIT (the core takes care to optimize NEAREST patterns to integer
+ translations so that this will only be used when interpolation is
+ required).
+
+ src/cairo-directfb-surface.c | 30 +++++++++++++++++++++++-------
+ 1 file changed, 23 insertions(+), 7 deletions(-)
+
+commit 55bb7087b0236fe27980efda829f7b72e047b316
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 16:47:41 2008 +0100
+
+ [directfb] Tweak _categorize_operation().
+
+ Explicitly list the extend modes that are supported/unsupported and
+ immediately check for an unsupported operation.
+
+ src/cairo-directfb-surface.c | 37 +++++++++++++++++++++++++------------
+ 1 file changed, 25 insertions(+), 12 deletions(-)
+
+commit edb65213ec975e517165bc3b623f676a12917d0c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 16:46:08 2008 +0100
+
+ [directfb] Support ROI cloning.
+
+ Only clone the ROI in order to efficiently handle large sources.
+
+ src/cairo-directfb-surface.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+commit 4006e49ac1e96a983346f97be97bfd850f247ab0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 16:45:06 2008 +0100
+
+ [directfb] Rename backend structure.
+
+ Use _cairo_directfb_surface_backend for consistency with other backends.
+
+ src/cairo-directfb-surface.c | 37 ++++++++++++++++++++++++-------------
+ 1 file changed, 24 insertions(+), 13 deletions(-)
+
+commit 7e31ddbb08a6a7cf1db06c950c3768e54a5f4cfa
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 13:04:20 2008 +0100
+
+ [directfb] Whitespace.
+
+ Trim lots of trailing whitespace and fix up according to CODING_STYLE.
+
+ src/cairo-directfb-surface.c | 1478 +++++++++++++++++++++---------------------
+ 1 file changed, 733 insertions(+), 745 deletions(-)
+
+commit d49563280b80dd85275057b6442d2f4ece8d724c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 12:49:52 2008 +0100
+
+ [directfb] Simplify return from _directfb_get_operator().
+
+ Used only as a predicate, so simply return a boolean.
+
+ src/cairo-directfb-surface.c | 138 +++++++++++++++++++++----------------------
+ 1 file changed, 68 insertions(+), 70 deletions(-)
+
+commit b17d0ded8cd42d84e97ca2c1fbd4aefedd570b8e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 12:48:02 2008 +0100
+
+ [directfb] Use the solid pattern cache.
+
+ The dfb backend recreated a solid color surface for every colour,
+ completely bypassing the solid pattern cache.
+
+ src/cairo-directfb-surface.c | 72 +++++++++++---------------------------------
+ 1 file changed, 18 insertions(+), 54 deletions(-)
+
+commit 786bea48df0dc6d76b2ad00409804a803fe2f4b6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 12:19:50 2008 +0100
+
+ [boilerplate/directfb] Create ARGB surfaces on demand.
+
+ Create an RGB or ARGB surface depending upon the content type of the test
+ target, with the result that the directfb rgb24 target no longer
+ unconditionally fails.
+
+ boilerplate/cairo-boilerplate-directfb.c | 23 +++++++++++++----------
+ 1 file changed, 13 insertions(+), 10 deletions(-)
+
+commit 4ba9ccc6ab5926d59696f86193f42df2195d7cda
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 23:07:38 2008 +0100
+
+ [configure.ac.analysis] s/safe/_save/
+
+ Rename the temporary variable in line with the convention used by the rest
+ of the build system.
+
+ build/configure.ac.analysis | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 3a45b07af9743a26305c2576f838b4f3ef83bbb8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 10:37:46 2008 +0100
+
+ [perf] Free images for composite-checker
+
+ Fix memleak of the image surfaces.
+
+ perf/composite-checker.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 86356a9578dc248a755aceb7a04aef67a6c529b3
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 20 17:12:21 2008 +0100
+
+ [test] Add degenerate-dash to XFAIL.
+
+ PS (ghostscript) interprets the degenerate end-caps quite differently, and
+ perhaps slightly more rationally... Add this to XFAIL, until we have a
+ definitive specification on how we should behave.
+
+ test/Makefile.am | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 83d2552e4cafc9f86a8055abdf6caa685ed4922b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 20 17:59:09 2008 -0400
+
+ Remove CAIRO_BEGIN_DECLS uses that ickle introduced while merging
+
+ src/cairo-mutex-impl-private.h | 2 --
+ src/cairo-mutex-type-private.h | 2 --
+ 2 files changed, 4 deletions(-)
+
+commit eab37f76b0f26a7b007dd51debf4d4901310c8b0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 22:12:18 2008 +0100
+
+ [directfb] Return an error surface on create() failure.
+
+ Do not return NULL but an NO_MEMORY error surface if we fail to allocate
+ the surface during creation.
+
+ src/cairo-directfb-surface.c | 21 ++++++++++-----------
+ 1 file changed, 10 insertions(+), 11 deletions(-)
+
+commit 6a02f53dd191605986b15e4757b16f599fe8de5f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 14:21:15 2008 +0100
+
+ [directfb] Simplifiy ADD_TRI
+
+ Simplify the ADD_TRI macro to make the code more readable.
+
+ src/cairo-directfb-surface.c | 30 +++++++++++++-----------------
+ 1 file changed, 13 insertions(+), 17 deletions(-)
+
+commit aba457fe64f12598043b11ae076f0a93fe05eba7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 14:03:24 2008 +0100
+
+ [directfb] Add missing error status
+
+ We jumped to the ERROR path without setting an error status - assume
+ NO_MEMORY.
+
+ src/cairo-directfb-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 610451e4a7b079d30a73384a76f0aaab250c2970
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 12:45:45 2008 +0100
+
+ [directfb] Correct fixed-to-double conversion.
+
+ The trapezoid calculations had not been updated after the 16.16->24.8
+ switch. Use _cairo_fixed_to_double() rather than open-coding.
+
+ src/cairo-directfb-surface.c | 110 +++++++++++++++++++++----------------------
+ 1 file changed, 54 insertions(+), 56 deletions(-)
+
+commit 8e0950ced8837a35b9dc0254860250f9fa1a9613
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 12:11:13 2008 +0100
+
+ [boilerplate/directfb] Gracefully handle failure to create surface.
+
+ Simply return NULL indicating failure to create the target surface rather
+ than aborting the test (allowing other targets to be tested).
+
+ boilerplate/cairo-boilerplate-directfb.c | 230 +++++++++++++++++--------------
+ 1 file changed, 130 insertions(+), 100 deletions(-)
+
+commit 801df1b87a585ebf71e6d3d74b815f3470b81ae9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 11:55:20 2008 +0100
+
+ [directfb] Fix error propagation from surface_create()
+
+ Do not mask fatal errors, but correctly propagate the error status.
+
+ src/cairo-directfb-surface.c | 208 ++++++++++++++++++++++++-------------------
+ 1 file changed, 114 insertions(+), 94 deletions(-)
+
+commit 476d17fa788fcf173e58b963540c6557f846ceed
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 11:35:27 2008 +0100
+
+ [directfb] Compile fix.
+
+ Fixup compilation after 901f0b.
+
+ src/cairo-directfb-surface.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit d72969289db62b38ca024a41c0d8e0df480e7f8c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 09:47:33 2008 +0100
+
+ [image] Remove unused variable.
+
+ Cleanup the compiler warning for the unused status after code shuffling.
+
+ src/cairo-image-surface.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit f2ff7944264c23cbec856be3e85f240a93184f80
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 11:56:19 2008 +0100
+
+ [perf] A crude tool to visualise performance changes across a series.
+
+ Generate a cairo-perf-diff graph for a series of commits in order to be
+ able to identify significant commits. Still very crude, but minimally
+ functional.
+
+ configure.ac | 3 +
+ perf/.gitignore | 1 +
+ perf/Makefile.am | 26 +-
+ perf/Makefile.win32 | 6 +-
+ perf/cairo-perf-diff | 12 +-
+ perf/cairo-perf-diff-files.c | 458 -------------------------------
+ perf/cairo-perf-graph | 205 ++++++++++++++
+ perf/cairo-perf-graph-files.c | 593 +++++++++++++++++++++++++++++++++++++++++
+ perf/cairo-perf-graph-widget.c | 450 +++++++++++++++++++++++++++++++
+ perf/cairo-perf-graph.h | 63 +++++
+ perf/cairo-perf-report.c | 456 +++++++++++++++++++++++++++++++
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 61 ++++-
+ perf/cairo-stats.h | 8 -
+ 14 files changed, 1865 insertions(+), 478 deletions(-)
+
+commit 41c8eefc6d432ab213f6f405c3d6346adb7f7931
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 22:24:32 2008 +0100
+
+ [output-stream] Protect against NULL write_func.
+
+ Allow the user to specify a NULL write_func for the output stream so that
+ a dummy surface can be created, for example, for querying target font
+ options or font extents.
+
+ Currently we do not perform any sanity checks at the user entry point and
+ will generate a mysterious SEGV during cairo_surface_finish() - which may
+ not immediately be obvious that it is due to a NULL write_func.
+
+ src/cairo-output-stream.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 84e4a825fffe3d78e95dec3406a86da6a23144c2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 22:15:17 2008 +0100
+
+ [output-stream] Accept a NULL filename
+
+ Principally to support creating a dummy vector surface (i.e.
+ cairo_ps_surface_create (NULL, 1, 1)) that can be used to determine font
+ extents (or target font options) before opening an output file, but also
+ because we currently fail to do any sanity checking at the entry point.
+
+ src/cairo-output-stream.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 52ea38f97b1b90e395c667619770482b10e5672e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 18 00:44:29 2008 +0100
+
+ [meta] Acquire scaled_font mutex for glyph_path().
+
+ The caller of _cairo_scaled_font_glyph_path() is expected to be holding
+ the scaled_font->mutex.
+
+ src/cairo-meta-surface.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 299ea0580a646dc55fd0156f1904fe4b45ec5725
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 18 00:37:38 2008 +0100
+
+ [user-font] Review locks under error conditions.
+
+ Simplify the error handling by only relinquishing the global
+ scaled_font_map mutex if we successfully insert the placeholder font. The
+ result is that on the error path, there are no changes to global state and
+ thus we can entirely skip the user-font initialisation and
+ re-registration.
+
+ src/cairo-scaled-font.c | 44 ++++++++++++++++++++++----------------------
+ src/cairo-user-font.c | 39 +++++++++++++++++++++++----------------
+ src/cairoint.h | 2 +-
+ 3 files changed, 46 insertions(+), 39 deletions(-)
+
+commit c76a8481f372fab8981231b257fdcc69466263d2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 18 00:36:34 2008 +0100
+
+ [analysis] Check for error surfaces.
+
+ If the target surface is an error surface, ensure that we return the
+ appropriate error surface. Likewise, avoid writing to error surfaces.
+
+ src/cairo-analysis-surface.c | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+commit 5b28b0b903cb2fdb8a5614659d528bf12488389e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 18 00:35:48 2008 +0100
+
+ [ps] Destroy type3 surface on error.
+
+ After an error, ensure that the local type3 surface is destroyed.
+
+ src/cairo-ps-surface.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 6b17c6da47c42dd04ed2acad723c25b6da41b51c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 18 00:34:17 2008 +0100
+
+ [type3] Acquire scaled_font mutex whilst looking up glyphs.
+
+ When looking up the glyph in the shared scaled_font glyph cache, the
+ caller is required to have taken the scaled_font->mutex.
+
+ src/cairo-type3-glyph-surface.c | 50 ++++++++++++++++++++++++-----------------
+ 1 file changed, 30 insertions(+), 20 deletions(-)
+
+commit f56cf93181e73b4ba74f25ce14f7ed6c7cf36e83
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 22:13:53 2008 +0100
+
+ [user-font] Check for error objects.
+
+ Check that the user has not passed in an inert error object before any
+ attempts to write to it and return the default values.
+
+ src/cairo-user-font.c | 71 ++++++++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 59 insertions(+), 12 deletions(-)
+
+commit 1f9f9d936b296dbe796b1436c7da7fa3462f7d59
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:39:56 2008 +0100
+
+ [pdf] Acquire scaled_font mutex for show_text_glyphs().
+
+ We need to be holding the scaled font mutex over a call to draw text
+ glyphs from within an smask group.
+
+ src/cairo-pdf-surface.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 12fb8c9b7c808ab20bee466aa28ee368559fd902
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:33:07 2008 +0100
+
+ [type1] Acquire scaled_font mutex.
+
+ In order to perform glyph lookups we need to be holding the mutex for the
+ scaled_font.
+
+ src/cairo-type1-fallback.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit ca5f868a73b35eda737ae6596efff91f82eeea75
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:26:20 2008 +0100
+
+ [scaled-font] Zero font extents for an error surface.
+
+ Do not attempt to read from the error object, but just return zero
+ extents.
+
+ src/cairo-scaled-font.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+commit 1ddf0b2a5c1f3d20b9a91acf7aae021f6b738485
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 10:35:38 2008 +0100
+
+ [surface] Reorder asserts to make no assumptions about error objects.
+
+ If the surface is in error, then we cannot assume anything about the
+ validity of its contents other than the error status (and reference
+ count). This is for the cases were the surface is replaced by a nil
+ surface, and in future where the error surface may be replaced by a tiny
+ error object.
+
+ src/cairo-surface.c | 94 ++++++++++++++++++++++++++---------------------------
+ 1 file changed, 47 insertions(+), 47 deletions(-)
+
+commit 644e78ca4e6f72499fcf763acd53fa7235b0226d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 20:34:13 2008 +0100
+
+ [svg] Lock the scaled_font whilst emitting glyphs.
+
+ We need to hold the scaled_font mutex whilst looking upon glyphs so lock
+ the font whilst iterating over the font subset.
+
+ src/cairo-svg-surface.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 4587e9e4f5c46656108b05f7a4841f78df14de26
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 19:11:09 2008 +0100
+
+ [scaled-font-subsets] Add locking to unscaled font.
+
+ During map_glyph() we are passed a locked scaled_font for which we are
+ asked to add a glyph from that font into the active subsets for the
+ surface. This means that we eventually call scaled_glyph_lookup() to load
+ the glyph. But first, we attempt to find an existing an existing sub_font
+ for glyph, creating a new sub_font as necessary (possibly using an
+ entirely different unhinted scaled font). So before accessing the glyph
+ cache we need to make sure that we are holding the appropriate mutexes.
+
+ src/cairo-scaled-font-subsets.c | 23 +++++++++++++++++------
+ 1 file changed, 17 insertions(+), 6 deletions(-)
+
+commit d3a6651237a276c410885578c41fb505f83372ed
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 14:37:42 2008 +0100
+
+ [xlib] Set return code after failing to allocate glyph surface.
+
+ Although we checked for an allocation error, we missed propagating the
+ status to the return error code.
+
+ src/cairo-xlib-surface.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit bfc3a72cff1a3f9641dae7c9f121598a14eb9a5a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 14:06:03 2008 +0100
+
+ [gstate] Propagate error from clip.
+
+ During clip transformation we query the clip extents which can trigger a
+ fatal error. Check and propagate.
+
+ src/cairo-gstate.c | 33 +++++++++++++++++++++++----------
+ 1 file changed, 23 insertions(+), 10 deletions(-)
+
+commit 7975cf3f2c0bc28b8b3c916d5ba725abb38b300d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 13:21:28 2008 +0100
+
+ [paginated] Free local reference to target on error path.
+
+ On the error path we must destroy the local reference to the target
+ surface.
+
+ src/cairo-paginated-surface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 4662204a2a02d50e674f121d82bbb4fe1b8f1436
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 12:44:45 2008 +0100
+
+ [test-paginated] Fix double free of surface along error path.
+
+ The ownership of the surface is transferred to the paginated surface, so
+ we do not need to destroy it ourselves along the error path.
+
+ src/test-paginated-surface.c | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+commit bf3202fcfd281be3fa62c2d6719377a8f2a0dec4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 12:33:22 2008 +0100
+
+ [xlib] Fix double free of Pixmap along error path.
+
+ If the paint fails then we attempt to free the Pixmap ourselves and via
+ the cairo_surface_destroy (as it also believes that it owns the Pixmap).
+
+ src/cairo-xlib-surface.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+commit 901f0b540c764e131dd9745def329308af61b3d5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 12:19:09 2008 +0100
+
+ Review backend->create_similar()
+
+ Avoid masking fatal errors by enforcing any error to be returned via an
+ error surface, so that the NULL return only means UNSUPPORTED. A few
+ backends called their create_similar() directly, without correctly checking
+ for a potential NULL (for example, the directfb backend was a timebomb,
+ since it used NULL to indicate out-of-memory).
+
+ src/cairo-directfb-surface.c | 18 ++++++++++--------
+ src/cairo-glitz-surface.c | 17 +++++++++++------
+ src/cairo-quartz-surface.c | 4 ++--
+ src/cairo-surface.c | 8 ++------
+ src/cairo-win32-surface.c | 16 ++++++++++++----
+ src/cairo-xcb-surface.c | 2 ++
+ 6 files changed, 39 insertions(+), 26 deletions(-)
+
+commit 9529699028a5c7a3b0f81f945d25f26285247a11
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 19 09:35:07 2008 +0100
+
+ [test/user-font-rescale] Check and propagate errors.
+
+ We need to check the error status on set_user_data() to be sure that the
+ data has been set and error otherwise.
+
+ test/user-font-rescale.c | 63 ++++++++++++++++++++++++++++++------------------
+ 1 file changed, 40 insertions(+), 23 deletions(-)
+
+commit 683de2fea2d8cdeea9759cbf3ab7492d634e7af2
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 18 00:01:39 2008 +0100
+
+ [test/user-font[-proxy]] Check for error from set_user_data().
+
+ Check in case we fail to attach our user_data.
+
+ test/user-font-proxy.c | 69 ++++++++++++++++++++++++++++----------------------
+ test/user-font.c | 24 ++++++++++++++----
+ 2 files changed, 58 insertions(+), 35 deletions(-)
+
+commit 198392990082e01443bbda5c0cbe6dc8bf090baf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 22:14:49 2008 +0100
+
+ [test/bitmap] Leak on error path.
+
+ Free the FcPattern on error.
+
+ test/bitmap-font.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 0409be426cb7f67974346a93213dd4675b59776c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 14:26:15 2008 +0100
+
+ [test/font-matrix-translation] Check for OOM
+
+ First check that querying the extents did not trigger NO_MEMORY.
+
+ test/font-matrix-translation.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit 21360bf6748b30cf58d54561e40a1aa711d8d7af
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 20:44:51 2008 +0100
+
+ [test/source-surface-big-scaled-down] Propagate error.
+
+ Propagate error to source.
+
+ test/surface-pattern-big-scale-down.c | 43 ++++++++++++++++++++---------------
+ 1 file changed, 25 insertions(+), 18 deletions(-)
+
+commit 794160c35baf39593942ba71b45e4e75d2a87103
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 20:37:43 2008 +0100
+
+ [test/surface-pattern] Propagate error.
+
+ Use cairo_get_target() to propagate error from secondary context.
+
+ test/surface-pattern.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 0f48cce8d90cf95afcf86d71a932ab4e504b909b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 20:31:57 2008 +0100
+
+ [test/source-clip-scale] Propagate error.
+
+ Use cairo_get_target() to propagate error from secondary context.
+
+ test/source-clip-scale.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 6cdbd132ceba159bb7e3ac5612aa79293b21e95a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 20:22:49 2008 +0100
+
+ [test/source-clip] Propagate error.
+
+ Use cairo_get_target() to propagate error from the secondary context.
+
+ test/source-clip.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit f86f233b3e49c3f401b2fa02987b2193485e8be5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 20:14:06 2008 +0100
+
+ [test/smask] Propagate error.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/smask.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 4490a6c363a8745ba89bfa890519a570d098086e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 19:15:17 2008 +0100
+
+ [test/stroke-image] Propagate error
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/stroke-image.c | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+commit 6e6d7e52a3c16787633e5059ae36f2fb0d03148a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 19:02:31 2008 +0100
+
+ [test/mask] Propagate error from secondary context.
+
+ Reset the source every time so that the error is propagate from the
+ secondary context using cairo_get_target().
+
+ test/mask.c | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+commit a56d4530d6149e2c4fc884a5cfeede2d6ff6d3b6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:54:21 2008 +0100
+
+ [test/smask-text] Propagate error.
+
+ Use cairo_get_target() to propagate error from the secondary context.
+
+ test/smask-text.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit b1e884cd89ab2b83d3b8e072414e4e3f63e3a023
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:52:55 2008 +0100
+
+ [test/smask-stroke] Propagate error.
+
+ Use cairo_get_target() to propagate the error from the secondary context.
+
+ test/smask-stroke.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+commit 546fbc2c0cf87abd627477056bf19063c5aa001a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:50:25 2008 +0100
+
+ [test/smask-paint] Propagate error.
+
+ Use cairo_get_target() to propagate errors from the secondary context.
+
+ test/smask-paint.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 8bd69132827fa539d9dfb65bd00e00c079827360
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:49:02 2008 +0100
+
+ [test/smask-mask] Propagate error.
+
+ Use cairo_get_target() to propagate errors from the secondary contexts.
+
+ test/smask-mask.c | 46 ++++++++++++++++++++++------------------------
+ 1 file changed, 22 insertions(+), 24 deletions(-)
+
+commit 9c0fe6c61e92044e8599f49e75d38edcdd6be960
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:45:07 2008 +0100
+
+ [test/smask-image-mask] Propagate error.
+
+ Use cairo_get_target() to propagate any error status from the secondary
+ context.
+
+ test/smask-image-mask.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 373d6c76b65e826f81873b51461bdf3c30024c06
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:43:26 2008 +0100
+
+ [test/smask-fill] Propagate error status.
+
+ Use cairo_get_target() to propagate the error from the secondary context.
+
+ test/smask-fill.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+commit bb05beaab626d2fca6d219bfd8148dde71073b39
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 15:27:11 2008 +0100
+
+ [test/show-glyphs-many] Check for NO_MEMORY
+
+ As we do a manual status check, we need to perform a full check.
+
+ test/show-glyphs-many.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+commit c0a4ef76e17dfd43d248c13b7f0665da9b847316
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 14:57:42 2008 +0100
+
+ [test/composite-integer-translate-over-repeat] Propagate error.
+
+ Use cairo_get_target() to propagate any errors from the secondary context.
+
+ test/composite-integer-translate-over-repeat.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 4a9e0f0e5ba17a322bbf0f38b2fb418211571d48
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 16:50:32 2008 +0100
+
+ [test/mask] Propagate error from secondary context.
+
+ Use cairo_get_target() to infect the primary context with any errors
+ raised whilst drawing the mask.
+
+ test/mask.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit eaec1caa94ac871eb881ac354c4442ddd2a308ea
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 16:20:28 2008 +0100
+
+ [test/ft-text-*] Check for errors from fontconfig.
+
+ If a match cannot be found, or if any other error occured, then fontconfig
+ will return NULL. Check and propagate.
+
+ test/ft-text-antialias-none.c | 31 ++++++++++++++++++++++++++-----
+ test/ft-text-vertical-layout-type1.c | 31 ++++++++++++++++++++++++++-----
+ test/ft-text-vertical-layout-type3.c | 31 ++++++++++++++++++++++++++-----
+ 3 files changed, 78 insertions(+), 15 deletions(-)
+
+commit 336eddfdbb31865e3669ceb775089c63ce1db27f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 17:19:12 2008 +0100
+
+ [test/get-clip] Check the status on the secondary context.
+
+ As we solely use a secondary context, we must manually report NO_MEMORY
+ errors whilst running under memfault.
+
+ test/cairo-test.c | 14 +++++++-
+ test/cairo-test.h | 4 +++
+ test/get-clip.c | 98 ++++++++++++++++++++++++++++---------------------------
+ 3 files changed, 67 insertions(+), 49 deletions(-)
+
+commit d48f9340514c258cfece1b72d2f7e3f7b2d3c7b1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 14:05:14 2008 +0100
+
+ [test/clip-operator] Propagate error from secondary context.
+
+ Use the cairo_get_target() to propagate any errors from the secondary
+ context.
+
+ test/clip-operator.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit d11014386f739f43ec5f290714d7c51cc638f172
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 5 13:37:07 2007 +0100
+
+ Add support for lockdep.
+
+ lockdep is a valgrind skin which performs pthread locking correctness
+ validation. In particular it allows one to write assert(HOLDS_LOCK(mutex))
+ which both documents the preconditions for a function and enforces them
+ when the program is run under lockdep.
+
+ As an aide to lockdep (as it works by intercepting the pthread functions),
+ all the mutexes should be initialised and destroyed using
+ pthread_mutex_init() and pthread_mutex_destroy() rather than using static
+ initializers and no-ops.
+
+ src/cairo-mutex-impl-private.h | 14 ++++++++++++++
+ src/cairo-mutex-type-private.h | 6 +++++-
+ src/cairo-scaled-font.c | 13 +++++++++++++
+ 3 files changed, 32 insertions(+), 1 deletion(-)
+
+commit bccfdf7d93c2a92a342127fc212770f4053cb2cf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 13:47:27 2008 +0100
+
+ [test] Add support for memfault.
+
+ Add the core support to cairo-test for running the test-suite under a
+ malloc fault injector. This commit contains the adjustments to
+ cairo_test_run() to repeat the test if it detects a failure due to fault
+ injection and complains if it detects unreported faults or memory leaks.
+
+ build/configure.ac.analysis | 17 +++
+ test/cairo-test.c | 271 ++++++++++++++++++++++++++++++++++----------
+ test/cairo-test.h | 10 +-
+ 3 files changed, 239 insertions(+), 59 deletions(-)
+
+commit 974fabfe059f9744116d20fd9f8b59f1b8c34b70
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 17 18:52:51 2008 +0100
+
+ [ft] Add more comments about FT_Face lifetime issues.
+
+ Currently we only have an example of how to call FT_Done after the last
+ reference to the FT cairo_font_face_t has been dropped, but do not
+ actually explain why this needs to be done. So add a couple of sentences
+ to clarify the likely lifetime of the FT_Face once exposed to cairo.
+
+ src/cairo-ft-font.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit 5fcfc7ebc9a2d1d947898d269be7ba91d27c5261
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 17:13:45 2008 +0100
+
+ [test/README] Document all fonts used.
+
+ Do a little leg-work to answer a query in a bug report and document the
+ results.
+
+ test/README | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit c1164a574d3e2cc4746384875d5c2781114c0ea4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Oct 16 08:49:13 2008 +0100
+
+ [type1] Add comment to warn about read() as macro.
+
+ In case we are ever tempted to simplify the function pointer, warn that it
+ may alias with a macro.
+
+ src/cairo-type1-subset.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit ff9ee74b37a88cba2e996bf0cdae1af6b6c6fe30
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Thu Oct 16 17:29:33 2008 +1030
+
+ Revert unintended changes to test/fallback-resolution.c in the previous commit
+
+ test/fallback-resolution.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5911c6966de832fa350a6e9a4d587b7c3b3b4825
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Thu Oct 16 17:22:48 2008 +1030
+
+ Use correct inverse ctm for stroke in meta surface replay
+
+ This fixes #9189 Dashed strokes too long in fallback images
+
+ src/cairo-meta-surface.c | 2 +-
+ test/fallback-resolution.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 6afcd821182137e8c3f128f9600e97cff79978b8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 22:41:26 2008 +0100
+
+ [test] Add a spline test.
+
+ Test the decomposition of 5 different types of spline curve. Useful test
+ for future experiments in improving the decomposition algorithm.
+
+ Note: the vector targets all need separate reference images due to their
+ lack of support for cairo_set_tolerance(). Also GS strokes the Bezier
+ curve differently using offset curves and opposed to transcribing the
+ outline of a pen.
+
+ test/.gitignore | 1 +
+ test/Makefile.am | 7 +
+ test/spline-decomposition-pdf-ref.png | Bin 0 -> 20404 bytes
+ test/spline-decomposition-ps2-ref.png | Bin 0 -> 8957 bytes
+ test/spline-decomposition-ps3-ref.png | Bin 0 -> 8957 bytes
+ test/spline-decomposition-ref.png | Bin 0 -> 20402 bytes
+ test/spline-decomposition-svg11-ref.png | Bin 0 -> 20404 bytes
+ test/spline-decomposition-svg12-ref.png | Bin 0 -> 20404 bytes
+ test/spline-decomposition.c | 416 ++++++++++++++++++++++++++++++++
+ 9 files changed, 424 insertions(+)
+
+commit 91b0dc92c8ede189d942188f92068f189907e239
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 22:27:53 2008 +0100
+
+ [build] Add -fno-common.
+
+ Generate a warning if two files define a global variable with the same
+ name, instead of silently merging them to reference the same location.
+
+ build/configure.ac.warnings | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b94b600b34793cecd9a66d37dd34a6619738e2c2
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Oct 15 13:41:03 2008 -0400
+
+ [quartz] Completely remove CAIRO_HAS_QUARTZ_IMAGE_SURFACE check
+
+ Instead of fixing the check in d36b02dc662e623bee58a69c32b149a242cbf52b, just
+ remove it. Conditionally compilation will keep cairo-quartz-image-surface.c
+ from being compiled in when it is not configured to be. Suggested by Behdad.
+
+ src/cairo-quartz-image-surface.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+commit d36b02dc662e623bee58a69c32b149a242cbf52b
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Oct 15 12:45:11 2008 -0400
+
+ [quartz] Rebalance 'CAIRO_HAS_QUARTZ_IMAGE_SURFACE' #ifdef
+
+ Fixes compilation by re-adding '#ifdef CAIRO_HAS_QUARTZ_IMAGE_SURFACE' which
+ was, I assume, unintentionally removed by
+ 2cf4b3161c19b9b0349bd2aa94855fd0822968be.
+
+ src/cairo-quartz-image-surface.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 83162360a44c4d4701f0ade2e2ee813f79186439
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Wed Oct 15 10:34:12 2008 -0400
+
+ Fix quratz_image typo in Makefile.sources.
+
+ src/Makefile.sources | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 877e77fa3e85c09c29e64ca5ae7329346db029cc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 12:20:00 2008 +0100
+
+ [glitz] Disable caching of solid surfaces.
+
+ glitz currently has no mechanism to release resources upon connection
+ closure (ala XCloseDisplay) and so will attempt invalid accesses when
+ evicting old surfaces from the solid pattern cache.
+
+ src/cairo-glitz-surface.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit fc04a1e0dbc3cefa51c7602e0a23dba886813fe5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 12:13:40 2008 +0100
+
+ [boilerplate] Fixup compilation for gliitz.
+
+ Convert a few old references to cairo_boilerplate_surface_set_user_data.
+
+ boilerplate/cairo-boilerplate-glitz.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit e17f02add019d9acf461a1ad1245ba5be00cf336
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 10:52:33 2008 +0100
+
+ [type1] Protect against read macro
+
+ POSIX allows for any of its functions to be implemented as a macro,
+ inflicting damage upon innocent function pointers that happen to share
+ the same name.
+
+ face->stream->read() is one such example.
+
+ As it's outside of our control (being a FT_Face) we cannot simply rename
+ the data member, so we need to explicitly dereference it as a function
+ pointer in order to disambiguate it for the compiler.
+
+ src/cairo-type1-subset.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit bc872a5f5fb9b6318dc78d132da46a6b201f75c7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 10:21:05 2008 +0100
+
+ [xlib] Handle 4,20,24,28 depth XImages
+
+ Bug 9102 cairo doesn't support 24 bits per pixel mode on X11
+ (https://bugs.freedesktop.org/show_bug.cgi?id=9102)
+ is a reminder that that we need to support many obscure XImage formats.
+ With Carl's and Behdad's work to support psuedocolor we have a mechanism
+ in place to handle any format that is not natively handled by pixman. The
+ only piece we were missing was extending the swapper to handle all-known
+ formats and putting in defensive checks that pixels were correctly aligned
+ in accordance with pixman's requirements.
+
+ src/cairo-image-surface.c | 13 ++++-----
+ src/cairo-xlib-surface.c | 70 +++++++++++++++++++++++++++++++++++++++--------
+ src/cairoint.h | 2 +-
+ 3 files changed, 66 insertions(+), 19 deletions(-)
+
+commit 1728fa352011c570ce1bcc3bd14897e789c85252
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 15 09:23:01 2008 +0100
+
+ [svg] Add notes about why we shouldn't add DOCTYPE.
+
+ Emmanuel Pacaud did some research into adding DOCTYPE after we had a
+ complaint that our SVG output failed to be validated by batik. The
+ conclusion he came to was that the validation of SVG was incomplete and
+ misleading, i.e. our output might generate false negatives leading to more
+ confusion.
+
+ src/cairo-svg-surface.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+commit e9f5ee6efe7725c1e0e32fa9e85cca61ecb93440
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 14 14:42:48 2008 +0100
+
+ [doc] Fix a few gtk-doc errors.
+
+ gtk-doc insists on a non-empty long description, even for trivial
+ functions that are fully described by their input arguments and return
+ value. Grrr.
+
+ src/cairo-gstate.c | 4 ++++
+ src/cairo-os2-surface.c | 2 ++
+ src/cairo-scaled-font.c | 14 +++++++-------
+ src/cairo-surface.c | 4 +++-
+ src/cairo-unicode.c | 6 ++++--
+ 5 files changed, 20 insertions(+), 10 deletions(-)
+
+commit 595414bb787d570ac95fc91c58c370558e9d5a54
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 14 14:24:49 2008 +0100
+
+ [test/fallback-resolution] Extend to cover separate ppi x/y.
+
+ Adrian Johnson proposed a hack that fixed the current test by simply
+ scaling the dashed stroke by device_transform.xx. Obviously this exposes a
+ deficiency in the test case. So add an outer loop to iterate over several
+ common ppi for both x and y and in doing so reveal more ugly artifacts in
+ the current fallback code.
+
+ test/Makefile.am | 42 ++++-
+ ....png => fallback-resolution-ppi150x150-ref.png} | Bin
+ test/fallback-resolution-ppi150x300-ref.png | Bin 0 -> 6848 bytes
+ test/fallback-resolution-ppi150x37.5-ref.png | Bin 0 -> 13176 bytes
+ test/fallback-resolution-ppi150x600-ref.png | Bin 0 -> 6338 bytes
+ test/fallback-resolution-ppi150x72-ref.png | Bin 0 -> 8370 bytes
+ test/fallback-resolution-ppi150x75-ref.png | Bin 0 -> 10445 bytes
+ test/fallback-resolution-ppi300x150-ref.png | Bin 0 -> 6851 bytes
+ ....png => fallback-resolution-ppi300x300-ref.png} | Bin
+ test/fallback-resolution-ppi300x37.5-ref.png | Bin 0 -> 12870 bytes
+ test/fallback-resolution-ppi300x600-ref.png | Bin 0 -> 4848 bytes
+ test/fallback-resolution-ppi300x72-ref.png | Bin 0 -> 7053 bytes
+ test/fallback-resolution-ppi300x75-ref.png | Bin 0 -> 9617 bytes
+ test/fallback-resolution-ppi37.5x150-ref.png | Bin 0 -> 12728 bytes
+ test/fallback-resolution-ppi37.5x300-ref.png | Bin 0 -> 11981 bytes
+ ...ng => fallback-resolution-ppi37.5x37.5-ref.png} | Bin
+ test/fallback-resolution-ppi37.5x600-ref.png | Bin 0 -> 11654 bytes
+ test/fallback-resolution-ppi37.5x72-ref.png | Bin 0 -> 12990 bytes
+ test/fallback-resolution-ppi37.5x75-ref.png | Bin 0 -> 13787 bytes
+ test/fallback-resolution-ppi600x150-ref.png | Bin 0 -> 6096 bytes
+ test/fallback-resolution-ppi600x300-ref.png | Bin 0 -> 4812 bytes
+ test/fallback-resolution-ppi600x37.5-ref.png | Bin 0 -> 12401 bytes
+ ....png => fallback-resolution-ppi600x600-ref.png} | Bin
+ test/fallback-resolution-ppi600x72-ref.png | Bin 0 -> 6398 bytes
+ test/fallback-resolution-ppi600x75-ref.png | Bin 0 -> 8974 bytes
+ test/fallback-resolution-ppi72x150-ref.png | Bin 0 -> 8069 bytes
+ test/fallback-resolution-ppi72x300-ref.png | Bin 0 -> 6803 bytes
+ test/fallback-resolution-ppi72x37.5-ref.png | Bin 0 -> 13147 bytes
+ test/fallback-resolution-ppi72x600-ref.png | Bin 0 -> 6245 bytes
+ ...ef.png => fallback-resolution-ppi72x72-ref.png} | Bin
+ test/fallback-resolution-ppi72x75-ref.png | Bin 0 -> 10628 bytes
+ test/fallback-resolution-ppi75x150-ref.png | Bin 0 -> 9940 bytes
+ test/fallback-resolution-ppi75x300-ref.png | Bin 0 -> 9003 bytes
+ test/fallback-resolution-ppi75x37.5-ref.png | Bin 0 -> 14020 bytes
+ test/fallback-resolution-ppi75x600-ref.png | Bin 0 -> 8455 bytes
+ test/fallback-resolution-ppi75x72-ref.png | Bin 0 -> 10202 bytes
+ ...ef.png => fallback-resolution-ppi75x75-ref.png} | Bin
+ test/fallback-resolution.c | 199 +++++++++++----------
+ 38 files changed, 139 insertions(+), 102 deletions(-)
+
+commit 0d3e152d2fe28b22a27dd6b9f82e2047aea3be94
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 14 13:44:47 2008 +0100
+
+ [check-doc-syntax.sh] Allow quoting.
+
+ func_regexp was incorrectly complaining that cairo_pure was a function without
+ parenthesis. The simplest solution appeared to be allow quoting of
+ 'cairo_pure'.
+
+ src/cairo-compiler-private.h | 22 +++++++++++-----------
+ src/check-doc-syntax.sh | 6 +++---
+ 2 files changed, 14 insertions(+), 14 deletions(-)
+
+commit 02a7ca80f9f9b62deff6c8ba4dc58fee0cebcaa6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 14 11:08:43 2008 +0100
+
+ [pattern] Correctly optimize away fractional translations.
+
+ As is so often the case, reading the commit log gives you fresh insight in
+ the problem - often called confessional debugging...
+
+ We can simplify the problem by ignoring attr->[xy]_offset, for the time
+ being, and focus on computing the correct matrix. This is comparatively
+ simple as all we need to do is perform the appropriate rounding on the
+ translation vector.
+
+ src/cairo-pattern.c | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+commit 9886cb3353eb02ce5b99d555a35b13b8347f8e87
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 14 10:23:41 2008 +0100
+
+ [pattern] Only perform non-integer optimization for identity matrices.
+
+ A complication I realised after pushing 3eb4bc3 was handling larger
+ sampled areas. Extending the test case revealed that the optimization
+ was broken for anything but the identity transform (after removing the
+ translation). Correctness first, leaving the "pixel-exact" solution for
+ interested reader...
+
+ src/cairo-pattern.c | 16 ++++++----------
+ test/filter-nearest-transformed-pdf-ref.png | Bin 373 -> 548 bytes
+ test/filter-nearest-transformed-ref.png | Bin 151 -> 570 bytes
+ test/filter-nearest-transformed-svg11-ref.png | Bin 217 -> 559 bytes
+ test/filter-nearest-transformed-svg12-ref.png | Bin 217 -> 559 bytes
+ test/filter-nearest-transformed.c | 24 ++++++++++++++++++++++++
+ 6 files changed, 30 insertions(+), 10 deletions(-)
+
+commit 8dc3deecb8e0ca2f84d996096230f27ab4c24c18
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 14 08:17:23 2008 +0100
+
+ Add documentation for function attributes 'pure' and 'const'.
+
+ Carl suggested that cairo_pure and cairo_const are pretty opaque, even to
+ the developer who added them, so it is extremely important that they have
+ a good description so that they are used correctly and perhaps ported to
+ other compilers.
+
+ src/cairo-compiler-private.h | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+commit 6aa1143d5a8ec45fc793102a64e956d7d1c7ad01
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 13 23:49:17 2008 +0100
+
+ Update documentation to remove references to cairo_has_show_text_glyphs().
+
+ With the addition of cairo_show_text_glyphs() came a couple of functions
+ to query whether the target supported the extended attributes. However,
+ at Carl's request cairo_has_show_text_glyphs() was removed - but the
+ documentation was not updated to reflect that.
+
+ NEWS | 2 +-
+ src/cairo-surface.c | 3 ---
+ src/cairo.c | 6 +++---
+ 3 files changed, 4 insertions(+), 7 deletions(-)
+
+commit b2053945df35d4d7eea9fe3200e9c018705309d1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 13 23:39:47 2008 +0100
+
+ [scaled-font] Correct documentation for cairo_scaled_font_create().
+
+ Fix the documentation not to suggest that NULL is a legal value for
+ font_options (as we temporarily made it during the 1.[57] dev cycle).
+
+ src/cairo-scaled-font.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit 3eb4bc37577e905d93a1935e7a9cd33ae8dbda15
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 13 23:26:04 2008 +0100
+
+ [pattern] Optimize away fractional translation for NEAREST patterns.
+
+ As identified in bug 15479,
+ Unpredictable performance of cairo-xlib with non-integer translations of a
+ source surface pattern
+ (https://bugs.freedesktop.org/show_bug.cgi?id=15479),
+ source surfaces with a fractional translation hit slow paths for some
+ drivers, causing seemingly random performance variations. As a work-around
+ Owen Taylor proposed that cairo could convert non-integer translations on
+ NEAREST sources patterns to their integer equivalents.
+
+ The messy detail involved here is replicating the rounding mode used by
+ pixman for the sample offset, but otherwise the conversion is fairly
+ trivial.
+
+ src/cairo-pattern.c | 35 +++++++++
+ test/.gitignore | 1 +
+ test/Makefile.am | 5 ++
+ test/filter-nearest-transformed-pdf-ref.png | Bin 0 -> 373 bytes
+ test/filter-nearest-transformed-ref.png | Bin 0 -> 151 bytes
+ test/filter-nearest-transformed-svg11-ref.png | Bin 0 -> 217 bytes
+ test/filter-nearest-transformed-svg12-ref.png | Bin 0 -> 217 bytes
+ test/filter-nearest-transformed.c | 103 ++++++++++++++++++++++++++
+ 8 files changed, 144 insertions(+)
+
+commit ceab32e2c3d51c0dd29b105a5a390cdd8aa58f8f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 12 12:11:12 2008 +0100
+
+ [win32] win32 also uses font subsets.
+
+ Include win32 in the list of font subset users, fixes build when
+ cross-compiling.
+
+ src/cairoint.h | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 1d3453eee50e4343995c5d3f225d18289fbcebec
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 12 11:21:14 2008 +0100
+
+ [pattern] Rescale the linear pattern matrix to avoid overflow.
+
+ As proof-of-principle, compute a scale factor to avoid overflow when
+ converting a linear pattern to pixman_fixed_t. Fixes test/huge-pattern,
+ but the principle should be extended to handle more cases of overflow.
+
+ src/cairo-pattern.c | 48 +++++++++++++++++++++++++++++++-----
+ test/Makefile.am | 5 ++--
+ test/huge-pattern-pdf-ref.png | Bin 0 -> 2716 bytes
+ test/huge-pattern-pdf-rgb24-ref.png | Bin 0 -> 2817 bytes
+ test/huge-pattern-ps3-ref.png | Bin 0 -> 1786 bytes
+ 5 files changed, 45 insertions(+), 8 deletions(-)
+
+commit ab1d106cba7aa4abe5f7253c089aadd15e0bb06d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 11 19:52:28 2008 +0100
+
+ [xlib] Use the cached xrender formats.
+
+ Use the cached formats for consistency and simplify several double pointer
+ dereferences.
+
+ src/cairo-xlib-surface.c | 64 ++++++++++++++++++++++++++++++------------------
+ 1 file changed, 40 insertions(+), 24 deletions(-)
+
+commit 6736faba3ebe4eae4c1d2aeeb3153eb6f12a32de
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 11 18:10:16 2008 +0100
+
+ [test/any2ppm] Do not attempt to compile PS without spectre
+
+ Since CAN_TEST_PS_SURFACE does not currently require spectre, we were
+ attempting to compile in spectre support for any2ppm even on systems
+ without libspectre installed. Fix that by adding a separate flag for
+ CAIRO_HAS_SPECTRE.
+
+ configure.ac | 5 ++++-
+ test/Makefile.am | 2 +-
+ test/any2ppm.c | 28 ++++++++++++++++++++--------
+ 3 files changed, 25 insertions(+), 10 deletions(-)
+
+commit b35871116243724b59738fce00b512818c83ea17
+Author: Benjamin Otte <otte@gnome.org>
+Date: Sat Oct 11 00:18:11 2008 +0100
+
+ [test] Add huge pattern.
+
+ Add a test case to exercise range overflow during gradient construction.
+
+ test/.gitignore | 1 +
+ test/Makefile.am | 4 +++
+ test/huge-pattern-ref.png | Bin 0 -> 1619 bytes
+ test/huge-pattern.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 79 insertions(+)
+
+commit 77070270813d2ca40d422e5301f75222d19e1d8f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 10 22:24:01 2008 +0100
+
+ [test] Use _POSIX_C_SOURCE for flockfile.
+
+ From bug 18010 (https://bugs.freedesktop.org/show_bug.cgi?id=18010),
+ in order to make flockfile() available we need to set _POSIX_C_SOURCE and
+ according to the man page, the appropriate feature check is
+ _POSIX_THREAD_SAFE_FUNCTIONS.
+
+ test/cairo-test.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 34ff7e4ac42acfb2ab9921da21933113518bd8a0
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sat Oct 11 23:44:37 2008 +1030
+
+ Check that reads in truetype_reverse_cmap are within valid data
+
+ Bulia Byak reported a bug where cairo was crashing with a particular
+ font. The font had an incorrect entry in the cmap table that caused
+ cairo to read from outside of the buffer allocated for the cmap.
+
+ src/cairo-truetype-subset.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+commit a16ef6ead2b02120ca482aa3d2667e51b0c67e78
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 10 18:03:49 2008 +0100
+
+ [INSTALL] Mention pkg-config requirement
+
+ Mention that building the configure script requires at least version 0.16
+ of pkg-config.
+
+ See the old bug:
+ Bug 4702 PKG_PROG_PKG_CONFIG: command not found
+ (https://bugs.freedesktop.org/show_bug.cgi?id=4702)
+
+ INSTALL | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit eba9d87d541d89804f70e56874538a249de08502
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 10 16:51:07 2008 +0100
+
+ [image] Warn about a potential NULL return after finish().
+
+ Improve the wording as suggested by
+ https://bugs.freedesktop.org/show_bug.cgi?id=12659
+ to warn about the possibility of returning NULL even if the passed in
+ surface was an image surface.
+
+ src/cairo-image-surface.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit ac3e4b4bea574c94de77ec15878d116b619ee3f4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Oct 10 14:00:32 2008 +0100
+
+ [xlib] Disable XRender support if the surface has no xrender_format
+
+ Bug 11734:
+ XRender crashes due to NULL pointer from Cairo on SGI O2
+ (https://bugs.freedesktop.org/show_bug.cgi?id=1173)
+ is an example of a case where we try to perform an XRender operation on a
+ surface with a format that was not supported by the XRender extension. By
+ marking the extension version as -1 on those surfaces, the current checks
+ for SURFACE_RENDER_HAS_* always correctly return false and prevent us try
+ to create a Picture with a NULL xrender_format.
+
+ src/cairo-xlib-surface.c | 37 ++++++++++++++++++++++++-------------
+ 1 file changed, 24 insertions(+), 13 deletions(-)
+
+commit 8ac8e8c523abaa5db24c5303c671ff3487bf0801
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Sun Sep 21 14:29:30 2008 +0200
+
+ [test] Add ps2png check program using libspectre
+
+ Add a simple program to compliment pdf2png and svg2png.
+
+ configure.ac | 1 +
+ test/Makefile.am | 8 ++++
+ test/ps2png.c | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 122 insertions(+)
+
+commit 3e6afb353da1fee624b519f5a96b3303c7eb91ae
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Thu Oct 9 12:11:51 2008 +0100
+
+ [test/any2ppm] Enable PS conversion using libspectre.
+
+ Complete the vector trilogy using libspectre to provide a similar
+ interface (to poppler and librsvg) around GhostScript.
+
+ AUTHORS | 1 +
+ configure.ac | 20 ++++++++++++----
+ test/Makefile.am | 4 ++--
+ test/any2ppm.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 4 files changed, 90 insertions(+), 8 deletions(-)
+
+commit ddd1615a1777181c6e8db1dbafacb68535ed163a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 8 23:13:03 2008 +0100
+
+ [pattern] Remove incorrect assert.
+
+ It's possible to reach that point without setting the filter to NEAREST,
+ for example if using FAST or GAUSSIAN.
+
+ src/cairo-pattern.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit c647c0bbca8694a14f5f5807b8349f0b0bb4987d
+Author: Benjamin Otte <otte@gnome.org>
+Date: Thu Oct 9 13:21:27 2008 +0200
+
+ [TEST] make imagediff work again
+
+ It seems to have bitrotten
+
+ test/imagediff.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+commit f644d78dc138a7ba920a108dfb058e9f0fdb5302
+Author: Björn Lindqvist <bjourne@gmail.com>
+Date: Wed Oct 8 20:08:25 2008 +0100
+
+ [perf] Add composite performance test.
+
+ Add a new test case to Cairo for checking the performance of Cairo's
+ equivalent to GDK's gdk_pixbuf_composite_color() operation. That is an
+ operation that happens to be extremely useful when viewing or editing
+ transparent images so I think it is important that it is as fast as
+ possible.
+
+ AUTHORS | 1 +
+ perf/Makefile.am | 1 +
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/composite-checker.c | 108 +++++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 112 insertions(+)
+
+commit 96b083d3f0e47f919cb6d0f06735427eaea21565
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 8 18:53:46 2008 +0100
+
+ [test] Exercise degenerate dashes.
+
+ Add a test case to capture the current behaviour when a segment ends on
+ an off/on dash transition.
+
+ Originally filed as bug:
+ Miter artifacts for dashed strokes
+ https://bugs.freedesktop.org/show_bug.cgi?id=17973
+
+ test/.gitignore | 1 +
+ test/Makefile.am | 2 +
+ test/degenerate-dash-ref.png | Bin 0 -> 2005 bytes
+ test/degenerate-dash.c | 97 +++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 100 insertions(+)
+
+commit 6487a147a2129f588aae900b048b2a801ef95ec0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 8 15:26:03 2008 +0100
+
+ [cairo.h] Be defensive when checking for _MSC_VER
+
+ Since cairo.h is a public header file, we need to be careful so that it
+ can be compiled by random compilers and even users specifying "-Werror
+ -Wundef" (mentioning no names, Company). So replace the bare (and legal)
+ #if _MSC_VER
+ with
+ #if defined (_MSC_VER)
+ just in case.
+
+ src/cairo.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 59141e56a723f741c87e2eaa37bf96e243ac5728
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 8 13:50:28 2008 +0100
+
+ [win32] Restore fine-grained fallback support for printing.
+
+ Missed updating win32 when implementing the new paginated API to query
+ support for the fine-grained fallbacks.
+
+ (Thanks to Adrian for spotting this oversight.)
+
+ src/cairo-win32-printing-surface.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 565c02a37e2d140a20867081eea9bb5de9999b1c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 8 11:06:42 2008 +0100
+
+ [svg] Use finer-grained fallbacks for SVG 1.2
+
+ The use of fine-grained fallbacks requires the native support of the
+ SOURCE operator applied to an image on the target surface. SVG 1.2
+ introduces the "comp-op:src" mode fulfilling this criteria - so we can
+ enable fine-grained fallbacks for 1.2+.
+
+ Update test/fine-grained-fallbacks to exercise this pathway in SVG 1.2 -
+ as SVG natively supported all the current operations within that test.
+ This reveals yet another librsvg bug in handling SVG 1.2.
+
+ src/cairo-paginated-private.h | 9 ++-
+ src/cairo-paginated-surface.c | 47 +++++---------
+ src/cairo-pdf-surface.c | 14 ++++-
+ src/cairo-ps-surface.c | 8 +++
+ src/cairo-svg-surface.c | 34 +++++++---
+ test/Makefile.am | 4 +-
+ test/finer-grained-fallbacks-ps2-argb32-ref.png | Bin 1047 -> 0 bytes
+ test/finer-grained-fallbacks-ps2-ref.png | Bin 0 -> 1356 bytes
+ test/finer-grained-fallbacks-ps2-rgb24-ref.png | Bin 819 -> 1096 bytes
+ test/finer-grained-fallbacks-ps3-argb32-ref.png | Bin 1047 -> 0 bytes
+ test/finer-grained-fallbacks-ps3-ref.png | Bin 0 -> 1356 bytes
+ test/finer-grained-fallbacks-ps3-rgb24-ref.png | Bin 819 -> 1096 bytes
+ test/finer-grained-fallbacks-ref.png | Bin 796 -> 1111 bytes
+ test/finer-grained-fallbacks-rgb24-ref.png | Bin 590 -> 1114 bytes
+ test/finer-grained-fallbacks.c | 79 +++++++++++++++++++++++-
+ 15 files changed, 147 insertions(+), 48 deletions(-)
+
+commit 0c777a3e0de0d48289432a3d66be68f8779b08a0
+Author: Vladimir Vukicevic <vladimir@pobox.com>
+Date: Tue Oct 7 15:20:33 2008 -0700
+
+ [win32] Use wide-char versions of some API functions, for compat with Windows Mobile
+
+ src/cairo-win32-surface.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit cf572b58e1197dac0ff1795b27b142c3e044cf45
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 7 09:55:03 2008 +0100
+
+ [tessellator] Compile fixes for !HAVE_INT64_T
+
+ Fixup a couple of instances of implicit down-casting to 32bits from a
+ 64bit wide integer and add a new is_zero() predicate.
+
+ src/cairo-bentley-ottmann.c | 14 +++++++-------
+ src/cairo-wideint-private.h | 10 +++++++++-
+ 2 files changed, 16 insertions(+), 8 deletions(-)
+
+commit 6b8c0559620ab23c4df1f381d2e95ffc307d2e2f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 7 09:43:45 2008 +0100
+
+ [tessellator] Avoid implicit promotion to 64bit integer.
+
+ Avoid passing a 32bit integer as a cairo_int64_t in case we do not have a
+ 64bit native integral type. As a side-effect this means we can also use a
+ narrower multiply.
+
+ src/cairo-bentley-ottmann.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+commit eaa4bd13926728e9da97a23df8a465ef2296049a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 7 21:09:16 2008 +0100
+
+ [pattern] After cloning adjust [xy]_offset if possible.
+
+ For the simple case where the pattern matrix only contains an integer
+ translation then care is taken to convert that to a identity source matrix
+ with the translation applied to the [xy]_offsets. 5b97ee6525 broke this
+ guarantee by applying the clone offsets to the source matrix. So when the
+ source matrix is identity we can simply adjust the [xy]_offsets and
+ preserve the identity matrix. (This idea can be extended further by
+ removing any integer translation from the source matrix and storing it in
+ the [xy]_offsets as a means to extend the limited precision in
+ pixman_matrix_t - encountered when downscaling large images offset onto
+ the target surface.)
+
+ src/cairo-pattern.c | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+commit 552cc09e6be2b704dc32f986c84640d50316c25c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 7 21:05:57 2008 +0100
+
+ [xlib] Check integer translation for XCopyArea.
+
+ A precondition for using the core XCopyArea protocol is that the source
+ attributes contain only integer translations. However, we failed to apply
+ any integer translations from the source matrix to the XCopyArea offsets.
+ This worked prior to 5b97ee6525 as
+ _cairo_pattern_acquire_surface_for_surface() was careful to only generate
+ an identity matrix if the pattern matrix only contained an integer
+ translation (and thus we would use XCopyArea in the xlib backend).
+
+ src/cairo-xlib-surface.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+commit 308485a3fc70bc4455a01990443c1f954b8a66f8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Oct 7 20:19:10 2008 +0100
+
+ [test] Add a test for a reported regression by Michael Natterer.
+
+ mitch reported on irc that expose events in the gimp were suffering from
+ artifacts which he tracked down to a bug with clipping and source
+ surfaces. This is the cairo test case for that regression.
+
+ test/.gitignore | 1 +
+ test/Makefile.am | 2 ++
+ test/clipped-surface-ref.png | Bin 0 -> 401 bytes
+ test/clipped-surface.c | 70 +++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 73 insertions(+)
+
+commit 28a3b546b91290f3377777adedcf7ab71e599188
+Author: Vladimir Vukicevic <vladimir@pobox.com>
+Date: Tue Oct 7 10:25:46 2008 -0700
+
+ [win32] create_similar should fall back to DIBs if DDB creation fail
+
+ src/cairo-win32-surface.c | 43 +++++++++++++++++--------------------------
+ 1 file changed, 17 insertions(+), 26 deletions(-)
+
+commit 4ae37a97b3e415591caa611533f44db5a29cfb72
+Author: Vladimir Vukicevic <vladimir@pobox.com>
+Date: Tue Oct 7 10:18:41 2008 -0700
+
+ [quartz] initialize do_reflect field correctly for pattern draws
+
+ src/cairo-quartz-surface.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit 8cf399b944294645833088ee2ac1313093948b66
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 6 18:59:15 2008 +0100
+
+ [test] Add a test to exercise the internal twin font
+
+ Although Behdad promises that the rendering is subject to improvement,
+ introduce a test to check consistency across platforms and update as
+ required.
+
+ test/.gitignore | 1 +
+ test/Makefile.am | 4 ++++
+ test/twin-ps2-ref.png | Bin 0 -> 1167 bytes
+ test/twin-ps3-ref.png | Bin 0 -> 1167 bytes
+ test/twin-ref.png | Bin 0 -> 1836 bytes
+ test/twin.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 6 files changed, 65 insertions(+)
+
+commit 1f813ff04022a36a91bf9d1b0f7f2ae1c63b399f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 6 17:55:37 2008 +0100
+
+ [array] Silence gtk-doc complaints.
+
+ gtk-doc fails make check for array as it insists that even the simplest
+ functions must have a long description and cannot be entirely described by
+ their arguments and return value.
+
+ src/cairo-array.c | 26 ++++++++++++++++++++------
+ 1 file changed, 20 insertions(+), 6 deletions(-)
+
+commit 7cb9ccb4cb2106bb59e181ee284f8dcc5504eb7a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 6 17:44:03 2008 +0100
+
+ Fixup a couple of trivials doc warnings.
+
+ Correct the 'Returns' statement to match what gtk-doc expects.
+
+ src/cairo-cache.c | 3 +--
+ src/cairo-pattern.c | 5 ++---
+ 2 files changed, 3 insertions(+), 5 deletions(-)
+
+commit d6f0351b6cbb0d542a069eb5d0a7377eb85a6e4e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 6 17:17:04 2008 +0100
+
+ [skiplist] Avoid repeated calls to compare on the same element when inserting.
+
+ During insertion we must traverse the skiplist in order to find the
+ insertion point for the new element. As we descend each level, the next
+ element in the chain for this level is sometimes the same as the one we
+ just compared against (and know that the new element is greater than).
+ Hence we can skip the search on that level and descend to the next. During
+ world_map this reduces the number of calls into _sweep_line_elt_compare()
+ by ~2.5% (and when performing trapezoidation on strokes gives a similar
+ speed up of about 2% - not bad for the addition of a single line.)
+
+ src/cairo-skiplist.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+commit 1440399625ae0579d0748475fc924cfe74339a21
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 6 16:15:29 2008 +0100
+
+ [hull] Replace open-coding of 64bit arithmetic.
+
+ Use primitives from cairo-wideint-private.h - in this case it helps to
+ make the code more readable as well as reduce dependence on native 64bit
+ integers.
+
+ src/cairo-hull.c | 31 +++++++++++++++++++------------
+ 1 file changed, 19 insertions(+), 12 deletions(-)
+
+commit c6a6bf580fa7036e4c28137f8c038beb5c347244
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 6 16:13:21 2008 +0100
+
+ [slope] Replace open-coding 64bit integer arithmetic.
+
+ Prefer to use the operations form cairo-wideint-private.h in order to
+ improve readability and reduce our assumptions on the availability of
+ 64bit integers.
+
+ src/cairo-slope.c | 14 ++++++--------
+ 1 file changed, 6 insertions(+), 8 deletions(-)
+
+commit 5e3fcb7934f568bb7e304a1c434a9370b693df17
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Oct 6 17:02:54 2008 +0100
+
+ [wideint] Declare the wideint arithmetic functions as const.
+
+ 'const' is a stricter form of 'pure' in that functions declared with that
+ attribute do not access any values other than their arguments (in
+ contrast to 'pure' which is allowed to read from global memory).
+
+ src/cairo-compiler-private.h | 2 ++
+ src/cairo-wideint-private.h | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+commit 9430bf57ebc86c79e28128e54aeb5a194c9cad03
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Oct 6 14:00:37 2008 -0700
+
+ Fix scrambled version number in generated documentation.
+
+ In the cairo 1.8.0 release the documentation would get generated with
+ the second and third version components transposed, (so it would say
+ 1.0.8). Fix the obviously mistaken transposition.
+
+ doc/public/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5beae8f530fe7056fa965cb5ca7b345a667e8122
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 6 12:43:42 2008 -0400
+
+ [Makefile.am.releasing] Make 'make snapshot' print a banner when done
+
+ Copied from "make distcheck" implementation. Prints something like:
+
+ =============================================================
+ cairo-1.8.1-20081006-38de89 archives ready for distribution:
+ cairo-1.8.1-20081006-38de89.tar.gz
+ =============================================================
+
+ build/Makefile.am.releasing | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+commit 38de895d3863bd2e6fe921ad6cc6eeff15102701
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 6 12:11:18 2008 -0400
+
+ [RELEASING] Fix sample distcheck output to reflect current versioning
+
+ RELEASING | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit f8018cf193823356270c8e7f21f3108fbe44679c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 6 11:45:08 2008 -0400
+
+ [boilerplate] Fix "make dist"
+
+ The cairo-boilerplate-ps/pdf/svg.h files where removed in commit
+ 9841d9d58ea286f798626d325d50a85bf3f02c8f but the Makefile.sources
+ listing was not updated.
+
+ boilerplate/Makefile.sources | 3 ---
+ 1 file changed, 3 deletions(-)
+
+commit 6578ac148ecdd236b0860923e5dee87291c9966c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 6 11:39:47 2008 -0400
+
+ [twin-font] Make the stroke lighter
+
+ I'm still to fine-tune the font and add hinting and bold/oblique support.
+ In the mean time though, a lighter stroke produces much nicer glyphs.
+
+ src/cairo-font-face-twin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2fb7753903daf5c207b22034682a250161af22ad
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 6 11:39:00 2008 -0400
+
+ [Makefile.am.releasing] Exclude uid/gid from tarball
+
+ By setting GNU tar options --owner=0 --group=0
+
+ build/Makefile.am.releasing | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 589564c3b02d5b0505806924bd051323717791a3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Oct 4 01:36:07 2008 -0400
+
+ [user-font] Fix comment re backend interface
+
+ src/cairo-user-font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c98c1cb5325bbc05c88ea350ff99d6eaf56fd339
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 5 10:39:10 2008 +0100
+
+ [wideint] Mark functions as pure
+
+ Take advantage of the gcc function attribute 'pure', which tells gcc that
+ the function result only depends upon its arguments and it has zero side
+ effects (e.g. it does not clobber memory). This gives gcc greater
+ opportunity to rearrange and optimize the wideint arithmetic.
+
+ src/cairo-compiler-private.h | 6 ++++++
+ src/cairo-wideint-private.h | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+commit 76dd4603d01068b1b377312ced6b44fe5419794f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Oct 5 10:15:49 2008 +0100
+
+ [tessellator] Replace open-coding _cairo_int64_cmp().
+
+ We often use the construct:
+ if (_cairo_int64_lt (A, B)
+ return -1;
+ if (_cairo_int64_gt (A, B)
+ return 1;
+ return 0;
+ to compare two large integers (int64, or int128) which does twice the
+ required work on CPUs without large integer support. So replace it with a
+ single wideint function _cairo_int64_cmp() and therefore allow
+ opportunities to both shrink the code size and write a more efficient
+ comparison. (The primarily motivation is to simply replace each block with
+ a single more expressive line.)
+
+ src/cairo-bentley-ottmann.c | 19 +++---------------
+ src/cairo-wideint-private.h | 10 +++++++++-
+ src/cairo-wideint.c | 48 +++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 60 insertions(+), 17 deletions(-)
+
+commit 6eead4a5f746e182eabfcda9959cd9cc53d95a89
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 4 12:39:21 2008 +0100
+
+ [stroke] Simplify dash-off logic.
+
+ Remove a redundant level of if-else branching (and remove a duplicate
+ code) block by testing dash_on first.
+
+ src/cairo-path-stroke.c | 65 +++++++++++++++++++++----------------------------
+ 1 file changed, 28 insertions(+), 37 deletions(-)
+
+commit 4aa0991a11f03a47735dcfafe43d9505b939554e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 4 20:22:18 2008 +0100
+
+ [test] Mark fallback-resolution as XFAIL.
+
+ There appears to be no simple solution here, as it seems to be a
+ fundamental flaw in the design of the meta-surface wrt to replaying into
+ a fallback image. (I may be wrong, but if Carl found no easy solution then
+ I feel no shame for my own failure ;-)
+
+ test/Makefile.am | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+commit ae87382a84770f8656c369d258f705b8ac20049c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Oct 4 10:54:25 2008 +0100
+
+ [tessellator] Special case edge comparisons when on either end-point.
+
+ If the sweep-line is currently on an end-point of a line,
+ then we know its precise x value and can use a cheaper comparator.
+ Considering that we often need to compare events at end-points (for
+ instance on a start event), this happens frequently enough to warrant
+ special casing.
+
+ src/cairo-bentley-ottmann.c | 100 ++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 96 insertions(+), 4 deletions(-)
+
+commit ab23c2995356821537b9a0facdff87c339a05d2a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 1 12:18:16 2008 +0100
+
+ [tessellator] Direct comparison of result in edges_compare_x_for_y.
+
+ We need to compare the x-coordinate of a line at a for a particular y,
+ without loss of precision.
+
+ The x-coordinate along an edge for a given y is:
+ X = A_x + (Y - A_y) * A_dx / A_dy
+
+ So the inequality we wish to test is:
+ A_x + (Y - A_y) * A_dx / A_dy -?- B_x + (Y - B_y) * B_dx / B_dy,
+ where -?- is our inequality operator.
+
+ By construction we know that A_dy and B_dy (and (Y - A_y), (Y - B_y)) are
+ all positive, so we can rearrange it thus without causing a sign
+ change:
+ A_dy * B_dy * (A_x - B_x) -?- (Y - B_y) * B_dx * A_dy
+ - (Y - A_y) * A_dx * B_dy
+
+ Given the assumption that all the deltas fit within 32 bits, we can compute
+ this comparison directly using 128 bit arithmetic.
+
+ src/cairo-bentley-ottmann.c | 97 +++++++++++++++++++++++++--------------------
+ src/cairo-wideint-private.h | 1 +
+ 2 files changed, 56 insertions(+), 42 deletions(-)
+
+commit 7db03ac68cd556c903c07a2e2f8b75ec51263d12
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 1 12:34:36 2008 +0100
+
+ [tessellator] Use abort() instead of exit().
+
+ More friendly when debugging, as the debug will (by default) catch the
+ SIGTRAP and break at the offending test.
+
+ src/cairo-bentley-ottmann.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 59e569576d00e9c1cb66a77cf447c3cc3fb038e7
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 19:04:39 2008 +0100
+
+ [traps] Discard trivially empty trapezoid.
+
+ The convex_quad tessellator (and possibly even the more general polygon
+ tessellator) will generate empty trapezoids when given a
+ rectangle which can be trivially discarded before inserting into traps.
+
+ src/cairo-traps.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 7a2329e9c8afbfecb88c6c50bd63aa03ea7f9f81
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 1 09:49:45 2008 +0100
+
+ [traps] Reset extents on clearing.
+
+ When clearing the array of current trapezoids, reset the extents to
+ infinite so that they are properly recomputed.
+
+ src/cairo-traps.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 8ec24a443d45b012df9b1a14b00a0b5b1c43e2ea
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Sep 30 23:19:01 2008 +0100
+
+ [xlib] Share the common conditions for starting a new xGlyphElt using a macro.
+
+ Move the predicate for starting a new glyph elt into a macro so that it
+ can be shared between _cairo_xlib_surface_emit_glyphs() and
+ _emit_glyph_chunks() without code duplication.
+
+ src/cairo-xlib-surface.c | 39 ++++++++++++++++++++++-----------------
+ 1 file changed, 22 insertions(+), 17 deletions(-)
+
+commit a593338b2c2cdaff808947436f8fb9a52d74c695
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 1 16:24:33 2008 +0100
+
+ [xcb] Return false from _cairo_xcb_surface_is_similar().
+
+ _cairo_xcb_surface_is_similar() is currently only used by the pattern
+ cache to determine whether to keep the surface in the solid color cache.
+ This is fundamentally broken without hooking into Display closure as it
+ keeps a reference to an expired picture. So in order to prevent spurious
+ application crashes, disable the caching for xcb.
+
+ src/cairo-xcb-surface.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit 65f1575f6b2392d59410f40281a52654053bd2a8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Oct 1 16:16:45 2008 +0100
+
+ [xcb] Compile fix.
+
+ Must compile xcb more often. Especially after copying code over from xlib.
+
+ src/cairo-xcb-surface.c | 41 ++++++++++++++++++++++++-----------------
+ 1 file changed, 24 insertions(+), 17 deletions(-)
+
+commit e76432f7544d5b3b9157f09e18acc167d9ee90a3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Oct 4 00:35:43 2008 -0400
+
+ [win32] Use -MDd and -LDd instead of -MD and -LD for debug build
+
+ As reported by Damian Frank:
+
+ "I ran into a hitch with the Makefile.win32 infrastructure. It uses -MD and
+ -LD when linking regardless of the config, but it should be using -MDd and
+ -LDd for the debug config. I believe both the Makefile.win32.common and
+ src/Makefile.win32 files include erroneous declarations. This produces
+ warnings at link time about a mismatch when linking against properly created
+ debug libs (for instance, I had a zlib built as "LIB ASM Debug" that linked
+ properly against the debug runtime).
+
+ This problem applies to pixman too; can you pass this along to the
+ maintainer?"
+
+ Would be delighted to if someone commits a fix to pixman reading this
+ commit message.
+
+ build/Makefile.win32.common | 8 ++++++--
+ src/Makefile.win32 | 2 +-
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+commit 8ea9cb187a198c64bfb79af8001d95eab29715b4
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Oct 1 14:12:18 2008 -0700
+
+ Use symbolic constants for Render repeat modes.
+
+ Names like RepeatNone and RepeatNormal are much easier to
+ read and understand than bare 0 and 1.
+
+ src/cairo-xlib-surface.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 2c58a2c3851afac0386fcf0bf8504a937231185c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Sep 30 17:55:01 2008 -0400
+
+ [xlib] Start a new glyph element every 128 glyphs
+
+ Xrender has limits at 252 glyphs. We play safe and fast and limit
+ elements to 128 glyphs. That's plenty, no measurable performance
+ hit expected.
+
+ src/cairo-xlib-surface.c | 26 ++++++++++++++++++++++----
+ 1 file changed, 22 insertions(+), 4 deletions(-)
+
+commit fd7e09c7e66876b8492424e1c7d1260c12cc17f3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Sep 30 17:46:06 2008 -0400
+
+ [xlib] Allow room for glyph element padding
+
+ Xrender pads glyph elements to 4byte boundaries. We didn't consider
+ that in our request size calculations. We do now.
+
+ src/cairo-xlib-surface.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit c01fb77abbaf28c03aa6a21ebb997638dbdf950b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Sep 30 17:41:51 2008 -0400
+
+ [xlib] s/_cairo_xlib_surface_emit_glyphs_chunk/_emit_glyphs_chunk/
+
+ For readability's sake.
+
+ src/cairo-xlib-surface.c | 34 +++++++++++++++++-----------------
+ 1 file changed, 17 insertions(+), 17 deletions(-)
+
+commit c2ba25df1aec1cebfc4ce85e06a4187950675820
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Sep 30 17:40:56 2008 -0400
+
+ [xlib] Add comment about glyph chunk invariant
+
+ src/cairo-xlib-surface.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit e983458e1fba15153815430c83619da53929139d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Sep 30 17:26:46 2008 -0400
+
+ Revert "[xlib] Correct calculation of XRenderComposite* request size."
+
+ This reverts commit 0eb0c26474a19477554bfd580aa5f8ae77c29779.
+ The change was too drastic and overlooked some subleties of the old
+ code, but the main reason for the revert is that it introduced an
+ ugly duplicated glyph flush block. I'm working on a more incremental
+ fix.
+
+ src/cairo-xlib-surface.c | 123 +++++++++++++++++------------------------------
+ 1 file changed, 45 insertions(+), 78 deletions(-)
+
+commit 32a158528884562f4b22a81da3fa352ee1061835
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Sep 30 15:20:36 2008 -0400
+
+ [configure.ac] Require autoconf >= 2.59 and automake >= 1.9.6
+
+ These are the versions available on RHEL5 (two years old now), and
+ we know cairo works with them. There's evidence that our build system
+ does not work with older automake, and we've been requiring autoconf 2.58
+ but no one ever tested 2.58 with the new build system. It's very likely
+ that 2.58 doesn't work and needs some macro backporting. In any case,
+ no one reported that they have 2.58 when I asked on the list.
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 0eb0c26474a19477554bfd580aa5f8ae77c29779
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Sep 30 13:33:25 2008 +0100
+
+ [xlib] Correct calculation of XRenderComposite* request size.
+
+ show-glyphs-many is triggering an assertion failure within xlib. The cause
+ appears to be that we are submitting an overlong request.
+
+ Reviewing the code and comparing with libXrender/src/Glyph.c I found two
+ points to address.
+
+ 1. When encountering the first 2-byte, or 4-byte glyph and thus triggering
+ the recalculation of the current request_size, we did not check that there
+ was enough room for the expanded request. In case there is not, we need to
+ emit the current request (before expansion) and reset.
+
+ 2. Subtleties in how XRenderCompositeText* constructs the binary protocol
+ buffer require that xGlyphElts are aligned to 32-bit boundaries and that
+ it inserts an additional xGlyphElt every 252 glyphs when width==1 or
+ every 254 glyphs for width==2 || width==4. Thus we need to explicitly
+ compute how many bytes would be required to add this glyph in accordance
+ with the above.
+
+ Considering the complexity (and apparent fragility since we require tight
+ coupling to XRender) of the code, I'm sure there are more bugs to be
+ found.
+
+ src/cairo-xlib-surface.c | 123 ++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 78 insertions(+), 45 deletions(-)
+
+commit 02a56a4c84cd07a2c33134974680bad7f17f733d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Sep 30 15:08:54 2008 +0100
+
+ [test/show-glyphs-many] Exercise xlib boundary conditions.
+
+ Within _cairo_xlib_surface_emit_glyphs() there are a number of
+ complications to do with packing as many glyphs as possible into a
+ single XRenderCompositeGlyph*() call. Essentially these consist of
+ choosing the right function and packing for the current glyphs, describing
+ runs of glyphs and ensuring that we do not exceed the maximum request size
+ within a single call. So we add to the test case we an attempt to show 64k
+ 2-byte glyphs and an attempt to mix 64k 1-byte and 2-byte glyphs, with the
+ change-over point chosen to overflow the maximum request size, should
+ _cairo_xlib_surface_emit_glyphs() naively resize the current request.
+
+ test/show-glyphs-many.c | 83 ++++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 64 insertions(+), 19 deletions(-)
+
+commit 2a347a92b0a27a42840f9538cb98f792be12b277
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Sep 30 13:29:35 2008 +0100
+
+ [test/show-glyphs-many] Re-enable test to trigger crash in xlib.
+
+ Moral of this story is bugs cluster. If we made a mistake, especially in a
+ complicated bit of code that is interfacing with another library, then we
+ are likely to make a similar mistake in future. Disabling this test hid a
+ regression between 1.4 and 1.6.
+
+ test/Makefile.am | 15 +--------------
+ test/show-glyphs-many.c | 9 +++++++++
+ 2 files changed, 10 insertions(+), 14 deletions(-)
+
+commit fade54e71a48919cc3e8311e202960c66eab74bf
+Author: Torsten Schönfeld <kaffeetisch@gmx.de>
+Date: Tue Sep 30 11:47:53 2008 +0100
+
+ [doc] Add links to solid pattern constructors.
+
+ Add links for the solid pattern constructors to the language bindings
+ guidelines in line with the other pattern types.
+
+ doc/public/language-bindings.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit d9f50d7841fa0216df157ba632483c8b27c50119
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Sep 30 11:03:29 2008 +0100
+
+ [test/filter-nearest-offset] Remove XFAIL status
+
+ I swear that when I said that it was a rounding error, I was looking at an
+ image where the squares were overlapping the lines and had a listing of
+ all the coordinates used. However, the current output on all the machines
+ I have to hand is correct so I believe the underlying bug to be fixed.
+
+ Update the reference images for the external renderers because (a) GS
+ exhibits the same bug cairo had and (b) librvsg/PDF do not use NEAREST
+ when applying surface patterns, so the squares are blurred as a result.
+
+ test/Makefile.am | 8 +++++---
+ test/filter-nearest-offset-pdf-ref.png | Bin 0 -> 4537 bytes
+ test/filter-nearest-offset-ps2-ref.png | Bin 0 -> 255 bytes
+ test/filter-nearest-offset-ps3-ref.png | Bin 0 -> 255 bytes
+ test/filter-nearest-offset-svg11-ref.png | Bin 0 -> 4739 bytes
+ test/filter-nearest-offset-svg12-ref.png | Bin 0 -> 4739 bytes
+ test/filter-nearest-offset.c | 3 +--
+ 7 files changed, 6 insertions(+), 5 deletions(-)
+
+commit 7d5e6a18d5e72366e19cb806cbdad5ed180b53da
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Sep 30 10:04:12 2008 +0100
+
+ [test/filter-nearest-offset] Paint a grey background
+
+ Avoid requiring (an absent!) rgb24 ref image by using an opaque grey
+ background. Confirm the reference image is identical to the old one
+ (modulo the background change) using GIMP.
+
+ test/filter-nearest-offset-ref.png | Bin 254 -> 248 bytes
+ test/filter-nearest-offset.c | 6 ++++++
+ 2 files changed, 6 insertions(+)
+
+commit 35be08715595aa0bda48ce0b3cb11711eee55c64
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Sep 30 10:54:45 2008 +0100
+
+ [Makefile.am] Only rerun headers-standalone if a header file has changed
+
+ Use a stamp to mark the time that the headers were last checked and only
+ rerun the test if any have been modified since.
+
+ src/.gitignore | 1 +
+ src/Makefile.am.analysis | 4 +++-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+commit 6da8d8ea62399d94281a2a262a630ef113062d0c
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 17:56:34 2008 +0100
+
+ [pattern] Fix up OBO introduced to cloned area
+
+ In the midst of porting 5eec3e378afd6ff9991cea8e42b8478eb3e79773 I failed
+ to include the pad in the floor() and ceil() which introduces two
+ potential off-by-one errors into each dimension of the region of interest
+ of the source surface.
+
+ src/cairo-pattern.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit e3f9e40df74b0334c2b544790fd3485ba527bd55
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Sep 29 11:49:04 2008 -0400
+
+ Fix residues of the Makefile.*.config Makefile.*.features renaming
+
+ They just don't seem to want to die...
+
+ boilerplate/Makefile.win32 | 2 +-
+ src/Makefile.sources | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit d703f964aa7d1d4c8ec0b8a5dee437c222ce8629
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 16:37:35 2008 +0100
+
+ Clean up compile warnings.
+
+ A couple of unchecked status returns (which should always be
+ CAIRO_STATUS_SUCCESS) and an unused variable.
+
+ src/cairo-surface.c | 8 ++++++--
+ src/cairo-svg-surface.c | 1 -
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+commit 1310df44edcf0b9fee648c8f8688d4a1177cde68
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Sep 29 11:34:19 2008 -0400
+
+ [text_to_glyphs] Further enhance the docs
+
+ The most complex public cairo API deserves more doc love...
+
+ src/cairo-scaled-font.c | 8 +++++---
+ src/cairo-user-font.c | 5 +++++
+ src/cairo.h | 2 +-
+ 3 files changed, 11 insertions(+), 4 deletions(-)
+
+commit 41c66a9dfa9f4e7b9839db9dc362f5fa48797561
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 15:28:28 2008 +0100
+
+ [test/xlib-surface-source] Fix ill-timed XCloseDisplay
+
+ Sigh - finding a crasher in xlib seemed too good to be true. And it was.
+ The bug is due to the coupling of the XCloseDisplay with the user_data on
+ the source surface.
+
+ This was an externally trigger XCloseDisplay whilst the user had live
+ surfaces, so I consider this a gross application bug and therefore does
+ not require graceful handling within cairo-xlib. However, I'm willing to
+ listen to reason...
+
+ test/surface-source.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 63ee963c63a73cf6d9272e15a7d8f7b63f12e77b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 15:09:23 2008 +0100
+
+ [user-font] Rewrite text_to_glyphs allocation instructions.
+
+ Resolve the seemingly conflicting two paragraphs that instruct the writer
+ of a user-font on when to allocate the glyphs array during text_to_glyphs,
+ so that it is consistent with itself and the code. In particular, I could
+ find no indication in the code that num_glyphs is preset to -1 (it should
+ be a user parameter reflecting the number of entries in the supplied glyph
+ buffer) and the callback must allocate the array using
+ cairo_glyph_allocate().
+
+ src/cairo.h | 33 ++++++++++++++-------------------
+ 1 file changed, 14 insertions(+), 19 deletions(-)
+
+commit c23dbc4c616aed05dfe71901ce7ac0cadcbfb13d
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 13:54:12 2008 +0100
+
+ [test/surface-source] Modify to trigger a crash.
+
+ Whilst investigating:
+ Bug 7360 painting huge surfaces fails
+ https://bugs.freedesktop.org/show_bug.cgi?id=7360
+ I found a particular combination of operations that cause a crash within
+ xlib, so I'm committing the test for posterity.
+
+ test/surface-source.c | 50 ++++++++++++++++++++++++++++++++++++++------------
+ 1 file changed, 38 insertions(+), 12 deletions(-)
+
+commit 3b33d49d37a5751e7848516c468b323e19c34bea
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 08:14:24 2008 +0100
+
+ [test/filter-bilinear-extents] Remove XFAIL.
+
+ With the reintroduction of Carl Worth's and Owen Taylor's work to expand
+ pattern extents as necessary to include extra samples due to the filter
+ radius, we expect filter-bilinear-extents to PASS. This patch series is
+ important as it factors out our assumptions about filter radius into a
+ single function and cleans up the code in its wake.
+
+ However, since the external PS/PDF renderers do not necessarily use the same
+ filter as cairo (and currently they only use NEAREST due to lack of
+ /Interpolate emission in those backends) we can expect differences in test
+ output. So add the respective reference images to capture current
+ expectations and to highlight future changes.
+
+ Fixes bugs:
+ Bug 15349 - bad clipping with EXTEND_NONE
+ [https://bugs.freedesktop.org/show_bug.cgi?id=15349],
+ Bug 15367 -Improve filtering handling in cairo-pattern.c
+ [https://bugs.freedesktop.org/show_bug.cgi?id=15367]
+
+ test/Makefile.am | 35 ++++++++++++++++++++++++++++++-
+ test/filter-bilinear-extents-pdf-ref.png | Bin 0 -> 798 bytes
+ test/filter-bilinear-extents-ps2-ref.png | Bin 0 -> 173 bytes
+ test/filter-bilinear-extents-ps3-ref.png | Bin 0 -> 173 bytes
+ 4 files changed, 34 insertions(+), 1 deletion(-)
+
+commit 5eec3e378afd6ff9991cea8e42b8478eb3e79773
+Author: Owen W. Taylor <otaylor@fishsoup.net>
+Date: Mon Sep 29 00:53:59 2008 +0100
+
+ [pattern] Improve handling of filter radius and optimize when possible.
+
+ Factor out common filter analysis code from _cairo_pattern_get_extents()
+ so that we can share it with _cairo_pattern_acquire_surface_for_surface()
+ as well. During the analysis of the filter determine whether the pattern
+ matrix maps source pixels exactly onto destination pixels and if so convert
+ the filter to NEAREST - generalising the existing conversion to NEAREST.
+
+ (Patch ported to master by Chris Wilson, all bugs are his.)
+
+ src/cairo-matrix.c | 29 ++++++++++++++
+ src/cairo-pattern.c | 113 ++++++++++++++++++++++++++++++++++++----------------
+ src/cairoint.h | 3 ++
+ 3 files changed, 110 insertions(+), 35 deletions(-)
+
+commit 7d7057cf8896a3558fadc35d160d3bc667972800
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Apr 4 19:00:28 2008 -0700
+
+ _cairo_pattern_get_extents: Fix to allow for expansion based on filter
+
+ This fixes the filter-bilinear-extents test case and the
+ related bug entry:
+
+ bad clipping with EXTEND_NONE
+ http://bugs.freedesktop.org/show_bug.cgi?id=15349
+
+ Though there are still differences in the PDF and PostScript
+ backends, (primarily because we can't capture cairo's filter
+ modes in those file formats).
+
+ src/cairo-pattern.c | 22 +++++++++++++++++++++
+ test/paint-source-alpha-svg11-ref.png | Bin 505 -> 756 bytes
+ ...scale-source-surface-paint-svg11-argb32-ref.png | Bin 182 -> 229 bytes
+ .../scale-source-surface-paint-svg11-rgb24-ref.png | Bin 192 -> 243 bytes
+ ...scale-source-surface-paint-svg12-argb32-ref.png | Bin 182 -> 229 bytes
+ .../scale-source-surface-paint-svg12-rgb24-ref.png | Bin 192 -> 243 bytes
+ 6 files changed, 22 insertions(+)
+
+commit 6ef4bd4ecfa30f00ad0fe6e5e5f1d1a0a5dfe8e3
+Author: Owen W. Taylor <otaylor@fishsoup.net>
+Date: Sun Sep 28 23:30:22 2008 +0100
+
+ [pattern] Fix acquiring outside of source bounds
+
+ Restrict the area we acquire from the source image to the bounds of
+ the source image, even when we have an identity matrix. This handles
+ circumstances where the pattern extents may be enlarged due to
+ filtering, for example when applying a bilinear filter.
+
+ This patch replaces the open-coded rectangle intersection which has
+ already proven itself to be a source of bugs.
+
+ (Patch ported to master by Chris Wilson, all bugs are his.)
+
+ src/cairo-pattern.c | 63 +++++++++++++++++++++++++++--------------------------
+ 1 file changed, 32 insertions(+), 31 deletions(-)
+
+commit 6d0f2c4421e34a078469a81646a52dfa47b4dcf1
+Author: Owen W. Taylor <otaylor@fishsoup.net>
+Date: Mon Sep 29 00:02:18 2008 +0100
+
+ [pattern] Remove the hack to support cloning surface patterns.
+
+ Remove instances (abuses) of calling _cairo_pattern_acquire_surface() on
+ a known-surface-pattern with a hack to say "give me the entire surface".
+ If you know you just want the entire surface as an image surface, that
+ can be done more simply.
+
+ (Split from original patch on
+ https://bugs.freedesktop.org/attachment.cgi?id=15703, by Chris Wilson -
+ as usual all bugs are his.)
+
+ src/cairo-pattern.c | 5 +----
+ src/cairo-svg-surface.c | 16 ++-------------
+ src/cairo-win32-printing-surface.c | 41 ++++++++++++++++++--------------------
+ 3 files changed, 22 insertions(+), 40 deletions(-)
+
+commit 117f643e49615295eb37af24efffd8327429cbf9
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 22:42:30 2008 +0100
+
+ [test/filter-bilinear-extents] Extend testing.
+
+ First, explicitly set the filter mode to BILINEAR in case the default should
+ ever change. And then draw a second pattern with extents that in theory
+ are larger than the source surface in order to test handling of acquiring
+ out-of-bounds extents.
+
+ test/filter-bilinear-extents.c | 45 +++++++++++++++++++++++++++++-------------
+ 1 file changed, 31 insertions(+), 14 deletions(-)
+
+commit 3ff86a4510b718a3154b56b052be786f9495a3b0
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 08:38:31 2008 +0100
+
+ [test] Disable caching of SVG fail/pass surfaces.
+
+ As we use cairo to convert SVG files back to an image, that process is
+ dependent upon changes within our library and so we cannot skip the
+ conversion if the SVG file happens to match a previous run. Fortunately,
+ librsvg is quick enough that this is not a major issue.
+
+ boilerplate/cairo-boilerplate.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 24b22f0d2161f7a4ce75ceb2a86a77737027ee56
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Sep 29 07:52:09 2008 +0100
+
+ [glitz] Compile fix for typo.
+
+ I wonder whether merely fixing a compile error in glitz will do anything
+ towards its utility... Anyway fix the missing comma as reported by
+ Shunichi Fuji and correct the asserts.
+
+ src/cairo-glitz-surface.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 4f449107afba8ca96cd16e8dec283db124105dc8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 21:05:36 2008 +0100
+
+ [test/fallback-resolution] Exercise a couple of outstanding bugs.
+
+ Use dashes to exercise bugs:
+ https://bugs.freedesktop.org/show_bug.cgi?id=9189
+ https://bugs.freedesktop.org/show_bug.cgi?id=17223
+ Note bug 17223 indicates that this is still relevant for win32 printing
+ where fallbacks are used if the dash offset is non-zero.
+
+ And use a pattern to exercise the (fixed) regression:
+ https://bugs.launchpad.net/inkscape/+bug/234546
+
+ test/fallback-resolution-ppi150-ref.png | Bin 2397 -> 8043 bytes
+ test/fallback-resolution-ppi300-ref.png | Bin 1591 -> 5637 bytes
+ test/fallback-resolution-ppi37.5-ref.png | Bin 4681 -> 14098 bytes
+ test/fallback-resolution-ppi600-ref.png | Bin 1121 -> 4104 bytes
+ test/fallback-resolution-ppi72-ref.png | Bin 2497 -> 8409 bytes
+ test/fallback-resolution-ppi75-ref.png | Bin 3575 -> 12101 bytes
+ test/fallback-resolution.c | 40 +++++++++++++++++++++++++++++--
+ 7 files changed, 38 insertions(+), 2 deletions(-)
+
+commit 0a7d781ab020171e70bd1dc66ff1556106e5be3f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 18:57:15 2008 +0100
+
+ [perf] Add rounded rectangle perf case.
+
+ Add the performance test case to compare the speed of filling a rounded
+ rectangle (one with camphered corners) as opposed to an ordinary
+ rectangle. Since the majority of the pixels are identical, ideally the two
+ cases would take similar times (modulo the additional overhead in the more
+ complex path).
+
+ perf/Makefile.am | 1 +
+ perf/cairo-perf.c | 1 +
+ perf/cairo-perf.h | 1 +
+ perf/rectangles.c | 22 ++++++++-
+ perf/rounded-rectangles.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 135 insertions(+), 1 deletion(-)
+
+commit d52b55cb1b2a4e9b5fd8dd12592a227f8f6a93fc
+Author: Karl Tomlinson <karlt+@karlt.net>
+Date: Sun Sep 28 17:51:23 2008 +0100
+
+ [xlib] _surfaces_compatible() can return true for different picture formats
+
+ _surfaces_compatible in cairo-xlib-surface returns true for surfaces with
+ different xrender_format when each has the same depth and no (NULL)
+ visual.
+
+ Common picture formats will not have the same depth, but
+ it is possible to create a surface with a non-standard xrender_format
+ having the same depth as another xrender_format with
+ cairo_xlib_surface_create_with_xrender_format.
+
+ Both cairo_xlib_surface_create_with_xrender_format and
+ _cairo_xlib_surface_create_similar_with_format create surfaces with no
+ visual.
+
+ The same issue exists in the xcb backend.
+
+ Fixes bug https://bugs.freedesktop.org/show_bug.cgi?id=16564.
+
+ AUTHORS | 1 +
+ src/cairo-xcb-surface.c | 4 +++-
+ src/cairo-xlib-surface.c | 4 +++-
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+commit b6b54e2f2736bfa9f76b7b6fc0da5d35a71fe846
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 17:13:11 2008 +0100
+
+ [svg] Compile fix for last commit.
+
+ Sorry - badly merged patch (missed a chunk).
+
+ src/cairo-svg-surface.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit cff3bcba68233101c5518801b64e37d2f0e70ae8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 17:06:32 2008 +0100
+
+ [svg] Check that the mask is supported.
+
+ During the analyze phase we also need to check whether we can emit the mask
+ without requiring fallbacks.
+
+ src/cairo-svg-surface.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+commit 8ad3031359d74bdff4b1e3ef8d0af047821f1795
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 17:04:15 2008 +0100
+
+ [svg] Enable the assertion that paint() is supported.
+
+ The XXX comment before the disabled assert is misleading as the final
+ fallback image paint operation should never trigger UNSUPPORTED.
+
+ src/cairo-svg-surface.c | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+commit 95e637f9ac9e4256f7ba73e8f048f8e559631c82
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 16:54:59 2008 +0100
+
+ [paginated] Set paginated mode before every replay.
+
+ Previously we were replaying full page fallbacks without updating the
+ mode - this was upsetting SVG.
+
+ src/cairo-paginated-surface.c | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+commit 36b98589911ab57762317ec95cbff41681c1e0b6
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 16:24:40 2008 +0100
+
+ [svg] Kill _cairo_svg_surface_force_fallbacks.
+
+ It is not used, but refuses to die!
+
+ src/cairo-svg-surface.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit 57851464f920d52444d19d25e78293fa0f40c5f9
+Author: Benjamin Otte <otte@gnome.org>
+Date: Sun Sep 28 17:02:23 2008 +0200
+
+ [SVG] make backend handle new operators gracefully
+
+ Previously, the SVG backend would rash when new operators were added to
+ cairo.h, now it returns UNSUPPORTED.
+ Also unsupported operators can now be set as NULL, so image fallbacks can
+ be used properly.
+ Should use fallbacks instead of color-dodge for CAIRO_OPERATOR_STURATE?
+
+ src/cairo-svg-surface.c | 45 +++++++++++++++++++++++++++++++--------------
+ 1 file changed, 31 insertions(+), 14 deletions(-)
+
+commit fda80cc852a109fe60e3277a1847bc5c24f35d8e
+Author: Benjamin Otte <otte@gnome.org>
+Date: Sun Sep 28 14:57:49 2008 +0200
+
+ [SVG] use _cairo_operator_bounded_by_source()
+
+ previously, the code was duplicating its functionality
+
+ src/cairo-svg-surface.c | 27 ++++++++++++---------------
+ 1 file changed, 12 insertions(+), 15 deletions(-)
+
+commit 3c18d95b293eddaa25232bc06398c78bc8043cb4
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 15:57:37 2008 +0100
+
+ Compute device_transform_inverse.
+
+ Because we can independently set either the device scale or the device
+ offset, we need to be careful and recompute the inverse rather than simply
+ assuming that the original contents of the device transform is identity.
+
+ Fixes regression https://bugs.launchpad.net/inkscape/+bug/234546.
+
+ src/cairo-surface.c | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+commit 9841d9d58ea286f798626d325d50a85bf3f02c8f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun Sep 28 13:34:50 2008 +0100
+
+ Automate error checking for fallback-resolution.
+
+ For this we extend the boilerplate get_image() routines to extract a
+ single page out of a paginated document and then proceed to manually
+ check each page of the fallback-resolution test.
+
+ (Well that's the theory, in practice SVG doesn't support multiple pages
+ and so we just generate a new surface for each resolution. But the
+ infrastructure is in place so that we can automate other tests,
+ e.g. test/multi-pages.)
+
+ boilerplate/cairo-boilerplate-pdf-private.h | 5 +
+ boilerplate/cairo-boilerplate-pdf.c | 29 +-
+ boilerplate/cairo-boilerplate-pdf.h | 33 --
+ boilerplate/cairo-boilerplate-ps-private.h | 9 +-
+ boilerplate/cairo-boilerplate-ps.c | 33 +-
+ boilerplate/cairo-boilerplate-ps.h | 33 --
+ boilerplate/cairo-boilerplate-svg-private.h | 5 +
+ boilerplate/cairo-boilerplate-svg.c | 36 +-
+ boilerplate/cairo-boilerplate-svg.h | 33 --
+ .../cairo-boilerplate-test-surfaces-private.h | 1 +
+ boilerplate/cairo-boilerplate-test-surfaces.c | 7 +-
+ boilerplate/cairo-boilerplate-win32-printing.c | 5 +
+ boilerplate/cairo-boilerplate-win32-private.h | 1 +
+ boilerplate/cairo-boilerplate.c | 74 ++--
+ boilerplate/cairo-boilerplate.h | 7 +
+ src/cairo-svg-surface.c | 6 +-
+ test/Makefile.am | 6 +
+ test/cairo-test.c | 36 +-
+ test/cairo-test.h | 12 +
+ test/fallback-resolution-ppi150-ref.png | Bin 0 -> 2397 bytes
+ test/fallback-resolution-ppi300-ref.png | Bin 0 -> 1591 bytes
+ test/fallback-resolution-ppi37.5-ref.png | Bin 0 -> 4681 bytes
+ test/fallback-resolution-ppi600-ref.png | Bin 0 -> 1121 bytes
+ test/fallback-resolution-ppi72-ref.png | Bin 0 -> 2497 bytes
+ test/fallback-resolution-ppi75-ref.png | Bin 0 -> 3575 bytes
+ test/fallback-resolution.c | 413 +++++++++++++++------
+ 26 files changed, 486 insertions(+), 298 deletions(-)
+
+commit cca1fc6358e9d0213dd2b41a5bfd1629eec6511e
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 21:53:21 2008 +0100
+
+ [test] Fix target specific tests for recent SVG/PS version split.
+
+ A few tests explicitly checked whether the "ps" or "svg" target was
+ enabled and this broke because of the name change. So fixup, to run
+ the generic test if either PS or SVG target is enabled as appropriate.
+
+ test/create-for-stream.c | 8 ++++++--
+ test/fallback-resolution.c | 8 ++++++--
+ test/multi-page.c | 4 +++-
+ test/ps-features.c | 4 +++-
+ test/svg-clip.c | 4 +++-
+ test/svg-surface.c | 4 +++-
+ 6 files changed, 24 insertions(+), 8 deletions(-)
+
+commit 39e4a0bcd04191eecfc593653a4ba32a28fcac6a
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 19:33:51 2008 +0100
+
+ [test] Update list of REFERENCE_IMAGES
+
+ A few typos, deletions and additions from the inclusion of versioned
+ SVG/PS testing.
+
+ test/Makefile.am | 50 +++++++++++++++++++++++++++++++-------------------
+ 1 file changed, 31 insertions(+), 19 deletions(-)
+
+commit 260362e5728e2591bb50f565ef04ba951d95de79
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 19:16:34 2008 +0100
+
+ [cairo-test] Fix cairo_test_file_is_older().
+
+ It did not even compile, so no longer it wasn't deleting cached results
+ if you updated the reference images.
+
+ test/cairo-test.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+commit ffbb67303c1a4d986096ba046bb3256314b9f1b1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 18:54:45 2008 +0100
+
+ [test/gradient-constant-alpha] Remove ps2 reference images.
+
+ PostScript level 2 has no support for gradients and so should uses image
+ fallbacks and hence do not require the GS specific reference images.
+
+ test/Makefile.am | 2 --
+ test/gradient-constant-alpha-ps2-ref.png | Bin 124 -> 0 bytes
+ test/gradient-constant-alpha-ps2-rgb24-ref.png | Bin 124 -> 0 bytes
+ 3 files changed, 2 deletions(-)
+
+commit 4fa9f8c0608c137d9aa277039cb286c8294e6a2f
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 17:42:06 2008 +0100
+
+ [test/large-source] Remove stale comment.
+
+ Delete a reference to an old limitation of pixman.
+
+ test/large-source.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+commit 35f1e2fa4f15c562e5cc41578b413c6874e131bc
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 17:37:32 2008 +0100
+
+ [test/operator*] Remove XFAIL descriptions.
+
+ The tests should now pass, so remove the line claiming that they fail
+ for unknown reasons.
+
+ test/operator-alpha.c | 3 +--
+ test/operator.c | 3 +--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+commit 871f683367b1a1647b607f9221e1fc2eddc6e5dd
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 17:24:57 2008 +0100
+
+ clone_similar(): s/device_offset/clone_offset/
+
+ A little bit of sleep and reflection suggested that the use of
+ device_offset_[xy] was confusing and clone_offset_[xy] more consistent
+ with the function naming.
+
+ src/cairo-directfb-surface.c | 12 ++++++------
+ src/cairo-glitz-surface.c | 18 +++++++++---------
+ src/cairo-image-surface.c | 6 +++---
+ src/cairo-pattern.c | 6 +++---
+ src/cairo-quartz-surface.c | 16 ++++++++--------
+ src/cairo-surface-fallback-private.h | 4 ++--
+ src/cairo-surface-fallback.c | 8 ++++----
+ src/cairo-surface.c | 16 ++++++++--------
+ src/cairo-win32-private.h | 4 ++--
+ src/cairo-win32-surface.c | 8 ++++----
+ src/cairo-xcb-surface.c | 12 ++++++------
+ src/cairo-xlib-surface.c | 12 ++++++------
+ src/cairoint.h | 10 +++++-----
+ src/test-fallback-surface.c | 8 ++++----
+ 14 files changed, 70 insertions(+), 70 deletions(-)
+
+commit 95c3c069326a77a28eb49053c0ace9f1977e0378
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 17:13:32 2008 +0100
+
+ [surface] Only return early for no traps if the operator is bounded by a mask.
+
+ If the operator is unbounded, then its area of effect extends beyond
+ the definition of the mask by the trapezoids and so we must always perform
+ the image composition.
+
+ Fixes test/operator*.
+
+ src/cairo-surface-fallback.c | 4 +---
+ test/Makefile.am | 2 --
+ 2 files changed, 1 insertion(+), 5 deletions(-)
+
+commit 922a5801164c2b2340a7b4a950820b07e72adadc
+Merge: 0c4317085 1e45da48b
+Author: Emmanuel Pacaud <emmanuel.pacaud@free.fr>
+Date: Sat Sep 27 11:55:50 2008 +0200
+
+ Merge branch 'master' of git+ssh://emmanuel@git.cairographics.org/git/cairo
+
+commit 0c4317085ecfc112214cdfe2abd66d9df8038282
+Author: Emmanuel Pacaud <emmanuel.pacaud@free.fr>
+Date: Sat Sep 27 11:47:32 2008 +0200
+
+ [svg] Fix comp-op for paint, mask and show_glyphs operations.
+
+ In paint and show_glyphs, the compositing operator was not emitted at all.
+ In mask, the operator was also emitted for the mask itself, which is
+ wrong.
+
+ SVG clear and source differ from cairo as it also affects the
+ destination if the source pixel are completely transparent. We need to emit
+ an additional clip-to-self property.
+
+ Librsvg does not support clip-to-self, so it renders the SVG
+ test outputs incorrectly.
+
+ This patch also remove a lot of useless spaces in the style property
+ strings (I know, this should go in another commit).
+
+ src/cairo-svg-surface.c | 196 ++++++++++++++++++++++++++++--------------------
+ 1 file changed, 113 insertions(+), 83 deletions(-)
+
+commit 1e45da48b555b707225c1521068011cabbcc976f
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sat Sep 27 14:38:22 2008 +0930
+
+ Update ref images in Makefile.am
+
+ test/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit c0535e8e3394f0b78867785e65cf89dbb31875d5
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sat Sep 27 14:31:50 2008 +0930
+
+ Remove miter-precision from XFAIL
+
+ The miter-precision PS output prints correctly on my LaserJet 4050. So
+ file a Ghostscript bug, supply PS ref images and remove from XFAIL.
+
+ test/Makefile.am | 1 -
+ test/README | 5 +++++
+ test/miter-precision-ps2-ref.png | Bin 0 -> 865 bytes
+ test/miter-precision-ps3-ref.png | Bin 0 -> 865 bytes
+ test/miter-precision.c | 2 +-
+ 5 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 5b97ee65259cafb335c1a2c53f1a55dfcb175e20
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat Sep 27 00:18:07 2008 +0100
+
+ Allow cloning sub-regions of similar surfaces.
+
+ Previously the rule for clone_similar() was that the returned surface
+ had exactly the same size as the original, but only the contents within
+ the region of interest needed to be copied. This caused failures for very
+ large images in the xlib-backend (see test/large-source).
+
+ The obvious solution to allow cloning only the region of interest seemed
+ to be to simply set the device offset on the cloned surface. However, this
+ fails as a) nothing respects the device offset on the surface at that
+ layer in the compositing stack and b) possibly returning references to the
+ original source surface provides further confusion by mixing in another
+ source of device offset.
+
+ The second method was to add extra out parameters so that the
+ device offset could be returned separately and, for example, mixed into
+ the pattern matrix. Not as elegant, a couple of extra warts to the
+ interface, but it works - one less XFAIL...
+
+ src/cairo-clip.c | 6 ++++++
+ src/cairo-directfb-surface.c | 14 +++++++++-----
+ src/cairo-glitz-surface.c | 10 ++++++++++
+ src/cairo-image-surface.c | 3 +++
+ src/cairo-pattern.c | 15 +++++++++++++--
+ src/cairo-quartz-surface.c | 10 +++++++++-
+ src/cairo-surface-fallback-private.h | 2 ++
+ src/cairo-surface-fallback.c | 8 ++++++--
+ src/cairo-surface.c | 24 ++++++++++++++++++------
+ src/cairo-win32-private.h | 2 ++
+ src/cairo-win32-surface.c | 8 ++++++--
+ src/cairo-xcb-surface.c | 18 ++++++++++++++----
+ src/cairo-xlib-surface.c | 21 +++++++++++++++------
+ src/cairoint.h | 11 +++++++++--
+ src/test-fallback-surface.c | 4 ++++
+ test/Makefile.am | 1 -
+ 16 files changed, 126 insertions(+), 31 deletions(-)
+
+commit 7f3a48f90b409653a2d4fb802779ecb7508e4d6e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Sep 26 13:27:42 2008 -0400
+
+ [cairo.h] Don't define cairo_public to __declspec(dllimport) for static build
+
+ That define should target win32 DLL builds only. We can't tell though,
+ so we require user to define CAIRO_WIN32_STATIC_BUILD to signal that.
+
+ src/cairo-system.c | 2 +-
+ src/cairo.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit b6e910f4b636e947cefb310125979ce742e87730
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Sep 26 12:36:33 2008 -0400
+
+ [README.win32] Update wording from Tor Lillqvist
+
+ README.win32 | 19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 deletions(-)
+
+commit fc12267405e98497c9f086d49fa6501d8f671a68
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Sep 26 17:10:52 2008 +0100
+
+ [scaled-font] Spelling fix.
+
+ Arbitrary spelling fix.
+
+ src/cairo-scaled-font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e0f214710760a0e0332207cb3009e3119867bd13
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Sep 26 16:49:57 2008 +0100
+
+ [boilerplate] Add a PS 2 target.
+
+ Ensure that we can generate PS2 output when required by creating a PS
+ level 2 target and using GhostScript for conformance testing.
+
+ boilerplate/cairo-boilerplate-ps-private.h | 29 ++-
+ boilerplate/cairo-boilerplate-ps.c | 55 +++-
+ boilerplate/cairo-boilerplate.c | 23 +-
+ test/Makefile.am | 286 ++++++++++++++-------
+ test/{big-line-ps-ref.png => big-line-ps2-ref.png} | Bin
+ ...ps-rgb24-ref.png => big-line-ps2-rgb24-ref.png} | Bin
+ test/big-line-ps3-ref.png | Bin 0 -> 1148 bytes
+ test/big-line-ps3-rgb24-ref.png | Bin 0 -> 830 bytes
+ ...aps-joins-ps-ref.png => caps-joins-ps2-ref.png} | Bin
+ test/caps-joins-ps3-ref.png | Bin 0 -> 1459 bytes
+ ...2-ref.png => clip-fill-rule-ps2-argb32-ref.png} | Bin
+ ...24-ref.png => clip-fill-rule-ps2-rgb24-ref.png} | Bin
+ test/clip-fill-rule-ps3-argb32-ref.png | Bin 0 -> 310 bytes
+ test/clip-fill-rule-ps3-rgb24-ref.png | Bin 0 -> 302 bytes
+ ...b32-ref.png => clip-nesting-ps2-argb32-ref.png} | Bin
+ ...gb24-ref.png => clip-nesting-ps2-rgb24-ref.png} | Bin
+ test/clip-nesting-ps3-argb32-ref.png | Bin 0 -> 651 bytes
+ test/clip-nesting-ps3-rgb24-ref.png | Bin 0 -> 636 bytes
+ ...b24-ref.png => clip-operator-ps2-rgb24-ref.png} | Bin
+ test/clip-operator-ps3-ref.png | Bin 0 -> 8188 bytes
+ test/clip-operator-ps3-rgb24-ref.png | Bin 0 -> 3624 bytes
+ ...-ref.png => clip-push-group-ps2-argb32-ref.png} | Bin
+ ...4-ref.png => clip-push-group-ps2-rgb24-ref.png} | Bin
+ test/clip-push-group-ps3-argb32-ref.png | Bin 0 -> 179 bytes
+ test/clip-push-group-ps3-rgb24-ref.png | Bin 0 -> 179 bytes
+ ...rgb32-ref.png => clip-twice-ps2-argb32-ref.png} | Bin
+ ...-rgb24-ref.png => clip-twice-ps2-rgb24-ref.png} | Bin
+ test/clip-twice-ps3-argb32-ref.png | Bin 0 -> 575 bytes
+ test/clip-twice-ps3-rgb24-ref.png | Bin 0 -> 541 bytes
+ ...-group-ps-ref.png => clipped-group-ps2-ref.png} | Bin
+ test/clipped-group-ps3-ref.png | Bin 0 -> 343 bytes
+ ...lose-path-ps-ref.png => close-path-ps2-ref.png} | Bin
+ test/close-path-ps3-ref.png | Bin 0 -> 309 bytes
+ ...{copy-path-ps-ref.png => copy-path-ps2-ref.png} | Bin
+ test/copy-path-ps3-ref.png | Bin 0 -> 474 bytes
+ ...-ref.png => dash-caps-joins-ps2-argb32-ref.png} | Bin
+ ...4-ref.png => dash-caps-joins-ps2-rgb24-ref.png} | Bin
+ test/dash-caps-joins-ps3-argb32-ref.png | Bin 0 -> 3870 bytes
+ test/dash-caps-joins-ps3-rgb24-ref.png | Bin 0 -> 3870 bytes
+ ...ash-curve-ps-ref.png => dash-curve-ps2-ref.png} | Bin
+ test/dash-curve-ps3-ref.png | Bin 0 -> 27293 bytes
+ ...rgb32-ref.png => dash-scale-ps2-argb32-ref.png} | Bin
+ ...-rgb24-ref.png => dash-scale-ps2-rgb24-ref.png} | Bin
+ test/dash-scale-ps3-argb32-ref.png | Bin 0 -> 6318 bytes
+ test/dash-scale-ps3-rgb24-ref.png | Bin 0 -> 6316 bytes
+ ...ash-state-ps-ref.png => dash-state-ps2-ref.png} | Bin
+ test/dash-state-ps3-ref.png | Bin 0 -> 10219 bytes
+ ...gth-ps-ref.png => dash-zero-length-ps2-ref.png} | Bin
+ ...-ref.png => dash-zero-length-ps2-rgb24-ref.png} | Bin
+ test/dash-zero-length-ps3-ref.png | Bin 0 -> 319 bytes
+ test/dash-zero-length-ps3-rgb24-ref.png | Bin 0 -> 304 bytes
+ ...e-arc-ps-ref.png => degenerate-arc-ps2-ref.png} | Bin
+ test/degenerate-arc-ps3-ref.png | Bin 0 -> 585 bytes
+ ...-ref.png => degenerate-path-ps2-argb32-ref.png} | Bin
+ ...4-ref.png => degenerate-path-ps2-rgb24-ref.png} | Bin
+ test/degenerate-path-ps3-argb32-ref.png | Bin 0 -> 390 bytes
+ test/degenerate-path-ps3-rgb24-ref.png | Bin 0 -> 358 bytes
+ ...e-pen-ps-ref.png => degenerate-pen-ps2-ref.png} | Bin
+ test/degenerate-pen-ps3-ref.png | Bin 0 -> 865 bytes
+ ...ef.png => device-offset-fractional-ps2-ref.png} | Bin
+ test/device-offset-fractional-ps3-ref.png | Bin 0 -> 201 bytes
+ ...flect-ps-ref.png => extend-reflect-ps2-ref.png} | Bin
+ ...milar-ps-ref.png => extend-reflect-ps3-ref.png} | Bin
+ test/extend-reflect-similar-ps2-ref.png | Bin 0 -> 153322 bytes
+ test/extend-reflect-similar-ps3-ref.png | Bin 0 -> 153322 bytes
+ ...n-ps-ref.png => fill-alpha-pattern-ps3-ref.png} | Bin
+ ...-ref.png => fill-and-stroke-ps2-argb32-ref.png} | Bin
+ ...4-ref.png => fill-and-stroke-ps2-rgb24-ref.png} | Bin
+ test/fill-and-stroke-ps3-argb32-ref.png | Bin 0 -> 310 bytes
+ test/fill-and-stroke-ps3-rgb24-ref.png | Bin 0 -> 319 bytes
+ ...ref.png => fill-missed-stop-ps2-argb32-ref.png} | Bin
+ ...-ref.png => fill-missed-stop-ps2-rgb24-ref.png} | Bin
+ test/fill-missed-stop-ps3-argb32-ref.png | Bin 0 -> 564 bytes
+ test/fill-missed-stop-ps3-rgb24-ref.png | Bin 0 -> 531 bytes
+ ...argb32-ref.png => fill-rule-ps2-argb32-ref.png} | Bin
+ ...s-rgb24-ref.png => fill-rule-ps2-rgb24-ref.png} | Bin
+ test/fill-rule-ps3-argb32-ref.png | Bin 0 -> 2253 bytes
+ test/fill-rule-ps3-rgb24-ref.png | Bin 0 -> 2031 bytes
+ ... => finer-grained-fallbacks-ps2-argb32-ref.png} | Bin
+ ...g => finer-grained-fallbacks-ps2-rgb24-ref.png} | Bin
+ test/finer-grained-fallbacks-ps3-argb32-ref.png | Bin 0 -> 1047 bytes
+ test/finer-grained-fallbacks-ps3-rgb24-ref.png | Bin 0 -> 819 bytes
+ ... => font-matrix-translation-ps2-argb32-ref.png} | Bin
+ ...g => font-matrix-translation-ps2-rgb24-ref.png} | Bin
+ test/font-matrix-translation-ps3-argb32-ref.png | Bin 0 -> 748 bytes
+ test/font-matrix-translation-ps3-rgb24-ref.png | Bin 0 -> 748 bytes
+ ....png => ft-show-glyphs-positioning-ps2-ref.png} | Bin
+ test/ft-show-glyphs-positioning-ps3-ref.png | Bin 0 -> 2269 bytes
+ ...ps-ref.png => ft-show-glyphs-table-ps2-ref.png} | Bin
+ test/ft-show-glyphs-table-ps3-ref.png | Bin 0 -> 5687 bytes
+ ...g => ft-text-antialias-none-ps2-argb32-ref.png} | Bin
+ test/ft-text-antialias-none-ps3-argb32-ref.png | Bin 0 -> 335 bytes
+ ...g => ft-text-vertical-layout-type1-ps2-ref.png} | Bin
+ test/ft-text-vertical-layout-type1-ps3-ref.png | Bin 0 -> 1846 bytes
+ ...g => ft-text-vertical-layout-type3-ps2-ref.png} | Bin
+ test/ft-text-vertical-layout-type3-ps3-ref.png | Bin 0 -> 1804 bytes
+ ...ps-ref.png => glyph-cache-pressure-ps2-ref.png} | Bin
+ test/glyph-cache-pressure-ps3-ref.png | Bin 0 -> 1454 bytes
+ ...2-ref.png => gradient-alpha-ps2-argb32-ref.png} | Bin
+ ...24-ref.png => gradient-alpha-ps2-rgb24-ref.png} | Bin
+ test/gradient-alpha-ps3-argb32-ref.png | Bin 0 -> 134 bytes
+ test/gradient-alpha-ps3-rgb24-ref.png | Bin 0 -> 130 bytes
+ ...ref.png => gradient-constant-alpha-ps2-ref.png} | Bin
+ ...g => gradient-constant-alpha-ps2-rgb24-ref.png} | Bin
+ test/gradient-constant-alpha-ps3-ref.png | Bin 0 -> 124 bytes
+ test/gradient-constant-alpha-ps3-rgb24-ref.png | Bin 0 -> 124 bytes
+ ...e-join-ps-ref.png => infinite-join-ps2-ref.png} | Bin
+ test/infinite-join-ps3-ref.png | Bin 0 -> 218 bytes
+ ...rgb32-ref.png => leaky-dash-ps2-argb32-ref.png} | Bin
+ ...-rgb24-ref.png => leaky-dash-ps2-rgb24-ref.png} | Bin
+ test/leaky-dash-ps3-argb32-ref.png | Bin 0 -> 286 bytes
+ test/leaky-dash-ps3-rgb24-ref.png | Bin 0 -> 284 bytes
+ ...-ref.png => leaky-dashed-rectangle-ps2-ref.png} | Bin
+ test/leaky-dashed-rectangle-ps3-ref.png | Bin 0 -> 444 bytes
+ ...olygon-ps-ref.png => leaky-polygon-ps2-ref.png} | Bin
+ test/leaky-polygon-ps3-ref.png | Bin 0 -> 354 bytes
+ ...ale-ps-ref.png => line-width-scale-ps2-ref.png} | Bin
+ test/line-width-scale-ps3-ref.png | Bin 0 -> 3911 bytes
+ ...ient-ps-ref.png => linear-gradient-ps3-ref.png} | Bin
+ ...ref.png => linear-gradient-reflect-ps3-ref.png} | Bin
+ ...es-ps-ref.png => long-dashed-lines-ps2-ref.png} | Bin
+ test/long-dashed-lines-ps3-ref.png | Bin 0 -> 1516 bytes
+ ...png => meta-surface-pattern-ps2-argb32-ref.png} | Bin
+ ....png => meta-surface-pattern-ps2-rgb24-ref.png} | Bin
+ test/meta-surface-pattern-ps3-argb32-ref.png | Bin 0 -> 3257 bytes
+ test/meta-surface-pattern-ps3-rgb24-ref.png | Bin 0 -> 3873 bytes
+ ...b32-ref.png => new-sub-path-ps2-argb32-ref.png} | Bin
+ ...gb24-ref.png => new-sub-path-ps2-rgb24-ref.png} | Bin
+ test/new-sub-path-ps3-argb32-ref.png | Bin 0 -> 556 bytes
+ test/new-sub-path-ps3-rgb24-ref.png | Bin 0 -> 423 bytes
+ ...ef.png => over-above-source-ps2-argb32-ref.png} | Bin
+ test/over-above-source-ps3-argb32-ref.png | Bin 0 -> 636 bytes
+ ...f.png => over-around-source-ps2-argb32-ref.png} | Bin
+ ...ef.png => over-around-source-ps2-rgb24-ref.png} | Bin
+ test/over-around-source-ps3-argb32-ref.png | Bin 0 -> 632 bytes
+ test/over-around-source-ps3-rgb24-ref.png | Bin 0 -> 538 bytes
+ ...ef.png => over-below-source-ps2-argb32-ref.png} | Bin
+ test/over-below-source-ps3-argb32-ref.png | Bin 0 -> 503 bytes
+ ....png => over-between-source-ps2-argb32-ref.png} | Bin
+ test/over-between-source-ps3-argb32-ref.png | Bin 0 -> 678 bytes
+ ...ps-ref.png => random-intersections-ps2-ref.png} | Bin
+ test/random-intersections-ps3-ref.png | Bin 0 -> 89253 bytes
+ ...ref.png => rectilinear-miter-limit-ps2-ref.png} | Bin
+ test/rectilinear-miter-limit-ps3-ref.png | Bin 0 -> 221 bytes
+ ...oke-ps-ref.png => reflected-stroke-ps2-ref.png} | Bin
+ test/reflected-stroke-ps3-ref.png | Bin 0 -> 3898 bytes
+ ...ps-rgb24-ref.png => rel-path-ps2-rgb24-ref.png} | Bin
+ test/rel-path-ps3-rgb24-ref.png | Bin 0 -> 243 bytes
+ ....png => rotate-image-surface-paint-ps2-ref.png} | Bin
+ test/rotate-image-surface-paint-ps3-ref.png | Bin 0 -> 212 bytes
+ ...ace-ps-ref.png => select-font-face-ps2-ref.png} | Bin
+ test/select-font-face-ps3-ref.png | Bin 0 -> 959 bytes
+ ...{self-copy-ps-ref.png => self-copy-ps2-ref.png} | Bin
+ test/self-copy-ps3-ref.png | Bin 0 -> 335 bytes
+ ...ref.png => show-text-current-point-ps2-ref.png} | Bin
+ test/show-text-current-point-ps3-ref.png | Bin 0 -> 1356 bytes
+ ...extreme-ps-ref.png => skew-extreme-ps2-ref.png} | Bin
+ test/skew-extreme-ps3-ref.png | Bin 0 -> 1048 bytes
+ test/{smask-ps-ref.png => smask-ps2-ref.png} | Bin
+ test/smask-ps3-ref.png | Bin 0 -> 3669 bytes
+ ...mask-text-ps-ref.png => smask-text-ps2-ref.png} | Bin
+ test/smask-text-ps3-ref.png | Bin 0 -> 2023 bytes
+ ...ef.png => source-clip-scale-ps2-argb32-ref.png} | Bin
+ ...ref.png => source-clip-scale-ps2-rgb24-ref.png} | Bin
+ test/source-clip-scale-ps3-argb32-ref.png | Bin 0 -> 183 bytes
+ test/source-clip-scale-ps3-rgb24-ref.png | Bin 0 -> 183 bytes
+ ...caps-ps-ref.png => stroke-ctm-caps-ps2-ref.png} | Bin
+ test/stroke-ctm-caps-ps3-ref.png | Bin 0 -> 1079 bytes
+ ...e-image-ps-ref.png => stroke-image-ps2-ref.png} | Bin
+ test/stroke-image-ps3-ref.png | Bin 0 -> 1786 bytes
+ ...-ref.png => surface-pattern-ps2-argb32-ref.png} | Bin
+ test/surface-pattern-ps3-argb32-ref.png | Bin 0 -> 2520 bytes
+ ... surface-pattern-scale-down-ps2-argb32-ref.png} | Bin
+ test/surface-pattern-scale-down-ps3-argb32-ref.png | Bin 0 -> 1400 bytes
+ ...=> surface-pattern-scale-up-ps2-argb32-ref.png} | Bin
+ test/surface-pattern-scale-up-ps3-argb32-ref.png | Bin 0 -> 1011 bytes
+ ...b32-ref.png => text-pattern-ps3-argb32-ref.png} | Bin
+ ...gb24-ref.png => text-pattern-ps3-rgb24-ref.png} | Bin
+ ...t-rotate-ps-ref.png => text-rotate-ps2-ref.png} | Bin
+ test/text-rotate-ps3-ref.png | Bin 0 -> 6851 bytes
+ ...sform-ps-ref.png => text-transform-ps2-ref.png} | Bin
+ test/text-transform-ps3-ref.png | Bin 0 -> 4154 bytes
+ ...ransforms-ps-ref.png => transforms-ps2-ref.png} | Bin
+ test/transforms-ps3-ref.png | Bin 0 -> 418 bytes
+ ...argb32-ref.png => trap-clip-ps3-argb32-ref.png} | Bin
+ ...s-rgb24-ref.png => trap-clip-ps3-rgb24-ref.png} | Bin
+ ...roxy-ps-ref.png => user-font-proxy-ps2-ref.png} | Bin
+ test/user-font-proxy-ps3-ref.png | Bin 0 -> 8171 bytes
+ ...{user-font-ps-ref.png => user-font-ps2-ref.png} | Bin
+ test/user-font-ps3-ref.png | Bin 0 -> 5043 bytes
+ ...le-ps-ref.png => user-font-rescale-ps2-ref.png} | Bin
+ test/user-font-rescale-ps3-ref.png | Bin 0 -> 8041 bytes
+ 192 files changed, 277 insertions(+), 116 deletions(-)
+
+commit 0c030d3b768718eac5d429d0c819934f32896b25
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Sep 26 15:26:40 2008 +0100
+
+ [boilerplate] Add svg-1.2 target.
+
+ SVG 1.2 is sufficiently different from 1.1 that it has separate code
+ paths within cairo-svg-surface and so justifies its own boilerplate
+ target.
+
+ boilerplate/cairo-boilerplate-svg-private.h | 30 +++++++---
+ boilerplate/cairo-boilerplate-svg.c | 48 +++++++++++++--
+ boilerplate/cairo-boilerplate.c | 24 ++++++--
+ test/Makefile.am | 66 ++++++++++++++-------
+ ...-svg-ref.png => caps-joins-alpha-svg11-ref.png} | Bin
+ test/caps-joins-alpha-svg12-ref.png | Bin 0 -> 2454 bytes
+ ...f.png => font-matrix-translation-svg11-ref.png} | Bin
+ test/font-matrix-translation-svg12-ref.png | Bin 0 -> 970 bytes
+ ...ng => ft-show-glyphs-positioning-svg11-ref.png} | Bin
+ test/ft-show-glyphs-positioning-svg12-ref.png | Bin 0 -> 6590 bytes
+ ...=> ft-text-vertical-layout-type1-svg11-ref.png} | Bin
+ test/ft-text-vertical-layout-type1-svg12-ref.png | Bin 0 -> 3973 bytes
+ ...=> ft-text-vertical-layout-type3-svg11-ref.png} | Bin
+ test/ft-text-vertical-layout-type3-svg12-ref.png | Bin 0 -> 3957 bytes
+ ...t-svg-ref.png => linear-gradient-svg11-ref.png} | Bin
+ test/linear-gradient-svg12-ref.png | Bin 0 -> 1000 bytes
+ ...b32-ref.png => mask-alpha-svg11-argb32-ref.png} | Bin
+ test/mask-alpha-svg12-argb32-ref.png | Bin 0 -> 615 bytes
+ ...rgb32-ref.png => mask-ctm-svg11-argb32-ref.png} | Bin
+ ...rgb32-ref.png => mask-ctm-svg12-argb32-ref.png} | Bin
+ test/mask-surface-ctm-svg11-argb32-ref.png | Bin 0 -> 108 bytes
+ test/mask-surface-ctm-svg12-argb32-ref.png | Bin 0 -> 108 bytes
+ ...vg-argb32-ref.png => mask-svg11-argb32-ref.png} | Bin
+ ...-svg-rgb24-ref.png => mask-svg11-rgb24-ref.png} | Bin
+ test/mask-svg12-argb32-ref.png | Bin 0 -> 8527 bytes
+ test/mask-svg12-rgb24-ref.png | Bin 0 -> 7935 bytes
+ ....png => mask-transformed-similar-svg11-ref.png} | Bin
+ test/mask-transformed-similar-svg12-ref.png | Bin 0 -> 4051 bytes
+ ...g => meta-surface-pattern-svg11-argb32-ref.png} | Bin
+ ...ng => meta-surface-pattern-svg11-rgb24-ref.png} | Bin
+ test/meta-surface-pattern-svg12-argb32-ref.png | Bin 0 -> 3924 bytes
+ test/meta-surface-pattern-svg12-rgb24-ref.png | Bin 0 -> 4593 bytes
+ ...vg-ref.png => paint-source-alpha-svg11-ref.png} | Bin
+ test/paint-source-alpha-svg12-ref.png | Bin 0 -> 505 bytes
+ ...-svg-ref.png => paint-with-alpha-svg11-ref.png} | Bin
+ test/paint-with-alpha-svg12-ref.png | Bin 0 -> 516 bytes
+ ...b32-ref.png => push-group-svg11-argb32-ref.png} | Bin
+ test/push-group-svg12-argb32-ref.png | Bin 0 -> 2935 bytes
+ ...t-svg-ref.png => radial-gradient-svg11-ref.png} | Bin
+ test/radial-gradient-svg12-ref.png | Bin 0 -> 91039 bytes
+ ...ng => rotate-image-surface-paint-svg11-ref.png} | Bin
+ test/rotate-image-surface-paint-svg12-ref.png | Bin 0 -> 248 bytes
+ ...cale-source-surface-paint-svg11-argb32-ref.png} | Bin
+ ...scale-source-surface-paint-svg11-rgb24-ref.png} | Bin
+ ...scale-source-surface-paint-svg12-argb32-ref.png | Bin 0 -> 182 bytes
+ .../scale-source-surface-paint-svg12-rgb24-ref.png | Bin 0 -> 192 bytes
+ ...b32-ref.png => set-source-svg11-argb32-ref.png} | Bin
+ test/set-source-svg12-argb32-ref.png | Bin 0 -> 104 bytes
+ ...k-fill-svg-ref.png => smask-fill-svg11-ref.png} | Bin
+ test/smask-fill-svg12-ref.png | Bin 0 -> 1166 bytes
+ ...k-mask-svg-ref.png => smask-mask-svg11-ref.png} | Bin
+ test/smask-mask-svg12-ref.png | Bin 0 -> 2529 bytes
+ ...paint-svg-ref.png => smask-paint-svg11-ref.png} | Bin
+ test/smask-paint-svg12-ref.png | Bin 0 -> 2612 bytes
+ test/{smask-svg-ref.png => smask-svg11-ref.png} | Bin
+ test/smask-svg12-ref.png | Bin 0 -> 3634 bytes
+ ...k-text-svg-ref.png => smask-text-svg11-ref.png} | Bin
+ test/smask-text-svg12-ref.png | Bin 0 -> 1886 bytes
+ ...svg-ref.png => source-clip-scale-svg11-ref.png} | Bin
+ test/source-clip-scale-svg12-ref.png | Bin 0 -> 119 bytes
+ ...n-svg-ref.png => surface-pattern-svg11-ref.png} | Bin
+ test/surface-pattern-svg12-ref.png | Bin 0 -> 17663 bytes
+ ...2-ref.png => text-pattern-svg11-argb32-ref.png} | Bin
+ ...24-ref.png => text-pattern-svg11-rgb24-ref.png} | Bin
+ test/text-pattern-svg12-argb32-ref.png | Bin 0 -> 1733 bytes
+ test/text-pattern-svg12-rgb24-ref.png | Bin 0 -> 1563 bytes
+ ...otate-svg-ref.png => text-rotate-svg11-ref.png} | Bin
+ test/text-rotate-svg12-ref.png | Bin 0 -> 18301 bytes
+ ...y-svg-ref.png => user-font-proxy-svg11-ref.png} | Bin
+ test/user-font-proxy-svg12-ref.png | Bin 0 -> 17902 bytes
+ ...svg-ref.png => user-font-rescale-svg11-ref.png} | Bin
+ test/user-font-rescale-svg12-ref.png | Bin 0 -> 15741 bytes
+ ...er-font-svg-ref.png => user-font-svg11-ref.png} | Bin
+ test/user-font-svg12-ref.png | Bin 0 -> 6134 bytes
+ 74 files changed, 128 insertions(+), 40 deletions(-)
+
+commit 86e57671dd21078215505202ef8aa2141d10fb9c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Sep 26 11:08:22 2008 -0400
+
+ [check-*.sh] Redirect error reports to stderr
+
+ doc/public/check-doc-coverage.sh | 6 +++---
+ src/check-def.sh | 2 +-
+ src/check-doc-syntax.sh | 8 ++++----
+ src/check-headers.sh | 2 +-
+ src/check-plt.sh | 2 +-
+ src/check-preprocessor-syntax.sh | 10 +++++-----
+ 6 files changed, 15 insertions(+), 15 deletions(-)
+
+commit 096f9def0f599e527d97bb979f7cafbc87dcddc6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Sep 26 10:55:44 2008 -0400
+
+ Add slim markers to make check-plt.sh happy
+
+ src/cairo-font-face.c | 4 ++++
+ src/cairo-user-font.c | 4 ++++
+ src/cairo.c | 5 +++++
+ src/cairoint.h | 13 +++++++++++++
+ 4 files changed, 26 insertions(+)
+
+commit 1de059b33bd2e6121e35ccf1c4a35ba7755c44d8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Sep 26 09:49:50 2008 -0400
+
+ [RELEASING] Add ftp-release@lists.freedesktop.org
+
+ That list is monitored by various distros to pick up new releases.
+ We should CC release announcements there.
+
+ RELEASING | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 9662be8ee77e219908b64b82e828d577dcf120f0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Sep 26 00:22:00 2008 -0400
+
+ [twin-font] Adjust ascent/descent
+
+ The font data uses a 64 int high font space with baseline at 50.
+
+ src/cairo-font-face-twin.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 3883a371f2ba78b17a1302ba8c5df1a79f3e4075
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Sep 26 00:20:21 2008 -0400
+
+ [scaled-font] Use full ctm matrix when comparing scaled-font keys
+
+ We use the full matrix in hash computation, but only compare the
+ non-translation items in equality check. This is no bug though,
+ as we set the ctm translation components of a scaled font to zero
+ explicitly. But the change makes the hash and equal functions
+ consistent, which is good.
+
+ src/cairo-scaled-font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 48099af9fed7497a230992e41d559a19c5dbdc60
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Sep 25 13:24:58 2008 +0100
+
+ [boilerplate] Retry conversion in process if first attempt fails.
+
+ One possibility for a read failure whilst converting the image is if the
+ external utility crashed. This information is important for the test suite
+ as knowing input that causes the converter to crash is just as vital as
+ identifying a crash within the library.
+
+ boilerplate/cairo-boilerplate-pdf.c | 11 +----------
+ boilerplate/cairo-boilerplate-svg.c | 11 +----------
+ boilerplate/cairo-boilerplate.c | 35 +++++++++++++++++++++++++++++++++--
+ boilerplate/cairo-boilerplate.h | 11 +++++++++--
+ 4 files changed, 44 insertions(+), 24 deletions(-)
+
+commit f2c484d73ce61012a2d9925f15b55e7c51e34b85
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Sep 25 00:16:45 2008 +0100
+
+ [test/any2ppm] Handle short reads/writes.
+
+ No excuse other than simple laziness - it manifested itself with random
+ "error whilst reading" failures.
+
+ boilerplate/cairo-boilerplate.c | 24 +++++++++++++++++---
+ test/any2ppm.c | 50 +++++++++++++++++++++++++++++++++++------
+ 2 files changed, 64 insertions(+), 10 deletions(-)
+
+commit 681424cbaf94556bf1804547b42ad642c0a066ab
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Sep 25 10:40:32 2008 +0100
+
+ [analysis] Merge two analysis status codes.
+
+ Since there is an implicit precedence in the ranking of the analysis
+ return codes, provide a function to centralize the logic within the
+ analysis surface and isolate the backends from the complexity.
+
+ src/cairo-analysis-surface-private.h | 3 +++
+ src/cairo-analysis-surface.c | 50 +++++++++++++++++++++++++++---------
+ src/cairo-pdf-surface.c | 31 +++++++---------------
+ 3 files changed, 50 insertions(+), 34 deletions(-)
+
+commit 06f0cc81d227a571e011e83cc192050a34d6ea13
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Sep 25 10:29:27 2008 +0100
+
+ Add a macro to determine whether a status is a fatal error.
+
+ In a few places we need to check whether we have a fatal error or an
+ internal return code, so provide a utility macro to centralise the check.
+
+ src/cairo.c | 3 +--
+ src/cairoint.h | 3 +++
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+commit ba18d57339dbedbbdb7f3ca35b06ce6b5dbcd972
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu Sep 25 09:39:41 2008 +0100
+
+ [pdf] Propagate status
+
+ Check and return a few forgotten error codes from static functions.
+
+ src/cairo-pdf-operators.c | 14 +++++++++++---
+ src/cairo-pdf-surface.c | 6 +++++-
+ 2 files changed, 16 insertions(+), 4 deletions(-)
+
+commit 907f550a1b13b0a388f9ff22663911d4aabbe2d8
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Fri Sep 26 20:26:55 2008 +0930
+
+ Fix bitmap-font XFAIL
+
+ Images in PDF are scaled to a unit square. In PS we set the
+ ImageMatrix to do the same. When the image is painted we scale the
+ graphics state to paint the image at the right size. In the case of
+ Type 3 fonts consisting of bitmap images we want to paint the images
+ at their original size so we scale the graphics state by the image
+ width and height.
+
+ The bug was that we were scaling by the width/height in the glyph
+ metrics. For non rotated fonts this worked. However for rotated fonts
+ the width/height of the glyph images may be larger than the
+ width/height in the glyph metrics. This resulted in a Type 3 font
+ where the glyph images were scaled slightly smaller than they should
+ have been.
+
+ src/cairo-type3-glyph-surface.c | 10 +++-------
+ test/Makefile.am | 1 -
+ test/bitmap-font-pdf-argb32-ref.png | Bin 1064 -> 0 bytes
+ 3 files changed, 3 insertions(+), 8 deletions(-)
+
+commit f8542dc9dd4dd0685f68381f21fa72dbddd8d682
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Sep 25 19:08:24 2008 -0400
+
+ [twin-font] Clean up font data by joining lines and closing paths
+
+ Two changes here:
+
+ * Replace move_to;line_to;move_to;line_to sequences with
+ move_to;line_to;line_to when feasible.
+
+ * Close paths for round glyphs.
+
+ Both improve the stroke rendering of the joint.
+
+ The first change also saves 3 bytes per joint (33 such joints).
+ Which we have just left unused for now. To reclaim them one need
+ to update the charset table. Something for a lazy Sunday afternoon
+ scripting task.
+
+ In the saving department, we can save further by:
+
+ - Getting rid of the left/ascent/descent values as we compute
+ glyph bounding box automatically. Then we can liberally use
+ the right value to adjust glyph advance width. Saves three
+ bytes per glyph (there's 96 glyphs in the font).
+
+ - First operation is always a move_to. So we can remove the 'm'
+ for that. Ugly though.
+
+ And the charset has zeros for the first 32 entries. Can get rid of
+ that too at the expense of handling it in the code...
+
+ In total, combining the above we can save some 500 bytes. The font
+ currently takes about 3.7kb.
+
+ src/cairo-font-face-twin-data.c | 154 ++++++++++++++++++++--------------------
+ src/cairo-font-face-twin.c | 18 +++--
+ 2 files changed, 91 insertions(+), 81 deletions(-)
+
+commit d5a998387bcee6569d33375d592190f480f12712
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Sep 25 04:27:11 2008 -0400
+
+ Add an internal font face
+
+ The font data and rendering is adapted from Keith Packard's Twin
+ window system. The hinting stuff is not ported yet, but hey, it renders!
+
+ The implementation uses user fonts, and the user font backend is modified
+ to use this font face (which we call "twin" font face internally) when
+ a toy font is needed.
+
+ The font face layer is then modified to use this font if:
+
+ - The toy font face "cairo" is asked for, or
+
+ - No native font backend is available, or
+
+ - The preferred native font backend fails to return a font with
+ STATUS_UNSUPPORTED. No font backend does this right now but
+ the idea is to change FreeType to return it if no fonts found
+ on the system.
+
+ We also allow building with no font backends now!
+
+ The new doc/tutorial/src/twin.c file tests the twin face at various
+ sizes.
+
+ build/configure.ac.features | 26 +-
+ doc/tutorial/src/twin.c | 39 ++
+ src/Makefile.sources | 2 +
+ src/cairo-font-face-twin-data.c | 1030 +++++++++++++++++++++++++++++++++++++++
+ src/cairo-font-face-twin.c | 199 ++++++++
+ src/cairo-font-face.c | 33 +-
+ src/cairo-user-font.c | 53 +-
+ src/cairoint.h | 18 +-
+ 8 files changed, 1371 insertions(+), 29 deletions(-)
+
+commit dd7e2461ce748403e121a5de5e4e4c8890e39236
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Sep 25 16:06:19 2008 -0700
+
+ Increment cairo version to 1.8.1 after the 1.8.0 release.
+
+ cairo-version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)