diff options
Diffstat (limited to 'libs/cairo-1.16.0/ChangeLog.pre-1.10')
-rw-r--r-- | libs/cairo-1.16.0/ChangeLog.pre-1.10 | 43602 |
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(-) |