summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoïc Minier <lool@dooz.org>2009-04-14 23:42:13 +0200
committerLoïc Minier <lool@dooz.org>2009-04-14 23:42:13 +0200
commit9fd00578a0fc03b64e31b4dfdd2e3683af78e716 (patch)
tree41ecd998e0b1d80f2779b4e49f9a07e3bf9c0bb5
parentd3ca287af35987fec9f1bef044d67660200716b4 (diff)
Imported Upstream version 1.2.0
-rw-r--r--ChangeLog962
-rw-r--r--Makefile.am20
-rw-r--r--Makefile.in69
-rw-r--r--NEWS40
-rw-r--r--aclocal.m41732
-rwxr-xr-xconfigure4716
-rw-r--r--configure.in562
-rw-r--r--doc/Makefile.am4
-rw-r--r--doc/Makefile.in47
-rw-r--r--doc/public/Makefile.am53
-rw-r--r--doc/public/Makefile.in125
-rw-r--r--doc/public/cairo-sections.txt93
-rw-r--r--doc/public/html/Surfaces.html7
-rw-r--r--doc/public/html/bindings-errors.html2
-rw-r--r--doc/public/html/bindings-fonts.html4
-rw-r--r--doc/public/html/bindings-memory.html2
-rw-r--r--doc/public/html/bindings-overloading.html6
-rw-r--r--doc/public/html/bindings-path.html4
-rw-r--r--doc/public/html/bindings-patterns.html22
-rw-r--r--doc/public/html/bindings-surfaces.html6
-rw-r--r--doc/public/html/cairo-BeOS-Surfaces.html63
-rw-r--r--doc/public/html/cairo-Error-handling.html22
-rw-r--r--doc/public/html/cairo-Font-Options.html153
-rw-r--r--doc/public/html/cairo-FreeType-Fonts.html46
-rw-r--r--doc/public/html/cairo-Glitz-Surfaces.html63
-rw-r--r--doc/public/html/cairo-Image-Surfaces.html81
-rw-r--r--doc/public/html/cairo-PDF-Surfaces.html50
-rw-r--r--doc/public/html/cairo-PNG-Support.html50
-rw-r--r--doc/public/html/cairo-Paths.html233
-rw-r--r--doc/public/html/cairo-Patterns.html215
-rw-r--r--doc/public/html/cairo-PostScript-Surfaces.html79
-rw-r--r--doc/public/html/cairo-SVG-Surfaces.html79
-rw-r--r--doc/public/html/cairo-Scaled-Fonts.html144
-rw-r--r--doc/public/html/cairo-Text.html150
-rw-r--r--doc/public/html/cairo-Transformations.html108
-rw-r--r--doc/public/html/cairo-Types.html28
-rw-r--r--doc/public/html/cairo-Version-Information.html73
-rw-r--r--doc/public/html/cairo-Win32-Fonts.html46
-rw-r--r--doc/public/html/cairo-Win32-Surfaces.html34
-rw-r--r--doc/public/html/cairo-XLib-Surfaces.html118
-rw-r--r--doc/public/html/cairo-cairo-font-face-t.html79
-rw-r--r--doc/public/html/cairo-cairo-matrix-t.html138
-rw-r--r--doc/public/html/cairo-cairo-surface-t.html198
-rw-r--r--doc/public/html/cairo-cairo-t.html479
-rw-r--r--doc/public/html/cairo.devhelp245
-rw-r--r--doc/public/html/cairo.devhelp2245
-rw-r--r--doc/public/html/index.html8
-rw-r--r--doc/public/html/index.sgml239
-rw-r--r--doc/public/html/ix01.html540
-rw-r--r--doc/public/html/pt01.html2
-rw-r--r--doc/public/html/pt02.html2
-rw-r--r--doc/public/tmpl/cairo-types.sgml4
-rw-r--r--doc/public/tmpl/cairo-unused.sgml138
-rw-r--r--doc/public/tmpl/cairo-version.sgml7
-rw-r--r--doc/public/version.xml2
-rw-r--r--doc/public/xml/cairo-beos.xml52
-rw-r--r--doc/public/xml/cairo-font-options.xml107
-rw-r--r--doc/public/xml/cairo-font.xml55
-rw-r--r--doc/public/xml/cairo-ft.xml37
-rw-r--r--doc/public/xml/cairo-glitz.xml52
-rw-r--r--doc/public/xml/cairo-image.xml56
-rw-r--r--doc/public/xml/cairo-matrix.xml104
-rw-r--r--doc/public/xml/cairo-paths.xml176
-rw-r--r--doc/public/xml/cairo-pattern.xml165
-rw-r--r--doc/public/xml/cairo-pdf.xml38
-rw-r--r--doc/public/xml/cairo-png.xml34
-rw-r--r--doc/public/xml/cairo-ps.xml62
-rw-r--r--doc/public/xml/cairo-quartz.xml52
-rw-r--r--doc/public/xml/cairo-scaled-font.xml102
-rw-r--r--doc/public/xml/cairo-status.xml12
-rw-r--r--doc/public/xml/cairo-surface.xml147
-rw-r--r--doc/public/xml/cairo-svg.xml59
-rw-r--r--doc/public/xml/cairo-text.xml109
-rw-r--r--doc/public/xml/cairo-transforms.xml87
-rw-r--r--doc/public/xml/cairo-types.xml14
-rw-r--r--doc/public/xml/cairo-version.xml36
-rw-r--r--doc/public/xml/cairo-win32-fonts.xml37
-rw-r--r--doc/public/xml/cairo-win32.xml23
-rw-r--r--doc/public/xml/cairo-xcb-xrender.xml52
-rw-r--r--doc/public/xml/cairo-xcb.xml52
-rw-r--r--doc/public/xml/cairo-xlib-xrender.xml17
-rw-r--r--doc/public/xml/cairo-xlib.xml90
-rw-r--r--doc/public/xml/cairo.xml340
-rw-r--r--gtk-doc.make8
-rw-r--r--pixman/Makefile.in44
-rw-r--r--pixman/src/Makefile.in44
-rw-r--r--pixman/src/fbcompose.c9
-rw-r--r--pixman/src/pixman.h16
-rw-r--r--src/Makefile.am18
-rw-r--r--src/Makefile.in125
-rw-r--r--src/cairo-atsui-font.c2
-rw-r--r--src/cairo-backend.pc.in4
-rw-r--r--src/cairo-clip.c10
-rw-r--r--src/cairo-directfb-surface.c2175
-rw-r--r--src/cairo-features.h71
-rw-r--r--src/cairo-font-subset.c7
-rw-r--r--src/cairo-font.c2
-rw-r--r--src/cairo-ft-font.c331
-rw-r--r--src/cairo-ft-private.h3
-rw-r--r--src/cairo-gstate.c8
-rw-r--r--src/cairo-image-surface.c6
-rw-r--r--src/cairo-output-stream.c50
-rw-r--r--src/cairo-path-stroke.c76
-rw-r--r--src/cairo-pattern.c2
-rw-r--r--src/cairo-pdf-surface.c128
-rw-r--r--src/cairo-pdf-test.h4
-rw-r--r--src/cairo-ps-surface.c326
-rw-r--r--src/cairo-ps-test.h4
-rw-r--r--src/cairo-scaled-font-test.h (renamed from src/cairo-features.h.in)55
-rw-r--r--src/cairo-scaled-font.c41
-rw-r--r--src/cairo-surface-fallback.c1
-rw-r--r--src/cairo-surface.c129
-rw-r--r--src/cairo-svg-surface.c180
-rw-r--r--src/cairo-svg-test.h4
-rw-r--r--src/cairo-svg.h13
-rw-r--r--src/cairo-win32-font.c19
-rw-r--r--src/cairo-win32-surface.c3
-rw-r--r--src/cairo-xcb-surface.c87
-rw-r--r--src/cairo-xcb-xrender.h1
-rw-r--r--src/cairo-xcb.h1
-rw-r--r--src/cairo-xlib-surface.c146
-rw-r--r--src/cairo-xlib-test.h4
-rw-r--r--src/cairo-xlib.h6
-rw-r--r--src/cairo.c66
-rw-r--r--src/cairo.h41
-rw-r--r--src/cairo.pc.in2
-rw-r--r--src/cairoint.h23
-rw-r--r--test/6x13.pcfbin0 -> 5239 bytes
-rw-r--r--test/Makefile.am102
-rw-r--r--test/Makefile.in312
-rw-r--r--test/bitmap-font-ref.pngbin0 -> 552 bytes
-rw-r--r--test/bitmap-font-rgb24-ref.pngbin0 -> 513 bytes
-rw-r--r--test/bitmap-font.c106
-rw-r--r--test/cairo-test.c122
-rw-r--r--test/cairo-test.h3
-rw-r--r--test/caps-joins-alpha-svg-argb32-ref.pngbin0 -> 2454 bytes
-rw-r--r--test/caps-joins-alpha-svg-rgb24-ref.pngbin0 -> 2454 bytes
-rw-r--r--test/composite-integer-translate-over-pdf-argb32-ref.pngbin0 -> 12946 bytes
-rw-r--r--test/composite-integer-translate-over-svg-argb32-ref.pngbin0 -> 15465 bytes
-rw-r--r--test/composite-integer-translate-over-svg-rgb24-ref.pngbin0 -> 15465 bytes
-rw-r--r--test/dash-scale-ps-argb32-ref.pngbin0 -> 2950 bytes
-rw-r--r--test/dash-zero-length-ps-argb32-ref.pngbin214 -> 272 bytes
-rw-r--r--test/dash-zero-length-ref.pngbin235 -> 238 bytes
-rw-r--r--test/dash-zero-length-rgb24-ref.pngbin222 -> 218 bytes
-rw-r--r--test/dash-zero-length.c85
-rw-r--r--test/degenerate-path-ps-argb32-ref.pngbin0 -> 197 bytes
-rw-r--r--test/degenerate-path-ref.pngbin0 -> 193 bytes
-rw-r--r--test/degenerate-path-rgb24-ref.pngbin0 -> 174 bytes
-rw-r--r--test/degenerate-path.c68
-rw-r--r--test/device-offset-positive-ref.pngbin0 -> 139 bytes
-rw-r--r--test/device-offset-positive-rgb24-ref.pngbin0 -> 130 bytes
-rw-r--r--test/device-offset-positive.c88
-rw-r--r--test/device-offset-rgb24-ref.pngbin0 -> 130 bytes
-rw-r--r--test/device-offset.c2
-rw-r--r--test/fallback-resolution.c8
-rw-r--r--test/fill-and-stroke-alpha-svg-argb32-ref.pngbin0 -> 509 bytes
-rw-r--r--test/fill-and-stroke-alpha-svg-rgb24-ref.pngbin0 -> 509 bytes
-rw-r--r--test/ft-text-antialias-none-ps-argb32-ref.pngbin0 -> 335 bytes
-rw-r--r--test/ft-text-antialias-none-ref.pngbin0 -> 336 bytes
-rw-r--r--test/ft-text-antialias-none.c131
-rw-r--r--test/ft-text-vertical-layout-pdf-argb32-ref.pngbin0 -> 956 bytes
-rw-r--r--test/ft-text-vertical-layout-ps-argb32-ref.pngbin0 -> 349 bytes
-rw-r--r--test/ft-text-vertical-layout-ref.pngbin0 -> 1130 bytes
-rw-r--r--test/ft-text-vertical-layout-svg-argb32-ref.pngbin0 -> 1021 bytes
-rw-r--r--test/ft-text-vertical-layout-svg-rgb24-ref.pngbin0 -> 1098 bytes
-rw-r--r--test/ft-text-vertical-layout.c5
-rw-r--r--test/glyph-cache-pressure-pdf-argb32-ref.pngbin0 -> 2879 bytes
-rw-r--r--test/glyph-cache-pressure-ps-argb32-ref.pngbin0 -> 591 bytes
-rw-r--r--test/glyph-cache-pressure-ref.pngbin0 -> 3223 bytes
-rw-r--r--test/glyph-cache-pressure-svg-argb32-ref.pngbin0 -> 3635 bytes
-rw-r--r--test/glyph-cache-pressure-svg-rgb24-ref.pngbin0 -> 3165 bytes
-rw-r--r--test/glyph-cache-pressure.c96
-rw-r--r--test/leaky-dash.c3
-rw-r--r--test/linear-gradient-svg-argb32-ref.pngbin0 -> 1000 bytes
-rw-r--r--test/linear-gradient-svg-rgb24-ref.pngbin0 -> 1000 bytes
-rw-r--r--test/mask-beos-rgb24-ref.pngbin0 -> 71028 bytes
-rw-r--r--test/mask-beos_bitmap-argb32-ref.pngbin0 -> 87641 bytes
-rw-r--r--test/mask-beos_bitmap-rgb24-ref.pngbin0 -> 71028 bytes
-rw-r--r--test/mask-ctm-svg-argb32-ref.pngbin0 -> 108 bytes
-rw-r--r--test/mask-ctm-svg-rgb24-ref.pngbin0 -> 118 bytes
-rw-r--r--test/mask-surface-ctm-svg-argb32-ref.pngbin0 -> 108 bytes
-rw-r--r--test/mask-surface-ctm-svg-rgb24-ref.pngbin0 -> 118 bytes
-rw-r--r--test/mask-svg-argb32-ref.pngbin0 -> 87728 bytes
-rw-r--r--test/mask-svg-rgb24-ref.pngbin0 -> 81753 bytes
-rw-r--r--test/paint-source-alpha-pdf-argb32-ref.pngbin0 -> 475 bytes
-rw-r--r--test/paint-source-alpha-svg-argb32-ref.pngbin0 -> 505 bytes
-rw-r--r--test/paint-source-alpha-svg-rgb24-ref.pngbin0 -> 505 bytes
-rw-r--r--test/paint-with-alpha-svg-argb32-ref.pngbin0 -> 516 bytes
-rw-r--r--test/paint-with-alpha-svg-rgb24-ref.pngbin0 -> 516 bytes
-rw-r--r--test/pixman-rotate-svg-argb32-ref.pngbin0 -> 258 bytes
-rw-r--r--test/pixman-rotate-svg-rgb24-ref.pngbin0 -> 358 bytes
-rw-r--r--test/push-group-rgb24-ref.pngbin0 -> 2840 bytes
-rw-r--r--test/push-group-svg-argb32-ref.pngbin0 -> 2935 bytes
-rw-r--r--test/push-group-svg-rgb24-ref.pngbin0 -> 2887 bytes
-rw-r--r--test/scale-source-surface-paint-pdf-argb32-ref.pngbin152 -> 182 bytes
-rw-r--r--test/scale-source-surface-paint-svg-argb32-ref.pngbin0 -> 182 bytes
-rw-r--r--test/scale-source-surface-paint-svg-rgb24-ref.pngbin0 -> 192 bytes
-rw-r--r--test/select-font-face-pdf-argb32-ref.pngbin0 -> 2237 bytes
-rw-r--r--test/select-font-face-ps-argb32-ref.pngbin0 -> 481 bytes
-rw-r--r--test/select-font-face-svg-argb32-ref.pngbin0 -> 3064 bytes
-rw-r--r--test/select-font-face-svg-rgb24-ref.pngbin0 -> 3064 bytes
-rw-r--r--test/set-source-beos-rgb24-ref.pngbin0 -> 124 bytes
-rw-r--r--test/set-source-beos_bitmap-rgb24-ref.pngbin0 -> 124 bytes
-rw-r--r--test/set-source-svg-argb32-ref.pngbin0 -> 104 bytes
-rw-r--r--test/set-source-svg-rgb24-ref.pngbin0 -> 104 bytes
-rw-r--r--test/show-text-current-point-svg-argb32-ref.pngbin0 -> 4236 bytes
-rw-r--r--test/show-text-current-point-svg-rgb24-ref.pngbin0 -> 2398 bytes
-rw-r--r--test/text-antialias-gray-svg-argb32-ref.pngbin0 -> 1077 bytes
-rw-r--r--test/text-antialias-gray-svg-rgb24-ref.pngbin0 -> 1033 bytes
-rw-r--r--test/text-antialias-none-svg-argb32-ref.pngbin0 -> 1077 bytes
-rw-r--r--test/text-antialias-none-svg-rgb24-ref.pngbin0 -> 1033 bytes
-rw-r--r--test/text-antialias-subpixel-svg-argb32-ref.pngbin0 -> 1077 bytes
-rw-r--r--test/text-antialias-subpixel-svg-rgb24-ref.pngbin0 -> 1033 bytes
-rw-r--r--test/text-pattern-pdf-argb32-ref.pngbin0 -> 1632 bytes
-rw-r--r--test/text-pattern-ps-argb32-ref.pngbin0 -> 1681 bytes
-rw-r--r--test/text-pattern-svg-argb32-ref.pngbin0 -> 1708 bytes
-rw-r--r--test/text-pattern-svg-rgb24-ref.pngbin0 -> 1563 bytes
-rw-r--r--test/trap-clip-beos-rgb24-ref.pngbin0 -> 63088 bytes
-rw-r--r--test/trap-clip-beos_bitmap-rgb24-ref.pngbin0 -> 63088 bytes
-rw-r--r--test/trap-clip-svg-argb32-ref.pngbin0 -> 71728 bytes
-rw-r--r--test/trap-clip-svg-rgb24-ref.pngbin0 -> 73082 bytes
-rw-r--r--test/unantialiased-shapes-svg-argb32-ref.pngbin0 -> 19689 bytes
-rw-r--r--test/unantialiased-shapes-svg-rgb24-ref.pngbin0 -> 19689 bytes
-rw-r--r--test/xlib-surface.c9
224 files changed, 13657 insertions, 6582 deletions
diff --git a/ChangeLog b/ChangeLog
index 376c95d..bfabdb9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,888 @@
+commit 61404bd5022b913f58ecda8dc9e8922b4fc6f80b
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 27 15:44:52 2006 +0200
+
+ Update version to 1.2.0 and add notes to NEWS file.
+
+ Also update libtool version information to 11:0:9.
+
+commit cea70741e851993fe181a76872fb97549d0769d5
+Author: Carl Worth <cworth@cworth.org>
+Date: Sat Jul 1 03:24:21 2006 +0200
+
+ Add src/cairo-features.h and test/*.ps to CLEANFILES
+
+commit 55b5fedbc1df32e4dc9d1fccf40e12e14f7b6cd0
+Author: Carl Worth <cworth@cworth.org>
+Date: Sat Jul 1 02:54:22 2006 +0200
+
+ Add many references images (and a font) missing from EXTRA_DIST
+
+commit 3d4a8fd741df328bd969454791163bc945d3ad8b
+Author: Carl Worth <cworth@cworth.org>
+Date: Sat Jul 1 02:53:26 2006 +0200
+
+ Don't remove INSTALL during maintainer-clean
+
+commit cfddf93afb692819548adb85c5b75f60be7e7349
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Jul 1 01:55:12 2006 +0200
+
+ Make CAIRO_EXTEND_REFLECT and CAIRO_EXTEND_PAD not crash on surface
+ patterns,
+
+ but return error.
+
+commit 01b1f3572c3c15a08dd6f32788106c0e42fd2436
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 30 22:01:24 2006 +0200
+
+ Detect and report crashes in tests.
+
+commit 19c4700101bfce7d73a50017021b4ec198ddd783
+Author: Carl Worth <cworth@cworth.org>
+Date: Sat Jul 1 01:05:30 2006 +0200
+
+ Even _more_ valgrind suppresions for Xrm (XrmGetFileDatabase this
+ time)
+
+commit 84b06eed4e53eb34b0ec378216fa246286998acd
+Author: Carl Worth <cworth@cworth.org>
+Date: Sat Jul 1 00:47:59 2006 +0200
+
+ SVG: Fix leak in _cairo_svg_surface_mask
+
+commit 35ec5747ca5eb8a63ec334d61eb13357b4aa3802
+Author: Carl Worth <cworth@cworth.org>
+Date: Sat Jul 1 00:38:06 2006 +0200
+
+ Add yet another XrmGetStringDatabase valgrind suppression.
+
+commit 80cb0d5ba1e3622b4b71639cf03e7dc277cbb457
+Author: Carl Worth <cworth@cworth.org>
+Date: Sat Jul 1 00:37:44 2006 +0200
+
+ Fix some leaks in the test suite itself.
+
+commit 14e7883fae58e51c2deab5b97c9a405c5dbb3aeb
+Author: Carl Worth <cworth@cworth.org>
+Date: Sat Jul 1 00:00:43 2006 +0200
+
+ Fix a memory leak by removing accidentally duplicated code.
+
+commit 8919b6b3243db5db59a73f804854364a00a8586d
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 30 23:24:23 2006 +0200
+
+ Add valgrind suppressions for pthread initialization still
+ reachable/possibly lost memory
+
+commit 98cc1651cf19699a0c90e8e2e7f2c2da2ae83760
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 30 23:21:06 2006 +0200
+
+ Add valgrind suppressions for still-reachable memory from XGetDefault
+ and XrmGetStringDatabase
+
+commit f6b10a6aabb121e1a4ca092ca175aad39b3c828d
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 30 23:06:56 2006 +0200
+
+ Add another suppression due to mysterious occurences in libc
+
+commit c6c943f3cfefa535e6c2da6adcac15507a8f0952
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 30 23:00:39 2006 +0200
+
+ ps: Fix to not walk off the end of the data array.
+
+ This fixes a bug recently introduced with the special case for the
+ ~> sequence.
+
+commit 0853ccd05314d618afd0d640a33f0a744842a0d2
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 30 22:58:36 2006 +0200
+
+ Add new libz/libpng suppressions.
+
+ It would appear we have to keep updating these for new library
+ versions.
+
+commit ee75e1e6853ada5c4218788148e2f5a09669a2b3
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 30 17:07:42 2006 +0200
+
+ Add ps-specific reference image for test/degenerate-path
+
+commit e0db22c6bc40d4576d9c1131d3192f1df3b942ca
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 30 16:54:16 2006 +0200
+
+ ps: Fix degenerate-path test failure.
+
+ This is as simple as simply not emitting any degenerate sub-paths
+ when the cap
+ style is CAIRO_LINE_CAP_SQUARE or CAIRO_LINE_CAP_BUTT.
+
+commit 057c0abeea1ee80c7156be5a1c15594765d88fe0
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 30 16:07:11 2006 +0200
+
+ ps: Fix transformation of source surfaces.
+
+ This makes the following four tests pass, (which were previously
+ failing on the ps backend).
+
+ move-to-show-surface
+ scale-source-surface-paint
+ source-surface-scale-paint
+ translate-show-surface
+
+commit 54ce585817d78ffeeb0ba6b03b868e63b9552cb8
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 23:34:29 2006 +0200
+
+ Update PDF-specific reference image for scale-source-surface-paint
+
+commit a6fc321d1793e97e4601429a98c36bed9af365a0
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 23:28:48 2006 +0200
+
+ Add PDF-specific reference image for paint-source-alpha
+
+commit aaef92f8307fedd864fca66054b06c8bfe7ae40d
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 23:27:05 2006 +0200
+
+ Add PDF-specific reference image for composite-integer-translate-over
+
+commit 45ebf2d1f3c6cb4588c3bebf6acf1818eb723515
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 30 01:45:47 2006 +0200
+
+ Fix an oops.
+
+commit e5d18d7696eb9a48369b89517738dbaa101106d7
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 30 01:44:55 2006 +0200
+
+ Use $no_x in configure.in.
+
+commit 6c3deb0be1b9d6db0104af02fb193849a8329133
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 30 01:33:14 2006 +0200
+
+ Minor doc syntax fixes.
+
+commit 8860263c6a18a0b196e2b462a538dfc166fbea04
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 30 01:29:54 2006 +0200
+
+ Remove CAIRO_SVG_VERSION_LAST from public header file.
+
+commit 6672529541e01b0da53fff279cb1f8030c931ffb
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 30 00:58:01 2006 +0200
+
+ Hook some more symbols into docs.
+
+commit 66436d132772af627447a929ced3a8a18cc6915f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 30 00:46:48 2006 +0200
+
+ Update lots of docs.
+
+commit de939f52061ba9a1c739c193e3e4f549668855cc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jun 29 18:54:02 2006 +0200
+
+ Require gtk-doc 1.6, and make it ignore cairo_public and cairo_private
+
+ decorators.
+
+commit 647ca37ca3d4b1954f7400deeeaaf245b5c90e69
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jun 29 18:47:35 2006 +0200
+
+ Mark enum additions as "Since 1.2" too.
+
+commit 320ce67d630e4aac1f0007982aef27c831b04b66
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jun 29 18:36:53 2006 +0200
+
+ Add "Since: 1.2" to docs for most new API functions.
+
+commit bd92eb7f3c58fdcbe05f67b9a879798246c616bc
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 19:47:26 2006 +0200
+
+ Move device_transform of path to before floating->fixed conversion.
+
+ This is an attempt to fix the following bug:
+
+ http://bugzilla.gnome.org/show_bug.cgi?id=332266
+
+ With the recent rewrite of the device-offset code, which pushed things
+ from the gstate to the surface layer, the 16-bit limitations on
+ coordinates
+ which previously applied to device space only, have lately been
+ applying to
+ user space. This commit moves the device_transform back up above
+ the conversion
+ from floating-point to fixed-point values so that once again the
+ limitation
+ only applies to device space.
+
+commit 29caf8915f822778f0e59add7d364a03bcdb8327
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jun 29 16:09:46 2006 +0200
+
+ Fix support for non-pkg-config cflags and libs (needed for supporting
+ freetype-config)
+
+commit 195b1142e7a1652e0f65cfd822bba7ea8b6ba505
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jun 29 15:22:44 2006 +0200
+
+ Prefix "cairo_*_test_*" symbols with underscore.
+
+commit f26da6c464c60ab2ed87175ab0a9b81e3cf363fb
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jun 29 12:32:58 2006 +0200
+
+ Remove cairo_public from source files.
+
+commit 8effd25c1b05607ff6501821f1d80745677d8e72
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 06:25:24 2006 +0200
+
+ Update PDF and PS reference images for test/text-pattern.
+
+commit a64b946ee0512d85d3c790c67aad8a882c5c3533
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 06:24:44 2006 +0200
+
+ Mark test/leaky-dash as an expected failure.
+
+commit 734e10709f5c62c0b64e51a03df8e109e7eebe0d
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 06:12:48 2006 +0200
+
+ Add several more stress tests to test/dash-zero-length
+
+commit 8aa306caac99ebe074a6cde8b424b1780cafefee
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 05:13:37 2006 +0200
+
+ PS: Fix for dash-zero-length
+
+commit 7285499700a4f0f4bb95f003d0c730246bf3eabd
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 05:07:51 2006 +0200
+
+ Squelch some bogus compiler warnings about possibly uninitialized
+ values.
+
+commit 20e3a99bbaa2624ecad7b505158edc8dce706ea8
+Author: Keith Packard <keithp@neko.keithp.com>
+Date: Thu Jun 29 04:10:35 2006 +0200
+
+ Skip TrueType font output for PS/PDF until it handles vertical layout.
+
+ The TrueType font subsetting code fails to emit VHEA/VMTX headers
+ for the
+ font, so WMode 1 doesn't work to switch to vertical metrics. Added
+ a bug
+ about this, and changed the PS/PDF output code to just use Type3
+ in this
+ case until the bug is fixed. Updated the reference images to match the
+ output for PDF/PS backends for the vertical font check.
+
+commit 2e2799d4f921b22030eb63585dcec2ed4503fd5b
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 02:41:46 2006 +0200
+
+ Ignore degenerate-path
+
+commit c90cc4e33f1549cde1d7a6a94599dbb3de84d387
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 29 02:41:17 2006 +0200
+
+ Update reference images for ft-text-vertical-layout
+
+commit 92021d169fea48eed9349e5821353f976df56be1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 28 04:14:07 2006 +0200
+
+ Make docs not build by "make all", but by "make doc", "make dist",
+ and "make
+ install".
+
+commit 0d073c2e86ced3a94ef76e7e4c2a00f8fb76efb1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 28 03:25:08 2006 +0200
+
+ Use $RELEASE_OR_SNAPSHOT to determine upload directory.
+ Turn distcheck on release-check on again, as CAIRO_TEST_TARGET=""
+ can be used
+ to disable all failures now.
+
+commit b37562868d2254d2dbd93a8808d32f0a0d769195
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 28 03:16:33 2006 +0200
+
+ Ignore *.bak
+
+commit 9fe0ea16d344d5b9bed1cd7f6046e378ce76ae1f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 28 03:15:41 2006 +0200
+
+ Update list of ignored header files.
+
+commit ddb81d3cade326fecfe1ed05037542e958e734b5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Jun 27 16:55:53 2006 +0200
+
+ Report Xlib Xrender status.
+
+commit 34f24d2aad90d4a737b513ac6858ed879316e132
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 27 15:38:45 2006 +0200
+
+ ROADMAP: Note that degenerate path stuff has been pushed out now.
+
+commit 988a28e259924e7ce50f4d3119bcef7a3b18c931
+Merge: 973c9ab... ce2b9e1...
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 27 15:37:58 2006 +0200
+
+ Merge branch 'degenerate-path' into cairo
+
+commit 973c9abd53df4e6d6583de045514e003827bc7b9
+Author: Jeff Muizelaar <jeff@infidigm.net>
+Date: Tue Jun 27 15:33:47 2006 +0200
+
+ PS: Workaround to avoid splitting final ~> terminating sequence.
+
+commit 5d60ceb9b85a6b39865bc760ef7467c10f2ec7b6
+Author: Michael Emmel <memmel@debian.localdomain>
+Date: Mon Jun 26 22:27:14 2006 -0700
+
+ Added major updates fixes and enhancements by
+ Claudio Ciccani klan@directfb.org
+ Almost a full rewrite
+
+commit 289e8b8af30ae3f00e7649109a933a673f346b37
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 26 12:26:15 2006 +0200
+
+ Remove config.cache in make distclean.
+
+commit 73a0e792b4115a1012c5f618650a6265377cc6e5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 26 12:21:18 2006 +0200
+
+ More configure foo fixes for .pc files.
+
+commit 5ba974ea0b7974e8c985d7414fcf6a8a5e415c12
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 26 11:54:04 2006 +0200
+
+ Fix circular dependency in cairo.pc and cairo-xlib.pc.
+
+commit 53a478d233e7b8e02ecbc93bf102fb4dc29e0d57
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Jun 25 17:43:27 2006 +0200
+
+ Rewrite configure caching.
+
+commit ce2b9e1b5cc816e4a6a4345daab539cc58e2d043
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 16:57:59 2006 +0200
+
+ Prefer TRUE and FALSE over 1 and 0 for assigning cairo_bool_t values
+
+commit 58a60ed9fdd53a4cf29d33624b866bf6ccd637ae
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 16:53:13 2006 +0200
+
+ Prefer sub-path over subpath in documentation.
+
+commit 773cb6475b68199e5ef0839cd22c9f3445d7d5d3
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 16:51:25 2006 +0200
+
+ Prefer sub_path over subpath in identifiers.
+
+commit 8f0dd658b1fff3f4e9225b8fb23884f0bbcdb822
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 16:49:45 2006 +0200
+
+ Add documentation for how degenerate segments and sub-paths are
+ treated.
+
+commit 15caa88c6416ce8e0c4c026e76f84ccaf7a3c840
+Author: Jeff Muizelaar <jeff@infidigm.net>
+Date: Sun Jun 25 16:12:38 2006 +0200
+
+ Initial support for degenerate-path stroking
+
+ This follows the PDF and SVG specifications which only draw degenerate
+ paths when
+ round caps are in effect.
+
+ With this commit, the degenerate-path test passes with the image,
+ xlib, and pdf
+ backends, (but still fails with ps and svg backends).
+
+commit 20df4af12617ad6459dcb234dfd98954282710f5
+Author: Jeff Muizelaar <jeff@infidigm.net>
+Date: Sun Jun 25 15:48:48 2006 +0200
+
+ Add new test case degenerate-path to show current 'bug'
+
+commit e747bbd350e9630c18849dd7975036d1260264be
+Author: Torsten Schoenfeld <kaffeetisch@gmx.de>
+Date: Sun Jun 25 15:07:19 2006 +0200
+
+ Fix build after recent pixman.h change.
+
+ The recent pixman.h change to use configure-generated defines
+ accidentally broke the build. Pulling in config.h fixes it.
+
+commit e32138aa93ba37d760af87294fbb47046bfe6dec
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 14:42:27 2006 +0200
+
+ Prefer using configure-generated variable for finding stdint.h
+ or similar.
+
+ We were doing something more complicated originally, and that
+ was because
+ pixman.h was an installed public header file at one time. But
+ that hasn't
+ been the case for quite a long time.
+
+commit 14ffde038038deda66973856a5f3b9442c8d3c7d
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 12:16:36 2006 +0200
+
+ ROADMAP: Note that bug 6759 is now fixed.
+
+commit d2ea21b4aef8ab5338718ddd6ccdff35609e9f6c
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 11:48:32 2006 +0200
+
+ ft-text-antialias-none: Update reference images and igore list.
+
+ Add a new ps reference image due to slightly different
+ rasterization. Also
+ update pdf and svg backends to ignore this test since those backends
+ do not
+ support ANTIALIAS_NONE.
+
+ Note in ROADMAP that bug 6759 is fixed now.
+
+commit 7e0e503fba80767dc68556054e937123fdcea359
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 11:32:36 2006 +0200
+
+ xlib: Fix failure path to do cache thawing cleanup.
+
+commit 4bff3d559e1d931cd47701f11765b1a574a7eac4
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 11:28:03 2006 +0200
+
+ ROADMAP: Note that cairo_xlib_surface_get_width/height exist now.
+
+commit ddead8e0612162e121868ba561498b8565112f8b
+Author: Robert O'Callahan <rocallahan@novell.com>
+Date: Wed Jun 21 15:47:03 2006 +1200
+
+ Surface size getters for xlib
+
+ When accessing the underlying drawable etc of an xlib surface, it is
+ also helpful to be able to get the width and height without a server
+ round trip. This patch provides those functions.
+
+commit 113bef399a2ca27f4c49a3d917ac1e6075449616
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 11:20:50 2006 +0200
+
+ ROADMAP: Note that bug 6617 might already be fixed.
+
+commit 9ab5678e53219f95de7183e300bba3edac7fe72d
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 10:02:10 2006 +0200
+
+ Fix bug 7268: Fix coordinate space for _cairo_surface_get_extents
+
+ Previously this function was attempting to return values in surface
+ space, (but even then it was doing it wrong). However, all callers
+ actually expect values in backend space. Fixing this cleans up bug
+ 7268 quite nicely.
+
+commit 95355c854f1894e7bbcd370f3bb0d00223c077b6
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 02:25:16 2006 +0200
+
+ ROADMAP: Note that SVG bitmap glyphs now work. Move some bugs to a
+ punt list.
+
+commit 4c7074ceb42c50fc55929291330658f693c66bc7
+Author: Carl Worth <cworth@cworth.org>
+Date: Sun Jun 25 02:23:14 2006 +0200
+
+ Remove comment which had been incorrectly copied
+
+commit 3a313070e5b5a1168225dec008f63ff68ed20559
+Author: Emmanuel Pacaud <emmanuel.pacaud@free.fr>
+Date: Fri Jun 23 20:13:58 2006 +0200
+
+ SVG: fix bit order for bitmap font data and use a group with matrix
+
+ transformation instead of applying the same matrix on each rect
+ coordinates.
+
+commit 8b6fcaf8ff17786ab5394a4aa2d6289f5d9601c2
+Author: Jonathon Jongsma <jonathon.jongsma@gmail.com>
+Date: Fri Jun 23 08:29:17 2006 -0500
+
+ Fix a minor documentation typo in cairo_pop_group_to_source
+
+commit bfa133f9e6dbe511ab696cb1d4b1cea59451f1c1
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 22 22:39:39 2006 -0700
+
+ ROADMAP: Note that bug 6955 is fixed.
+
+commit 5488c3b462260126a000928aa599684d7b1041e7
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 22 22:38:17 2006 -0700
+
+ xlib: Prefer BAIL over FAIL when the cleanup code is also used in
+ succesful cases.
+
+commit 7e457cb4c1e69670f27e3e8e134a9e32a8f75788
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 22 22:32:57 2006 -0700
+
+ Bug 6955: Fix by adding freeze/thaw around scaled_font glyph cache
+ in _cairo_xlib_surface_show_glyphs
+
+commit 6a58658b73924fa6897bd1e290d754ce1df44b0d
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 22 22:05:20 2006 -0700
+
+ Add test/glyph-cache-pressure to demonstrate xlib failure (bug 6955)
+
+commit 333ac8f4d9ccc356cb91e7118ed56bfc07e78c2f
+Author: Carl Worth <cworth@cworth.org>
+Date: Thu Jun 22 22:03:06 2006 -0700
+
+ Add 'private' cairo_scaled_font_test_set_max_glyphs_cached_per_font
+ for testing
+
+commit d5197c1e0defc1018320efcb461977557a7d5d6e
+Author: Emmanuel Pacaud <emmanuel.pacaud@free.fr>
+Date: Thu Jun 22 22:32:47 2006 +0200
+
+ SVG: dumb implementation of bitmap glyphs.
+
+ Bitmap glyphs are emited as tiny svg rectangles. An improvement
+ would be
+ to calculate glyph outline from bitmap data.
+
+commit cd5eb70e4e45962c88b4bfe13de6f26211601e55
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Jun 21 22:36:27 2006 -0700
+
+ ROADMAP: Update with 1.1.10 notes as well as new blockers and fixes
+
+commit 25e0acfee0ae790329c2f558ce6a9f997eeace6d
+Author: Carl Worth <cworth@cworth.org>
+Date: Wed Jun 21 17:23:35 2006 -0700
+
+ PDF: Fix display of bitmapped glyphs (bitmap-font test now passes)
+
+commit b4720ca51d4b1de02d6beb898b7d04a33e1d99fd
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 20 23:12:58 2006 -0700
+
+ PDF: Push glyph stream creation down from emit glyph to outline/bitmap
+ variants
+
+commit 83a8a50735746a4591c3bcc1aaa46fb7a0f87224
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 21 19:57:40 2006 -0400
+
+ Pass --cache-file=config.cache and --disable-static to configure from
+ autogen.sh.
+
+commit f5ee9557c3dc7bc72098cd08698f147ed685ccb2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 21 07:22:50 2006 -0400
+
+ Removed excess mkdir.
+
+commit f71313d427565cb37a25393ff8a5a2ffdcfb798b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 21 07:00:34 2006 -0400
+
+ Minor refinements, mostly to configure.in.
+
+commit c88bab66ab258e0bbd2cb80eaf4edc9e5f1ad6f0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jun 21 06:25:01 2006 -0400
+
+ Make configure generate cairo-features.h. Generate AC_DEFINE and
+ AM_CONDITIONALS
+
+ for all CAIRO_HAS_* in CAIRO_BACKEND_ENABLE.
+
+commit c6c1da2a2346de6c1df82fab2e7bafec7f37db50
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 20 17:49:05 2006 -0700
+
+ PS: Add support for emitting bitmapped glyphs into type3 fonts.
+
+ The bitmap-font now passes when run against the ps backend.
+
+commit cca08d9bce1647444acdb78aedb6ad6967c07661
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 20 17:48:06 2006 -0700
+
+ New bitmap-font test with bundled 6x13 font.
+
+ The 6x13 font is a public-domain terminal font from the X
+ distribution.
+
+commit ab8ae66f9d5c92af96b4a530957537ec7d33c128
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 20 17:15:07 2006 -0700
+
+ SVG: Fix to not crash on bitmapped glyphs
+
+ This is similar to a change that was recently made to the PDF and
+ PS backends.
+ Bitmap glyphs are not yet drawn correctly, (drawn as filled rectangles
+ instead),
+ but the crash is at least eliminated.
+
+commit 2f43a79e4e87341dd0df49fc6c11fd17a21350c2
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 20 11:28:23 2006 -0700
+
+ ft-font: Use compile-time test (WORDS_BIGENDIAN) rather than run-time
+ function to test endian-ness.
+
+commit b806b50cfe890b534dbf86f0b4d2cc0c22b880ff
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 20 10:59:22 2006 -0700
+
+ Add new CAIRO_BITSWAP8 macro for swapping the bits within a byte.
+
+ This uses a technique devised by Sean Anderson, July 13, 2001 as found
+ at
+ http://graphics.stanford.edu/~seander/bithacks.html#ReverseByteWith32Bits
+ This technique uses 3 multiplies rather than just shifts and masks,
+ but
+ performance seems comparable to the old approach, (but more
+ significantly,
+ the new approach is easier to implement as a macro, and I plan
+ to start
+ using this bit-swapping elsewhere very soon).
+
+commit 3465ae1c58a87382c33117f6c5dec52403c9694e
+Author: Carl Worth <cworth@cworth.org>
+Date: Tue Jun 20 10:43:53 2006 -0700
+
+ output-stream: Support %X in addition to %x
+
+commit bb11980f14560ea16174c6531678b9b7a623f813
+Author: Kristian Høgsberg <krh@redhat.com>
+Date: Tue Jun 20 02:16:17 2006 -0400
+
+ Add 'x' case to printf switch so we actually implement %02x.
+
+commit 651b2a9ab0bdb5f8fa952e47e95c21d2f530950d
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Jun 19 21:16:03 2006 -0700
+
+ test/fallback-resolution: Remove extra call to cairo_show_page
+
+commit 7026e24548fd0e4fbfb2bd3af7cffab8eab88d44
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Jun 19 21:15:26 2006 -0700
+
+ PS PDF: Drop unused hex_digit functions, (now that output stream
+ supports %02x)
+
+commit cd5e08a9fee70b1ed2252d24e04db806769babcd
+Author: Kristian Høgsberg <krh@redhat.com>
+Date: Mon Jun 19 22:42:32 2006 -0400
+
+ Implement 0-padding and field width for _cairo_output_stream_printf().
+
+ Use it instead of %c%c in PS and PDF surfaces.
+
+commit a3f2d92f11a1ab4d30dd0e33a0cd5ee19495eeb1
+Author: Carl Worth <cworth@cworth.org>
+Date: Mon Jun 19 11:03:32 2006 -0700
+
+ PDF: Don't fallback due to CAIRO_ANTIALIAS_NONE
+
+ This was a gratuitous thing that was causing excessive fallbacks in
+ mozilla printing to PDF. The only reason it was ever there was to
+ get some of the tests that rely on CAIRO_ANTIALIAS_NONE to pass.
+ Instead we now simply don't run those tests against the PDF backend.
+
+commit 72e7667ed904b93475d7e4540778c498aa781cdf
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 19 04:29:49 2006 -0400
+
+ Replace noinst_ with check_, such that nothing is built with
+ default make
+ target.
+
+commit fdc109dc5902f362bfec2f90b5d357c2d16b96d6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 19 04:17:19 2006 -0400
+
+ Add create-for-stream.* to .gitignore.
+
+commit d12afb7eac80d66cc140721031940feddc2586c6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 19 04:10:56 2006 -0400
+
+ Update .gitignore
+
+commit a28557f55a49ac812e69b59fe803fd0cba10d10b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 19 04:10:19 2006 -0400
+
+ Reference images for new test...
+
+commit 2f59dd4a5e9f4ce3853b055620bbada4526e3f58
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Mon Jun 19 15:52:36 2006 +0800
+
+ Turn hinting off to get consistent results for ft-text-vertical-layout
+ test case.
+
+commit f5b6fc139c8e455b27df52139578d2546a826e6d
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Mon Jun 19 15:51:43 2006 +0800
+
+ Turn hinting off to get consistent results for ft-text-antialias-none
+ test case.
+
+commit ddc01a3c5530aa9480eb19aded7ba08f97529440
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 19 03:22:53 2006 -0400
+
+ Correct comment about expected result in device-offset-positive test.
+
+commit 70d3719ec9d0dbe7e37f3ad3c5cfbe596be4f409
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jun 19 03:13:56 2006 -0400
+
+ Add test device-offset-positive.
+
+commit fde08da55f293cd40927c8a1d41db0e478785e8e
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Mon Jun 19 14:49:46 2006 +0800
+
+ freetype: Don't ignore antialias in some cases.
+
+commit c9de7b1286309fc2da1a5ea798674b528aa2eab6
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Mon Jun 19 14:17:24 2006 +0800
+
+ freetype: Compare all elements in ft_options but not use memcmp.
+
+commit e4736fcf76855c7ca5c9e8b922622dfffe08e4e1
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Sun Jun 18 23:50:51 2006 +0800
+
+ freetype: Clear target mode correctly in _cairo_ft_options_merge.
+
+commit 1e0e56e0223116bf48e5acd4a974f16fae824df2
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Sun Jun 18 17:30:39 2006 +0800
+
+ freetype: Fix warnings in _decompose_glyph_outline.
+
+commit 117b062756de9fc99f635b3e712ea3e258c53165
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Sun Jun 18 17:26:19 2006 +0800
+
+ freetype: cleanup _cairo_ft_scaled_glyph_init.
+
+commit 54b4a2fccdcaa4fbc126818c7cb7b96a1a8acf35
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Sun Jun 18 17:20:38 2006 +0800
+
+ freetype: Respect configurations in font pattern.
+
+ cairo freetype font backend doesn't handle fontconfig configurations
+ quiet well, it always renders glyphs using configurations in
+ scaled_font->base.options which usually isn't corresponding to
+ font pattern used to create the font face and the load flags. As a
+ result, turning antialias off with fontconfig doesn't work with cairo
+ HEAD, subpixel order either.
+
+ This commit make cairo respect configurations in font pattern
+ and handle
+ load flags correctly. The ft-text-antialias-none test case passess
+ now.
+ And should fix bug #6759 and #4792.
+
+commit 4b2b8f939a9e786ead080f85d1b101680230f168
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Sat Jun 17 16:29:54 2006 +0800
+
+ Add ft-text-antilaias-none test case demonstrating bug #6759.
+
+commit efaf88d4092db5e4ca37508d87fdb8ac39496018
+Author: Jinghua Luo <sunmoon1997@gmail.com>
+Date: Sat Jun 17 15:52:05 2006 +0800
+
+ Add missing prototype for _cairo_lzw_compress.
+
+commit 6f0a85c8f76ba2fb77862f2da506bfd405ce218d
+Author: Ian Osgood <iano@quirkster.com>
+Date: Fri Jun 16 08:18:37 2006 -0700
+
+ Update the XCB backend for screen sensitivity.
+
+commit bc4a6796f851a9f10764feb783988641d26cf2ce
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 16 19:01:20 2006 -0400
+
+ Accept CAIRO_TEST_TARGET being empty or containing a list of backends
+ to test.
+ The list can be separated by any of space, tab, comma, colon,
+ or semicolon.
+ Moreover, a CAIRO_TEST_TARGET of e.g. "glitz" matches any subtarget
+ like
+ "glitz-glx".
+
+commit 8bc05f15ab3f2054f802cfbc9564476a4acbb4a8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jun 16 18:39:36 2006 -0400
+
+ Note that create_similar clears surface.
+
+commit 3bad1f0b0c431f1e5832d8755d0e22fe31120007
+Author: Carl Worth <cworth@cworth.org>
+Date: Fri Jun 16 10:09:54 2006 -0700
+
+ Increment CAIRO_VERSION to 1.1.11 after making the 1.1.10 snapshot
+
commit 65e73c81b83222de873935cf384e514ea20ac854
Author: Carl Worth <cworth@cworth.org>
-Date: Fri Jun 16 09:45:44 2006 -0700
+Date: Fri Jun 16 09:45:44 2006 -0700
Update version to 1.1.10 and add notes to NEWS file.
@@ -8,44 +890,44 @@ Date: Fri Jun 16 09:45:44 2006 -0700
commit b992e1e29d6d63de2a6b5b48b93d23be50fc29ca
Author: Carl Worth <cworth@cworth.org>
-Date: Fri Jun 16 09:44:33 2006 -0700
+Date: Fri Jun 16 09:44:33 2006 -0700
Annoying doc template churn.
commit 4a5111695c25ce9178f1eb69acd825b3466fcb11
Author: Carl Worth <cworth@cworth.org>
-Date: Fri Jun 16 09:22:36 2006 -0700
+Date: Fri Jun 16 09:22:36 2006 -0700
Update release rules in Makefile to add git signature information.
commit c6164d0d2a9ca16a00c2768f24a0230de6cbc6f6
Author: Carl Worth <cworth@cworth.org>
-Date: Thu Jun 15 16:22:52 2006 -0700
+Date: Thu Jun 15 16:22:52 2006 -0700
New API: Add support for new CAIRO_FORMAT_RGB16_565
commit 36e59ca5f854de2740c7ef4f0b6022785dd9dc4c
Author: Jinghua Luo <sunmoon1997@gmail.com>
-Date: Fri Jun 16 21:13:21 2006 +0800
+Date: Fri Jun 16 21:13:21 2006 +0800
xlib: free resources before return if looking up glyph surface fails.
commit bf2c0e44d8c8e1e692eafba7bccddd26f1f31c1b
Merge: b8231f8... a8b736c...
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jun 16 00:13:18 2006 -0400
+Date: Fri Jun 16 00:13:18 2006 -0400
Merge branch 'cairo' into cairo-origin
commit a8b736c1608c3d0b98b81f79ab1f5607cce245ed
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri Jun 16 00:08:44 2006 -0400
+Date: Fri Jun 16 00:08:44 2006 -0400
Use enum time instead of int (shuts intel compiler up.)
commit b8231f8949818099c4e6ed4e0669de6f8c8bf856
Author: Kristian Høgsberg <krh@redhat.com>
-Date: Thu Jun 15 22:07:17 2006 -0400
+Date: Thu Jun 15 22:07:17 2006 -0400
Add cairo-output-stream-private.h to libcairo_la_SOURCES.
@@ -53,7 +935,7 @@ Date: Thu Jun 15 22:07:17 2006 -0400
commit abe1bfad8d8a3252bdc65da40bf303626881b163
Author: Carl Worth <cworth@cworth.org>
-Date: Thu Jun 15 15:43:00 2006 -0700
+Date: Thu Jun 15 15:43:00 2006 -0700
Add missing breaks in switch statement.
@@ -61,71 +943,71 @@ Date: Thu Jun 15 15:43:00 2006 -0700
commit 9fa24975b4b9cc9983331991d2a3c53a37272162
Author: Carl Worth <cworth@cworth.org>
-Date: Thu Jun 15 15:33:45 2006 -0700
+Date: Thu Jun 15 15:33:45 2006 -0700
Drop _cairo_surface_is_opaque now that we have
cairo_surface_get_content
commit 0ba040d7f63c62e482d40fc6db0e1f0714806839
Author: Carl Worth <cworth@cworth.org>
-Date: Thu Jun 15 14:56:59 2006 -0700
+Date: Thu Jun 15 14:56:59 2006 -0700
Remove _cairo_image_surface_is_alpha_only in favor of just looking
at content value.
commit 82496a6f7c5b0a9f91db6abc9e34202b8ffa77c4
Author: Carl Worth <cworth@cworth.org>
-Date: Thu Jun 15 14:15:42 2006 -0700
+Date: Thu Jun 15 14:15:42 2006 -0700
_cairo_format_from_pixman_format: Add useful error mesage and
assertion when failing.
commit dedc51ba51eaa61e4b11f274fac06c6f0acd8a87
Author: Kristian Høgsberg <krh@redhat.com>
-Date: Wed Jun 14 19:25:37 2006 -0400
+Date: Wed Jun 14 19:25:37 2006 -0400
Only call close function for output streams if it's non-NULL.
commit 9ef99d10bb7eb6cde421e0d93ae55988882d9b56
Author: Kristian Høgsberg <krh@redhat.com>
-Date: Wed Jun 14 19:15:50 2006 -0400
+Date: Wed Jun 14 19:15:50 2006 -0400
Add test case for the PDF, PS and SVG stream constructors.
commit 8c8bcaf99b1c8d6cb26dfc89751d71de535c11e7
Author: Emmanuel Pacaud <emmanuel.pacaud@free.fr>
-Date: Wed Jun 14 20:57:42 2006 +0200
+Date: Wed Jun 14 20:57:42 2006 +0200
SVG: Update of reference images.
commit 2cea3a2710cd4c6eb68e25eadaaf96cdc921ef14
Merge: 17ea755... 4932d09...
Author: Kristian Høgsberg <krh@redhat.com>
-Date: Wed Jun 14 15:00:33 2006 -0400
+Date: Wed Jun 14 15:00:33 2006 -0400
Merge branch 'svg-rewrite'
commit 4932d09a06228a08d1c8f4d2892378c004ff3313
Author: Kristian Høgsberg <krh@redhat.com>
-Date: Wed Jun 14 14:12:55 2006 -0400
+Date: Wed Jun 14 14:12:55 2006 -0400
Actually add src/cairo-output-stream-private.h.
commit 17ea7552355d9925fb99cd4ca98cf38946f99421
Author: Torsten Schönfeld <kaffeetisch@gmx.de>
-Date: Wed Jun 14 11:09:00 2006 -0700
+Date: Wed Jun 14 11:09:00 2006 -0700
Add missing cairo_public tag for cairo_image_surface_get_stride
commit 1599ab8fa91fd2b5b611825d1e1b46fcacfb7982
Author: Carl Worth <cworth@cworth.org>
-Date: Wed Jun 14 10:41:29 2006 -0700
+Date: Wed Jun 14 10:41:29 2006 -0700
Increment CAIRO_VERSION to 1.1.9 after making the 1.1.8 snapshot
commit dd859b8736bb4d1bcf3ed78d0bd1f72a7aad9ca9
Author: Carl Worth <cworth@cworth.org>
-Date: Wed Jun 14 08:14:43 2006 -0700
+Date: Wed Jun 14 08:14:43 2006 -0700
Update version to 1.1.8 and add notes to NEWS file.
@@ -133,7 +1015,7 @@ Date: Wed Jun 14 08:14:43 2006 -0700
commit 65c9c072d207b04cac8da21b40b2dd5c14791547
Author: Carl Worth <cworth@cworth.org>
-Date: Wed Jun 14 06:39:23 2006 -0700
+Date: Wed Jun 14 06:39:23 2006 -0700
Update refefence images due to pattern source shift.
@@ -143,49 +1025,49 @@ Date: Wed Jun 14 06:39:23 2006 -0700
Author: Bertram Felgenhauer <int-e@gmx.de>
Date: Tue Jun 13 20:07:28 2006 -0400
- Patch to fix pixman samping location bug (#2488).
+ Patch to fix pixman samping location bug (#2488).
commit 4bdfff477a1d7fa19890f0a5c4f3cc6533e39149
Author: Carl Worth <cworth@cworth.org>
-Date: Wed Jun 14 06:00:11 2006 -0700
+Date: Wed Jun 14 06:00:11 2006 -0700
PS PDF: Update reference images due to truetype subsetting
commit 7e0be461b595c3561fa75472fdfd5954e4666cfc
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jun 13 22:40:50 2006 -0400
+Date: Tue Jun 13 22:40:50 2006 -0400
Rename cairo-wideint.h to cairo-wideint-private.h.
commit b9cfe941c8e1ae427780117fedfd47d458e29f02
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jun 13 22:37:34 2006 -0400
+Date: Tue Jun 13 22:37:34 2006 -0400
Add backend-specific pkg-config files.
commit 2249fb89ae36859d1d3f6c9d0b72e95e45726170
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jun 13 19:13:05 2006 -0400
+Date: Tue Jun 13 19:13:05 2006 -0400
Move cairo.pc into src/.
commit e346eca1386e8ec14f9bda7d76662a16706f1e7c
Author: Carl Worth <cworth@cworth.org>
-Date: Wed Jun 14 04:58:54 2006 -0700
+Date: Wed Jun 14 04:58:54 2006 -0700
Add zero-alpha reference image to Makefile.am for the sake of
make dist
commit 211741cce61075b526edfacd728c9c5de8dd1aac
Author: Bertram Felgenhauer <bertram.felgenhauer@googlemail.com>
-Date: Wed Jun 14 04:51:27 2006 -0700
+Date: Wed Jun 14 04:51:27 2006 -0700
Bug 4723: configure.in: Fix m4 quoting when examining pkg-config
version
commit b8e93f9c5598d5452e08728546677a977e41617f
Author: Brian Cameron <brian.cameron@sun.com>
-Date: Wed Jun 14 04:44:01 2006 -0700
+Date: Wed Jun 14 04:44:01 2006 -0700
Bug 4882: Flag Sun's X server has having buggy_repeat.
@@ -193,59 +1075,59 @@ Date: Wed Jun 14 04:44:01 2006 -0700
commit 32d049a7bf9549f8c797c50654546b6526518f0a
Author: Dom Lachowicz <cinamod@hotmail.com>
-Date: Wed Jun 14 04:37:08 2006 -0700
+Date: Wed Jun 14 04:37:08 2006 -0700
Bug 5306: test/pdf2png: Add missing include of stdio.h
commit e9269aefcbc96a417012107c17ec2bc4de608cc1
Author: Behdad Esfahbod <freedesktop@behdad.org>
-Date: Wed Jun 14 04:07:29 2006 -0700
+Date: Wed Jun 14 04:07:29 2006 -0700
Bug 7075: Fix make clean to remove cairo.def
commit c8e7ff096648a53b780f14c2cd2467157fae8385
Author: Carl Worth <cworth@cworth.org>
-Date: Wed Jun 14 04:04:21 2006 -0700
+Date: Wed Jun 14 04:04:21 2006 -0700
ROADMAP: Update with PDF bugs from minefield test. Slip non-1.0
regressions off of 1.2.
commit c515b15cfc8c88b330f16a9263841476c29ded99
Author: Carl Worth <cworth@cworth.org>
-Date: Wed Jun 14 03:53:18 2006 -0700
+Date: Wed Jun 14 03:53:18 2006 -0700
ft: If glyph->format is not OUTLINE use _render_glyph_bitmap to
coerce to a bitmap
commit 61a3260e44b40b8aa344f806979b60a82400105e
Author: Jinghua Luo <sunmoon1997@gmail.com>
-Date: Wed Jun 14 15:57:23 2006 +0800
+Date: Wed Jun 14 15:57:23 2006 +0800
ROADMAP: Mark bugs FC_ADVANCE and _transform_glyph_bitmap as fixed.
commit 0d2900477cd6edfe6025be06c3f1eda63cbe5230
Author: Jinghua Luo <sunmoon1997@gmail.com>
-Date: Wed Jun 14 15:56:17 2006 +0800
+Date: Wed Jun 14 15:56:17 2006 +0800
freetype: Return an error if the glyph format isn't outline or bitmap
while getting glyph surface.
commit b104a79502e2c01c508e40d83613ecfa001a2a4e
Author: Bertram Felgenhauer <int-e@gmx.de>
-Date: Tue Jun 13 20:07:28 2006 -0400
+Date: Tue Jun 13 20:07:28 2006 -0400
Patch to fix pixman samping location bug (#2488).
commit 0ee64b84689c22bba1d9bb2758170bbc104f5cf1
Author: Carl Worth <cworth@cworth.org>
-Date: Tue Jun 13 16:50:43 2006 -0700
+Date: Tue Jun 13 16:50:43 2006 -0700
Bug 4196: undef MIN an MAX before defining to avoid duplicate
definition
commit 1b11d3830b26f6ce7f0d8ddcc315a9c19f56658a
Author: Carl Worth <cworth@cworth.org>
-Date: Tue Jun 13 16:42:06 2006 -0700
+Date: Tue Jun 13 16:42:06 2006 -0700
test/zero-alpha: Drop REPS from 100 to 10 for a faster test.
@@ -253,7 +1135,7 @@ Date: Tue Jun 13 16:42:06 2006 -0700
commit 2d269664f166c4fc835e70a176ad46b2d7ccb41d
Author: Carl Worth <cworth@cworth.org>
-Date: Tue Jun 13 16:13:23 2006 -0700
+Date: Tue Jun 13 16:13:23 2006 -0700
Add new zero-alpha test to demonstrate (X server?) bug found by
Paul Giblock
@@ -261,7 +1143,7 @@ Date: Tue Jun 13 16:13:23 2006 -0700
commit 1d18af9f5adb0ce2e01bc42578fe117c4e924ce8
Merge: c7b194c... 27e9e3c...
Author: Carl Worth <cworth@cworth.org>
-Date: Tue Jun 13 15:51:57 2006 -0700
+Date: Tue Jun 13 15:51:57 2006 -0700
Merge branch 'type1-subsetting' into cairo
diff --git a/Makefile.am b/Makefile.am
index 923f4ba..74261ac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,10 @@
DIST_SUBDIRS = pixman src test doc
SUBDIRS = pixman src doc
+.PHONY: doc
+doc:
+ -$(MAKE) -C doc doc
+
# libpng is required for our test programs
if CAIRO_HAS_PNG_FUNCTIONS
SUBDIRS += test
@@ -10,8 +14,8 @@ EXTRA_DIST = \
COPYING \
COPYING-LGPL-2.1 \
COPYING-MPL-1.1
+DISTCLEANFILES = config.cache
MAINTAINERCLEANFILES = \
- $(srcdir)/INSTALL \
$(srcdir)/aclocal.m4 \
$(srcdir)/autoscan.log \
$(srcdir)/compile \
@@ -60,12 +64,12 @@ $(srcdir)/ChangeLog:
# make release-check
# or make release-publish
+RELEASE_OR_SNAPSHOT = `if [ "$(CAIRO_VERSION_MINOR)" = $$(echo "$(CAIRO_VERSION_MINOR)/2*2" | bc) ]; then echo release; else echo snapshot; fi`
RELEASE_UPLOAD_HOST = cairographics.org
RELEASE_UPLOAD_BASE = /srv/cairo.freedesktop.org/www
-RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)/snapshots
-RELEASE_URL_BASE = http://cairographics.org/snapshots
+RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)/$(RELEASE_OR_SNAPSHOT)s
+RELEASE_URL_BASE = http://cairographics.org/$(RELEASE_OR_SNAPSHOT)s
RELEASE_ANNOUNCE_LIST = cairo-announce@cairographics.org (and CC gnome-announce-list@gnome.org)
-RELEASE_OR_SNAPSHOT = `if [ "$(CAIRO_VERSION_MINOR)" = $$(echo "$(CAIRO_VERSION_MINOR)/2*2" | bc) ]; then echo release; else echo snapshot; fi`
MANUAL_DATED = cairo-manual-`date +%Y%m%d`
MANUAL_TAR_FILE = $(MANUAL_DATED).tar.gz
@@ -87,12 +91,12 @@ runtime_zip_file = /tmp/$(PACKAGE)-$(VERSION).zip
developer_zip_file = /tmp/$(PACKAGE)-dev-$(VERSION).zip
$(runtime_zip_file): install
- -rm $@
+ -$(RM) $@
cd $(prefix); \
zip $@ bin/libcairo-$(LT_CURRENT_MINUS_AGE).dll
$(developer_zip_file): install
- -rm $@
+ -$(RM) $@
cd $(prefix); \
zip -r $@ include/cairo lib/libcairo.dll.a lib/cairo.lib lib/pkgconfig/cairo.pc lib/pkgconfig/cairo-*.pc share/gtk-doc/html/cairo
@@ -124,7 +128,7 @@ release-verify-newer:
@echo "Good."
release-remove-old:
- rm -f $(tar_file) $(sha1_file) $(gpg_file)
+ $(RM) $(tar_file) $(sha1_file) $(gpg_file)
# Maybe it's just my system, but somehow group sticky bits keep
# getting set and this causes failures in un-tarring on some systems.
@@ -133,7 +137,7 @@ release-remove-old:
release-cleanup-group-sticky:
find . -type f | xargs chmod g-s
-release-check: release-verify-soname-major release-verify-even-micro release-verify-newer release-remove-old release-cleanup-group-sticky dist
+release-check: release-verify-soname-major release-verify-even-micro release-verify-newer release-remove-old release-cleanup-group-sticky distcheck
release-upload: release-check $(tar_file) $(sha1_file) $(gpg_file)
mkdir -p releases
diff --git a/Makefile.in b/Makefile.in
index de05a6e..5c32c3d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -80,12 +80,10 @@ AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
-ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BEOS_SURFACE_FEATURE = @BEOS_SURFACE_FEATURE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE@
CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE@
@@ -131,11 +129,13 @@ CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_REQUIRES = @CAIRO_REQUIRES@
CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@
CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@
CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@
-CAIRO_VERSION_OTHER = @CAIRO_VERSION_OTHER@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -148,9 +148,6 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
-DIRECTFB_LIBS = @DIRECTFB_LIBS@
-DIRECTFB_SURFACE_FEATURE = @DIRECTFB_SURFACE_FEATURE@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -168,18 +165,12 @@ FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_CONFIG_CFLAGS = @FREETYPE_CONFIG_CFLAGS@
FREETYPE_CONFIG_LIBS = @FREETYPE_CONFIG_LIBS@
FREETYPE_LIBS = @FREETYPE_LIBS@
-FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
-FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_AGL_CFLAGS = @GLITZ_AGL_CFLAGS@
GLITZ_AGL_LIBS = @GLITZ_AGL_LIBS@
-GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_EGL_CFLAGS = @GLITZ_EGL_CFLAGS@
GLITZ_EGL_LIBS = @GLITZ_EGL_LIBS@
GLITZ_GLX_CFLAGS = @GLITZ_GLX_CFLAGS@
GLITZ_GLX_LIBS = @GLITZ_GLX_LIBS@
-GLITZ_LIBS = @GLITZ_LIBS@
-GLITZ_REQUIRES = @GLITZ_REQUIRES@
-GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GLITZ_WGL_CFLAGS = @GLITZ_WGL_CFLAGS@
GLITZ_WGL_LIBS = @GLITZ_WGL_LIBS@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
@@ -215,38 +206,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PDF_LIBS = @PDF_LIBS@
-PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
PKG_CONFIG = @PKG_CONFIG@
-PNG_CFLAGS = @PNG_CFLAGS@
-PNG_FUNCTIONS_FEATURE = @PNG_FUNCTIONS_FEATURE@
-PNG_LIBS = @PNG_LIBS@
-PNG_REQUIRES = @PNG_REQUIRES@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
-PS_LIBS = @PS_LIBS@
-PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
-QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-SVG_SURFACE_FEATURE = @SVG_SURFACE_FEATURE@
USE_MMX_FALSE = @USE_MMX_FALSE@
USE_MMX_TRUE = @USE_MMX_TRUE@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WARN_CFLAGS = @WARN_CFLAGS@
-WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
-WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
-XCB_CFLAGS = @XCB_CFLAGS@
-XCB_LIBS = @XCB_LIBS@
-XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
-XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
-XRENDER_CFLAGS = @XRENDER_CFLAGS@
-XRENDER_LIBS = @XRENDER_LIBS@
-XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
@@ -274,7 +246,11 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+directfb_CFLAGS = @directfb_CFLAGS@
+directfb_LIBS = @directfb_LIBS@
exec_prefix = @exec_prefix@
+glitz_CFLAGS = @glitz_CFLAGS@
+glitz_LIBS = @glitz_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -289,20 +265,26 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+png_CFLAGS = @png_CFLAGS@
+png_LIBS = @png_LIBS@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+xcb_CFLAGS = @xcb_CFLAGS@
+xcb_LIBS = @xcb_LIBS@
+xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@
+xlib_xrender_LIBS = @xlib_xrender_LIBS@
DIST_SUBDIRS = pixman src test doc
SUBDIRS = pixman src doc $(am__append_1)
EXTRA_DIST = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1 ChangeLog
+DISTCLEANFILES = config.cache
# Creating ChangeLog from git log:
-MAINTAINERCLEANFILES = $(srcdir)/INSTALL $(srcdir)/aclocal.m4 \
- $(srcdir)/autoscan.log $(srcdir)/compile \
- $(srcdir)/config.guess $(srcdir)/config.h.in \
+MAINTAINERCLEANFILES = $(srcdir)/aclocal.m4 $(srcdir)/autoscan.log \
+ $(srcdir)/compile $(srcdir)/config.guess $(srcdir)/config.h.in \
$(srcdir)/config.sub $(srcdir)/configure.scan \
$(srcdir)/depcomp $(srcdir)/install-sh $(srcdir)/ltmain.sh \
$(srcdir)/missing $(srcdir)/mkinstalldirs `find "$(srcdir)" \
@@ -313,12 +295,12 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
# Use either:
# make release-check
# or make release-publish
+RELEASE_OR_SNAPSHOT = `if [ "$(CAIRO_VERSION_MINOR)" = $$(echo "$(CAIRO_VERSION_MINOR)/2*2" | bc) ]; then echo release; else echo snapshot; fi`
RELEASE_UPLOAD_HOST = cairographics.org
RELEASE_UPLOAD_BASE = /srv/cairo.freedesktop.org/www
-RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)/snapshots
-RELEASE_URL_BASE = http://cairographics.org/snapshots
+RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)/$(RELEASE_OR_SNAPSHOT)s
+RELEASE_URL_BASE = http://cairographics.org/$(RELEASE_OR_SNAPSHOT)s
RELEASE_ANNOUNCE_LIST = cairo-announce@cairographics.org (and CC gnome-announce-list@gnome.org)
-RELEASE_OR_SNAPSHOT = `if [ "$(CAIRO_VERSION_MINOR)" = $$(echo "$(CAIRO_VERSION_MINOR)/2*2" | bc) ]; then echo release; else echo snapshot; fi`
MANUAL_DATED = cairo-manual-`date +%Y%m%d`
MANUAL_TAR_FILE = $(MANUAL_DATED).tar.gz
MANUAL_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)
@@ -693,6 +675,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -766,6 +749,10 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
+.PHONY: doc
+doc:
+ -$(MAKE) -C doc doc
+
check-valgrind: all
$(MAKE) -C test check-valgrind
@@ -795,12 +782,12 @@ $(gpg_file): $(sha1_file)
gpg --armor --sign $^
$(runtime_zip_file): install
- -rm $@
+ -$(RM) $@
cd $(prefix); \
zip $@ bin/libcairo-$(LT_CURRENT_MINUS_AGE).dll
$(developer_zip_file): install
- -rm $@
+ -$(RM) $@
cd $(prefix); \
zip -r $@ include/cairo lib/libcairo.dll.a lib/cairo.lib lib/pkgconfig/cairo.pc lib/pkgconfig/cairo-*.pc share/gtk-doc/html/cairo
@@ -832,7 +819,7 @@ release-verify-newer:
@echo "Good."
release-remove-old:
- rm -f $(tar_file) $(sha1_file) $(gpg_file)
+ $(RM) $(tar_file) $(sha1_file) $(gpg_file)
# Maybe it's just my system, but somehow group sticky bits keep
# getting set and this causes failures in un-tarring on some systems.
@@ -841,7 +828,7 @@ release-remove-old:
release-cleanup-group-sticky:
find . -type f | xargs chmod g-s
-release-check: release-verify-soname-major release-verify-even-micro release-verify-newer release-remove-old release-cleanup-group-sticky dist
+release-check: release-verify-soname-major release-verify-even-micro release-verify-newer release-remove-old release-cleanup-group-sticky distcheck
release-upload: release-check $(tar_file) $(sha1_file) $(gpg_file)
mkdir -p releases
diff --git a/NEWS b/NEWS
index 95e09a4..455d687 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,43 @@
+Release 1.2.0 (2006-06-27 Carl Worth <cworth@cworth.org>)
+=========================================================
+This is the culmination of the work that has gone on within the 1.1
+branch of cairo.
+
+There has been one API addition since the cairo 1.1.10 snapshot:
+
+ cairo_xlib_surface_get_width
+ cairo_xlib_surface_get_height
+
+There's also a new feature without any API change:
+
+ Dots can now be drawn by using CAIRO_LINE_CAP_ROUND with
+ degenerate sub-paths, (cairo_move_to() followed by either
+ cairo_close_path() or a cairo_line_to() to the same location).
+
+And at least the following bugs have been fixed:
+
+ 6759 fontconfig option AntiAlias doesn't work in cairo 1.1.2
+ 6955 Some characters aren't displayed when using xlib (cache u...
+ 7268 positive device_offset values don't work as source
+ * PDF emit_glyph function needs to support bitmapped glyphs
+ * PS emit_glyph function needs to support bitmapped glyphs
+ * SVG emit_glyph function needs to support bitmapped glyphs
+ * PDF: minefield page one is falling back unnecessarily
+ * PS/PDF: Fix broken placement for vertical glyphs
+ * PS: Fix to not draw BUTT-capped zero-length dash segments
+ * Do device offset before float->fixed conversion
+ http://bugzilla.gnome.org/show_bug.cgi?id=332266
+ * PS: Fix source surfaces with transformations
+ * PS: Fix to not draw BUTT-capped degnerate sub-paths
+ * PS: Don't walk off end of array when printing "~>"
+ * Fix some memory leaks in the test suite rig
+ * SVG: Fix memory leak when using cairo_mask
+ * Fix EXTEND_REFLECT and EXTEND_PAD to not crash (though these are
+ still not yet fully implemented for surface patterns).
+
+This has been a tremendous effort by everyone, and I'm proud to have
+been a part of it. Congratulations to all contributors to cairo!
+
Snapshot 1.1.10 (2006-06-16 Carl Worth <cworth@cworth.org>)
===========================================================
This is the fifth in a series of snapshots working toward the 1.2
diff --git a/aclocal.m4 b/aclocal.m4
index 188471f..5369147 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -11,6 +11,872 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+ [AM_AUTOMAKE_VERSION([1.9.6])])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 7
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # So let's grep whole file.
+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 12
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.58])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $1 | $1:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+AC_DEFUN([AM_MAINTAINER_MODE],
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode is disabled by default
+ AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST(MAINT)dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+#
+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+# created by `make install' are always world readable, even if the
+# installer happens to have an overly restrictive umask (e.g. 077).
+# This was a mistake. There are at least two reasons why we must not
+# use `-m 0755':
+# - it causes special bits like SGID to be ignored,
+# - it may be too restrictive (some setups expect 775 directories).
+#
+# Do not use -m 0755 and let people choose whatever they expect by
+# setting umask.
+#
+# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+# Some implementations (such as Solaris 8's) are not thread-safe: if a
+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+# concurrently, both version can detect that a/ is missing, but only
+# one can create it and the other will error out. Consequently we
+# restrict ourselves to GNU make (using the --version option ensures
+# this.)
+AC_DEFUN([AM_PROG_MKDIR_P],
+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
+ # $(mkdir_p) $(somedir)
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
+else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ for d in ./-p ./--version;
+ do
+ test -d $d && rmdir $d
+ done
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
+ mkdir_p='$(mkinstalldirs)'
+ else
+ mkdir_p='$(install_sh) -d'
+ fi
+fi
+AC_SUBST([mkdir_p])])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
# serial 48 Debian 1.5.22-4 AC_PROG_LIBTOOL
@@ -6537,870 +7403,4 @@ else
fi[]dnl
])# PKG_CHECK_MODULES
-# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.9.6])])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 7
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-#serial 3
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 12
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.58])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-])
-])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $1 | $1:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-AC_SUBST(install_sh)])
-
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake. There are at least two reasons why we must not
-# use `-m 0755':
-# - it causes special bits like SGID to be ignored,
-# - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out. Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
-AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-AC_SUBST([mkdir_p])])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
m4_include([acinclude.m4])
diff --git a/configure b/configure
index a7bd9e0..2ea67d9 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for cairo 1.1.10.
+# Generated by GNU Autoconf 2.59 for cairo 1.2.0.
#
# Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=cairo>.
#
@@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='cairo'
PACKAGE_TARNAME='cairo'
-PACKAGE_VERSION='1.1.10'
-PACKAGE_STRING='cairo 1.1.10'
+PACKAGE_VERSION='1.2.0'
+PACKAGE_STRING='cairo 1.2.0'
PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=cairo'
ac_unique_file="src/cairo.h"
@@ -465,7 +465,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar VERSION_INFO LT_CURRENT_MINUS_AGE CAIRO_VERSION_MAJOR CAIRO_VERSION_MINOR CAIRO_VERSION_MICRO CAIRO_VERSION_OTHER MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL PKG_CONFIG ac_pt_PKG_CONFIG XRENDER_CFLAGS XRENDER_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS CAIRO_HAS_XLIB_SURFACE_TRUE CAIRO_HAS_XLIB_SURFACE_FALSE XLIB_SURFACE_FEATURE XRENDER_REQUIRES CAIRO_HAS_QUARTZ_SURFACE_TRUE CAIRO_HAS_QUARTZ_SURFACE_FALSE QUARTZ_SURFACE_FEATURE XCB_CFLAGS XCB_LIBS CAIRO_HAS_XCB_SURFACE_TRUE CAIRO_HAS_XCB_SURFACE_FALSE XCB_SURFACE_FEATURE CAIRO_HAS_WIN32_SURFACE_TRUE CAIRO_HAS_WIN32_SURFACE_FALSE WIN32_SURFACE_FEATURE CAIRO_HAS_WIN32_FONT_TRUE CAIRO_HAS_WIN32_FONT_FALSE WIN32_FONT_FEATURE CAIRO_HAS_BEOS_SURFACE_TRUE CAIRO_HAS_BEOS_SURFACE_FALSE BEOS_SURFACE_FEATURE PNG_CFLAGS PNG_LIBS CAIRO_HAS_PNG_FUNCTIONS_TRUE CAIRO_HAS_PNG_FUNCTIONS_FALSE PNG_FUNCTIONS_FEATURE PNG_REQUIRES GLITZ_CFLAGS GLITZ_LIBS GLITZ_AGL_CFLAGS GLITZ_AGL_LIBS GLITZ_EGL_CFLAGS GLITZ_EGL_LIBS GLITZ_GLX_CFLAGS GLITZ_GLX_LIBS GLITZ_WGL_CFLAGS GLITZ_WGL_LIBS CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_TRUE CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_TRUE CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_FALSE CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_TRUE CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_FALSE CAIRO_HAS_GLITZ_SURFACE_TRUE CAIRO_HAS_GLITZ_SURFACE_FALSE GLITZ_SURFACE_FEATURE GLITZ_REQUIRES DIRECTFB_CFLAGS DIRECTFB_LIBS CAIRO_HAS_DIRECTFB_SURFACE_TRUE CAIRO_HAS_DIRECTFB_SURFACE_FALSE DIRECTFB_SURFACE_FEATURE FONTCONFIG_CFLAGS FONTCONFIG_LIBS FREETYPE_CFLAGS FREETYPE_LIBS FREETYPE_CONFIG FREETYPE_CONFIG_CFLAGS FREETYPE_CONFIG_LIBS FREETYPE_REQUIRES CAIRO_HAS_FT_FONT_TRUE CAIRO_HAS_FT_FONT_FALSE FT_FONT_FEATURE HAVE_PTHREAD_TRUE HAVE_PTHREAD_FALSE CAIRO_HAS_PS_SURFACE_TRUE CAIRO_HAS_PS_SURFACE_FALSE PS_SURFACE_FEATURE PS_LIBS CAIRO_HAS_PDF_SURFACE_TRUE CAIRO_HAS_PDF_SURFACE_FALSE POPPLER_CFLAGS POPPLER_LIBS PDF_SURFACE_FEATURE CAIRO_CAN_TEST_PDF_SURFACE_TRUE CAIRO_CAN_TEST_PDF_SURFACE_FALSE CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE CAIRO_HAS_MULTI_PAGE_SURFACES_FALSE PDF_LIBS CAIRO_HAS_SVG_SURFACE_TRUE CAIRO_HAS_SVG_SURFACE_FALSE LIBRSVG_CFLAGS LIBRSVG_LIBS SVG_SURFACE_FEATURE CAIRO_CAN_TEST_SVG_SURFACE_TRUE CAIRO_CAN_TEST_SVG_SURFACE_FALSE CAIRO_HAS_ATSUI_FONT_TRUE CAIRO_HAS_ATSUI_FONT_FALSE ATSUI_FONT_FEATURE WARN_CFLAGS CAIRO_CFLAGS CAIRO_LIBS HTML_DIR ENABLE_GTK_DOC_TRUE ENABLE_GTK_DOC_FALSE GTK_DOC_USE_LIBTOOL_TRUE GTK_DOC_USE_LIBTOOL_FALSE PKGCONFIG_REQUIRES MMX_CFLAGS USE_MMX_TRUE USE_MMX_FALSE LTP LTP_GENHTML CAIRO_HAS_TEST_SURFACES_TRUE CAIRO_HAS_TEST_SURFACES_FALSE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar VERSION_INFO LT_CURRENT_MINUS_AGE CAIRO_VERSION_MAJOR CAIRO_VERSION_MINOR CAIRO_VERSION_MICRO MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL PKG_CONFIG ac_pt_PKG_CONFIG X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS CAIRO_HAS_XLIB_SURFACE_TRUE CAIRO_HAS_XLIB_SURFACE_FALSE xlib_xrender_CFLAGS xlib_xrender_LIBS CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE CAIRO_HAS_QUARTZ_SURFACE_TRUE CAIRO_HAS_QUARTZ_SURFACE_FALSE xcb_CFLAGS xcb_LIBS CAIRO_HAS_XCB_SURFACE_TRUE CAIRO_HAS_XCB_SURFACE_FALSE CAIRO_HAS_WIN32_SURFACE_TRUE CAIRO_HAS_WIN32_SURFACE_FALSE CAIRO_HAS_WIN32_FONT_TRUE CAIRO_HAS_WIN32_FONT_FALSE CAIRO_HAS_BEOS_SURFACE_TRUE CAIRO_HAS_BEOS_SURFACE_FALSE png_CFLAGS png_LIBS CAIRO_HAS_PNG_FUNCTIONS_TRUE CAIRO_HAS_PNG_FUNCTIONS_FALSE glitz_CFLAGS glitz_LIBS CAIRO_HAS_GLITZ_SURFACE_TRUE CAIRO_HAS_GLITZ_SURFACE_FALSE GLITZ_AGL_CFLAGS GLITZ_AGL_LIBS GLITZ_EGL_CFLAGS GLITZ_EGL_LIBS GLITZ_GLX_CFLAGS GLITZ_GLX_LIBS GLITZ_WGL_CFLAGS GLITZ_WGL_LIBS CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_TRUE CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_TRUE CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_FALSE CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_TRUE CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_FALSE directfb_CFLAGS directfb_LIBS CAIRO_HAS_DIRECTFB_SURFACE_TRUE CAIRO_HAS_DIRECTFB_SURFACE_FALSE FONTCONFIG_CFLAGS FONTCONFIG_LIBS FREETYPE_CFLAGS FREETYPE_LIBS FREETYPE_CONFIG CAIRO_HAS_FT_FONT_TRUE CAIRO_HAS_FT_FONT_FALSE FREETYPE_CONFIG_CFLAGS FREETYPE_CONFIG_LIBS HAVE_PTHREAD_TRUE HAVE_PTHREAD_FALSE CAIRO_HAS_PS_SURFACE_TRUE CAIRO_HAS_PS_SURFACE_FALSE CAIRO_HAS_PDF_SURFACE_TRUE CAIRO_HAS_PDF_SURFACE_FALSE POPPLER_CFLAGS POPPLER_LIBS CAIRO_CAN_TEST_PDF_SURFACE_TRUE CAIRO_CAN_TEST_PDF_SURFACE_FALSE CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE CAIRO_HAS_MULTI_PAGE_SURFACES_FALSE CAIRO_HAS_SVG_SURFACE_TRUE CAIRO_HAS_SVG_SURFACE_FALSE LIBRSVG_CFLAGS LIBRSVG_LIBS CAIRO_CAN_TEST_SVG_SURFACE_TRUE CAIRO_CAN_TEST_SVG_SURFACE_FALSE CAIRO_HAS_ATSUI_FONT_TRUE CAIRO_HAS_ATSUI_FONT_FALSE WARN_CFLAGS CAIRO_REQUIRES CAIRO_CFLAGS CAIRO_LIBS HTML_DIR ENABLE_GTK_DOC_TRUE ENABLE_GTK_DOC_FALSE GTK_DOC_USE_LIBTOOL_TRUE GTK_DOC_USE_LIBTOOL_FALSE PKGCONFIG_REQUIRES MMX_CFLAGS USE_MMX_TRUE USE_MMX_FALSE LTP LTP_GENHTML CAIRO_HAS_TEST_SURFACES_TRUE CAIRO_HAS_TEST_SURFACES_FALSE LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -950,38 +950,38 @@ ac_env_PKG_CONFIG_set=${PKG_CONFIG+set}
ac_env_PKG_CONFIG_value=$PKG_CONFIG
ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set}
ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG
-ac_env_XRENDER_CFLAGS_set=${XRENDER_CFLAGS+set}
-ac_env_XRENDER_CFLAGS_value=$XRENDER_CFLAGS
-ac_cv_env_XRENDER_CFLAGS_set=${XRENDER_CFLAGS+set}
-ac_cv_env_XRENDER_CFLAGS_value=$XRENDER_CFLAGS
-ac_env_XRENDER_LIBS_set=${XRENDER_LIBS+set}
-ac_env_XRENDER_LIBS_value=$XRENDER_LIBS
-ac_cv_env_XRENDER_LIBS_set=${XRENDER_LIBS+set}
-ac_cv_env_XRENDER_LIBS_value=$XRENDER_LIBS
-ac_env_XCB_CFLAGS_set=${XCB_CFLAGS+set}
-ac_env_XCB_CFLAGS_value=$XCB_CFLAGS
-ac_cv_env_XCB_CFLAGS_set=${XCB_CFLAGS+set}
-ac_cv_env_XCB_CFLAGS_value=$XCB_CFLAGS
-ac_env_XCB_LIBS_set=${XCB_LIBS+set}
-ac_env_XCB_LIBS_value=$XCB_LIBS
-ac_cv_env_XCB_LIBS_set=${XCB_LIBS+set}
-ac_cv_env_XCB_LIBS_value=$XCB_LIBS
-ac_env_PNG_CFLAGS_set=${PNG_CFLAGS+set}
-ac_env_PNG_CFLAGS_value=$PNG_CFLAGS
-ac_cv_env_PNG_CFLAGS_set=${PNG_CFLAGS+set}
-ac_cv_env_PNG_CFLAGS_value=$PNG_CFLAGS
-ac_env_PNG_LIBS_set=${PNG_LIBS+set}
-ac_env_PNG_LIBS_value=$PNG_LIBS
-ac_cv_env_PNG_LIBS_set=${PNG_LIBS+set}
-ac_cv_env_PNG_LIBS_value=$PNG_LIBS
-ac_env_GLITZ_CFLAGS_set=${GLITZ_CFLAGS+set}
-ac_env_GLITZ_CFLAGS_value=$GLITZ_CFLAGS
-ac_cv_env_GLITZ_CFLAGS_set=${GLITZ_CFLAGS+set}
-ac_cv_env_GLITZ_CFLAGS_value=$GLITZ_CFLAGS
-ac_env_GLITZ_LIBS_set=${GLITZ_LIBS+set}
-ac_env_GLITZ_LIBS_value=$GLITZ_LIBS
-ac_cv_env_GLITZ_LIBS_set=${GLITZ_LIBS+set}
-ac_cv_env_GLITZ_LIBS_value=$GLITZ_LIBS
+ac_env_xlib_xrender_CFLAGS_set=${xlib_xrender_CFLAGS+set}
+ac_env_xlib_xrender_CFLAGS_value=$xlib_xrender_CFLAGS
+ac_cv_env_xlib_xrender_CFLAGS_set=${xlib_xrender_CFLAGS+set}
+ac_cv_env_xlib_xrender_CFLAGS_value=$xlib_xrender_CFLAGS
+ac_env_xlib_xrender_LIBS_set=${xlib_xrender_LIBS+set}
+ac_env_xlib_xrender_LIBS_value=$xlib_xrender_LIBS
+ac_cv_env_xlib_xrender_LIBS_set=${xlib_xrender_LIBS+set}
+ac_cv_env_xlib_xrender_LIBS_value=$xlib_xrender_LIBS
+ac_env_xcb_CFLAGS_set=${xcb_CFLAGS+set}
+ac_env_xcb_CFLAGS_value=$xcb_CFLAGS
+ac_cv_env_xcb_CFLAGS_set=${xcb_CFLAGS+set}
+ac_cv_env_xcb_CFLAGS_value=$xcb_CFLAGS
+ac_env_xcb_LIBS_set=${xcb_LIBS+set}
+ac_env_xcb_LIBS_value=$xcb_LIBS
+ac_cv_env_xcb_LIBS_set=${xcb_LIBS+set}
+ac_cv_env_xcb_LIBS_value=$xcb_LIBS
+ac_env_png_CFLAGS_set=${png_CFLAGS+set}
+ac_env_png_CFLAGS_value=$png_CFLAGS
+ac_cv_env_png_CFLAGS_set=${png_CFLAGS+set}
+ac_cv_env_png_CFLAGS_value=$png_CFLAGS
+ac_env_png_LIBS_set=${png_LIBS+set}
+ac_env_png_LIBS_value=$png_LIBS
+ac_cv_env_png_LIBS_set=${png_LIBS+set}
+ac_cv_env_png_LIBS_value=$png_LIBS
+ac_env_glitz_CFLAGS_set=${glitz_CFLAGS+set}
+ac_env_glitz_CFLAGS_value=$glitz_CFLAGS
+ac_cv_env_glitz_CFLAGS_set=${glitz_CFLAGS+set}
+ac_cv_env_glitz_CFLAGS_value=$glitz_CFLAGS
+ac_env_glitz_LIBS_set=${glitz_LIBS+set}
+ac_env_glitz_LIBS_value=$glitz_LIBS
+ac_cv_env_glitz_LIBS_set=${glitz_LIBS+set}
+ac_cv_env_glitz_LIBS_value=$glitz_LIBS
ac_env_GLITZ_AGL_CFLAGS_set=${GLITZ_AGL_CFLAGS+set}
ac_env_GLITZ_AGL_CFLAGS_value=$GLITZ_AGL_CFLAGS
ac_cv_env_GLITZ_AGL_CFLAGS_set=${GLITZ_AGL_CFLAGS+set}
@@ -1014,14 +1014,14 @@ ac_env_GLITZ_WGL_LIBS_set=${GLITZ_WGL_LIBS+set}
ac_env_GLITZ_WGL_LIBS_value=$GLITZ_WGL_LIBS
ac_cv_env_GLITZ_WGL_LIBS_set=${GLITZ_WGL_LIBS+set}
ac_cv_env_GLITZ_WGL_LIBS_value=$GLITZ_WGL_LIBS
-ac_env_DIRECTFB_CFLAGS_set=${DIRECTFB_CFLAGS+set}
-ac_env_DIRECTFB_CFLAGS_value=$DIRECTFB_CFLAGS
-ac_cv_env_DIRECTFB_CFLAGS_set=${DIRECTFB_CFLAGS+set}
-ac_cv_env_DIRECTFB_CFLAGS_value=$DIRECTFB_CFLAGS
-ac_env_DIRECTFB_LIBS_set=${DIRECTFB_LIBS+set}
-ac_env_DIRECTFB_LIBS_value=$DIRECTFB_LIBS
-ac_cv_env_DIRECTFB_LIBS_set=${DIRECTFB_LIBS+set}
-ac_cv_env_DIRECTFB_LIBS_value=$DIRECTFB_LIBS
+ac_env_directfb_CFLAGS_set=${directfb_CFLAGS+set}
+ac_env_directfb_CFLAGS_value=$directfb_CFLAGS
+ac_cv_env_directfb_CFLAGS_set=${directfb_CFLAGS+set}
+ac_cv_env_directfb_CFLAGS_value=$directfb_CFLAGS
+ac_env_directfb_LIBS_set=${directfb_LIBS+set}
+ac_env_directfb_LIBS_value=$directfb_LIBS
+ac_cv_env_directfb_LIBS_set=${directfb_LIBS+set}
+ac_cv_env_directfb_LIBS_value=$directfb_LIBS
ac_env_FONTCONFIG_CFLAGS_set=${FONTCONFIG_CFLAGS+set}
ac_env_FONTCONFIG_CFLAGS_value=$FONTCONFIG_CFLAGS
ac_cv_env_FONTCONFIG_CFLAGS_set=${FONTCONFIG_CFLAGS+set}
@@ -1062,7 +1062,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures cairo 1.1.10 to adapt to many kinds of systems.
+\`configure' configures cairo 1.2.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1132,7 +1132,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of cairo 1.1.10:";;
+ short | recursive ) echo "Configuration of cairo 1.2.0:";;
esac
cat <<\_ACEOF
@@ -1152,6 +1152,9 @@ Optional Features:
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-xlib=[no/auto/yes]
Enable cairo's Xlib backend [default=auto]
+ --enable-xlib-xrender=[no/auto/yes]
+ Enable cairo's Xlib Xrender backend
+ [default=auto]
--enable-quartz=[no/auto/yes]
Enable cairo's Quartz backend [default=no]
--enable-xcb=[no/auto/yes]
@@ -1159,6 +1162,9 @@ Optional Features:
--enable-win32=[no/auto/yes]
Enable cairo's Microsoft Windows backend
[default=auto]
+ --enable-win32-font=[no/auto/yes]
+ Enable cairo's Microsoft Windows font backend
+ [default=auto]
--enable-beos=[no/auto/yes]
Enable cairo's BeOS/Zeta backend [default=no]
--enable-png=[no/auto/yes]
@@ -1168,7 +1174,7 @@ Optional Features:
--enable-directfb=[no/auto/yes]
Enable cairo's directfb backend [default=no]
--enable-freetype=[no/auto/yes]
- Enable cairo's freetype font backend
+ Enable cairo's FreeType font backend
[default=auto]
--enable-ps=[no/auto/yes]
Enable cairo's PostScript backend
@@ -1178,7 +1184,7 @@ Optional Features:
--enable-svg=[no/auto/yes]
Enable cairo's SVG backend [default=auto]
--enable-atsui=[no/auto/yes]
- Enable cairo's atsui font backend [default=no]
+ Enable cairo's ATSUI font backend [default=no]
--enable-gtk-doc use gtk-doc to build documentation default=no
--enable-gcov Enable gcov
--enable-test-surfaces Add backends for more test suite coverage (no
@@ -1209,17 +1215,17 @@ Some influential environment variables:
F77 Fortran 77 compiler command
FFLAGS Fortran 77 compiler flags
PKG_CONFIG path to pkg-config utility
- XRENDER_CFLAGS
- C compiler flags for XRENDER, overriding pkg-config
- XRENDER_LIBS
- linker flags for XRENDER, overriding pkg-config
- XCB_CFLAGS C compiler flags for XCB, overriding pkg-config
- XCB_LIBS linker flags for XCB, overriding pkg-config
- PNG_CFLAGS C compiler flags for PNG, overriding pkg-config
- PNG_LIBS linker flags for PNG, overriding pkg-config
- GLITZ_CFLAGS
- C compiler flags for GLITZ, overriding pkg-config
- GLITZ_LIBS linker flags for GLITZ, overriding pkg-config
+ xlib_xrender_CFLAGS
+ C compiler flags for xlib_xrender, overriding pkg-config
+ xlib_xrender_LIBS
+ linker flags for xlib_xrender, overriding pkg-config
+ xcb_CFLAGS C compiler flags for xcb, overriding pkg-config
+ xcb_LIBS linker flags for xcb, overriding pkg-config
+ png_CFLAGS C compiler flags for png, overriding pkg-config
+ png_LIBS linker flags for png, overriding pkg-config
+ glitz_CFLAGS
+ C compiler flags for glitz, overriding pkg-config
+ glitz_LIBS linker flags for glitz, overriding pkg-config
GLITZ_AGL_CFLAGS
C compiler flags for GLITZ_AGL, overriding pkg-config
GLITZ_AGL_LIBS
@@ -1236,10 +1242,10 @@ Some influential environment variables:
C compiler flags for GLITZ_WGL, overriding pkg-config
GLITZ_WGL_LIBS
linker flags for GLITZ_WGL, overriding pkg-config
- DIRECTFB_CFLAGS
- C compiler flags for DIRECTFB, overriding pkg-config
- DIRECTFB_LIBS
- linker flags for DIRECTFB, overriding pkg-config
+ directfb_CFLAGS
+ C compiler flags for directfb, overriding pkg-config
+ directfb_LIBS
+ linker flags for directfb, overriding pkg-config
FONTCONFIG_CFLAGS
C compiler flags for FONTCONFIG, overriding pkg-config
FONTCONFIG_LIBS
@@ -1356,7 +1362,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-cairo configure 1.1.10
+cairo configure 1.2.0
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1370,7 +1376,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by cairo $as_me 1.1.10, which was
+It was created by cairo $as_me 1.2.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -2016,7 +2022,7 @@ fi
# Define the identity of the package.
PACKAGE='cairo'
- VERSION='1.1.10'
+ VERSION='1.2.0'
cat >>confdefs.h <<_ACEOF
@@ -2151,7 +2157,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
# libtool shared library version
# Increment if the interface has additions, changes, removals.
-LT_CURRENT=10
+LT_CURRENT=11
# Increment any time the source changes; set to
# 0 if you increment CURRENT
@@ -2160,7 +2166,7 @@ LT_REVISION=0
# Increment if any interfaces have been added; set to 0
# if any interfaces have been removed. removal has
# precedence over adding, so set to 0 if both happened.
-LT_AGE=8
+LT_AGE=9
VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE"
@@ -2170,9 +2176,8 @@ LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
CAIRO_VERSION_MAJOR=1
-CAIRO_VERSION_MINOR=1
-CAIRO_VERSION_MICRO=10
-
+CAIRO_VERSION_MINOR=2
+CAIRO_VERSION_MICRO=0
@@ -4154,7 +4159,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4157 "configure"' > conftest.$ac_ext
+ echo '#line 4162 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5511,7 +5516,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:5514:" \
+echo "$as_me:5519:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -6572,11 +6577,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6575: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6580: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6579: \$? = $ac_status" >&5
+ echo "$as_me:6584: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6840,11 +6845,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6843: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6848: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6847: \$? = $ac_status" >&5
+ echo "$as_me:6852: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6944,11 +6949,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6947: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6952: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6951: \$? = $ac_status" >&5
+ echo "$as_me:6956: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -9269,7 +9274,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9272 "configure"
+#line 9277 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9369,7 +9374,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9372 "configure"
+#line 9377 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11707,11 +11712,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11710: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11715: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11714: \$? = $ac_status" >&5
+ echo "$as_me:11719: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -11811,11 +11816,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11814: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11819: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11818: \$? = $ac_status" >&5
+ echo "$as_me:11823: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13372,11 +13377,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13375: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13380: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13379: \$? = $ac_status" >&5
+ echo "$as_me:13384: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13476,11 +13481,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13479: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13484: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13483: \$? = $ac_status" >&5
+ echo "$as_me:13488: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15666,11 +15671,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15669: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15674: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15673: \$? = $ac_status" >&5
+ echo "$as_me:15678: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15934,11 +15939,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15937: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15942: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15941: \$? = $ac_status" >&5
+ echo "$as_me:15946: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16038,11 +16043,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16041: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16046: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16045: \$? = $ac_status" >&5
+ echo "$as_me:16050: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -19519,223 +19524,34 @@ fi
+CAIRO_FEATURES=""
+CAIRO_REQUIRES=""
+CAIRO_CFLAGS=""
+CAIRO_LIBS=""
+
# Check whether --enable-xlib or --disable-xlib was given.
if test "${enable_xlib+set}" = set; then
enableval="$enable_xlib"
- use_xlib=$enableval
+ enable_xlib=$enableval
else
- use_xlib=auto
+ enable_xlib=auto
fi;
- if test "x$use_xlib" = xno; then
+ if test "x$enable_xlib" = xno; then
use_xlib="no (disabled, use --enable-xlib to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's xlib backend" >&5
-echo $ECHO_N "checking for cairo's xlib backend... $ECHO_C" >&6
-if test "${cairo_cv_use_xlib+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's Xlib backend" >&5
+echo $ECHO_N "checking for cairo's Xlib backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_xlib_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_xlib=$use_xlib
use_xlib=yes
-
-
-pkg_failed=no
-echo "$as_me:$LINENO: checking for XRENDER" >&5
-echo $ECHO_N "checking for XRENDER... $ECHO_C" >&6
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$XRENDER_CFLAGS"; then
- pkg_cv_XRENDER_CFLAGS="$XRENDER_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrender >= 0.6\"") >&5
- ($PKG_CONFIG --exists --print-errors "xrender >= 0.6") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_XRENDER_CFLAGS=`$PKG_CONFIG --cflags "xrender >= 0.6" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$XRENDER_LIBS"; then
- pkg_cv_XRENDER_LIBS="$XRENDER_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrender >= 0.6\"") >&5
- ($PKG_CONFIG --exists --print-errors "xrender >= 0.6") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_XRENDER_LIBS=`$PKG_CONFIG --libs "xrender >= 0.6" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- XRENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xrender >= 0.6"`
- else
- XRENDER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xrender >= 0.6"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$XRENDER_PKG_ERRORS" >&5
-
-
- if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
- echo "$as_me:$LINENO: checking for X11/extensions/Xrender.h" >&5
-echo $ECHO_N "checking for X11/extensions/Xrender.h... $ECHO_C" >&6
-if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrender_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrender_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking X11/extensions/Xrender.h usability" >&5
-echo $ECHO_N "checking X11/extensions/Xrender.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <X11/extensions/Xrender.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking X11/extensions/Xrender.h presence" >&5
-echo $ECHO_N "checking X11/extensions/Xrender.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <X11/extensions/Xrender.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------------------------------------------- ##
-## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ##
-## ---------------------------------------------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for X11/extensions/Xrender.h" >&5
-echo $ECHO_N "checking for X11/extensions/Xrender.h... $ECHO_C" >&6
-if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_X11_extensions_Xrender_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrender_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrender_h" >&6
-
-fi
-if test $ac_cv_header_X11_extensions_Xrender_h = yes; then
+ xlib_REQUIRES=""
+ xlib_CFLAGS=""
+ xlib_LIBS=""
+ xlib_NONPKGCONFIG_CFLAGS=""
+ xlib_NONPKGCONFIG_LIBS=""
if test "x$ac_path_x_has_been_run" != xyes; then
@@ -21117,737 +20933,112 @@ fi
fi
- XRENDER_LIBS="$X_LIBS -lXrender -lXext -lX11 $X_EXTRA_LIBS"
-else
-
- use_xlib="no (requires Xrender http://freedesktop.org/Software/xlibs)"
-fi
-
-
-elif test $pkg_failed = untried; then
-
- if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
- echo "$as_me:$LINENO: checking for X11/extensions/Xrender.h" >&5
-echo $ECHO_N "checking for X11/extensions/Xrender.h... $ECHO_C" >&6
-if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrender_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrender_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking X11/extensions/Xrender.h usability" >&5
-echo $ECHO_N "checking X11/extensions/Xrender.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <X11/extensions/Xrender.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking X11/extensions/Xrender.h presence" >&5
-echo $ECHO_N "checking X11/extensions/Xrender.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <X11/extensions/Xrender.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: X11/extensions/Xrender.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------------------------------------------- ##
-## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ##
-## ---------------------------------------------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for X11/extensions/Xrender.h" >&5
-echo $ECHO_N "checking for X11/extensions/Xrender.h... $ECHO_C" >&6
-if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_X11_extensions_Xrender_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrender_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrender_h" >&6
-
-fi
-if test $ac_cv_header_X11_extensions_Xrender_h = yes; then
-
-
-if test "x$ac_path_x_has_been_run" != xyes; then
- echo "$as_me:$LINENO: checking for X" >&5
-echo $ECHO_N "checking for X... $ECHO_C" >&6
-
-ac_path_x_has_been_run=yes
-
-# Check whether --with-x or --without-x was given.
-if test "${with_x+set}" = set; then
- withval="$with_x"
-
-fi;
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
- # The user explicitly disabled X.
- have_x=disabled
-else
- if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
- # Both variables are already set.
- have_x=yes
- else
- if test "${ac_cv_have_x+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=no ac_x_libraries=no
-rm -fr conftest.dir
-if mkdir conftest.dir; then
- cd conftest.dir
- # Make sure to not put "make" in the Imakefile rules, since we grep it out.
- cat >Imakefile <<'_ACEOF'
-acfindx:
- @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
-_ACEOF
- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
- eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
- for ac_extension in a so sl; do
- if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
- test -f $ac_im_libdir/libX11.$ac_extension; then
- ac_im_usrlibdir=$ac_im_libdir; break
- fi
- done
- # Screen out bogus values from the imake configuration. They are
- # bogus both because they are the default anyway, and because
- # using them would break gcc on systems where it needs fixed includes.
- case $ac_im_incroot in
- /usr/include) ;;
- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
- esac
- case $ac_im_usrlibdir in
- /usr/lib | /lib) ;;
- *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
- esac
- fi
- cd ..
- rm -fr conftest.dir
-fi
-
-# Standard set of common directories for X headers.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-ac_x_header_dirs='
-/usr/X11/include
-/usr/X11R6/include
-/usr/X11R5/include
-/usr/X11R4/include
-
-/usr/include/X11
-/usr/include/X11R6
-/usr/include/X11R5
-/usr/include/X11R4
-
-/usr/local/X11/include
-/usr/local/X11R6/include
-/usr/local/X11R5/include
-/usr/local/X11R4/include
-
-/usr/local/include/X11
-/usr/local/include/X11R6
-/usr/local/include/X11R5
-/usr/local/include/X11R4
-
-/usr/X386/include
-/usr/x386/include
-/usr/XFree86/include/X11
-
-/usr/include
-/usr/local/include
-/usr/unsupported/include
-/usr/athena/include
-/usr/local/x11r5/include
-/usr/lpp/Xamples/include
-
-/usr/openwin/include
-/usr/openwin/share/include'
-
-if test "$ac_x_includes" = no; then
- # Guess where to find include files, by looking for a specified header file.
- # First, try using that file with no special directory specified.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <X11/Xlib.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ if test "x$no_x" = xyes; then
+ use_xlib="no (requires Xlib)"
else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # We can compile using X headers with no special include directory.
-ac_x_includes=
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- for ac_dir in $ac_x_header_dirs; do
- if test -r "$ac_dir/X11/Xlib.h"; then
- ac_x_includes=$ac_dir
- break
+ xlib_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
+ xlib_CFLAGS=$X_CFLAGS
fi
-done
-fi
-rm -f conftest.err conftest.$ac_ext
-fi # $ac_x_includes = no
-
-if test "$ac_x_libraries" = no; then
- # Check for the libraries.
- # See if we find them without any special options.
- # Don't add to $LIBS permanently.
- ac_save_LIBS=$LIBS
- LIBS="-lX11 $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <X11/Xlib.h>
-int
-main ()
-{
-XrmInitialize ()
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- LIBS=$ac_save_LIBS
-# We can link X programs with no special library path.
-ac_x_libraries=
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-LIBS=$ac_save_LIBS
-for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
-do
- # Don't even attempt the hair of trying to link an X program!
- for ac_extension in a so sl; do
- if test -r $ac_dir/libX11.$ac_extension; then
- ac_x_libraries=$ac_dir
- break 2
- fi
- done
-done
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi # $ac_x_libraries = no
-if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
- # Didn't find X anywhere. Cache the known absence of X.
- ac_cv_have_x="have_x=no"
+ cairo_cv_backend_xlib_use=$use_xlib
+ cairo_cv_backend_xlib_requires=$xlib_REQUIRES
+ cairo_cv_backend_xlib_cflags=$xlib_CFLAGS
+ cairo_cv_backend_xlib_libs=$xlib_LIBS
+ cairo_cv_backend_xlib_nonpkgconfig_cflags=$xlib_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_xlib_nonpkgconfig_libs=$xlib_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's Xlib backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's Xlib backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_xlib_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_xlib_use" >&6
+
+ # split the backend spec into its components
+ use_xlib=$cairo_cv_backend_xlib_use
+ xlib_REQUIRES=$cairo_cv_backend_xlib_requires
+ xlib_CFLAGS=$cairo_cv_backend_xlib_cflags
+ xlib_LIBS=$cairo_cv_backend_xlib_libs
+ xlib_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_xlib_nonpkgconfig_cflags
+ xlib_NONPKGCONFIG_LIBS=$cairo_cv_backend_xlib_nonpkgconfig_libs
+
+ case $enable_xlib in
+ yes)
+ if test "x$use_xlib" = xyes; then
+ :
else
- # Record where we found X for the cache.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-fi
-fi
-
- fi
- eval "$ac_cv_have_x"
-fi # $with_x != no
-if test "$have_x" != yes; then
- echo "$as_me:$LINENO: result: $have_x" >&5
-echo "${ECHO_T}$have_x" >&6
- no_x=yes
-else
- # If each of the values was on the command line, it overrides each guess.
- test "x$x_includes" = xNONE && x_includes=$ac_x_includes
- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
- # Update the cache value to reflect the command line values.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
- # It might be that x_includes is empty (headers are found in the
- # standard search path. Then output the corresponding message
- ac_out_x_includes=$x_includes
- test "x$x_includes" = x && ac_out_x_includes="in standard search path"
- echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5
-echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6
-fi
+ { { echo "$as_me:$LINENO: error: requested Xlib backend could not be enabled" >&5
+echo "$as_me: error: requested Xlib backend could not be enabled" >&2;}
+ { (exit 1); exit 1; }; }
fi
-if test "$no_x" = yes; then
- # Not all programs may use this symbol, but it does not hurt to define it.
-
-cat >>confdefs.h <<\_ACEOF
-#define X_DISPLAY_MISSING 1
-_ACEOF
-
- X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
-else
- if test -n "$x_includes"; then
- X_CFLAGS="$X_CFLAGS -I$x_includes"
- fi
-
- # It would also be nice to do this for all -L options, not just this one.
- if test -n "$x_libraries"; then
- X_LIBS="$X_LIBS -L$x_libraries"
- # For Solaris; some versions of Sun CC require a space after -R and
- # others require no space. Words are not sufficient . . . .
- case `(uname -sr) 2>/dev/null` in
- "SunOS 5"*)
- echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5
-echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
- ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_R_nospace=yes
+ ;;
+ auto)
+ ;;
+ *)
+ { { echo "$as_me:$LINENO: error: invalid argument passed to --enable-xlib: $use_xlib, should be one of [no/auto/yes]" >&5
+echo "$as_me: error: invalid argument passed to --enable-xlib: $use_xlib, should be one of [no/auto/yes]" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+ if test "x$use_xlib" = xyes; then
+ CAIRO_FEATURES="$CAIRO_FEATURES XLIB_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $xlib_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $xlib_CFLAGS $xlib_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $xlib_LIBS $xlib_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-xlib.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
+ if sed \
+ -e "s,@backend_name@,xlib,g" \
+ -e "s,@Backend_Name@,Xlib,g" \
+ -e "s,@BACKEND_REQUIRES@,$xlib_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$xlib_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$xlib_NONPKGCONFIG_CFLAGS,g" \
+ -e "s,@prefix@,$prefix,g" \
+ -e "s,@exec_prefix@,$exec_prefix,g" \
+ -e "s,@libdir@,$libdir,g" \
+ -e "s,@includedir@,$includedir,g" \
+ -e "s,@VERSION@,$VERSION,g" \
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
+ :
else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_R_nospace=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test $ac_R_nospace = yes; then
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- X_LIBS="$X_LIBS -R$x_libraries"
- else
- LIBS="$ac_xsave_LIBS -R $x_libraries"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_R_space=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
+ { (exit 1); exit 1; }; }
-ac_R_space=no
fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test $ac_R_space = yes; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- X_LIBS="$X_LIBS -R $x_libraries"
- else
- echo "$as_me:$LINENO: result: neither works" >&5
-echo "${ECHO_T}neither works" >&6
- fi
- fi
- LIBS=$ac_xsave_LIBS
- esac
- fi
-
- # Check for system-dependent libraries X programs must link with.
- # Do this before checking for the system-independent R6 libraries
- # (-lICE), since we may need -lsocket or whatever for X linking.
- if test "$ISC" = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
- else
- # Martyn Johnson says this is needed for Ultrix, if the X
- # libraries were built with DECnet support. And Karl Berry says
- # the Alpha needs dnet_stub (dnet does not exist).
- ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XOpenDisplay ();
-int
-main ()
-{
-XOpenDisplay ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ fi
+ fi
-echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5
-echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
-if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldnet $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dnet_ntoa ();
-int
-main ()
-{
-dnet_ntoa ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dnet_dnet_ntoa=yes
+if test "x$use_xlib" = xyes; then
+ CAIRO_HAS_XLIB_SURFACE_TRUE=
+ CAIRO_HAS_XLIB_SURFACE_FALSE='#'
else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dnet_dnet_ntoa=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
-echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
-if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+ CAIRO_HAS_XLIB_SURFACE_TRUE='#'
+ CAIRO_HAS_XLIB_SURFACE_FALSE=
fi
- if test $ac_cv_lib_dnet_dnet_ntoa = no; then
- echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5
-echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
-if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldnet_stub $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dnet_ntoa ();
-int
-main ()
-{
-dnet_ntoa ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dnet_stub_dnet_ntoa=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_lib_dnet_stub_dnet_ntoa=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
-echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
-if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
-fi
+if test "x$use_xlib" = xyes; then
- fi
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LIBS="$ac_xsave_LIBS"
+ save_cflags="$CFLAGS"
+ save_libs="$LIBS"
+ CFLAGS="$CFLAGS $xlib_CFLAGS"
+ LIBS="$LIBS $xlib_LIBS"
- # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
- # to get the SysV transport functions.
- # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
- # needs -lnsl.
- # The nsl library prevents programs from opening the X display
- # on Irix 5.2, according to T.E. Dickey.
- # The functions gethostbyname, getservbyname, and inet_addr are
- # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
- echo "$as_me:$LINENO: checking for gethostbyname" >&5
-echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
-if test "${ac_cv_func_gethostbyname+set}" = set; then
+for ac_func in XrmFinalize
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -21856,12 +21047,12 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define gethostbyname innocuous_gethostbyname
+#define $ac_func innocuous_$ac_func
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gethostbyname (); below.
+ which can conflict with char $ac_func (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
@@ -21871,7 +21062,7 @@ cat >>conftest.$ac_ext <<_ACEOF
# include <assert.h>
#endif
-#undef gethostbyname
+#undef $ac_func
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -21880,14 +21071,14 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char gethostbyname ();
+char $ac_func ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
-#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
-char (*f) () = gethostbyname;
+char (*f) () = $ac_func;
#endif
#ifdef __cplusplus
}
@@ -21896,7 +21087,7 @@ char (*f) () = gethostbyname;
int
main ()
{
-return f != gethostbyname;
+return f != $ac_func;
;
return 0;
}
@@ -21922,288 +21113,141 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_func_gethostbyname=yes
+ eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_func_gethostbyname=no
+eval "$as_ac_var=no"
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
-
- if test $ac_cv_func_gethostbyname = no; then
- echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
-echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname ();
-int
-main ()
-{
-gethostbyname ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_nsl_gethostbyname=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_nsl_gethostbyname=no
fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
-if test $ac_cv_lib_nsl_gethostbyname = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+done
+
+ CFLAGS="$save_cflags"
+ LIBS="$save_libs"
+
fi
- if test $ac_cv_lib_nsl_gethostbyname = no; then
- echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
-echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
-if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
+# Check whether --enable-xlib-xrender or --disable-xlib-xrender was given.
+if test "${enable_xlib_xrender+set}" = set; then
+ enableval="$enable_xlib_xrender"
+ enable_xlib_xrender=$enableval
+else
+ enable_xlib_xrender=auto
+fi;
+ if test "x$enable_xlib_xrender" = xno; then
+ use_xlib_xrender="no (disabled, use --enable-xlib-xrender to enable)"
+ else
+ echo "$as_me:$LINENO: checking for cairo's Xlib Xrender backend" >&5
+echo $ECHO_N "checking for cairo's Xlib Xrender backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_xlib_xrender_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbsd $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
+ echo
+ use_xlib_xrender=yes
+ xlib_xrender_REQUIRES=""
+ xlib_xrender_CFLAGS=""
+ xlib_xrender_LIBS=""
+ xlib_xrender_NONPKGCONFIG_CFLAGS=""
+ xlib_xrender_NONPKGCONFIG_LIBS=""
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname ();
-int
-main ()
-{
-gethostbyname ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
+ use_xlib_xrender=$use_xlib
+ if test "x$use_xlib_xrender" = xyes; then
+ xlib_xrender_REQUIRES="xrender >= 0.6"
+
+pkg_failed=no
+echo "$as_me:$LINENO: checking for xlib_xrender" >&5
+echo $ECHO_N "checking for xlib_xrender... $ECHO_C" >&6
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$xlib_xrender_CFLAGS"; then
+ pkg_cv_xlib_xrender_CFLAGS="$xlib_xrender_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$xlib_xrender_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$xlib_xrender_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_bsd_gethostbyname=yes
+ (exit $ac_status); }; then
+ pkg_cv_xlib_xrender_CFLAGS=`$PKG_CONFIG --cflags "$xlib_xrender_REQUIRES" 2>/dev/null`
else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_bsd_gethostbyname=no
+ pkg_failed=yes
fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+ fi
+else
+ pkg_failed=untried
fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
-if test $ac_cv_lib_bsd_gethostbyname = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+if test -n "$PKG_CONFIG"; then
+ if test -n "$xlib_xrender_LIBS"; then
+ pkg_cv_xlib_xrender_LIBS="$xlib_xrender_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$xlib_xrender_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$xlib_xrender_REQUIRES") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_xlib_xrender_LIBS=`$PKG_CONFIG --libs "$xlib_xrender_REQUIRES" 2>/dev/null`
+else
+ pkg_failed=yes
fi
-
- fi
fi
-
- # lieder@skyler.mavd.honeywell.com says without -lsocket,
- # socket/setsockopt and other routines are undefined under SCO ODT
- # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
- # on later versions), says Simon Leinen: it contains gethostby*
- # variants that don't use the name server (or something). -lsocket
- # must be given before -lnsl if both are needed. We assume that
- # if connect needs -lnsl, so does gethostbyname.
- echo "$as_me:$LINENO: checking for connect" >&5
-echo $ECHO_N "checking for connect... $ECHO_C" >&6
-if test "${ac_cv_func_connect+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define connect to an innocuous variant, in case <limits.h> declares connect.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define connect innocuous_connect
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char connect (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
+ pkg_failed=untried
+fi
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-#undef connect
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char connect ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_connect) || defined (__stub___connect)
-choke me
-#else
-char (*f) () = connect;
-#endif
-#ifdef __cplusplus
-}
-#endif
+if test $pkg_failed = yes; then
-int
-main ()
-{
-return f != connect;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_connect=yes
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_connect=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
+ _pkg_short_errors_supported=no
fi
-echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
-echo "${ECHO_T}$ac_cv_func_connect" >&6
+ if test $_pkg_short_errors_supported = yes; then
+ xlib_xrender_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$xlib_xrender_REQUIRES"`
+ else
+ xlib_xrender_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$xlib_xrender_REQUIRES"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$xlib_xrender_PKG_ERRORS" >&5
- if test $ac_cv_func_connect = no; then
- echo "$as_me:$LINENO: checking for connect in -lsocket" >&5
-echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
-if test "${ac_cv_lib_socket_connect+set}" = set; then
+ xlib_xrender_REQUIRES=""
+ if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for X11/extensions/Xrender.h" >&5
+echo $ECHO_N "checking for X11/extensions/Xrender.h... $ECHO_C" >&6
+if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrender_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrender_h" >&6
else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking X11/extensions/Xrender.h usability" >&5
+echo $ECHO_N "checking X11/extensions/Xrender.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char connect ();
-int
-main ()
-{
-connect ();
- ;
- return 0;
-}
+$ac_includes_default
+#include <X11/extensions/Xrender.h>
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -22216,252 +21260,139 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_lib_socket_connect=yes
+ ac_header_compiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_lib_socket_connect=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
-if test $ac_cv_lib_socket_connect = yes; then
- X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+ac_header_compiler=no
fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
- fi
-
- # Guillermo Gomez says -lposix is necessary on A/UX.
- echo "$as_me:$LINENO: checking for remove" >&5
-echo $ECHO_N "checking for remove... $ECHO_C" >&6
-if test "${ac_cv_func_remove+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
+# Is the header present?
+echo "$as_me:$LINENO: checking X11/extensions/Xrender.h presence" >&5
+echo $ECHO_N "checking X11/extensions/Xrender.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define remove to an innocuous variant, in case <limits.h> declares remove.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define remove innocuous_remove
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char remove (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef remove
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char remove ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_remove) || defined (__stub___remove)
-choke me
-#else
-char (*f) () = remove;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != remove;
- ;
- return 0;
-}
+#include <X11/extensions/Xrender.h>
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_remove=yes
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_func_remove=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
+ ac_header_preproc=no
fi
-echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5
-echo "${ECHO_T}$ac_cv_func_remove" >&6
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
- if test $ac_cv_func_remove = no; then
- echo "$as_me:$LINENO: checking for remove in -lposix" >&5
-echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
-if test "${ac_cv_lib_posix_remove+set}" = set; then
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ---------------------------------------------------------------------- ##
+## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ##
+## ---------------------------------------------------------------------- ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for X11/extensions/Xrender.h" >&5
+echo $ECHO_N "checking for X11/extensions/Xrender.h... $ECHO_C" >&6
+if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lposix $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char remove ();
-int
-main ()
-{
-remove ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_posix_remove=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_posix_remove=no
+ ac_cv_header_X11_extensions_Xrender_h=$ac_header_preproc
fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrender_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrender_h" >&6
+
fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5
-echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
-if test $ac_cv_lib_posix_remove = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+if test $ac_cv_header_X11_extensions_Xrender_h = yes; then
+ xlib_xrender_LIBS="-lXrender"
+else
+ use_xlib_xrender="no (requires Xrender http://freedesktop.org/Software/xlibs)"
fi
- fi
- # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
- echo "$as_me:$LINENO: checking for shmat" >&5
-echo $ECHO_N "checking for shmat... $ECHO_C" >&6
-if test "${ac_cv_func_shmat+set}" = set; then
+elif test $pkg_failed = untried; then
+ xlib_xrender_REQUIRES=""
+ if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for X11/extensions/Xrender.h" >&5
+echo $ECHO_N "checking for X11/extensions/Xrender.h... $ECHO_C" >&6
+if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrender_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrender_h" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking X11/extensions/Xrender.h usability" >&5
+echo $ECHO_N "checking X11/extensions/Xrender.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define shmat to an innocuous variant, in case <limits.h> declares shmat.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define shmat innocuous_shmat
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char shmat (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shmat
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shmat ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_shmat) || defined (__stub___shmat)
-choke me
-#else
-char (*f) () = shmat;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != shmat;
- ;
- return 0;
-}
+$ac_includes_default
+#include <X11/extensions/Xrender.h>
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -22474,347 +21405,192 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_func_shmat=yes
+ ac_header_compiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_func_shmat=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
+ac_header_compiler=no
fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5
-echo "${ECHO_T}$ac_cv_func_shmat" >&6
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
- if test $ac_cv_func_shmat = no; then
- echo "$as_me:$LINENO: checking for shmat in -lipc" >&5
-echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
-if test "${ac_cv_lib_ipc_shmat+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lipc $LIBS"
+# Is the header present?
+echo "$as_me:$LINENO: checking X11/extensions/Xrender.h presence" >&5
+echo $ECHO_N "checking X11/extensions/Xrender.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shmat ();
-int
-main ()
-{
-shmat ();
- ;
- return 0;
-}
+#include <X11/extensions/Xrender.h>
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_ipc_shmat=yes
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_lib_ipc_shmat=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5
-echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
-if test $ac_cv_lib_ipc_shmat = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+ ac_header_preproc=no
fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
- fi
- fi
-
- # Check for libraries that X11R6 Xt/Xaw programs need.
- ac_save_LDFLAGS=$LDFLAGS
- test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
- # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
- # check for ICE first), but we must link in the order -lSM -lICE or
- # we get undefined symbols. So assume we have SM if we have ICE.
- # These have to be linked with before -lX11, unlike the other
- # libraries we check for below, so use a different variable.
- # John Interrante, Karl Berry
- echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5
-echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
-if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: X11/extensions/Xrender.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: X11/extensions/Xrender.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ---------------------------------------------------------------------- ##
+## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ##
+## ---------------------------------------------------------------------- ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for X11/extensions/Xrender.h" >&5
+echo $ECHO_N "checking for X11/extensions/Xrender.h... $ECHO_C" >&6
+if test "${ac_cv_header_X11_extensions_Xrender_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lICE $X_EXTRA_LIBS $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char IceConnectionNumber ();
-int
-main ()
-{
-IceConnectionNumber ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_ICE_IceConnectionNumber=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_ICE_IceConnectionNumber=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
-echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
-if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
- X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+ ac_cv_header_X11_extensions_Xrender_h=$ac_header_preproc
fi
-
- LDFLAGS=$ac_save_LDFLAGS
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrender_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrender_h" >&6
fi
-
- XRENDER_LIBS="$X_LIBS -lXrender -lXext -lX11 $X_EXTRA_LIBS"
+if test $ac_cv_header_X11_extensions_Xrender_h = yes; then
+ xlib_xrender_LIBS="-lXrender"
else
-
- use_xlib="no (requires Xrender http://freedesktop.org/Software/xlibs)"
+ use_xlib_xrender="no (requires Xrender http://freedesktop.org/Software/xlibs)"
fi
else
- XRENDER_CFLAGS=$pkg_cv_XRENDER_CFLAGS
- XRENDER_LIBS=$pkg_cv_XRENDER_LIBS
+ xlib_xrender_CFLAGS=$pkg_cv_xlib_xrender_CFLAGS
+ xlib_xrender_LIBS=$pkg_cv_xlib_xrender_LIBS
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
-
- XRENDER_REQUIRES=xrender
+ :
fi
+ xlib_xrender_CFLAGS="$xlib_CFLAGS $xlib_xrender_CFLAGS"
+ xlib_xrender_LIBS="$xlib_LIBS $xlib_xrender_LIBS"
+ fi
- save_cflags="$CFLAGS"
- save_libs="$LIBS"
- CFLAGS="$CFLAGS $XRENDER_CFLAGS"
- LIBS="$LIBS $XRENDER_LIBS"
-
-for ac_func in XrmFinalize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
+ cairo_cv_backend_xlib_xrender_use=$use_xlib_xrender
+ cairo_cv_backend_xlib_xrender_requires=$xlib_xrender_REQUIRES
+ cairo_cv_backend_xlib_xrender_cflags=$xlib_xrender_CFLAGS
+ cairo_cv_backend_xlib_xrender_libs=$xlib_xrender_LIBS
+ cairo_cv_backend_xlib_xrender_nonpkgconfig_cflags=$xlib_xrender_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_xlib_xrender_nonpkgconfig_libs=$xlib_xrender_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's Xlib Xrender backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's Xlib Xrender backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_xlib_xrender_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_xlib_xrender_use" >&6
+
+ # split the backend spec into its components
+ use_xlib_xrender=$cairo_cv_backend_xlib_xrender_use
+ xlib_xrender_REQUIRES=$cairo_cv_backend_xlib_xrender_requires
+ xlib_xrender_CFLAGS=$cairo_cv_backend_xlib_xrender_cflags
+ xlib_xrender_LIBS=$cairo_cv_backend_xlib_xrender_libs
+ xlib_xrender_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_xlib_xrender_nonpkgconfig_cflags
+ xlib_xrender_NONPKGCONFIG_LIBS=$cairo_cv_backend_xlib_xrender_nonpkgconfig_libs
+
+ case $enable_xlib_xrender in
+ yes)
+ if test "x$use_xlib_xrender" = xyes; then
+ :
else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+ { { echo "$as_me:$LINENO: error: requested Xlib Xrender backend could not be enabled" >&5
+echo "$as_me: error: requested Xlib Xrender backend could not be enabled" >&2;}
+ { (exit 1); exit 1; }; }
fi
-done
-
- CFLAGS="$save_cflags"
- LIBS="$save_libs"
-
- cairo_cv_use_xlib=$use_xlib
- use_xlib=$saved_use_xlib
- echo "$as_me:$LINENO: checking whether cairo's xlib backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's xlib backend could be enabled... $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_xlib" >&5
-echo "${ECHO_T}$cairo_cv_use_xlib" >&6
- case $use_xlib in
- yes)
- if test "x$cairo_cv_use_xlib" = xyes; then
- use_xlib=yes
- else
- { { echo "$as_me:$LINENO: error: requested Xlib backend could not be enabled" >&5
-echo "$as_me: error: requested Xlib backend could not be enabled" >&2;}
- { (exit 1); exit 1; }; }
- fi
;;
auto)
- use_xlib=$cairo_cv_use_xlib
;;
*)
- { { echo "$as_me:$LINENO: error: invalid argument passed to --enable-xlib: $use_xlib, should be one of [no/auto/yes]" >&5
-echo "$as_me: error: invalid argument passed to --enable-xlib: $use_xlib, should be one of [no/auto/yes]" >&2;}
+ { { echo "$as_me:$LINENO: error: invalid argument passed to --enable-xlib-xrender: $use_xlib_xrender, should be one of [no/auto/yes]" >&5
+echo "$as_me: error: invalid argument passed to --enable-xlib-xrender: $use_xlib_xrender, should be one of [no/auto/yes]" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
- if test "x$use_xlib" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-xlib.pc" >&5
-echo "$as_me: creating src/cairo-xlib.pc" >&6;}
- mkdir src
+ if test "x$use_xlib_xrender" = xyes; then
+ CAIRO_FEATURES="$CAIRO_FEATURES XLIB_XRENDER_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $xlib_xrender_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $xlib_xrender_CFLAGS $xlib_xrender_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $xlib_xrender_LIBS $xlib_xrender_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-xlib_xrender.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/xlib/g" \
- -e "s/@Backend_Name@/Xlib/g" \
- -e "s/@BACKEND_REQUIRES@/xrender/g" \
+ -e "s,@backend_name@,xlib_xrender,g" \
+ -e "s,@Backend_Name@,Xlib Xrender,g" \
+ -e "s,@BACKEND_REQUIRES@,$xlib_xrender_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$xlib_xrender_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$xlib_xrender_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-xlib.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-xlib.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-xlib.pc" >&5
-echo "$as_me: error: failed creating src/cairo-xlib.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -22823,43 +21599,39 @@ fi
fi
-
-if test "x$use_xlib" = "xyes"; then
- CAIRO_HAS_XLIB_SURFACE_TRUE=
- CAIRO_HAS_XLIB_SURFACE_FALSE='#'
+if test "x$use_xlib_xrender" = xyes; then
+ CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE=
+ CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE='#'
else
- CAIRO_HAS_XLIB_SURFACE_TRUE='#'
- CAIRO_HAS_XLIB_SURFACE_FALSE=
+ CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE='#'
+ CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE=
fi
-if test "x$use_xlib" = "xyes"; then
- XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
-fi
-
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $XRENDER_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $XRENDER_LIBS"
# Check whether --enable-quartz or --disable-quartz was given.
if test "${enable_quartz+set}" = set; then
enableval="$enable_quartz"
- use_quartz=$enableval
+ enable_quartz=$enableval
else
- use_quartz=no
+ enable_quartz=no
fi;
- if test "x$use_quartz" = xno; then
+ if test "x$enable_quartz" = xno; then
use_quartz="no (disabled, use --enable-quartz to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's quartz backend" >&5
-echo $ECHO_N "checking for cairo's quartz backend... $ECHO_C" >&6
-if test "${cairo_cv_use_quartz+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's Quartz backend" >&5
+echo $ECHO_N "checking for cairo's Quartz backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_quartz_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_quartz=$use_quartz
use_quartz=yes
+ quartz_REQUIRES=""
+ quartz_CFLAGS=""
+ quartz_LIBS=""
+ quartz_NONPKGCONFIG_CFLAGS=""
+ quartz_NONPKGCONFIG_LIBS=""
if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5
@@ -22998,32 +21770,48 @@ echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
fi
if test $ac_cv_header_Carbon_Carbon_h = yes; then
- use_quartz=yes
+ :
else
use_quartz="no (Carbon headers not found)"
fi
+ quartz_LIBS="-Xlinker -framework -Xlinker Carbon"
- cairo_cv_use_quartz=$use_quartz
- use_quartz=$saved_use_quartz
- echo "$as_me:$LINENO: checking whether cairo's quartz backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's quartz backend could be enabled... $ECHO_C" >&6
+ cairo_cv_backend_quartz_use=$use_quartz
+ cairo_cv_backend_quartz_requires=$quartz_REQUIRES
+ cairo_cv_backend_quartz_cflags=$quartz_CFLAGS
+ cairo_cv_backend_quartz_libs=$quartz_LIBS
+ cairo_cv_backend_quartz_nonpkgconfig_cflags=$quartz_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_quartz_nonpkgconfig_libs=$quartz_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's Quartz backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's Quartz backend could be enabled... $ECHO_C" >&6
fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_quartz" >&5
-echo "${ECHO_T}$cairo_cv_use_quartz" >&6
- case $use_quartz in
+echo "$as_me:$LINENO: result: $cairo_cv_backend_quartz_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_quartz_use" >&6
+
+ # split the backend spec into its components
+ use_quartz=$cairo_cv_backend_quartz_use
+ quartz_REQUIRES=$cairo_cv_backend_quartz_requires
+ quartz_CFLAGS=$cairo_cv_backend_quartz_cflags
+ quartz_LIBS=$cairo_cv_backend_quartz_libs
+ quartz_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_quartz_nonpkgconfig_cflags
+ quartz_NONPKGCONFIG_LIBS=$cairo_cv_backend_quartz_nonpkgconfig_libs
+
+ case $enable_quartz in
yes)
- if test "x$cairo_cv_use_quartz" = xyes; then
- use_quartz=yes
- else
+ if test "x$use_quartz" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested Quartz backend could not be enabled" >&5
echo "$as_me: error: requested Quartz backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_quartz=$cairo_cv_use_quartz
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-quartz: $use_quartz, should be one of [no/auto/yes]" >&5
@@ -23032,25 +21820,32 @@ echo "$as_me: error: invalid argument passed to --enable-quartz: $use_quartz, sh
;;
esac
if test "x$use_quartz" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-quartz.pc" >&5
-echo "$as_me: creating src/cairo-quartz.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES QUARTZ_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $quartz_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $quartz_CFLAGS $quartz_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $quartz_LIBS $quartz_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-quartz.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/quartz/g" \
- -e "s/@Backend_Name@/Quartz/g" \
- -e "s/@BACKEND_REQUIRES@//g" \
+ -e "s,@backend_name@,quartz,g" \
+ -e "s,@Backend_Name@,Quartz,g" \
+ -e "s,@BACKEND_REQUIRES@,$quartz_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$quartz_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$quartz_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-quartz.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-quartz.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-quartz.pc" >&5
-echo "$as_me: error: failed creating src/cairo-quartz.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -23059,8 +21854,7 @@ fi
fi
-
-if test "x$use_quartz" = "xyes"; then
+if test "x$use_quartz" = xyes; then
CAIRO_HAS_QUARTZ_SURFACE_TRUE=
CAIRO_HAS_QUARTZ_SURFACE_FALSE='#'
else
@@ -23068,49 +21862,49 @@ else
CAIRO_HAS_QUARTZ_SURFACE_FALSE=
fi
-if test "x$use_quartz" = "xyes"; then
- QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
- QUARTZ_LIBS="-Xlinker -framework -Xlinker Carbon"
-fi
-CAIRO_LIBS="$CAIRO_LIBS $QUARTZ_LIBS"
# Check whether --enable-xcb or --disable-xcb was given.
if test "${enable_xcb+set}" = set; then
enableval="$enable_xcb"
- use_xcb=$enableval
+ enable_xcb=$enableval
else
- use_xcb=no
+ enable_xcb=no
fi;
- if test "x$use_xcb" = xno; then
+ if test "x$enable_xcb" = xno; then
use_xcb="no (disabled, use --enable-xcb to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's xcb backend" >&5
-echo $ECHO_N "checking for cairo's xcb backend... $ECHO_C" >&6
-if test "${cairo_cv_use_xcb+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's XCB backend" >&5
+echo $ECHO_N "checking for cairo's XCB backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_xcb_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_xcb=$use_xcb
use_xcb=yes
+ xcb_REQUIRES=""
+ xcb_CFLAGS=""
+ xcb_LIBS=""
+ xcb_NONPKGCONFIG_CFLAGS=""
+ xcb_NONPKGCONFIG_LIBS=""
+ xcb_REQUIRES="xcb xcb-render"
pkg_failed=no
-echo "$as_me:$LINENO: checking for XCB" >&5
-echo $ECHO_N "checking for XCB... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for xcb" >&5
+echo $ECHO_N "checking for xcb... $ECHO_C" >&6
if test -n "$PKG_CONFIG"; then
- if test -n "$XCB_CFLAGS"; then
- pkg_cv_XCB_CFLAGS="$XCB_CFLAGS"
+ if test -n "$xcb_CFLAGS"; then
+ pkg_cv_xcb_CFLAGS="$xcb_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xcb xcb-render\"") >&5
- ($PKG_CONFIG --exists --print-errors "xcb xcb-render") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$xcb_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$xcb_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XCB_CFLAGS=`$PKG_CONFIG --cflags "xcb xcb-render" 2>/dev/null`
+ pkg_cv_xcb_CFLAGS=`$PKG_CONFIG --cflags "$xcb_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -23119,16 +21913,16 @@ else
pkg_failed=untried
fi
if test -n "$PKG_CONFIG"; then
- if test -n "$XCB_LIBS"; then
- pkg_cv_XCB_LIBS="$XCB_LIBS"
+ if test -n "$xcb_LIBS"; then
+ pkg_cv_xcb_LIBS="$xcb_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xcb xcb-render\"") >&5
- ($PKG_CONFIG --exists --print-errors "xcb xcb-render") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$xcb_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$xcb_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_XCB_LIBS=`$PKG_CONFIG --libs "xcb xcb-render" 2>/dev/null`
+ pkg_cv_xcb_LIBS=`$PKG_CONFIG --libs "$xcb_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -23147,12 +21941,12 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb xcb-render"`
+ xcb_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$xcb_REQUIRES"`
else
- XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb xcb-render"`
+ xcb_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$xcb_REQUIRES"`
fi
# Put the nasty error message in config.log where it belongs
- echo "$XCB_PKG_ERRORS" >&5
+ echo "$xcb_PKG_ERRORS" >&5
use_xcb="no (requires XCB http://xcb.freedesktop.org)"
@@ -23160,32 +21954,47 @@ elif test $pkg_failed = untried; then
use_xcb="no (requires XCB http://xcb.freedesktop.org)"
else
- XCB_CFLAGS=$pkg_cv_XCB_CFLAGS
- XCB_LIBS=$pkg_cv_XCB_LIBS
+ xcb_CFLAGS=$pkg_cv_xcb_CFLAGS
+ xcb_LIBS=$pkg_cv_xcb_LIBS
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
- use_xcb=yes
+ :
fi
- cairo_cv_use_xcb=$use_xcb
- use_xcb=$saved_use_xcb
- echo "$as_me:$LINENO: checking whether cairo's xcb backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's xcb backend could be enabled... $ECHO_C" >&6
+ cairo_cv_backend_xcb_use=$use_xcb
+ cairo_cv_backend_xcb_requires=$xcb_REQUIRES
+ cairo_cv_backend_xcb_cflags=$xcb_CFLAGS
+ cairo_cv_backend_xcb_libs=$xcb_LIBS
+ cairo_cv_backend_xcb_nonpkgconfig_cflags=$xcb_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_xcb_nonpkgconfig_libs=$xcb_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's XCB backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's XCB backend could be enabled... $ECHO_C" >&6
fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_xcb" >&5
-echo "${ECHO_T}$cairo_cv_use_xcb" >&6
- case $use_xcb in
+echo "$as_me:$LINENO: result: $cairo_cv_backend_xcb_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_xcb_use" >&6
+
+ # split the backend spec into its components
+ use_xcb=$cairo_cv_backend_xcb_use
+ xcb_REQUIRES=$cairo_cv_backend_xcb_requires
+ xcb_CFLAGS=$cairo_cv_backend_xcb_cflags
+ xcb_LIBS=$cairo_cv_backend_xcb_libs
+ xcb_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_xcb_nonpkgconfig_cflags
+ xcb_NONPKGCONFIG_LIBS=$cairo_cv_backend_xcb_nonpkgconfig_libs
+
+ case $enable_xcb in
yes)
- if test "x$cairo_cv_use_xcb" = xyes; then
- use_xcb=yes
- else
+ if test "x$use_xcb" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested XCB backend could not be enabled" >&5
echo "$as_me: error: requested XCB backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_xcb=$cairo_cv_use_xcb
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-xcb: $use_xcb, should be one of [no/auto/yes]" >&5
@@ -23194,25 +22003,32 @@ echo "$as_me: error: invalid argument passed to --enable-xcb: $use_xcb, should b
;;
esac
if test "x$use_xcb" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-xcb.pc" >&5
-echo "$as_me: creating src/cairo-xcb.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES XCB_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $xcb_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $xcb_CFLAGS $xcb_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $xcb_LIBS $xcb_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-xcb.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/xcb/g" \
- -e "s/@Backend_Name@/XCB/g" \
- -e "s/@BACKEND_REQUIRES@/xcb xcb-render/g" \
+ -e "s,@backend_name@,xcb,g" \
+ -e "s,@Backend_Name@,XCB,g" \
+ -e "s,@BACKEND_REQUIRES@,$xcb_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$xcb_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$xcb_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-xcb.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-xcb.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-xcb.pc" >&5
-echo "$as_me: error: failed creating src/cairo-xcb.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -23221,8 +22037,7 @@ fi
fi
-
-if test "x$use_xcb" = "xyes"; then
+if test "x$use_xcb" = xyes; then
CAIRO_HAS_XCB_SURFACE_TRUE=
CAIRO_HAS_XCB_SURFACE_FALSE='#'
else
@@ -23230,72 +22045,76 @@ else
CAIRO_HAS_XCB_SURFACE_FALSE=
fi
-if test "x$use_xcb" = "xyes"; then
- XCB_SURFACE_FEATURE="#define CAIRO_HAS_XCB_SURFACE 1"
-fi
-
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $XCB_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $XCB_LIBS"
-case "$host" in
- *-*-mingw*|*-*-cygwin*)
- cairo_platform_win32=yes
- ;;
- *)
- cairo_platform_win32=no
- ;;
-esac
-
# Check whether --enable-win32 or --disable-win32 was given.
if test "${enable_win32+set}" = set; then
enableval="$enable_win32"
- use_win32=$enableval
+ enable_win32=$enableval
else
- use_win32=auto
+ enable_win32=auto
fi;
- if test "x$use_win32" = xno; then
+ if test "x$enable_win32" = xno; then
use_win32="no (disabled, use --enable-win32 to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's win32 backend" >&5
-echo $ECHO_N "checking for cairo's win32 backend... $ECHO_C" >&6
-if test "${cairo_cv_use_win32+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's Microsoft Windows backend" >&5
+echo $ECHO_N "checking for cairo's Microsoft Windows backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_win32_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_win32=$use_win32
use_win32=yes
+ win32_REQUIRES=""
+ win32_CFLAGS=""
+ win32_LIBS=""
+ win32_NONPKGCONFIG_CFLAGS=""
+ win32_NONPKGCONFIG_LIBS=""
case "$host" in
*-*-mingw*|*-*-cygwin*)
- use_win32=yes
+ :
;;
*)
- use_win32="no (the Microsoft Windows backend requires a Win32 platform)"
+ use_win32="no (requires a Win32 platform)"
;;
esac
-
- cairo_cv_use_win32=$use_win32
- use_win32=$saved_use_win32
- echo "$as_me:$LINENO: checking whether cairo's win32 backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's win32 backend could be enabled... $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_win32" >&5
-echo "${ECHO_T}$cairo_cv_use_win32" >&6
- case $use_win32 in
+ win32_LIBS="-lgdi32 -lmsimg32"
+
+ cairo_cv_backend_win32_use=$use_win32
+ cairo_cv_backend_win32_requires=$win32_REQUIRES
+ cairo_cv_backend_win32_cflags=$win32_CFLAGS
+ cairo_cv_backend_win32_libs=$win32_LIBS
+ cairo_cv_backend_win32_nonpkgconfig_cflags=$win32_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_win32_nonpkgconfig_libs=$win32_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's Microsoft Windows backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's Microsoft Windows backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_win32_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_win32_use" >&6
+
+ # split the backend spec into its components
+ use_win32=$cairo_cv_backend_win32_use
+ win32_REQUIRES=$cairo_cv_backend_win32_requires
+ win32_CFLAGS=$cairo_cv_backend_win32_cflags
+ win32_LIBS=$cairo_cv_backend_win32_libs
+ win32_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_win32_nonpkgconfig_cflags
+ win32_NONPKGCONFIG_LIBS=$cairo_cv_backend_win32_nonpkgconfig_libs
+
+ case $enable_win32 in
yes)
- if test "x$cairo_cv_use_win32" = xyes; then
- use_win32=yes
- else
+ if test "x$use_win32" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested Microsoft Windows backend could not be enabled" >&5
echo "$as_me: error: requested Microsoft Windows backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_win32=$cairo_cv_use_win32
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-win32: $use_win32, should be one of [no/auto/yes]" >&5
@@ -23304,25 +22123,32 @@ echo "$as_me: error: invalid argument passed to --enable-win32: $use_win32, shou
;;
esac
if test "x$use_win32" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-win32.pc" >&5
-echo "$as_me: creating src/cairo-win32.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES WIN32_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $win32_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $win32_CFLAGS $win32_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $win32_LIBS $win32_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-win32.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/win32/g" \
- -e "s/@Backend_Name@/Microsoft Windows/g" \
- -e "s/@BACKEND_REQUIRES@//g" \
+ -e "s,@backend_name@,win32,g" \
+ -e "s,@Backend_Name@,Microsoft Windows,g" \
+ -e "s,@BACKEND_REQUIRES@,$win32_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$win32_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$win32_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-win32.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-win32.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-win32.pc" >&5
-echo "$as_me: error: failed creating src/cairo-win32.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -23331,13 +22157,7 @@ fi
fi
-if test "x$use_win32" = "xyes"; then
- CAIRO_LIBS="$CAIRO_LIBS -lgdi32 -lmsimg32"
-fi
-
-
-
-if test "x$use_win32" = "xyes"; then
+if test "x$use_win32" = xyes; then
CAIRO_HAS_WIN32_SURFACE_TRUE=
CAIRO_HAS_WIN32_SURFACE_FALSE='#'
else
@@ -23345,14 +22165,110 @@ else
CAIRO_HAS_WIN32_SURFACE_FALSE=
fi
-if test "x$use_win32" = "xyes"; then
- WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
+
+
+# Check whether --enable-win32-font or --disable-win32-font was given.
+if test "${enable_win32_font+set}" = set; then
+ enableval="$enable_win32_font"
+ enable_win32_font=$enableval
+else
+ enable_win32_font=auto
+fi;
+ if test "x$enable_win32_font" = xno; then
+ use_win32_font="no (disabled, use --enable-win32-font to enable)"
+ else
+ echo "$as_me:$LINENO: checking for cairo's Microsoft Windows font backend" >&5
+echo $ECHO_N "checking for cairo's Microsoft Windows font backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_win32_font_use+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ echo
+ use_win32_font=yes
+ win32_font_REQUIRES=""
+ win32_font_CFLAGS=""
+ win32_font_LIBS=""
+ win32_font_NONPKGCONFIG_CFLAGS=""
+ win32_font_NONPKGCONFIG_LIBS=""
+
+ use_win32_font=$use_win32
+
+ cairo_cv_backend_win32_font_use=$use_win32_font
+ cairo_cv_backend_win32_font_requires=$win32_font_REQUIRES
+ cairo_cv_backend_win32_font_cflags=$win32_font_CFLAGS
+ cairo_cv_backend_win32_font_libs=$win32_font_LIBS
+ cairo_cv_backend_win32_font_nonpkgconfig_cflags=$win32_font_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_win32_font_nonpkgconfig_libs=$win32_font_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's Microsoft Windows font backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's Microsoft Windows font backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_win32_font_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_win32_font_use" >&6
+
+ # split the backend spec into its components
+ use_win32_font=$cairo_cv_backend_win32_font_use
+ win32_font_REQUIRES=$cairo_cv_backend_win32_font_requires
+ win32_font_CFLAGS=$cairo_cv_backend_win32_font_cflags
+ win32_font_LIBS=$cairo_cv_backend_win32_font_libs
+ win32_font_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_win32_font_nonpkgconfig_cflags
+ win32_font_NONPKGCONFIG_LIBS=$cairo_cv_backend_win32_font_nonpkgconfig_libs
+
+ case $enable_win32_font in
+ yes)
+ if test "x$use_win32_font" = xyes; then
+ :
+else
+
+ { { echo "$as_me:$LINENO: error: requested Microsoft Windows font backend could not be enabled" >&5
+echo "$as_me: error: requested Microsoft Windows font backend could not be enabled" >&2;}
+ { (exit 1); exit 1; }; }
+
fi
+ ;;
+ auto)
+ ;;
+ *)
+ { { echo "$as_me:$LINENO: error: invalid argument passed to --enable-win32-font: $use_win32_font, should be one of [no/auto/yes]" >&5
+echo "$as_me: error: invalid argument passed to --enable-win32-font: $use_win32_font, should be one of [no/auto/yes]" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+ if test "x$use_win32_font" = xyes; then
+ CAIRO_FEATURES="$CAIRO_FEATURES WIN32_FONT"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $win32_font_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $win32_font_CFLAGS $win32_font_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $win32_font_LIBS $win32_font_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-win32_font.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
+ if sed \
+ -e "s,@backend_name@,win32_font,g" \
+ -e "s,@Backend_Name@,Microsoft Windows font,g" \
+ -e "s,@BACKEND_REQUIRES@,$win32_font_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$win32_font_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$win32_font_NONPKGCONFIG_CFLAGS,g" \
+ -e "s,@prefix@,$prefix,g" \
+ -e "s,@exec_prefix@,$exec_prefix,g" \
+ -e "s,@libdir@,$libdir,g" \
+ -e "s,@includedir@,$includedir,g" \
+ -e "s,@VERSION@,$VERSION,g" \
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
+ :
+else
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
+ { (exit 1); exit 1; }; }
+fi
-if test "x$use_win32" = "xyes"; then
+ fi
+ fi
+
+
+if test "x$use_win32_font" = xyes; then
CAIRO_HAS_WIN32_FONT_TRUE=
CAIRO_HAS_WIN32_FONT_FALSE='#'
else
@@ -23360,61 +22276,196 @@ else
CAIRO_HAS_WIN32_FONT_FALSE=
fi
-if test "x$use_win32" = "xyes"; then
- WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
-fi
-
-
# Check whether --enable-beos or --disable-beos was given.
if test "${enable_beos+set}" = set; then
enableval="$enable_beos"
- use_beos=$enableval
+ enable_beos=$enableval
else
- use_beos=no
+ enable_beos=no
fi;
- if test "x$use_beos" = xno; then
+ if test "x$enable_beos" = xno; then
use_beos="no (disabled, use --enable-beos to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's beos backend" >&5
-echo $ECHO_N "checking for cairo's beos backend... $ECHO_C" >&6
-if test "${cairo_cv_use_beos+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's BeOS/Zeta backend" >&5
+echo $ECHO_N "checking for cairo's BeOS/Zeta backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_beos_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_beos=$use_beos
use_beos=yes
+ beos_REQUIRES=""
+ beos_CFLAGS=""
+ beos_LIBS=""
+ beos_NONPKGCONFIG_CFLAGS=""
+ beos_NONPKGCONFIG_LIBS=""
case "$host" in
*-*-beos)
- use_beos=yes
+ echo "$as_me:$LINENO: checking for main in -lbe" >&5
+echo $ECHO_N "checking for main in -lbe... $ECHO_C" >&6
+if test "${ac_cv_lib_be_main+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbe $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+
+int
+main ()
+{
+main ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_be_main=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_be_main=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_be_main" >&5
+echo "${ECHO_T}$ac_cv_lib_be_main" >&6
+if test $ac_cv_lib_be_main = yes; then
+ beos_LIBS="$beos_LIBS -lbe"
+fi
+
+ echo "$as_me:$LINENO: checking for main in -lzeta" >&5
+echo $ECHO_N "checking for main in -lzeta... $ECHO_C" >&6
+if test "${ac_cv_lib_zeta_main+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lzeta $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+
+int
+main ()
+{
+main ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_zeta_main=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_zeta_main=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_zeta_main" >&5
+echo "${ECHO_T}$ac_cv_lib_zeta_main" >&6
+if test $ac_cv_lib_zeta_main = yes; then
+ beos_LIBS="$beos_LIBS -lzeta"
+fi
+
;;
*)
- use_beos="no (the BeOS backend requires a BeOS platform)"
+ use_beos="no (requires a BeOS platform)"
;;
esac
- cairo_cv_use_beos=$use_beos
- use_beos=$saved_use_beos
- echo "$as_me:$LINENO: checking whether cairo's beos backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's beos backend could be enabled... $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_beos" >&5
-echo "${ECHO_T}$cairo_cv_use_beos" >&6
- case $use_beos in
+ cairo_cv_backend_beos_use=$use_beos
+ cairo_cv_backend_beos_requires=$beos_REQUIRES
+ cairo_cv_backend_beos_cflags=$beos_CFLAGS
+ cairo_cv_backend_beos_libs=$beos_LIBS
+ cairo_cv_backend_beos_nonpkgconfig_cflags=$beos_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_beos_nonpkgconfig_libs=$beos_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's BeOS/Zeta backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's BeOS/Zeta backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_beos_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_beos_use" >&6
+
+ # split the backend spec into its components
+ use_beos=$cairo_cv_backend_beos_use
+ beos_REQUIRES=$cairo_cv_backend_beos_requires
+ beos_CFLAGS=$cairo_cv_backend_beos_cflags
+ beos_LIBS=$cairo_cv_backend_beos_libs
+ beos_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_beos_nonpkgconfig_cflags
+ beos_NONPKGCONFIG_LIBS=$cairo_cv_backend_beos_nonpkgconfig_libs
+
+ case $enable_beos in
yes)
- if test "x$cairo_cv_use_beos" = xyes; then
- use_beos=yes
- else
+ if test "x$use_beos" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested BeOS/Zeta backend could not be enabled" >&5
echo "$as_me: error: requested BeOS/Zeta backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_beos=$cairo_cv_use_beos
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-beos: $use_beos, should be one of [no/auto/yes]" >&5
@@ -23423,25 +22474,32 @@ echo "$as_me: error: invalid argument passed to --enable-beos: $use_beos, should
;;
esac
if test "x$use_beos" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-beos.pc" >&5
-echo "$as_me: creating src/cairo-beos.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES BEOS_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $beos_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $beos_CFLAGS $beos_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $beos_LIBS $beos_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-beos.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/beos/g" \
- -e "s/@Backend_Name@/BeOS/Zeta/g" \
- -e "s/@BACKEND_REQUIRES@//g" \
+ -e "s,@backend_name@,beos,g" \
+ -e "s,@Backend_Name@,BeOS/Zeta,g" \
+ -e "s,@BACKEND_REQUIRES@,$beos_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$beos_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$beos_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-beos.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-beos.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-beos.pc" >&5
-echo "$as_me: error: failed creating src/cairo-beos.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -23449,6 +22507,17 @@ fi
fi
fi
+
+if test "x$use_beos" = xyes; then
+ CAIRO_HAS_BEOS_SURFACE_TRUE=
+ CAIRO_HAS_BEOS_SURFACE_FALSE='#'
+else
+ CAIRO_HAS_BEOS_SURFACE_TRUE='#'
+ CAIRO_HAS_BEOS_SURFACE_FALSE=
+fi
+
+
+
if test "x$use_beos" = "xyes"; then
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
@@ -23910,194 +22979,59 @@ else
fi
- echo "$as_me:$LINENO: checking for main in -lbe" >&5
-echo $ECHO_N "checking for main in -lbe... $ECHO_C" >&6
-if test "${ac_cv_lib_be_main+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbe $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-
-int
-main ()
-{
-main ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_be_main=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_be_main=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_be_main" >&5
-echo "${ECHO_T}$ac_cv_lib_be_main" >&6
-if test $ac_cv_lib_be_main = yes; then
- CAIRO_LIBS="$CAIRO_LIBS -lbe"
-fi
-
- echo "$as_me:$LINENO: checking for main in -lzeta" >&5
-echo $ECHO_N "checking for main in -lzeta... $ECHO_C" >&6
-if test "${ac_cv_lib_zeta_main+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lzeta $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-
-int
-main ()
-{
-main ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_zeta_main=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_zeta_main=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_zeta_main" >&5
-echo "${ECHO_T}$ac_cv_lib_zeta_main" >&6
-if test $ac_cv_lib_zeta_main = yes; then
- CAIRO_LIBS="$CAIRO_LIBS -lzeta"
-fi
-
-fi
-
-
-
-if test "x$use_beos" = "xyes"; then
- CAIRO_HAS_BEOS_SURFACE_TRUE=
- CAIRO_HAS_BEOS_SURFACE_FALSE='#'
-else
- CAIRO_HAS_BEOS_SURFACE_TRUE='#'
- CAIRO_HAS_BEOS_SURFACE_FALSE=
-fi
-
-if test "x$use_beos" = "xyes"; then
- BEOS_SURFACE_FEATURE="#define CAIRO_HAS_BEOS_SURFACE 1"
fi
-
-
# Check whether --enable-png or --disable-png was given.
if test "${enable_png+set}" = set; then
enableval="$enable_png"
- use_png=$enableval
+ enable_png=$enableval
else
- use_png=yes
+ enable_png=yes
fi;
- if test "x$use_png" = xno; then
+ if test "x$enable_png" = xno; then
use_png="no (disabled, use --enable-png to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's png backend" >&5
-echo $ECHO_N "checking for cairo's png backend... $ECHO_C" >&6
-if test "${cairo_cv_use_png+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's PNG backend" >&5
+echo $ECHO_N "checking for cairo's PNG backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_png_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_png=$use_png
use_png=yes
+ png_REQUIRES=""
+ png_CFLAGS=""
+ png_LIBS=""
+ png_NONPKGCONFIG_CFLAGS=""
+ png_NONPKGCONFIG_LIBS=""
use_png=no
# libpng13 is GnuWin32's libpng-1.2.8 :-(
for l in libpng12 libpng13 libpng10 ; do
if $PKG_CONFIG --exists $l ; then
- PNG_REQUIRES=$l
+ png_REQUIRES=$l
use_png=yes
break
fi
done
if test "x$use_png" = "xyes" ; then
- # Sets PNG_CFLAGS, PNG_LIBS
pkg_failed=no
-echo "$as_me:$LINENO: checking for PNG" >&5
-echo $ECHO_N "checking for PNG... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for png" >&5
+echo $ECHO_N "checking for png... $ECHO_C" >&6
if test -n "$PKG_CONFIG"; then
- if test -n "$PNG_CFLAGS"; then
- pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
+ if test -n "$png_CFLAGS"; then
+ pkg_cv_png_CFLAGS="$png_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$PNG_REQUIRES\"") >&5
- ($PKG_CONFIG --exists --print-errors "$PNG_REQUIRES") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$png_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$png_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_PNG_CFLAGS=`$PKG_CONFIG --cflags "$PNG_REQUIRES" 2>/dev/null`
+ pkg_cv_png_CFLAGS=`$PKG_CONFIG --cflags "$png_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24106,16 +23040,16 @@ else
pkg_failed=untried
fi
if test -n "$PKG_CONFIG"; then
- if test -n "$PNG_LIBS"; then
- pkg_cv_PNG_LIBS="$PNG_LIBS"
+ if test -n "$png_LIBS"; then
+ pkg_cv_png_LIBS="$png_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$PNG_REQUIRES\"") >&5
- ($PKG_CONFIG --exists --print-errors "$PNG_REQUIRES") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$png_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$png_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_PNG_LIBS=`$PKG_CONFIG --libs "$PNG_REQUIRES" 2>/dev/null`
+ pkg_cv_png_LIBS=`$PKG_CONFIG --libs "$png_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24134,33 +23068,33 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$PNG_REQUIRES"`
+ png_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$png_REQUIRES"`
else
- PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$PNG_REQUIRES"`
+ png_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$png_REQUIRES"`
fi
# Put the nasty error message in config.log where it belongs
- echo "$PNG_PKG_ERRORS" >&5
+ echo "$png_PKG_ERRORS" >&5
- { { echo "$as_me:$LINENO: error: Package requirements ($PNG_REQUIRES) were not met:
+ { { echo "$as_me:$LINENO: error: Package requirements ($png_REQUIRES) were not met:
-$PNG_PKG_ERRORS
+$png_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
-Alternatively, you may set the environment variables PNG_CFLAGS
-and PNG_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables png_CFLAGS
+and png_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
-echo "$as_me: error: Package requirements ($PNG_REQUIRES) were not met:
+echo "$as_me: error: Package requirements ($png_REQUIRES) were not met:
-$PNG_PKG_ERRORS
+$png_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
-Alternatively, you may set the environment variables PNG_CFLAGS
-and PNG_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables png_CFLAGS
+and png_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&2;}
{ (exit 1); exit 1; }; }
@@ -24169,8 +23103,8 @@ elif test $pkg_failed = untried; then
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
-Alternatively, you may set the environment variables PNG_CFLAGS
-and PNG_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables png_CFLAGS
+and png_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
@@ -24179,16 +23113,16 @@ echo "$as_me: error: The pkg-config script could not be found or is too old. Ma
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
-Alternatively, you may set the environment variables PNG_CFLAGS
-and PNG_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables png_CFLAGS
+and png_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
- PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
- PNG_LIBS=$pkg_cv_PNG_LIBS
+ png_CFLAGS=$pkg_cv_png_CFLAGS
+ png_LIBS=$pkg_cv_png_LIBS
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
:
@@ -24198,25 +23132,40 @@ fi
echo "$as_me: WARNING: Could not find libpng in the pkg-config search path" >&2;}
fi
- cairo_cv_use_png=$use_png
- use_png=$saved_use_png
- echo "$as_me:$LINENO: checking whether cairo's png backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's png backend could be enabled... $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_png" >&5
-echo "${ECHO_T}$cairo_cv_use_png" >&6
- case $use_png in
+ cairo_cv_backend_png_use=$use_png
+ cairo_cv_backend_png_requires=$png_REQUIRES
+ cairo_cv_backend_png_cflags=$png_CFLAGS
+ cairo_cv_backend_png_libs=$png_LIBS
+ cairo_cv_backend_png_nonpkgconfig_cflags=$png_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_png_nonpkgconfig_libs=$png_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's PNG backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's PNG backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_png_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_png_use" >&6
+
+ # split the backend spec into its components
+ use_png=$cairo_cv_backend_png_use
+ png_REQUIRES=$cairo_cv_backend_png_requires
+ png_CFLAGS=$cairo_cv_backend_png_cflags
+ png_LIBS=$cairo_cv_backend_png_libs
+ png_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_png_nonpkgconfig_cflags
+ png_NONPKGCONFIG_LIBS=$cairo_cv_backend_png_nonpkgconfig_libs
+
+ case $enable_png in
yes)
- if test "x$cairo_cv_use_png" = xyes; then
- use_png=yes
- else
+ if test "x$use_png" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested PNG backend could not be enabled" >&5
echo "$as_me: error: requested PNG backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_png=$cairo_cv_use_png
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-png: $use_png, should be one of [no/auto/yes]" >&5
@@ -24225,25 +23174,32 @@ echo "$as_me: error: invalid argument passed to --enable-png: $use_png, should b
;;
esac
if test "x$use_png" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-png.pc" >&5
-echo "$as_me: creating src/cairo-png.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES PNG_FUNCTIONS"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $png_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $png_CFLAGS $png_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $png_LIBS $png_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-png.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/png/g" \
- -e "s/@Backend_Name@/PNG/g" \
- -e "s/@BACKEND_REQUIRES@//g" \
+ -e "s,@backend_name@,png,g" \
+ -e "s,@Backend_Name@,PNG,g" \
+ -e "s,@BACKEND_REQUIRES@,$png_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$png_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$png_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-png.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-png.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-png.pc" >&5
-echo "$as_me: error: failed creating src/cairo-png.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -24252,8 +23208,7 @@ fi
fi
-
-if test "x$use_png" = "xyes"; then
+if test "x$use_png" = xyes; then
CAIRO_HAS_PNG_FUNCTIONS_TRUE=
CAIRO_HAS_PNG_FUNCTIONS_FALSE='#'
else
@@ -24261,55 +23216,57 @@ else
CAIRO_HAS_PNG_FUNCTIONS_FALSE=
fi
+
+
if test "x$use_png" = "xyes"; then
- PNG_FUNCTIONS_FEATURE="#define CAIRO_HAS_PNG_FUNCTIONS 1"
+ :
else
{ echo "$as_me:$LINENO: WARNING: *** To run the tests, cairo must be built with png support ***" >&5
echo "$as_me: WARNING: *** To run the tests, cairo must be built with png support ***" >&2;}
fi
-CAIRO_CFLAGS="$CAIRO_CFLAGS $PNG_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $PNG_LIBS"
-
-
-
-
+GLITZ_MIN_VERSION=0.5.1
# Check whether --enable-glitz or --disable-glitz was given.
if test "${enable_glitz+set}" = set; then
enableval="$enable_glitz"
- use_glitz=$enableval
+ enable_glitz=$enableval
else
- use_glitz=no
+ enable_glitz=no
fi;
- if test "x$use_glitz" = xno; then
+ if test "x$enable_glitz" = xno; then
use_glitz="no (disabled, use --enable-glitz to enable)"
else
echo "$as_me:$LINENO: checking for cairo's glitz backend" >&5
echo $ECHO_N "checking for cairo's glitz backend... $ECHO_C" >&6
-if test "${cairo_cv_use_glitz+set}" = set; then
+if test "${cairo_cv_backend_glitz_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_glitz=$use_glitz
use_glitz=yes
+ glitz_REQUIRES=""
+ glitz_CFLAGS=""
+ glitz_LIBS=""
+ glitz_NONPKGCONFIG_CFLAGS=""
+ glitz_NONPKGCONFIG_LIBS=""
+ glitz_REQUIRES="glitz >= $GLITZ_MIN_VERSION"
pkg_failed=no
-echo "$as_me:$LINENO: checking for GLITZ" >&5
-echo $ECHO_N "checking for GLITZ... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for glitz" >&5
+echo $ECHO_N "checking for glitz... $ECHO_C" >&6
if test -n "$PKG_CONFIG"; then
- if test -n "$GLITZ_CFLAGS"; then
- pkg_cv_GLITZ_CFLAGS="$GLITZ_CFLAGS"
+ if test -n "$glitz_CFLAGS"; then
+ pkg_cv_glitz_CFLAGS="$glitz_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$glitz_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$glitz_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_CFLAGS=`$PKG_CONFIG --cflags "glitz >= 0.5.1" 2>/dev/null`
+ pkg_cv_glitz_CFLAGS=`$PKG_CONFIG --cflags "$glitz_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24318,16 +23275,16 @@ else
pkg_failed=untried
fi
if test -n "$PKG_CONFIG"; then
- if test -n "$GLITZ_LIBS"; then
- pkg_cv_GLITZ_LIBS="$GLITZ_LIBS"
+ if test -n "$glitz_LIBS"; then
+ pkg_cv_glitz_LIBS="$glitz_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$glitz_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$glitz_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_LIBS=`$PKG_CONFIG --libs "glitz >= 0.5.1" 2>/dev/null`
+ pkg_cv_glitz_LIBS=`$PKG_CONFIG --libs "$glitz_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24346,45 +23303,60 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLITZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz >= 0.5.1"`
+ glitz_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$glitz_REQUIRES"`
else
- GLITZ_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz >= 0.5.1"`
+ glitz_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$glitz_REQUIRES"`
fi
# Put the nasty error message in config.log where it belongs
- echo "$GLITZ_PKG_ERRORS" >&5
+ echo "$glitz_PKG_ERRORS" >&5
+
- use_glitz="no (requires glitz http://freedesktop.org/Software/glitz)"
+ use_glitz="no (requires glitz http://freedesktop.org/Software/glitz)"
elif test $pkg_failed = untried; then
- use_glitz="no (requires glitz http://freedesktop.org/Software/glitz)"
+
+ use_glitz="no (requires glitz http://freedesktop.org/Software/glitz)"
else
- GLITZ_CFLAGS=$pkg_cv_GLITZ_CFLAGS
- GLITZ_LIBS=$pkg_cv_GLITZ_LIBS
+ glitz_CFLAGS=$pkg_cv_glitz_CFLAGS
+ glitz_LIBS=$pkg_cv_glitz_LIBS
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
-
- GLITZ_REQUIRES=glitz
- use_glitz=yes
+ :
fi
- cairo_cv_use_glitz=$use_glitz
- use_glitz=$saved_use_glitz
+ cairo_cv_backend_glitz_use=$use_glitz
+ cairo_cv_backend_glitz_requires=$glitz_REQUIRES
+ cairo_cv_backend_glitz_cflags=$glitz_CFLAGS
+ cairo_cv_backend_glitz_libs=$glitz_LIBS
+ cairo_cv_backend_glitz_nonpkgconfig_cflags=$glitz_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_glitz_nonpkgconfig_libs=$glitz_NONPKGCONFIG_LIBS
echo "$as_me:$LINENO: checking whether cairo's glitz backend could be enabled" >&5
echo $ECHO_N "checking whether cairo's glitz backend could be enabled... $ECHO_C" >&6
fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_glitz" >&5
-echo "${ECHO_T}$cairo_cv_use_glitz" >&6
- case $use_glitz in
+echo "$as_me:$LINENO: result: $cairo_cv_backend_glitz_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_glitz_use" >&6
+
+ # split the backend spec into its components
+ use_glitz=$cairo_cv_backend_glitz_use
+ glitz_REQUIRES=$cairo_cv_backend_glitz_requires
+ glitz_CFLAGS=$cairo_cv_backend_glitz_cflags
+ glitz_LIBS=$cairo_cv_backend_glitz_libs
+ glitz_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_glitz_nonpkgconfig_cflags
+ glitz_NONPKGCONFIG_LIBS=$cairo_cv_backend_glitz_nonpkgconfig_libs
+
+ case $enable_glitz in
yes)
- if test "x$cairo_cv_use_glitz" = xyes; then
- use_glitz=yes
- else
+ if test "x$use_glitz" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested glitz backend could not be enabled" >&5
echo "$as_me: error: requested glitz backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_glitz=$cairo_cv_use_glitz
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-glitz: $use_glitz, should be one of [no/auto/yes]" >&5
@@ -24393,25 +23365,32 @@ echo "$as_me: error: invalid argument passed to --enable-glitz: $use_glitz, shou
;;
esac
if test "x$use_glitz" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-glitz.pc" >&5
-echo "$as_me: creating src/cairo-glitz.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES GLITZ_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $glitz_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $glitz_CFLAGS $glitz_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $glitz_LIBS $glitz_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-glitz.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/glitz/g" \
- -e "s/@Backend_Name@/glitz/g" \
- -e "s/@BACKEND_REQUIRES@/glitz/g" \
+ -e "s,@backend_name@,glitz,g" \
+ -e "s,@Backend_Name@,glitz,g" \
+ -e "s,@BACKEND_REQUIRES@,$glitz_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$glitz_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$glitz_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-glitz.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-glitz.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-glitz.pc" >&5
-echo "$as_me: error: failed creating src/cairo-glitz.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -24419,6 +23398,17 @@ fi
fi
fi
+
+if test "x$use_glitz" = xyes; then
+ CAIRO_HAS_GLITZ_SURFACE_TRUE=
+ CAIRO_HAS_GLITZ_SURFACE_FALSE='#'
+else
+ CAIRO_HAS_GLITZ_SURFACE_TRUE='#'
+ CAIRO_HAS_GLITZ_SURFACE_FALSE=
+fi
+
+
+
if test "x$use_glitz" = "xyes";then
pkg_failed=no
@@ -24430,12 +23420,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GLITZ_AGL_CFLAGS="$GLITZ_AGL_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-agl >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz-agl >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-agl >= \$GLITZ_MIN_VERSION\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glitz-agl >= $GLITZ_MIN_VERSION") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_AGL_CFLAGS=`$PKG_CONFIG --cflags "glitz-agl >= 0.5.1" 2>/dev/null`
+ pkg_cv_GLITZ_AGL_CFLAGS=`$PKG_CONFIG --cflags "glitz-agl >= $GLITZ_MIN_VERSION" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24448,12 +23438,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GLITZ_AGL_LIBS="$GLITZ_AGL_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-agl >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz-agl >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-agl >= \$GLITZ_MIN_VERSION\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glitz-agl >= $GLITZ_MIN_VERSION") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_AGL_LIBS=`$PKG_CONFIG --libs "glitz-agl >= 0.5.1" 2>/dev/null`
+ pkg_cv_GLITZ_AGL_LIBS=`$PKG_CONFIG --libs "glitz-agl >= $GLITZ_MIN_VERSION" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24472,16 +23462,16 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLITZ_AGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz-agl >= 0.5.1"`
+ GLITZ_AGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz-agl >= $GLITZ_MIN_VERSION"`
else
- GLITZ_AGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz-agl >= 0.5.1"`
+ GLITZ_AGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz-agl >= $GLITZ_MIN_VERSION"`
fi
# Put the nasty error message in config.log where it belongs
echo "$GLITZ_AGL_PKG_ERRORS" >&5
- have_glitz_agl=no
+ have_glitz_agl=no; echo $MYSTUFF_PKG_ERRORS
elif test $pkg_failed = untried; then
- have_glitz_agl=no
+ have_glitz_agl=no; echo $MYSTUFF_PKG_ERRORS
else
GLITZ_AGL_CFLAGS=$pkg_cv_GLITZ_AGL_CFLAGS
GLITZ_AGL_LIBS=$pkg_cv_GLITZ_AGL_LIBS
@@ -24499,12 +23489,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GLITZ_EGL_CFLAGS="$GLITZ_EGL_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-egl >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz-egl >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-egl >= \$GLITZ_MIN_VERSION\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glitz-egl >= $GLITZ_MIN_VERSION") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_EGL_CFLAGS=`$PKG_CONFIG --cflags "glitz-egl >= 0.5.1" 2>/dev/null`
+ pkg_cv_GLITZ_EGL_CFLAGS=`$PKG_CONFIG --cflags "glitz-egl >= $GLITZ_MIN_VERSION" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24517,12 +23507,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GLITZ_EGL_LIBS="$GLITZ_EGL_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-egl >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz-egl >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-egl >= \$GLITZ_MIN_VERSION\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glitz-egl >= $GLITZ_MIN_VERSION") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_EGL_LIBS=`$PKG_CONFIG --libs "glitz-egl >= 0.5.1" 2>/dev/null`
+ pkg_cv_GLITZ_EGL_LIBS=`$PKG_CONFIG --libs "glitz-egl >= $GLITZ_MIN_VERSION" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24541,16 +23531,16 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLITZ_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz-egl >= 0.5.1"`
+ GLITZ_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz-egl >= $GLITZ_MIN_VERSION"`
else
- GLITZ_EGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz-egl >= 0.5.1"`
+ GLITZ_EGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz-egl >= $GLITZ_MIN_VERSION"`
fi
# Put the nasty error message in config.log where it belongs
echo "$GLITZ_EGL_PKG_ERRORS" >&5
- have_glitz_egl=no
+ have_glitz_egl=no; echo $MYSTUFF_PKG_ERRORS
elif test $pkg_failed = untried; then
- have_glitz_egl=no
+ have_glitz_egl=no; echo $MYSTUFF_PKG_ERRORS
else
GLITZ_EGL_CFLAGS=$pkg_cv_GLITZ_EGL_CFLAGS
GLITZ_EGL_LIBS=$pkg_cv_GLITZ_EGL_LIBS
@@ -24568,12 +23558,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GLITZ_GLX_CFLAGS="$GLITZ_GLX_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-glx >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz-glx >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-glx >= \$GLITZ_MIN_VERSION\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glitz-glx >= $GLITZ_MIN_VERSION") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_GLX_CFLAGS=`$PKG_CONFIG --cflags "glitz-glx >= 0.5.1" 2>/dev/null`
+ pkg_cv_GLITZ_GLX_CFLAGS=`$PKG_CONFIG --cflags "glitz-glx >= $GLITZ_MIN_VERSION" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24586,12 +23576,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GLITZ_GLX_LIBS="$GLITZ_GLX_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-glx >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz-glx >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-glx >= \$GLITZ_MIN_VERSION\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glitz-glx >= $GLITZ_MIN_VERSION") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_GLX_LIBS=`$PKG_CONFIG --libs "glitz-glx >= 0.5.1" 2>/dev/null`
+ pkg_cv_GLITZ_GLX_LIBS=`$PKG_CONFIG --libs "glitz-glx >= $GLITZ_MIN_VERSION" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24610,16 +23600,16 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLITZ_GLX_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz-glx >= 0.5.1"`
+ GLITZ_GLX_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz-glx >= $GLITZ_MIN_VERSION"`
else
- GLITZ_GLX_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz-glx >= 0.5.1"`
+ GLITZ_GLX_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz-glx >= $GLITZ_MIN_VERSION"`
fi
# Put the nasty error message in config.log where it belongs
echo "$GLITZ_GLX_PKG_ERRORS" >&5
- have_glitz_glx=no
+ have_glitz_glx=no; echo $MYSTUFF_PKG_ERRORS
elif test $pkg_failed = untried; then
- have_glitz_glx=no
+ have_glitz_glx=no; echo $MYSTUFF_PKG_ERRORS
else
GLITZ_GLX_CFLAGS=$pkg_cv_GLITZ_GLX_CFLAGS
GLITZ_GLX_LIBS=$pkg_cv_GLITZ_GLX_LIBS
@@ -24637,12 +23627,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GLITZ_WGL_CFLAGS="$GLITZ_WGL_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-wgl >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz-wgl >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-wgl >= \$GLITZ_MIN_VERSION\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glitz-wgl >= $GLITZ_MIN_VERSION") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_WGL_CFLAGS=`$PKG_CONFIG --cflags "glitz-wgl >= 0.5.1" 2>/dev/null`
+ pkg_cv_GLITZ_WGL_CFLAGS=`$PKG_CONFIG --cflags "glitz-wgl >= $GLITZ_MIN_VERSION" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24655,12 +23645,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GLITZ_WGL_LIBS="$GLITZ_WGL_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-wgl >= 0.5.1\"") >&5
- ($PKG_CONFIG --exists --print-errors "glitz-wgl >= 0.5.1") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glitz-wgl >= \$GLITZ_MIN_VERSION\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glitz-wgl >= $GLITZ_MIN_VERSION") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_GLITZ_WGL_LIBS=`$PKG_CONFIG --libs "glitz-wgl >= 0.5.1" 2>/dev/null`
+ pkg_cv_GLITZ_WGL_LIBS=`$PKG_CONFIG --libs "glitz-wgl >= $GLITZ_MIN_VERSION" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24679,16 +23669,16 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLITZ_WGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz-wgl >= 0.5.1"`
+ GLITZ_WGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glitz-wgl >= $GLITZ_MIN_VERSION"`
else
- GLITZ_WGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz-wgl >= 0.5.1"`
+ GLITZ_WGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glitz-wgl >= $GLITZ_MIN_VERSION"`
fi
# Put the nasty error message in config.log where it belongs
echo "$GLITZ_WGL_PKG_ERRORS" >&5
- have_glitz_wgl=no
+ have_glitz_wgl=no; echo $MYSTUFF_PKG_ERRORS
elif test $pkg_failed = untried; then
- have_glitz_wgl=no
+ have_glitz_wgl=no; echo $MYSTUFF_PKG_ERRORS
else
GLITZ_WGL_CFLAGS=$pkg_cv_GLITZ_WGL_CFLAGS
GLITZ_WGL_LIBS=$pkg_cv_GLITZ_WGL_LIBS
@@ -24769,61 +23759,46 @@ fi
-
-if test "x$use_glitz" = "xyes"; then
- CAIRO_HAS_GLITZ_SURFACE_TRUE=
- CAIRO_HAS_GLITZ_SURFACE_FALSE='#'
-else
- CAIRO_HAS_GLITZ_SURFACE_TRUE='#'
- CAIRO_HAS_GLITZ_SURFACE_FALSE=
-fi
-
-if test "x$use_glitz" = "xyes"; then
- GLITZ_SURFACE_FEATURE="#define CAIRO_HAS_GLITZ_SURFACE 1"
-fi
-
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $GLITZ_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $GLITZ_LIBS"
-
-
-
-
# Check whether --enable-directfb or --disable-directfb was given.
if test "${enable_directfb+set}" = set; then
enableval="$enable_directfb"
- use_directfb=$enableval
+ enable_directfb=$enableval
else
- use_directfb=no
+ enable_directfb=no
fi;
- if test "x$use_directfb" = xno; then
+ if test "x$enable_directfb" = xno; then
use_directfb="no (disabled, use --enable-directfb to enable)"
else
echo "$as_me:$LINENO: checking for cairo's directfb backend" >&5
echo $ECHO_N "checking for cairo's directfb backend... $ECHO_C" >&6
-if test "${cairo_cv_use_directfb+set}" = set; then
+if test "${cairo_cv_backend_directfb_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_directfb=$use_directfb
use_directfb=yes
+ directfb_REQUIRES=""
+ directfb_CFLAGS=""
+ directfb_LIBS=""
+ directfb_NONPKGCONFIG_CFLAGS=""
+ directfb_NONPKGCONFIG_LIBS=""
+ directfb_REQUIRES=directfb
pkg_failed=no
-echo "$as_me:$LINENO: checking for DIRECTFB" >&5
-echo $ECHO_N "checking for DIRECTFB... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for directfb" >&5
+echo $ECHO_N "checking for directfb... $ECHO_C" >&6
if test -n "$PKG_CONFIG"; then
- if test -n "$DIRECTFB_CFLAGS"; then
- pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS"
+ if test -n "$directfb_CFLAGS"; then
+ pkg_cv_directfb_CFLAGS="$directfb_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"directfb\"") >&5
- ($PKG_CONFIG --exists --print-errors "directfb") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$directfb_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$directfb_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags "directfb" 2>/dev/null`
+ pkg_cv_directfb_CFLAGS=`$PKG_CONFIG --cflags "$directfb_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24832,16 +23807,16 @@ else
pkg_failed=untried
fi
if test -n "$PKG_CONFIG"; then
- if test -n "$DIRECTFB_LIBS"; then
- pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS"
+ if test -n "$directfb_LIBS"; then
+ pkg_cv_directfb_LIBS="$directfb_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"directfb\"") >&5
- ($PKG_CONFIG --exists --print-errors "directfb") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$directfb_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$directfb_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_DIRECTFB_LIBS=`$PKG_CONFIG --libs "directfb" 2>/dev/null`
+ pkg_cv_directfb_LIBS=`$PKG_CONFIG --libs "$directfb_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24860,45 +23835,58 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "directfb"`
+ directfb_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$directfb_REQUIRES"`
else
- DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb"`
+ directfb_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$directfb_REQUIRES"`
fi
# Put the nasty error message in config.log where it belongs
- echo "$DIRECTFB_PKG_ERRORS" >&5
-
+ echo "$directfb_PKG_ERRORS" >&5
- use_directfb="no (requires directfb http://www.directfb.org)"
+ use_directfb="no (requires directfb http://www.directfb.org)"
elif test $pkg_failed = untried; then
-
- use_directfb="no (requires directfb http://www.directfb.org)"
+ use_directfb="no (requires directfb http://www.directfb.org)"
else
- DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS
- DIRECTFB_LIBS=$pkg_cv_DIRECTFB_LIBS
+ directfb_CFLAGS=$pkg_cv_directfb_CFLAGS
+ directfb_LIBS=$pkg_cv_directfb_LIBS
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
- use_directfb=yes
+ :
fi
- cairo_cv_use_directfb=$use_directfb
- use_directfb=$saved_use_directfb
+ cairo_cv_backend_directfb_use=$use_directfb
+ cairo_cv_backend_directfb_requires=$directfb_REQUIRES
+ cairo_cv_backend_directfb_cflags=$directfb_CFLAGS
+ cairo_cv_backend_directfb_libs=$directfb_LIBS
+ cairo_cv_backend_directfb_nonpkgconfig_cflags=$directfb_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_directfb_nonpkgconfig_libs=$directfb_NONPKGCONFIG_LIBS
echo "$as_me:$LINENO: checking whether cairo's directfb backend could be enabled" >&5
echo $ECHO_N "checking whether cairo's directfb backend could be enabled... $ECHO_C" >&6
fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_directfb" >&5
-echo "${ECHO_T}$cairo_cv_use_directfb" >&6
- case $use_directfb in
+echo "$as_me:$LINENO: result: $cairo_cv_backend_directfb_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_directfb_use" >&6
+
+ # split the backend spec into its components
+ use_directfb=$cairo_cv_backend_directfb_use
+ directfb_REQUIRES=$cairo_cv_backend_directfb_requires
+ directfb_CFLAGS=$cairo_cv_backend_directfb_cflags
+ directfb_LIBS=$cairo_cv_backend_directfb_libs
+ directfb_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_directfb_nonpkgconfig_cflags
+ directfb_NONPKGCONFIG_LIBS=$cairo_cv_backend_directfb_nonpkgconfig_libs
+
+ case $enable_directfb in
yes)
- if test "x$cairo_cv_use_directfb" = xyes; then
- use_directfb=yes
- else
+ if test "x$use_directfb" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested directfb backend could not be enabled" >&5
echo "$as_me: error: requested directfb backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_directfb=$cairo_cv_use_directfb
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-directfb: $use_directfb, should be one of [no/auto/yes]" >&5
@@ -24907,25 +23895,32 @@ echo "$as_me: error: invalid argument passed to --enable-directfb: $use_directfb
;;
esac
if test "x$use_directfb" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-directfb.pc" >&5
-echo "$as_me: creating src/cairo-directfb.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES DIRECTFB_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $directfb_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $directfb_CFLAGS $directfb_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $directfb_LIBS $directfb_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-directfb.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/directfb/g" \
- -e "s/@Backend_Name@/directfb/g" \
- -e "s/@BACKEND_REQUIRES@/directfb/g" \
+ -e "s,@backend_name@,directfb,g" \
+ -e "s,@Backend_Name@,directfb,g" \
+ -e "s,@BACKEND_REQUIRES@,$directfb_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$directfb_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$directfb_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-directfb.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-directfb.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-directfb.pc" >&5
-echo "$as_me: error: failed creating src/cairo-directfb.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -24934,8 +23929,7 @@ fi
fi
-
-if test "x$use_directfb" = "xyes"; then
+if test "x$use_directfb" = xyes; then
CAIRO_HAS_DIRECTFB_SURFACE_TRUE=
CAIRO_HAS_DIRECTFB_SURFACE_FALSE='#'
else
@@ -24943,34 +23937,53 @@ else
CAIRO_HAS_DIRECTFB_SURFACE_FALSE=
fi
-if test "x$use_directfb" = "xyes"; then
- DIRECTFB_SURFACE_FEATURE="#define CAIRO_HAS_DIRECTFB_SURFACE 1"
-fi
-CAIRO_CFLAGS="$CAIRO_CFLAGS $DIRECTFB_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $DIRECTFB_LIBS"
+# We use pkg-config to look for freetype2, but fall back to
+# freetype-config if it fails. We prefer pkg-config, since we can
+# then just put freetype2 >= $FREETYPE_MIN_VERSION in
+# Requires.private, but at least up to 2003-06-07, there was no
+# freetype2.pc in the release.
+#
+# FreeType versions come in three forms:
+# release (such as 2.1.5)
+# libtool (such as 9.4.3) (returned by freetype-config and pkg-config)
+# platform-specific/soname (such as 6.3.4)
+# and they recommend you never use the platform-specific version
+# (see docs/VERSION.DLL in freetype2 sources)
+#
+# Set these as appropriate:
+
+# release number - for information only
+FREETYPE_MIN_RELEASE=2.1.0
+# libtool-specific version - this is what is checked
+FREETYPE_MIN_VERSION=8.0.2
# Check whether --enable-freetype or --disable-freetype was given.
if test "${enable_freetype+set}" = set; then
enableval="$enable_freetype"
- use_freetype=$enableval
+ enable_ft=$enableval
else
- use_freetype=auto
+ enable_ft=auto
fi;
- if test "x$use_freetype" = xno; then
- use_freetype="no (disabled, use --enable-freetype to enable)"
+ if test "x$enable_ft" = xno; then
+ use_ft="no (disabled, use --enable-freetype to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's freetype backend" >&5
-echo $ECHO_N "checking for cairo's freetype backend... $ECHO_C" >&6
-if test "${cairo_cv_use_freetype+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's FreeType font backend" >&5
+echo $ECHO_N "checking for cairo's FreeType font backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_ft_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_freetype=$use_freetype
- use_freetype=yes
+ use_ft=yes
+ ft_REQUIRES=""
+ ft_CFLAGS=""
+ ft_LIBS=""
+ ft_NONPKGCONFIG_CFLAGS=""
+ ft_NONPKGCONFIG_LIBS=""
+ ft_REQUIRES="fontconfig"
pkg_failed=no
echo "$as_me:$LINENO: checking for FONTCONFIG" >&5
@@ -24981,12 +23994,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_FONTCONFIG_CFLAGS="$FONTCONFIG_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"fontconfig\"") >&5
- ($PKG_CONFIG --exists --print-errors "fontconfig") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$ft_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$ft_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig" 2>/dev/null`
+ pkg_cv_FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "$ft_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -24999,12 +24012,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_FONTCONFIG_LIBS="$FONTCONFIG_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"fontconfig\"") >&5
- ($PKG_CONFIG --exists --print-errors "fontconfig") 2>&5
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$ft_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$ft_REQUIRES") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
- pkg_cv_FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig" 2>/dev/null`
+ pkg_cv_FONTCONFIG_LIBS=`$PKG_CONFIG --libs "$ft_REQUIRES" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -25023,28 +24036,26 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fontconfig"`
+ FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$ft_REQUIRES"`
else
- FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fontconfig"`
+ FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$ft_REQUIRES"`
fi
# Put the nasty error message in config.log where it belongs
echo "$FONTCONFIG_PKG_ERRORS" >&5
- use_freetype=no
+ use_ft="no (requires fontconfig"
elif test $pkg_failed = untried; then
- use_freetype=no
+ use_ft="no (requires fontconfig"
else
FONTCONFIG_CFLAGS=$pkg_cv_FONTCONFIG_CFLAGS
FONTCONFIG_LIBS=$pkg_cv_FONTCONFIG_LIBS
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
- use_freetype=yes
-fi
save_cflags="$CFLAGS"
save_libs="$LIBS"
- CFLAGS="$CFLAGS $FONTCONFIG_CFLAGS"
- LIBS="$LIBS $FONTCONFIG_LIBS"
+ CFLAGS="$CFLAGS $ft_CFLAGS"
+ LIBS="$LIBS $ft_LIBS"
for ac_func in FcFini
do
@@ -25149,85 +24160,9 @@ done
CFLAGS="$save_cflags"
LIBS="$save_libs"
-
- cairo_cv_use_freetype=$use_freetype
- use_freetype=$saved_use_freetype
- echo "$as_me:$LINENO: checking whether cairo's freetype backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's freetype backend could be enabled... $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_freetype" >&5
-echo "${ECHO_T}$cairo_cv_use_freetype" >&6
- case $use_freetype in
- yes)
- if test "x$cairo_cv_use_freetype" = xyes; then
- use_freetype=yes
- else
- { { echo "$as_me:$LINENO: error: requested freetype font backend could not be enabled" >&5
-echo "$as_me: error: requested freetype font backend could not be enabled" >&2;}
- { (exit 1); exit 1; }; }
- fi
- ;;
- auto)
- use_freetype=$cairo_cv_use_freetype
- ;;
- *)
- { { echo "$as_me:$LINENO: error: invalid argument passed to --enable-freetype: $use_freetype, should be one of [no/auto/yes]" >&5
-echo "$as_me: error: invalid argument passed to --enable-freetype: $use_freetype, should be one of [no/auto/yes]" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
- if test "x$use_freetype" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-ft.pc" >&5
-echo "$as_me: creating src/cairo-ft.pc" >&6;}
- mkdir src
- if sed \
- -e "s/@backend_name@/ft/g" \
- -e "s/@Backend_Name@/freetype font/g" \
- -e "s/@BACKEND_REQUIRES@/freetype2 fontconfig/g" \
- -e "s,@prefix@,$prefix,g" \
- -e "s,@exec_prefix@,$exec_prefix,g" \
- -e "s,@libdir@,$libdir,g" \
- -e "s,@includedir@,$includedir,g" \
- -e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-ft.pc; then
- :
-else
-
- rm -f "src/cairo-ft.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-ft.pc" >&5
-echo "$as_me: error: failed creating src/cairo-ft.pc" >&2;}
- { (exit 1); exit 1; }; }
-
fi
- fi
- fi
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $FONTCONFIG_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $FONTCONFIG_LIBS"
-
-# We use pkg-config to look for freetype2, but fall back to
-# freetype-config if it fails. We prefer pkg-config, since we can
-# then just put freetype2 >= $FREETYPE_MIN_VERSION in
-# Requires.private, but at least up to 2003-06-07, there was no
-# freetype2.pc in the release.
-#
-# Freetype versions come in three forms:
-# release (such as 2.1.5)
-# libtool (such as 9.4.3) (returned by freetype-config and pkg-config)
-# platform-specific/soname (such as 6.3.4)
-# and they recommend you never use the platform-specific version
-# (see docs/VERSION.DLL in freetype2 sources)
-#
-# Set these as appropriate:
-
-# release number - for information only
-FREETYPE_MIN_RELEASE=2.1.0
-# libtool-specific version - this is what is checked
-FREETYPE_MIN_VERSION=8.0.2
-
-if test "x$use_freetype" = "xyes"; then
-
+ if test "x$use_ft" = "xyes"; then
pkg_failed=no
echo "$as_me:$LINENO: checking for FREETYPE" >&5
@@ -25298,14 +24233,12 @@ echo "${ECHO_T}yes" >&6
freetype_pkgconfig=yes
fi
- if test "x$freetype_pkgconfig" = "xyes"; then
-
- FREETYPE_REQUIRES="freetype2 >= $FREETYPE_MIN_VERSION fontconfig"
-
- else
+ if test "x$freetype_pkgconfig" = "xyes"; then
+ ft_REQUIRES="freetype2 >= $FREETYPE_MIN_VERSION $ft_REQUIRES"
+ else
- if test -z "$FREETYPE_CONFIG"; then
- # Extract the first word of "freetype-config", so it can be a program name with args.
+ if test -z "$FREETYPE_CONFIG"; then
+ # Extract the first word of "freetype-config", so it can be a program name with args.
set dummy freetype-config; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
@@ -25345,52 +24278,132 @@ else
echo "${ECHO_T}no" >&6
fi
- fi
- if test "$FREETYPE_CONFIG" = "no" ; then
- { echo "$as_me:$LINENO: WARNING: No freetype-config script found in path or FREETYPE_CONFIG" >&5
-echo "$as_me: WARNING: No freetype-config script found in path or FREETYPE_CONFIG" >&2;}
- use_freetype=no
- else
- echo "$as_me:$LINENO: checking freetype2 libtool version" >&5
+ fi
+ if test "x$FREETYPE_CONFIG" = "xno" ; then
+ use_ft='no (freetype-config not found in path or $FREETYPE_CONFIG)'
+ else
+ echo "$as_me:$LINENO: checking freetype2 libtool version" >&5
echo $ECHO_N "checking freetype2 libtool version... $ECHO_C" >&6
- FREETYPE_VERSION=`$FREETYPE_CONFIG --version`
+ FREETYPE_VERSION=`$FREETYPE_CONFIG --version`
- VERSION_DEC=`echo $FREETYPE_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
- MIN_VERSION_DEC=`echo $FREETYPE_MIN_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
- if test $VERSION_DEC -lt $MIN_VERSION_DEC; then
- echo "$as_me:$LINENO: result: $FREETYPE_VERSION - Too old" >&5
+ VERSION_DEC=`echo $FREETYPE_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
+ MIN_VERSION_DEC=`echo $FREETYPE_MIN_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
+ if test $VERSION_DEC -lt $MIN_VERSION_DEC; then
+ echo "$as_me:$LINENO: result: $FREETYPE_VERSION - Too old" >&5
echo "${ECHO_T}$FREETYPE_VERSION - Too old" >&6
- { echo "$as_me:$LINENO: WARNING: $FREETYPE_VERSION - version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required" >&5
-echo "$as_me: WARNING: $FREETYPE_VERSION - version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required" >&2;}
- use_freetype=no
- else
- echo "$as_me:$LINENO: result: $FREETYPE_VERSION - OK" >&5
+ use_ft="no ($FREETYPE_VERSION found; version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required)"
+ else
+ echo "$as_me:$LINENO: result: $FREETYPE_VERSION - OK" >&5
echo "${ECHO_T}$FREETYPE_VERSION - OK" >&6
- FREETYPE_CONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags`
- FREETYPE_CONFIG_LIBS=`$FREETYPE_CONFIG --libs`
- FREETYPE_CFLAGS=$FREETYPE_CONFIG_CFLAGS
- FREETYPE_LIBS=$FREETYPE_CONFIG_LIBS
- FREETYPE_REQUIRES=fontconfig
+ ft_NONPKGCONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags`
+ ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs`
+ fi
fi
fi
fi
+ ft_CFLAGS="$FREETYPE_CFLAGS $FONTCONFIG_CFLAGS"
+ ft_LIBS="$FREETYPE_LIBS $FONTCONFIG_LIBS"
+
+ cairo_cv_backend_ft_use=$use_ft
+ cairo_cv_backend_ft_requires=$ft_REQUIRES
+ cairo_cv_backend_ft_cflags=$ft_CFLAGS
+ cairo_cv_backend_ft_libs=$ft_LIBS
+ cairo_cv_backend_ft_nonpkgconfig_cflags=$ft_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_ft_nonpkgconfig_libs=$ft_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's FreeType font backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's FreeType font backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_ft_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_ft_use" >&6
+
+ # split the backend spec into its components
+ use_ft=$cairo_cv_backend_ft_use
+ ft_REQUIRES=$cairo_cv_backend_ft_requires
+ ft_CFLAGS=$cairo_cv_backend_ft_cflags
+ ft_LIBS=$cairo_cv_backend_ft_libs
+ ft_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_ft_nonpkgconfig_cflags
+ ft_NONPKGCONFIG_LIBS=$cairo_cv_backend_ft_nonpkgconfig_libs
+
+ case $enable_ft in
+ yes)
+ if test "x$use_ft" = xyes; then
+ :
+else
+
+ { { echo "$as_me:$LINENO: error: requested FreeType font backend could not be enabled" >&5
+echo "$as_me: error: requested FreeType font backend could not be enabled" >&2;}
+ { (exit 1); exit 1; }; }
+
fi
-have_ft_load_sfnt_table=no
+ ;;
+ auto)
+ ;;
+ *)
+ { { echo "$as_me:$LINENO: error: invalid argument passed to --enable-freetype: $use_ft, should be one of [no/auto/yes]" >&5
+echo "$as_me: error: invalid argument passed to --enable-freetype: $use_ft, should be one of [no/auto/yes]" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+ if test "x$use_ft" = xyes; then
+ CAIRO_FEATURES="$CAIRO_FEATURES FT_FONT"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $ft_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $ft_CFLAGS $ft_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $ft_LIBS $ft_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-ft.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
+ if sed \
+ -e "s,@backend_name@,ft,g" \
+ -e "s,@Backend_Name@,FreeType font,g" \
+ -e "s,@BACKEND_REQUIRES@,$ft_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$ft_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$ft_NONPKGCONFIG_CFLAGS,g" \
+ -e "s,@prefix@,$prefix,g" \
+ -e "s,@exec_prefix@,$exec_prefix,g" \
+ -e "s,@libdir@,$libdir,g" \
+ -e "s,@includedir@,$includedir,g" \
+ -e "s,@VERSION@,$VERSION,g" \
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
+ :
+else
-if test "x$use_freetype" = "xyes"; then
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+ fi
+ fi
+if test "x$use_ft" = xyes; then
+ CAIRO_HAS_FT_FONT_TRUE=
+ CAIRO_HAS_FT_FONT_FALSE='#'
+else
+ CAIRO_HAS_FT_FONT_TRUE='#'
+ CAIRO_HAS_FT_FONT_FALSE=
+fi
+
+
+
+have_ft_load_sfnt_table=no
+
+if test "x$use_ft" = "xyes"; then
+ FREETYPE_CONFIG_CFLAGS=$cairo_cv_ft_config_CFLAGS
+ FREETYPE_CONFIG_LIBS=$cairo_cv_ft_config_LIBS
+
temp_save_libs="$LIBS"
temp_save_cflags="$CFLAGS"
- LIBS="$LIBS $FREETYPE_LIBS"
- CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
+ LIBS="$LIBS $ft_LIBS"
+ CFLAGS="$CFLAGS $ft_CFLAGS"
echo "$as_me:$LINENO: checking for FT_Bitmap_Size.y_ppem" >&5
echo $ECHO_N "checking for FT_Bitmap_Size.y_ppem... $ECHO_C" >&6
if test "${ac_cv_member_FT_Bitmap_Size_y_ppem+set}" = set; then
@@ -25402,7 +24415,7 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include<ft2build.h>
+#include <ft2build.h>
#include FT_FREETYPE_H
int
@@ -25447,7 +24460,7 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include<ft2build.h>
+#include <ft2build.h>
#include FT_FREETYPE_H
int
@@ -25705,24 +24718,6 @@ done
CFLAGS="$temp_save_cflags"
fi
-CAIRO_CFLAGS="$CAIRO_CFLAGS $FREETYPE_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $FREETYPE_LIBS"
-
-
-
-if test "x$use_freetype" = "xyes"; then
- CAIRO_HAS_FT_FONT_TRUE=
- CAIRO_HAS_FT_FONT_FALSE='#'
-else
- CAIRO_HAS_FT_FONT_TRUE='#'
- CAIRO_HAS_FT_FONT_FALSE=
-fi
-
-if test "x$use_freetype" = "xyes"; then
- FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
-fi
-
-
for ac_header in pthread.h
@@ -25890,45 +24885,60 @@ fi
# Check whether --enable-ps or --disable-ps was given.
if test "${enable_ps+set}" = set; then
enableval="$enable_ps"
- use_ps=$enableval
+ enable_ps=$enableval
else
- use_ps=auto
+ enable_ps=auto
fi;
- if test "x$use_ps" = xno; then
+ if test "x$enable_ps" = xno; then
use_ps="no (disabled, use --enable-ps to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's ps backend" >&5
-echo $ECHO_N "checking for cairo's ps backend... $ECHO_C" >&6
-if test "${cairo_cv_use_ps+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's PostScript backend" >&5
+echo $ECHO_N "checking for cairo's PostScript backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_ps_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_ps=$use_ps
use_ps=yes
-
- if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_ps="no (PS backend requires FreeType 2.1.4 or newer)"
- fi
-
- cairo_cv_use_ps=$use_ps
- use_ps=$saved_use_ps
- echo "$as_me:$LINENO: checking whether cairo's ps backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's ps backend could be enabled... $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_ps" >&5
-echo "${ECHO_T}$cairo_cv_use_ps" >&6
- case $use_ps in
+ ps_REQUIRES=""
+ ps_CFLAGS=""
+ ps_LIBS=""
+ ps_NONPKGCONFIG_CFLAGS=""
+ ps_NONPKGCONFIG_LIBS=""
+
+ cairo_cv_backend_ps_use=$use_ps
+ cairo_cv_backend_ps_requires=$ps_REQUIRES
+ cairo_cv_backend_ps_cflags=$ps_CFLAGS
+ cairo_cv_backend_ps_libs=$ps_LIBS
+ cairo_cv_backend_ps_nonpkgconfig_cflags=$ps_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_ps_nonpkgconfig_libs=$ps_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's PostScript backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's PostScript backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_ps_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_ps_use" >&6
+
+ # split the backend spec into its components
+ use_ps=$cairo_cv_backend_ps_use
+ ps_REQUIRES=$cairo_cv_backend_ps_requires
+ ps_CFLAGS=$cairo_cv_backend_ps_cflags
+ ps_LIBS=$cairo_cv_backend_ps_libs
+ ps_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_ps_nonpkgconfig_cflags
+ ps_NONPKGCONFIG_LIBS=$cairo_cv_backend_ps_nonpkgconfig_libs
+
+ case $enable_ps in
yes)
- if test "x$cairo_cv_use_ps" = xyes; then
- use_ps=yes
- else
+ if test "x$use_ps" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested PostScript backend could not be enabled" >&5
echo "$as_me: error: requested PostScript backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_ps=$cairo_cv_use_ps
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-ps: $use_ps, should be one of [no/auto/yes]" >&5
@@ -25937,25 +24947,32 @@ echo "$as_me: error: invalid argument passed to --enable-ps: $use_ps, should be
;;
esac
if test "x$use_ps" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-ps.pc" >&5
-echo "$as_me: creating src/cairo-ps.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES PS_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $ps_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $ps_CFLAGS $ps_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $ps_LIBS $ps_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-ps.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/ps/g" \
- -e "s/@Backend_Name@/PostScript/g" \
- -e "s/@BACKEND_REQUIRES@//g" \
+ -e "s,@backend_name@,ps,g" \
+ -e "s,@Backend_Name@,PostScript,g" \
+ -e "s,@BACKEND_REQUIRES@,$ps_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$ps_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$ps_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-ps.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-ps.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-ps.pc" >&5
-echo "$as_me: error: failed creating src/cairo-ps.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -25963,222 +24980,8 @@ fi
fi
fi
-# The postscript module requires zlib.
-echo "$as_me:$LINENO: checking for compress in -lz" >&5
-echo $ECHO_N "checking for compress in -lz... $ECHO_C" >&6
-if test "${ac_cv_lib_z_compress+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lz $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char compress ();
-int
-main ()
-{
-compress ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_z_compress=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_z_compress=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_z_compress" >&5
-echo "${ECHO_T}$ac_cv_lib_z_compress" >&6
-if test $ac_cv_lib_z_compress = yes; then
- if test "${ac_cv_header_zlib_h+set}" = set; then
- echo "$as_me:$LINENO: checking for zlib.h" >&5
-echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
-if test "${ac_cv_header_zlib_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_zlib_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking zlib.h usability" >&5
-echo $ECHO_N "checking zlib.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <zlib.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-# Is the header present?
-echo "$as_me:$LINENO: checking zlib.h presence" >&5
-echo $ECHO_N "checking zlib.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <zlib.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: zlib.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: zlib.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: zlib.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: zlib.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: zlib.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: zlib.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: zlib.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: zlib.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: zlib.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------------------------------------------- ##
-## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ##
-## ---------------------------------------------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for zlib.h" >&5
-echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
-if test "${ac_cv_header_zlib_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_zlib_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_zlib_h" >&6
-
-fi
-if test $ac_cv_header_zlib_h = yes; then
- :
-else
- use_ps="no (requires zlib http://www.gzip.org/zlib/)"
-fi
-
-
-else
- use_ps="no (requires zlib http://www.gzip.org/zlib/)"
-fi
-
-
-
-
-if test "x$use_ps" = "xyes"; then
+if test "x$use_ps" = xyes; then
CAIRO_HAS_PS_SURFACE_TRUE=
CAIRO_HAS_PS_SURFACE_FALSE='#'
else
@@ -26186,59 +24989,66 @@ else
CAIRO_HAS_PS_SURFACE_FALSE=
fi
-if test "x$use_ps" = "xyes"; then
- PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
- PS_LIBS=-lz
-fi
-
-
-CAIRO_LIBS="$CAIRO_LIBS $PS_LIBS"
-
# Check whether --enable-pdf or --disable-pdf was given.
if test "${enable_pdf+set}" = set; then
enableval="$enable_pdf"
- use_pdf=$enableval
+ enable_pdf=$enableval
else
- use_pdf=auto
+ enable_pdf=auto
fi;
- if test "x$use_pdf" = xno; then
+ if test "x$enable_pdf" = xno; then
use_pdf="no (disabled, use --enable-pdf to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's pdf backend" >&5
-echo $ECHO_N "checking for cairo's pdf backend... $ECHO_C" >&6
-if test "${cairo_cv_use_pdf+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's PDF backend" >&5
+echo $ECHO_N "checking for cairo's PDF backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_pdf_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_pdf=$use_pdf
use_pdf=yes
-
- if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_pdf="no (PDF backend requires FreeType 2.1.4 or newer)"
- fi
-
- cairo_cv_use_pdf=$use_pdf
- use_pdf=$saved_use_pdf
- echo "$as_me:$LINENO: checking whether cairo's pdf backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's pdf backend could be enabled... $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_pdf" >&5
-echo "${ECHO_T}$cairo_cv_use_pdf" >&6
- case $use_pdf in
+ pdf_REQUIRES=""
+ pdf_CFLAGS=""
+ pdf_LIBS=""
+ pdf_NONPKGCONFIG_CFLAGS=""
+ pdf_NONPKGCONFIG_LIBS=""
+
+ cairo_cv_backend_pdf_use=$use_pdf
+ cairo_cv_backend_pdf_requires=$pdf_REQUIRES
+ cairo_cv_backend_pdf_cflags=$pdf_CFLAGS
+ cairo_cv_backend_pdf_libs=$pdf_LIBS
+ cairo_cv_backend_pdf_nonpkgconfig_cflags=$pdf_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_pdf_nonpkgconfig_libs=$pdf_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's PDF backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's PDF backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_pdf_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_pdf_use" >&6
+
+ # split the backend spec into its components
+ use_pdf=$cairo_cv_backend_pdf_use
+ pdf_REQUIRES=$cairo_cv_backend_pdf_requires
+ pdf_CFLAGS=$cairo_cv_backend_pdf_cflags
+ pdf_LIBS=$cairo_cv_backend_pdf_libs
+ pdf_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_pdf_nonpkgconfig_cflags
+ pdf_NONPKGCONFIG_LIBS=$cairo_cv_backend_pdf_nonpkgconfig_libs
+
+ case $enable_pdf in
yes)
- if test "x$cairo_cv_use_pdf" = xyes; then
- use_pdf=yes
- else
+ if test "x$use_pdf" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested PDF backend could not be enabled" >&5
echo "$as_me: error: requested PDF backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_pdf=$cairo_cv_use_pdf
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-pdf: $use_pdf, should be one of [no/auto/yes]" >&5
@@ -26247,25 +25057,32 @@ echo "$as_me: error: invalid argument passed to --enable-pdf: $use_pdf, should b
;;
esac
if test "x$use_pdf" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-pdf.pc" >&5
-echo "$as_me: creating src/cairo-pdf.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES PDF_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $pdf_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $pdf_CFLAGS $pdf_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $pdf_LIBS $pdf_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-pdf.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/pdf/g" \
- -e "s/@Backend_Name@/PDF/g" \
- -e "s/@BACKEND_REQUIRES@//g" \
+ -e "s,@backend_name@,pdf,g" \
+ -e "s,@Backend_Name@,PDF,g" \
+ -e "s,@BACKEND_REQUIRES@,$pdf_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$pdf_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$pdf_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-pdf.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-pdf.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-pdf.pc" >&5
-echo "$as_me: error: failed creating src/cairo-pdf.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -26273,10 +25090,8 @@ fi
fi
fi
-test_pdf=no
-
-if test "x$use_pdf" = "xyes"; then
+if test "x$use_pdf" = xyes; then
CAIRO_HAS_PDF_SURFACE_TRUE=
CAIRO_HAS_PDF_SURFACE_FALSE='#'
else
@@ -26284,9 +25099,10 @@ else
CAIRO_HAS_PDF_SURFACE_FALSE=
fi
+
+
+test_pdf=no
if test "x$use_pdf" = "xyes"; then
- PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
- PDF_LIBS=-lz
pkg_failed=no
echo "$as_me:$LINENO: checking for POPPLER" >&5
@@ -26370,7 +25186,6 @@ fi
-
if test "x$test_pdf" = "xyes"; then
CAIRO_CAN_TEST_PDF_SURFACE_TRUE=
CAIRO_CAN_TEST_PDF_SURFACE_FALSE='#'
@@ -26393,53 +25208,64 @@ else
fi
-CAIRO_LIBS="$CAIRO_LIBS $PDF_LIBS"
-
-
-
# Check whether --enable-svg or --disable-svg was given.
if test "${enable_svg+set}" = set; then
enableval="$enable_svg"
- use_svg=$enableval
+ enable_svg=$enableval
else
- use_svg=auto
+ enable_svg=auto
fi;
- if test "x$use_svg" = xno; then
+ if test "x$enable_svg" = xno; then
use_svg="no (disabled, use --enable-svg to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's svg backend" >&5
-echo $ECHO_N "checking for cairo's svg backend... $ECHO_C" >&6
-if test "${cairo_cv_use_svg+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's SVG backend" >&5
+echo $ECHO_N "checking for cairo's SVG backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_svg_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_svg=$use_svg
use_svg=yes
-
- if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_svg="no (SVG backend requires FreeType 2.1.4 or newer)"
- fi
-
- cairo_cv_use_svg=$use_svg
- use_svg=$saved_use_svg
- echo "$as_me:$LINENO: checking whether cairo's svg backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's svg backend could be enabled... $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_svg" >&5
-echo "${ECHO_T}$cairo_cv_use_svg" >&6
- case $use_svg in
+ svg_REQUIRES=""
+ svg_CFLAGS=""
+ svg_LIBS=""
+ svg_NONPKGCONFIG_CFLAGS=""
+ svg_NONPKGCONFIG_LIBS=""
+
+ cairo_cv_backend_svg_use=$use_svg
+ cairo_cv_backend_svg_requires=$svg_REQUIRES
+ cairo_cv_backend_svg_cflags=$svg_CFLAGS
+ cairo_cv_backend_svg_libs=$svg_LIBS
+ cairo_cv_backend_svg_nonpkgconfig_cflags=$svg_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_svg_nonpkgconfig_libs=$svg_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's SVG backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's SVG backend could be enabled... $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $cairo_cv_backend_svg_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_svg_use" >&6
+
+ # split the backend spec into its components
+ use_svg=$cairo_cv_backend_svg_use
+ svg_REQUIRES=$cairo_cv_backend_svg_requires
+ svg_CFLAGS=$cairo_cv_backend_svg_cflags
+ svg_LIBS=$cairo_cv_backend_svg_libs
+ svg_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_svg_nonpkgconfig_cflags
+ svg_NONPKGCONFIG_LIBS=$cairo_cv_backend_svg_nonpkgconfig_libs
+
+ case $enable_svg in
yes)
- if test "x$cairo_cv_use_svg" = xyes; then
- use_svg=yes
- else
+ if test "x$use_svg" = xyes; then
+ :
+else
+
{ { echo "$as_me:$LINENO: error: requested SVG backend could not be enabled" >&5
echo "$as_me: error: requested SVG backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_svg=$cairo_cv_use_svg
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-svg: $use_svg, should be one of [no/auto/yes]" >&5
@@ -26448,25 +25274,32 @@ echo "$as_me: error: invalid argument passed to --enable-svg: $use_svg, should b
;;
esac
if test "x$use_svg" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-svg.pc" >&5
-echo "$as_me: creating src/cairo-svg.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES SVG_SURFACE"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $svg_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $svg_CFLAGS $svg_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $svg_LIBS $svg_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-svg.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/svg/g" \
- -e "s/@Backend_Name@/SVG/g" \
- -e "s/@BACKEND_REQUIRES@//g" \
+ -e "s,@backend_name@,svg,g" \
+ -e "s,@Backend_Name@,SVG,g" \
+ -e "s,@BACKEND_REQUIRES@,$svg_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$svg_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$svg_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-svg.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-svg.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-svg.pc" >&5
-echo "$as_me: error: failed creating src/cairo-svg.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -26475,8 +25308,7 @@ fi
fi
-
-if test "x$use_svg" = "xyes"; then
+if test "x$use_svg" = xyes; then
CAIRO_HAS_SVG_SURFACE_TRUE=
CAIRO_HAS_SVG_SURFACE_FALSE='#'
else
@@ -26484,8 +25316,9 @@ else
CAIRO_HAS_SVG_SURFACE_FALSE=
fi
+
+
if test "x$use_svg" = "xyes"; then
- SVG_SURFACE_FEATURE="#define CAIRO_HAS_SVG_SURFACE 1"
pkg_failed=no
echo "$as_me:$LINENO: checking for LIBRSVG" >&5
@@ -26569,7 +25402,6 @@ fi
-
if test "x$test_svg" = "xyes"; then
CAIRO_CAN_TEST_SVG_SURFACE_TRUE=
CAIRO_CAN_TEST_SVG_SURFACE_FALSE='#'
@@ -26586,21 +25418,25 @@ fi
# Check whether --enable-atsui or --disable-atsui was given.
if test "${enable_atsui+set}" = set; then
enableval="$enable_atsui"
- use_atsui=$enableval
+ enable_atsui=$enableval
else
- use_atsui=no
+ enable_atsui=no
fi;
- if test "x$use_atsui" = xno; then
+ if test "x$enable_atsui" = xno; then
use_atsui="no (disabled, use --enable-atsui to enable)"
else
- echo "$as_me:$LINENO: checking for cairo's atsui backend" >&5
-echo $ECHO_N "checking for cairo's atsui backend... $ECHO_C" >&6
-if test "${cairo_cv_use_atsui+set}" = set; then
+ echo "$as_me:$LINENO: checking for cairo's ATSUI font backend" >&5
+echo $ECHO_N "checking for cairo's ATSUI font backend... $ECHO_C" >&6
+if test "${cairo_cv_backend_atsui_use+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo
- saved_use_atsui=$use_atsui
use_atsui=yes
+ atsui_REQUIRES=""
+ atsui_CFLAGS=""
+ atsui_LIBS=""
+ atsui_NONPKGCONFIG_CFLAGS=""
+ atsui_NONPKGCONFIG_LIBS=""
if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5
@@ -26739,32 +25575,47 @@ echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
fi
if test $ac_cv_header_Carbon_Carbon_h = yes; then
- use_atsui=yes
+ :
else
- use_atsui=no
+ use_atsui="no (Carbon not found)"
fi
- cairo_cv_use_atsui=$use_atsui
- use_atsui=$saved_use_atsui
- echo "$as_me:$LINENO: checking whether cairo's atsui backend could be enabled" >&5
-echo $ECHO_N "checking whether cairo's atsui backend could be enabled... $ECHO_C" >&6
+ cairo_cv_backend_atsui_use=$use_atsui
+ cairo_cv_backend_atsui_requires=$atsui_REQUIRES
+ cairo_cv_backend_atsui_cflags=$atsui_CFLAGS
+ cairo_cv_backend_atsui_libs=$atsui_LIBS
+ cairo_cv_backend_atsui_nonpkgconfig_cflags=$atsui_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_atsui_nonpkgconfig_libs=$atsui_NONPKGCONFIG_LIBS
+ echo "$as_me:$LINENO: checking whether cairo's ATSUI font backend could be enabled" >&5
+echo $ECHO_N "checking whether cairo's ATSUI font backend could be enabled... $ECHO_C" >&6
fi
-echo "$as_me:$LINENO: result: $cairo_cv_use_atsui" >&5
-echo "${ECHO_T}$cairo_cv_use_atsui" >&6
- case $use_atsui in
+echo "$as_me:$LINENO: result: $cairo_cv_backend_atsui_use" >&5
+echo "${ECHO_T}$cairo_cv_backend_atsui_use" >&6
+
+ # split the backend spec into its components
+ use_atsui=$cairo_cv_backend_atsui_use
+ atsui_REQUIRES=$cairo_cv_backend_atsui_requires
+ atsui_CFLAGS=$cairo_cv_backend_atsui_cflags
+ atsui_LIBS=$cairo_cv_backend_atsui_libs
+ atsui_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_atsui_nonpkgconfig_cflags
+ atsui_NONPKGCONFIG_LIBS=$cairo_cv_backend_atsui_nonpkgconfig_libs
+
+ case $enable_atsui in
yes)
- if test "x$cairo_cv_use_atsui" = xyes; then
- use_atsui=yes
- else
- { { echo "$as_me:$LINENO: error: requested atsui font backend could not be enabled" >&5
-echo "$as_me: error: requested atsui font backend could not be enabled" >&2;}
+ if test "x$use_atsui" = xyes; then
+ :
+else
+
+ { { echo "$as_me:$LINENO: error: requested ATSUI font backend could not be enabled" >&5
+echo "$as_me: error: requested ATSUI font backend could not be enabled" >&2;}
{ (exit 1); exit 1; }; }
- fi
+
+fi
+
;;
auto)
- use_atsui=$cairo_cv_use_atsui
;;
*)
{ { echo "$as_me:$LINENO: error: invalid argument passed to --enable-atsui: $use_atsui, should be one of [no/auto/yes]" >&5
@@ -26773,25 +25624,32 @@ echo "$as_me: error: invalid argument passed to --enable-atsui: $use_atsui, shou
;;
esac
if test "x$use_atsui" = xyes; then
- { echo "$as_me:$LINENO: creating src/cairo-atsui.pc" >&5
-echo "$as_me: creating src/cairo-atsui.pc" >&6;}
- mkdir src
+ CAIRO_FEATURES="$CAIRO_FEATURES ATSUI_FONT"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $atsui_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $atsui_CFLAGS $atsui_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $atsui_LIBS $atsui_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-atsui.pc | sed -e s/_/-/g`
+ { echo "$as_me:$LINENO: creating $outfile" >&5
+echo "$as_me: creating $outfile" >&6;}
+ mkdir -p src
if sed \
- -e "s/@backend_name@/atsui/g" \
- -e "s/@Backend_Name@/atsui font/g" \
- -e "s/@BACKEND_REQUIRES@//g" \
+ -e "s,@backend_name@,atsui,g" \
+ -e "s,@Backend_Name@,ATSUI font,g" \
+ -e "s,@BACKEND_REQUIRES@,$atsui_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$atsui_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$atsui_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-atsui.pc; then
+ $srcdir/src/cairo-backend.pc.in > $outfile; then
:
else
- rm -f "src/cairo-atsui.pc"
- { { echo "$as_me:$LINENO: error: failed creating src/cairo-atsui.pc" >&5
-echo "$as_me: error: failed creating src/cairo-atsui.pc" >&2;}
+ rm -f "$outfile"
+ { { echo "$as_me:$LINENO: error: failed creating $outfile" >&5
+echo "$as_me: error: failed creating $outfile" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -26800,8 +25658,7 @@ fi
fi
-
-if test "x$use_atsui" = "xyes"; then
+if test "x$use_atsui" = xyes; then
CAIRO_HAS_ATSUI_FONT_TRUE=
CAIRO_HAS_ATSUI_FONT_FALSE='#'
else
@@ -26809,9 +25666,6 @@ else
CAIRO_HAS_ATSUI_FONT_FALSE=
fi
-if test "x$use_atsui" = "xyes"; then
- ATSUI_FONT_FEATURE="#define CAIRO_HAS_ATSUI_FONT 1"
-fi
@@ -27105,7 +25959,7 @@ fi
CAIRO_CFLAGS="$CAIRO_CFLAGS $WARN_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS"
+
@@ -27179,7 +26033,7 @@ fi
have_gtk_doc=yes
fi
- gtk_doc_min_version=1.3
+ gtk_doc_min_version=1.6
if test "$have_gtk_doc" = yes; then
echo "$as_me:$LINENO: checking gtk-doc version >= $gtk_doc_min_version" >&5
echo $ECHO_N "checking gtk-doc version >= $gtk_doc_min_version... $ECHO_C" >&6
@@ -27232,8 +26086,8 @@ esac
MMX_CFLAGS="-mmmx -Winline --param inline-unit-growth=10000 --param large-function-growth=10000"
have_mmx_intrinsics=no
-echo "$as_me:$LINENO: checking For MMX/SSE intrinsics in the compiler" >&5
-echo $ECHO_N "checking For MMX/SSE intrinsics in the compiler... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for MMX/SSE intrinsics in the compiler" >&5
+echo $ECHO_N "checking for MMX/SSE intrinsics in the compiler... $ECHO_C" >&6
xserver_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $MMX_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
@@ -27484,7 +26338,11 @@ _ACEOF
fi
- ac_config_files="$ac_config_files Makefile pixman/Makefile pixman/src/Makefile src/Makefile src/cairo-features.h test/Makefile doc/Makefile doc/public/Makefile doc/public/version.xml src/cairo.pc"
+ ac_config_commands="$ac_config_commands src/cairo-features.h"
+
+ ac_config_files="$ac_config_files Makefile pixman/Makefile pixman/src/Makefile src/Makefile test/Makefile doc/Makefile doc/public/Makefile doc/public/version.xml src/cairo.pc"
+
+
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@@ -27611,6 +26469,13 @@ echo "$as_me: error: conditional \"CAIRO_HAS_XLIB_SURFACE\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE}" && test -z "${CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"CAIRO_HAS_XLIB_XRENDER_SURFACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CAIRO_HAS_XLIB_XRENDER_SURFACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${CAIRO_HAS_QUARTZ_SURFACE_TRUE}" && test -z "${CAIRO_HAS_QUARTZ_SURFACE_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"CAIRO_HAS_QUARTZ_SURFACE\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -27639,17 +26504,17 @@ echo "$as_me: error: conditional \"CAIRO_HAS_WIN32_FONT\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+if test -z "${CAIRO_HAS_BEOS_SURFACE_TRUE}" && test -z "${CAIRO_HAS_BEOS_SURFACE_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"CAIRO_HAS_BEOS_SURFACE\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+echo "$as_me: error: conditional \"CAIRO_HAS_BEOS_SURFACE\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${CAIRO_HAS_BEOS_SURFACE_TRUE}" && test -z "${CAIRO_HAS_BEOS_SURFACE_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"CAIRO_HAS_BEOS_SURFACE\" was never defined.
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"CAIRO_HAS_BEOS_SURFACE\" was never defined.
+echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -27660,6 +26525,13 @@ echo "$as_me: error: conditional \"CAIRO_HAS_PNG_FUNCTIONS\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${CAIRO_HAS_GLITZ_SURFACE_TRUE}" && test -z "${CAIRO_HAS_GLITZ_SURFACE_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"CAIRO_HAS_GLITZ_SURFACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CAIRO_HAS_GLITZ_SURFACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE}" && test -z "${CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"CAIRO_CAN_TEST_GLITZ_AGL_SURFACE\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -27688,13 +26560,6 @@ echo "$as_me: error: conditional \"CAIRO_CAN_TEST_GLITZ_WGL_SURFACE\" was never
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${CAIRO_HAS_GLITZ_SURFACE_TRUE}" && test -z "${CAIRO_HAS_GLITZ_SURFACE_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"CAIRO_HAS_GLITZ_SURFACE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"CAIRO_HAS_GLITZ_SURFACE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
if test -z "${CAIRO_HAS_DIRECTFB_SURFACE_TRUE}" && test -z "${CAIRO_HAS_DIRECTFB_SURFACE_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"CAIRO_HAS_DIRECTFB_SURFACE\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -28064,7 +26929,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by cairo $as_me 1.1.10, which was
+This file was extended by cairo $as_me 1.2.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -28127,7 +26992,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-cairo config.status 1.1.10
+cairo config.status 1.2.0
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -28228,6 +27093,12 @@ cat >>$CONFIG_STATUS <<_ACEOF
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+ CAIRO_FEATURES='$CAIRO_FEATURES'
+ CAIRO_VERSION_MAJOR=$CAIRO_VERSION_MAJOR
+ CAIRO_VERSION_MINOR=$CAIRO_VERSION_MINOR
+ CAIRO_VERSION_MICRO=$CAIRO_VERSION_MICRO
+
+
_ACEOF
@@ -28241,13 +27112,13 @@ do
"pixman/Makefile" ) CONFIG_FILES="$CONFIG_FILES pixman/Makefile" ;;
"pixman/src/Makefile" ) CONFIG_FILES="$CONFIG_FILES pixman/src/Makefile" ;;
"src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
- "src/cairo-features.h" ) CONFIG_FILES="$CONFIG_FILES src/cairo-features.h" ;;
"test/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
"doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
"doc/public/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/public/Makefile" ;;
"doc/public/version.xml" ) CONFIG_FILES="$CONFIG_FILES doc/public/version.xml" ;;
"src/cairo.pc" ) CONFIG_FILES="$CONFIG_FILES src/cairo.pc" ;;
"depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "src/cairo-features.h" ) CONFIG_COMMANDS="$CONFIG_COMMANDS src/cairo-features.h" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
@@ -28361,7 +27232,6 @@ s,@LT_CURRENT_MINUS_AGE@,$LT_CURRENT_MINUS_AGE,;t t
s,@CAIRO_VERSION_MAJOR@,$CAIRO_VERSION_MAJOR,;t t
s,@CAIRO_VERSION_MINOR@,$CAIRO_VERSION_MINOR,;t t
s,@CAIRO_VERSION_MICRO@,$CAIRO_VERSION_MICRO,;t t
-s,@CAIRO_VERSION_OTHER@,$CAIRO_VERSION_OTHER,;t t
s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
s,@MAINT@,$MAINT,;t t
@@ -28410,41 +27280,36 @@ s,@ac_ct_F77@,$ac_ct_F77,;t t
s,@LIBTOOL@,$LIBTOOL,;t t
s,@PKG_CONFIG@,$PKG_CONFIG,;t t
s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
-s,@XRENDER_CFLAGS@,$XRENDER_CFLAGS,;t t
-s,@XRENDER_LIBS@,$XRENDER_LIBS,;t t
s,@X_CFLAGS@,$X_CFLAGS,;t t
s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t
s,@X_LIBS@,$X_LIBS,;t t
s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
s,@CAIRO_HAS_XLIB_SURFACE_TRUE@,$CAIRO_HAS_XLIB_SURFACE_TRUE,;t t
s,@CAIRO_HAS_XLIB_SURFACE_FALSE@,$CAIRO_HAS_XLIB_SURFACE_FALSE,;t t
-s,@XLIB_SURFACE_FEATURE@,$XLIB_SURFACE_FEATURE,;t t
-s,@XRENDER_REQUIRES@,$XRENDER_REQUIRES,;t t
+s,@xlib_xrender_CFLAGS@,$xlib_xrender_CFLAGS,;t t
+s,@xlib_xrender_LIBS@,$xlib_xrender_LIBS,;t t
+s,@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@,$CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE,;t t
+s,@CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@,$CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE,;t t
s,@CAIRO_HAS_QUARTZ_SURFACE_TRUE@,$CAIRO_HAS_QUARTZ_SURFACE_TRUE,;t t
s,@CAIRO_HAS_QUARTZ_SURFACE_FALSE@,$CAIRO_HAS_QUARTZ_SURFACE_FALSE,;t t
-s,@QUARTZ_SURFACE_FEATURE@,$QUARTZ_SURFACE_FEATURE,;t t
-s,@XCB_CFLAGS@,$XCB_CFLAGS,;t t
-s,@XCB_LIBS@,$XCB_LIBS,;t t
+s,@xcb_CFLAGS@,$xcb_CFLAGS,;t t
+s,@xcb_LIBS@,$xcb_LIBS,;t t
s,@CAIRO_HAS_XCB_SURFACE_TRUE@,$CAIRO_HAS_XCB_SURFACE_TRUE,;t t
s,@CAIRO_HAS_XCB_SURFACE_FALSE@,$CAIRO_HAS_XCB_SURFACE_FALSE,;t t
-s,@XCB_SURFACE_FEATURE@,$XCB_SURFACE_FEATURE,;t t
s,@CAIRO_HAS_WIN32_SURFACE_TRUE@,$CAIRO_HAS_WIN32_SURFACE_TRUE,;t t
s,@CAIRO_HAS_WIN32_SURFACE_FALSE@,$CAIRO_HAS_WIN32_SURFACE_FALSE,;t t
-s,@WIN32_SURFACE_FEATURE@,$WIN32_SURFACE_FEATURE,;t t
s,@CAIRO_HAS_WIN32_FONT_TRUE@,$CAIRO_HAS_WIN32_FONT_TRUE,;t t
s,@CAIRO_HAS_WIN32_FONT_FALSE@,$CAIRO_HAS_WIN32_FONT_FALSE,;t t
-s,@WIN32_FONT_FEATURE@,$WIN32_FONT_FEATURE,;t t
s,@CAIRO_HAS_BEOS_SURFACE_TRUE@,$CAIRO_HAS_BEOS_SURFACE_TRUE,;t t
s,@CAIRO_HAS_BEOS_SURFACE_FALSE@,$CAIRO_HAS_BEOS_SURFACE_FALSE,;t t
-s,@BEOS_SURFACE_FEATURE@,$BEOS_SURFACE_FEATURE,;t t
-s,@PNG_CFLAGS@,$PNG_CFLAGS,;t t
-s,@PNG_LIBS@,$PNG_LIBS,;t t
+s,@png_CFLAGS@,$png_CFLAGS,;t t
+s,@png_LIBS@,$png_LIBS,;t t
s,@CAIRO_HAS_PNG_FUNCTIONS_TRUE@,$CAIRO_HAS_PNG_FUNCTIONS_TRUE,;t t
s,@CAIRO_HAS_PNG_FUNCTIONS_FALSE@,$CAIRO_HAS_PNG_FUNCTIONS_FALSE,;t t
-s,@PNG_FUNCTIONS_FEATURE@,$PNG_FUNCTIONS_FEATURE,;t t
-s,@PNG_REQUIRES@,$PNG_REQUIRES,;t t
-s,@GLITZ_CFLAGS@,$GLITZ_CFLAGS,;t t
-s,@GLITZ_LIBS@,$GLITZ_LIBS,;t t
+s,@glitz_CFLAGS@,$glitz_CFLAGS,;t t
+s,@glitz_LIBS@,$glitz_LIBS,;t t
+s,@CAIRO_HAS_GLITZ_SURFACE_TRUE@,$CAIRO_HAS_GLITZ_SURFACE_TRUE,;t t
+s,@CAIRO_HAS_GLITZ_SURFACE_FALSE@,$CAIRO_HAS_GLITZ_SURFACE_FALSE,;t t
s,@GLITZ_AGL_CFLAGS@,$GLITZ_AGL_CFLAGS,;t t
s,@GLITZ_AGL_LIBS@,$GLITZ_AGL_LIBS,;t t
s,@GLITZ_EGL_CFLAGS@,$GLITZ_EGL_CFLAGS,;t t
@@ -28461,53 +27326,41 @@ s,@CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_TRUE@,$CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_TRUE
s,@CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_FALSE@,$CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_FALSE,;t t
s,@CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_TRUE@,$CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_TRUE,;t t
s,@CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_FALSE@,$CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_FALSE,;t t
-s,@CAIRO_HAS_GLITZ_SURFACE_TRUE@,$CAIRO_HAS_GLITZ_SURFACE_TRUE,;t t
-s,@CAIRO_HAS_GLITZ_SURFACE_FALSE@,$CAIRO_HAS_GLITZ_SURFACE_FALSE,;t t
-s,@GLITZ_SURFACE_FEATURE@,$GLITZ_SURFACE_FEATURE,;t t
-s,@GLITZ_REQUIRES@,$GLITZ_REQUIRES,;t t
-s,@DIRECTFB_CFLAGS@,$DIRECTFB_CFLAGS,;t t
-s,@DIRECTFB_LIBS@,$DIRECTFB_LIBS,;t t
+s,@directfb_CFLAGS@,$directfb_CFLAGS,;t t
+s,@directfb_LIBS@,$directfb_LIBS,;t t
s,@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@,$CAIRO_HAS_DIRECTFB_SURFACE_TRUE,;t t
s,@CAIRO_HAS_DIRECTFB_SURFACE_FALSE@,$CAIRO_HAS_DIRECTFB_SURFACE_FALSE,;t t
-s,@DIRECTFB_SURFACE_FEATURE@,$DIRECTFB_SURFACE_FEATURE,;t t
s,@FONTCONFIG_CFLAGS@,$FONTCONFIG_CFLAGS,;t t
s,@FONTCONFIG_LIBS@,$FONTCONFIG_LIBS,;t t
s,@FREETYPE_CFLAGS@,$FREETYPE_CFLAGS,;t t
s,@FREETYPE_LIBS@,$FREETYPE_LIBS,;t t
s,@FREETYPE_CONFIG@,$FREETYPE_CONFIG,;t t
-s,@FREETYPE_CONFIG_CFLAGS@,$FREETYPE_CONFIG_CFLAGS,;t t
-s,@FREETYPE_CONFIG_LIBS@,$FREETYPE_CONFIG_LIBS,;t t
-s,@FREETYPE_REQUIRES@,$FREETYPE_REQUIRES,;t t
s,@CAIRO_HAS_FT_FONT_TRUE@,$CAIRO_HAS_FT_FONT_TRUE,;t t
s,@CAIRO_HAS_FT_FONT_FALSE@,$CAIRO_HAS_FT_FONT_FALSE,;t t
-s,@FT_FONT_FEATURE@,$FT_FONT_FEATURE,;t t
+s,@FREETYPE_CONFIG_CFLAGS@,$FREETYPE_CONFIG_CFLAGS,;t t
+s,@FREETYPE_CONFIG_LIBS@,$FREETYPE_CONFIG_LIBS,;t t
s,@HAVE_PTHREAD_TRUE@,$HAVE_PTHREAD_TRUE,;t t
s,@HAVE_PTHREAD_FALSE@,$HAVE_PTHREAD_FALSE,;t t
s,@CAIRO_HAS_PS_SURFACE_TRUE@,$CAIRO_HAS_PS_SURFACE_TRUE,;t t
s,@CAIRO_HAS_PS_SURFACE_FALSE@,$CAIRO_HAS_PS_SURFACE_FALSE,;t t
-s,@PS_SURFACE_FEATURE@,$PS_SURFACE_FEATURE,;t t
-s,@PS_LIBS@,$PS_LIBS,;t t
s,@CAIRO_HAS_PDF_SURFACE_TRUE@,$CAIRO_HAS_PDF_SURFACE_TRUE,;t t
s,@CAIRO_HAS_PDF_SURFACE_FALSE@,$CAIRO_HAS_PDF_SURFACE_FALSE,;t t
s,@POPPLER_CFLAGS@,$POPPLER_CFLAGS,;t t
s,@POPPLER_LIBS@,$POPPLER_LIBS,;t t
-s,@PDF_SURFACE_FEATURE@,$PDF_SURFACE_FEATURE,;t t
s,@CAIRO_CAN_TEST_PDF_SURFACE_TRUE@,$CAIRO_CAN_TEST_PDF_SURFACE_TRUE,;t t
s,@CAIRO_CAN_TEST_PDF_SURFACE_FALSE@,$CAIRO_CAN_TEST_PDF_SURFACE_FALSE,;t t
s,@CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@,$CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE,;t t
s,@CAIRO_HAS_MULTI_PAGE_SURFACES_FALSE@,$CAIRO_HAS_MULTI_PAGE_SURFACES_FALSE,;t t
-s,@PDF_LIBS@,$PDF_LIBS,;t t
s,@CAIRO_HAS_SVG_SURFACE_TRUE@,$CAIRO_HAS_SVG_SURFACE_TRUE,;t t
s,@CAIRO_HAS_SVG_SURFACE_FALSE@,$CAIRO_HAS_SVG_SURFACE_FALSE,;t t
s,@LIBRSVG_CFLAGS@,$LIBRSVG_CFLAGS,;t t
s,@LIBRSVG_LIBS@,$LIBRSVG_LIBS,;t t
-s,@SVG_SURFACE_FEATURE@,$SVG_SURFACE_FEATURE,;t t
s,@CAIRO_CAN_TEST_SVG_SURFACE_TRUE@,$CAIRO_CAN_TEST_SVG_SURFACE_TRUE,;t t
s,@CAIRO_CAN_TEST_SVG_SURFACE_FALSE@,$CAIRO_CAN_TEST_SVG_SURFACE_FALSE,;t t
s,@CAIRO_HAS_ATSUI_FONT_TRUE@,$CAIRO_HAS_ATSUI_FONT_TRUE,;t t
s,@CAIRO_HAS_ATSUI_FONT_FALSE@,$CAIRO_HAS_ATSUI_FONT_FALSE,;t t
-s,@ATSUI_FONT_FEATURE@,$ATSUI_FONT_FEATURE,;t t
s,@WARN_CFLAGS@,$WARN_CFLAGS,;t t
+s,@CAIRO_REQUIRES@,$CAIRO_REQUIRES,;t t
s,@CAIRO_CFLAGS@,$CAIRO_CFLAGS,;t t
s,@CAIRO_LIBS@,$CAIRO_LIBS,;t t
s,@HTML_DIR@,$HTML_DIR,;t t
@@ -29208,6 +28061,50 @@ echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
done
done
;;
+ src/cairo-features.h )
+ featuresfile=src/cairo-features.h
+ outfile=$featuresfile.tmp
+ { echo "$as_me:$LINENO: creating $featuresfile" >&5
+echo "$as_me: creating $featuresfile" >&6;}
+ cat > $outfile <<_EOF
+/* Generated by configure. Do not edit */
+#ifndef CAIRO_FEATURES_H
+#define CAIRO_FEATURES_H
+
+#ifdef __cplusplus
+# define CAIRO_BEGIN_DECLS extern "C" {
+# define CAIRO_END_DECLS }
+#else
+# define CAIRO_BEGIN_DECLS
+# define CAIRO_END_DECLS
+#endif
+
+#ifndef cairo_public
+# define cairo_public
+#endif
+
+#define CAIRO_VERSION_MAJOR $CAIRO_VERSION_MAJOR
+#define CAIRO_VERSION_MINOR $CAIRO_VERSION_MINOR
+#define CAIRO_VERSION_MICRO $CAIRO_VERSION_MICRO
+
+#define CAIRO_VERSION_STRING "$CAIRO_VERSION_MAJOR.$CAIRO_VERSION_MINOR.$CAIRO_VERSION_MICRO"
+
+_EOF
+ for FEATURE in $CAIRO_FEATURES; do
+ echo "#define CAIRO_HAS_$FEATURE 1" >> $outfile
+ done
+
+ echo '' >> $outfile
+ echo '#endif' >> $outfile
+
+ if cmp -s $outfile $featuresfile; then
+ { echo "$as_me:$LINENO: $featuresfile is unchanged" >&5
+echo "$as_me: $featuresfile is unchanged" >&6;}
+ rm -f $outfile
+ else
+ mv $outfile $featuresfile
+ fi
+ ;;
esac
done
_ACEOF
@@ -29245,22 +28142,23 @@ fi
echo ""
echo "cairo will be compiled with the following surface backends:"
-echo " image: yes (always builtin)"
-echo " Xlib: $use_xlib"
-echo " Quartz: $use_quartz"
-echo " XCB: $use_xcb"
-echo " Win32: $use_win32"
-echo " PostScript: $use_ps"
-echo " PDF: $use_pdf"
-echo " SVG: $use_svg"
-echo " glitz: $use_glitz"
-echo " BeOS: $use_beos"
-echo " DirectFB: $use_directfb"
+echo " image: yes (always builtin)"
+echo " Xlib: $use_xlib"
+echo " Xlib Xrender: $use_xlib_xrender"
+echo " Quartz: $use_quartz"
+echo " XCB: $use_xcb"
+echo " Win32: $use_win32"
+echo " PostScript: $use_ps"
+echo " PDF: $use_pdf"
+echo " SVG: $use_svg"
+echo " glitz: $use_glitz"
+echo " BeOS: $use_beos"
+echo " DirectFB: $use_directfb"
echo ""
echo "the following font backends:"
-echo " FreeType: $use_freetype"
-echo " Win32: $use_win32"
-echo " ATSUI: $use_atsui"
+echo " FreeType: $use_ft"
+echo " Win32: $use_win32_font"
+echo " ATSUI: $use_atsui"
echo ""
echo "the following features:"
echo " PNG functions: $use_png"
@@ -29273,9 +28171,9 @@ echo "using CFLAGS:"
echo $CAIRO_CFLAGS
echo ""
-if test x"$use_freetype" != "xyes" && \
- test x"$use_win32" != "xyes" && \
- test x"$use_atsui" != "xyes" ; then
+if test x"$use_ft" != "xyes" && \
+ test x"$use_win32_font" != "xyes" && \
+ test x"$use_atsui" != "xyes" ; then
{ { echo "$as_me:$LINENO: error: Cairo requires at least one font backend.
Please install freetype and fontconfig, then try again:
diff --git a/configure.in b/configure.in
index 5ff352c..97c0e9b 100644
--- a/configure.in
+++ b/configure.in
@@ -4,8 +4,8 @@ AC_PREREQ(2.54)
# An odd micro number indicates in-progress development, (eg. from git/cvs)
# An even micro number indicates a released version.
m4_define(cairo_version_major, 1)
-m4_define(cairo_version_minor, 1)
-m4_define(cairo_version_micro, 10)
+m4_define(cairo_version_minor, 2)
+m4_define(cairo_version_micro, 0)
AC_INIT([cairo],
cairo_version_major.cairo_version_minor.cairo_version_micro,
@@ -19,7 +19,7 @@ dnl ===========================================================================
# libtool shared library version
# Increment if the interface has additions, changes, removals.
-LT_CURRENT=10
+LT_CURRENT=11
# Increment any time the source changes; set to
# 0 if you increment CURRENT
@@ -28,7 +28,7 @@ LT_REVISION=0
# Increment if any interfaces have been added; set to 0
# if any interfaces have been removed. removal has
# precedence over adding, so set to 0 if both happened.
-LT_AGE=8
+LT_AGE=9
dnl ===========================================================================
@@ -44,7 +44,6 @@ CAIRO_VERSION_MICRO=cairo_version_micro()
AC_SUBST(CAIRO_VERSION_MAJOR)
AC_SUBST(CAIRO_VERSION_MINOR)
AC_SUBST(CAIRO_VERSION_MICRO)
-AC_SUBST(CAIRO_VERSION_OTHER)
AM_MAINTAINER_MODE
@@ -88,237 +87,231 @@ PKG_PROG_PKG_CONFIG
dnl ===========================================================================
dnl
dnl Define a macro to enable backends.
-dnl - Macro: CAIRO_BACKEND_ENABLE (ID, NAME, DEFAULT, NAMESPACE, REQUIRES, COMMANDS-TO-CHECK-IT)
+dnl - Macro: CAIRO_BACKEND_ENABLE (NAMESPACE, NAME, ARG, FEATURE_NAME, DEFAULT, COMMANDS)
dnl
-dnl Where COMMANDS should set $use_ID to something other than yes if the
-dnl backend cannot be built.
+dnl where:
dnl
-dnl Check the CAIRO_BACKEND_ENABLE line for fontconfig to understand each
-dnl parameter.
+dnl NAMESPACE is the sub-namespace in function names, eg. "ft" for cairo_ft_...
+dnl NAME is the human-readable name of the backend, eg. "FreeType font"
+dnl ARG is what enables the backend, eg. "freetype" for --enable-freetype
+dnl FEATURE_NAME is what's used in cairo-features.h, eg. FT_FONT for CAIRO_HAS_FT_FONT
+dnl DEFAULT is the default state of the backend:
+dnl "no" for experimental backends, eg. your favorite new backend
+dnl "yes" for mandatory backends, eg. png
+dnl "auto" for other supported backends, eg. xlib
+dnl REQUIRES is the list of pkg-config modules that should be Require'd in the
+dnl backend-specific .pc file.
+dnl COMMANDS are run to check whether the backend can be enabled. Their
+dnl result may be cached, so user should not count on them being run.
+dnl They should set use_$(NAMESPACE) to something other than yes if the
+dnl backend cannot be built, eg. "no (requires SomeThing)"
dnl
AC_DEFUN([CAIRO_BACKEND_ENABLE],
- [AC_ARG_ENABLE([$1],
- AS_HELP_STRING([--enable-$1=@<:@no/auto/yes@:>@],
- [Enable cairo's $2 backend @<:@default=$3@:>@]),
- use_$1=$enableval, use_$1=$3)
- if test "x$use_$1" = xno; then
- use_$1="no (disabled, use --enable-$1 to enable)"
+ [AC_ARG_ENABLE([$3],
+ AS_HELP_STRING([--enable-$3=@<:@no/auto/yes@:>@],
+ [Enable cairo's $2 backend @<:@default=$5@:>@]),
+ enable_$1=$enableval, enable_$1=$5)
+ if test "x$enable_$1" = xno; then
+ use_$1="no (disabled, use --enable-$3 to enable)"
else
- AC_CACHE_CHECK([for cairo's $1 backend], cairo_cv_use_$1,
+ AC_CACHE_CHECK([for cairo's $2 backend], cairo_cv_backend_[]$1[]_use,
[echo
- saved_use_$1=$use_$1
- use_$1=yes
+ use_[]$1=yes
+ $1[]_REQUIRES=""
+ $1[]_CFLAGS=""
+ $1[]_LIBS=""
+ $1[]_NONPKGCONFIG_CFLAGS=""
+ $1[]_NONPKGCONFIG_LIBS=""
$6
- cairo_cv_use_$1=$use_$1
- use_$1=$saved_use_$1
- AC_MSG_CHECKING([whether cairo's $1 backend could be enabled])])
- case $use_$1 in
+ cairo_cv_backend_[]$1[]_use=$use_[]$1
+ cairo_cv_backend_[]$1[]_requires=$[]$1[]_REQUIRES
+ cairo_cv_backend_[]$1[]_cflags=$[]$1[]_CFLAGS
+ cairo_cv_backend_[]$1[]_libs=$[]$1[]_LIBS
+ cairo_cv_backend_[]$1[]_nonpkgconfig_cflags=$[]$1[]_NONPKGCONFIG_CFLAGS
+ cairo_cv_backend_[]$1[]_nonpkgconfig_libs=$[]$1[]_NONPKGCONFIG_LIBS
+ AC_MSG_CHECKING([whether cairo's $2 backend could be enabled])])
+
+ # split the backend spec into its components
+ use_[]$1=$cairo_cv_backend_[]$1[]_use
+ $1[]_REQUIRES=$cairo_cv_backend_[]$1[]_requires
+ $1[]_CFLAGS=$cairo_cv_backend_[]$1[]_cflags
+ $1[]_LIBS=$cairo_cv_backend_[]$1[]_libs
+ $1[]_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_[]$1[]_nonpkgconfig_cflags
+ $1[]_NONPKGCONFIG_LIBS=$cairo_cv_backend_[]$1[]_nonpkgconfig_libs
+
+ case $enable_[]$1 in
yes)
- if test "x$cairo_cv_use_$1" = xyes; then
- use_$1=yes
- else
+ AS_IF([test "x$use_[]$1" = xyes],,[
AC_MSG_ERROR([requested $2 backend could not be enabled])
- fi
+ ])
;;
auto)
- use_$1=$cairo_cv_use_$1
;;
*)
- AC_MSG_ERROR([invalid argument passed to --enable-$1: $use_$1, should be one of @<:@no/auto/yes@:>@])
+ AC_MSG_ERROR([invalid argument passed to --enable-$3: $use_$1, should be one of @<:@no/auto/yes@:>@])
;;
esac
- if test "x$use_$1" = xyes; then
- AC_MSG_NOTICE([creating src/cairo-$4.pc])
- mkdir src
+ if test "x$use_[]$1" = xyes; then
+ CAIRO_FEATURES="$CAIRO_FEATURES $4"
+ CAIRO_REQUIRES="$CAIRO_REQUIRES $$1_REQUIRES"
+ CAIRO_CFLAGS="$CAIRO_CFLAGS $$1_CFLAGS $$1_NONPKGCONFIG_CFLAGS"
+ CAIRO_LIBS="$CAIRO_LIBS $$1_LIBS $$1_NONPKGCONFIG_LIBS"
+ outfile=`echo src/cairo-$1.pc | sed -e s/_/-/g`
+ AC_MSG_NOTICE([creating $outfile])
+ mkdir -p src
AS_IF([sed \
- -e "s/@backend_name@/$4/g" \
- -e "s/@Backend_Name@/$2/g" \
- -e "s/@BACKEND_REQUIRES@/$5/g" \
+ -e "s,@backend_name@,$1,g" \
+ -e "s,@Backend_Name@,$2,g" \
+ -e "s,@BACKEND_REQUIRES@,$$1_REQUIRES,g" \
+ -e "s%@BACKEND_NONPKGCONFIG_LIBS@%$$1_NONPKGCONFIG_LIBS%g" \
+ -e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$$1_NONPKGCONFIG_CFLAGS,g" \
-e "s,@prefix@,$prefix,g" \
-e "s,@exec_prefix@,$exec_prefix,g" \
-e "s,@libdir@,$libdir,g" \
-e "s,@includedir@,$includedir,g" \
-e "s,@VERSION@,$VERSION,g" \
- $srcdir/src/cairo-backend.pc.in > src/cairo-$4.pc],,[
- rm -f "src/cairo-$4.pc"
- AC_MSG_ERROR([failed creating src/cairo-$4.pc])
+ $srcdir/src/cairo-backend.pc.in > $outfile],,[
+ rm -f "$outfile"
+ AC_MSG_ERROR([failed creating $outfile])
])
fi
- fi])
+ fi
+ AM_CONDITIONAL(CAIRO_HAS_$4, test "x$use_$1" = xyes)
+ ])
+
+CAIRO_FEATURES=""
+CAIRO_REQUIRES=""
+CAIRO_CFLAGS=""
+CAIRO_LIBS=""
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(xlib, Xlib, auto, xlib, [xrender], [
- dnl Check for Xrender header files if the Xrender package is not installed:
- PKG_CHECK_MODULES(XRENDER, xrender >= 0.6, [
- XRENDER_REQUIRES=xrender], [
- AC_CHECK_HEADER(X11/extensions/Xrender.h, [
- AC_PATH_XTRA
- XRENDER_LIBS="$X_LIBS -lXrender -lXext -lX11 $X_EXTRA_LIBS"], [
- use_xlib="no (requires Xrender http://freedesktop.org/Software/xlibs)"])])
- _CHECK_FUNCS_WITH_FLAGS(XrmFinalize, $XRENDER_CFLAGS, $XRENDER_LIBS)
+CAIRO_BACKEND_ENABLE(xlib, Xlib, xlib, XLIB_SURFACE, auto, [
+ AC_PATH_XTRA
+ if test "x$no_x" = xyes; then
+ use_xlib="no (requires Xlib)"
+ else
+ xlib_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
+ xlib_CFLAGS=$X_CFLAGS
+ fi
])
-AM_CONDITIONAL(CAIRO_HAS_XLIB_SURFACE, test "x$use_xlib" = "xyes")
-if test "x$use_xlib" = "xyes"; then
- XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
+if test "x$use_xlib" = xyes; then
+ _CHECK_FUNCS_WITH_FLAGS(XrmFinalize, $xlib_CFLAGS, $xlib_LIBS)
fi
-AC_SUBST(XLIB_SURFACE_FEATURE)
-AC_SUBST(XRENDER_REQUIRES)
+CAIRO_BACKEND_ENABLE(xlib_xrender, Xlib Xrender, xlib-xrender, XLIB_XRENDER_SURFACE, auto, [
+ use_xlib_xrender=$use_xlib
+ if test "x$use_xlib_xrender" = xyes; then
+ dnl Check for Xrender header files if the Xrender package is not installed:
+ xlib_xrender_REQUIRES="xrender >= 0.6"
+ PKG_CHECK_MODULES(xlib_xrender, $xlib_xrender_REQUIRES, ,
+ [xlib_xrender_REQUIRES=""
+ AC_CHECK_HEADER(X11/extensions/Xrender.h,
+ [xlib_xrender_LIBS="-lXrender"],
+ [use_xlib_xrender="no (requires Xrender http://freedesktop.org/Software/xlibs)"])])
+ xlib_xrender_CFLAGS="$xlib_CFLAGS $xlib_xrender_CFLAGS"
+ xlib_xrender_LIBS="$xlib_LIBS $xlib_xrender_LIBS"
+ fi
+])
-CAIRO_CFLAGS="$CAIRO_CFLAGS $XRENDER_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $XRENDER_LIBS"
+dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(quartz, Quartz, no, quartz, [], [
+CAIRO_BACKEND_ENABLE(quartz, Quartz, quartz, QUARTZ_SURFACE, no, [
dnl There is no pkgconfig for quartz; lets do a header check
- AC_CHECK_HEADER(Carbon/Carbon.h, [use_quartz=yes], [use_quartz="no (Carbon headers not found)"])
+ AC_CHECK_HEADER(Carbon/Carbon.h, , [use_quartz="no (Carbon headers not found)"])
+ quartz_LIBS="-Xlinker -framework -Xlinker Carbon"
])
-AM_CONDITIONAL(CAIRO_HAS_QUARTZ_SURFACE, test "x$use_quartz" = "xyes")
-if test "x$use_quartz" = "xyes"; then
- QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
- QUARTZ_LIBS="-Xlinker -framework -Xlinker Carbon"
-fi
-AC_SUBST(QUARTZ_SURFACE_FEATURE)
-CAIRO_LIBS="$CAIRO_LIBS $QUARTZ_LIBS"
-
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(xcb, XCB, no, xcb, [xcb xcb-render], [
- PKG_CHECK_MODULES(XCB, xcb xcb-render, [use_xcb=yes], [
+CAIRO_BACKEND_ENABLE(xcb, XCB, xcb, XCB_SURFACE, no, [
+ xcb_REQUIRES="xcb xcb-render"
+ PKG_CHECK_MODULES(xcb, $xcb_REQUIRES, , [
use_xcb="no (requires XCB http://xcb.freedesktop.org)"])
])
-AM_CONDITIONAL(CAIRO_HAS_XCB_SURFACE, test "x$use_xcb" = "xyes")
-if test "x$use_xcb" = "xyes"; then
- XCB_SURFACE_FEATURE="#define CAIRO_HAS_XCB_SURFACE 1"
-fi
-AC_SUBST(XCB_SURFACE_FEATURE)
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $XCB_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $XCB_LIBS"
-
-
dnl ===========================================================================
-case "$host" in
- *-*-mingw*|*-*-cygwin*)
- cairo_platform_win32=yes
- ;;
- *)
- cairo_platform_win32=no
- ;;
-esac
-
-CAIRO_BACKEND_ENABLE(win32, Microsoft Windows, auto, win32, [], [
+CAIRO_BACKEND_ENABLE(win32, Microsoft Windows, win32, WIN32_SURFACE, auto, [
case "$host" in
*-*-mingw*|*-*-cygwin*)
- use_win32=yes
+ :
;;
*)
- use_win32="no (the Microsoft Windows backend requires a Win32 platform)"
+ use_win32="no (requires a Win32 platform)"
;;
esac
+ win32_LIBS="-lgdi32 -lmsimg32"
])
-
-if test "x$use_win32" = "xyes"; then
- CAIRO_LIBS="$CAIRO_LIBS -lgdi32 -lmsimg32"
-fi
-
-AM_CONDITIONAL(CAIRO_HAS_WIN32_SURFACE, test "x$use_win32" = "xyes")
-if test "x$use_win32" = "xyes"; then
- WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
-fi
-AC_SUBST(WIN32_SURFACE_FEATURE)
-
-AM_CONDITIONAL(CAIRO_HAS_WIN32_FONT, test "x$use_win32" = "xyes")
-if test "x$use_win32" = "xyes"; then
- WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
-fi
-AC_SUBST(WIN32_FONT_FEATURE)
-
+CAIRO_BACKEND_ENABLE(win32_font, Microsoft Windows font, win32-font, WIN32_FONT, auto, [
+ use_win32_font=$use_win32
+])
dnl ===========================================================================
-
-CAIRO_BACKEND_ENABLE(beos, BeOS/Zeta, no, beos, [], [
+CAIRO_BACKEND_ENABLE(beos, BeOS/Zeta, beos, BEOS_SURFACE, no, [
case "$host" in
*-*-beos)
- use_beos=yes
+ dnl Add libbe and libzeta if available
+ AC_CHECK_LIB(be,main,beos_LIBS="$beos_LIBS -lbe")
+ AC_CHECK_LIB(zeta,main,beos_LIBS="$beos_LIBS -lzeta")
;;
*)
- use_beos="no (the BeOS backend requires a BeOS platform)"
+ use_beos="no (requires a BeOS platform)"
;;
esac
])
if test "x$use_beos" = "xyes"; then
AC_PROG_CXX
- dnl Add libbe and libzeta if available
- AC_CHECK_LIB(be,main,CAIRO_LIBS="$CAIRO_LIBS -lbe")
- AC_CHECK_LIB(zeta,main,CAIRO_LIBS="$CAIRO_LIBS -lzeta")
fi
-AM_CONDITIONAL(CAIRO_HAS_BEOS_SURFACE, test "x$use_beos" = "xyes")
-if test "x$use_beos" = "xyes"; then
- BEOS_SURFACE_FEATURE="#define CAIRO_HAS_BEOS_SURFACE 1"
-fi
-AC_SUBST(BEOS_SURFACE_FEATURE)
-
-
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(png, PNG, yes, png, [], [
+CAIRO_BACKEND_ENABLE(png, PNG, png, PNG_FUNCTIONS, yes, [
use_png=no
# libpng13 is GnuWin32's libpng-1.2.8 :-(
for l in libpng12 libpng13 libpng10 ; do
if $PKG_CONFIG --exists $l ; then
- PNG_REQUIRES=$l
+ png_REQUIRES=$l
use_png=yes
break
fi
done
if test "x$use_png" = "xyes" ; then
- # Sets PNG_CFLAGS, PNG_LIBS
- PKG_CHECK_MODULES(PNG, $PNG_REQUIRES)
+ PKG_CHECK_MODULES(png, $png_REQUIRES)
else
AC_MSG_WARN([Could not find libpng in the pkg-config search path])
fi
])
-AM_CONDITIONAL(CAIRO_HAS_PNG_FUNCTIONS, test "x$use_png" = "xyes")
if test "x$use_png" = "xyes"; then
- PNG_FUNCTIONS_FEATURE="#define CAIRO_HAS_PNG_FUNCTIONS 1"
+ :
else
AC_MSG_WARN([*** To run the tests, cairo must be built with png support ***])
fi
-AC_SUBST(PNG_FUNCTIONS_FEATURE)
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $PNG_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $PNG_LIBS"
-
-AC_SUBST(PNG_REQUIRES)
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(glitz, glitz, no, glitz, [glitz], [
- PKG_CHECK_MODULES(GLITZ, glitz >= 0.5.1, [
- GLITZ_REQUIRES=glitz
- use_glitz=yes], [use_glitz="no (requires glitz http://freedesktop.org/Software/glitz)"])
+GLITZ_MIN_VERSION=0.5.1
+CAIRO_BACKEND_ENABLE(glitz, glitz, glitz, GLITZ_SURFACE, no, [
+ glitz_REQUIRES="glitz >= $GLITZ_MIN_VERSION"
+ PKG_CHECK_MODULES(glitz, $glitz_REQUIRES, , [
+ use_glitz="no (requires glitz http://freedesktop.org/Software/glitz)"])
])
if test "x$use_glitz" = "xyes";then
- PKG_CHECK_MODULES(GLITZ_AGL, glitz-agl >= 0.5.1,
- [have_glitz_agl=yes], [have_glitz_agl=no])
- PKG_CHECK_MODULES(GLITZ_EGL, glitz-egl >= 0.5.1,
- [have_glitz_egl=yes], [have_glitz_egl=no])
- PKG_CHECK_MODULES(GLITZ_GLX, glitz-glx >= 0.5.1,
- [have_glitz_glx=yes], [have_glitz_glx=no])
- PKG_CHECK_MODULES(GLITZ_WGL, glitz-wgl >= 0.5.1,
- [have_glitz_wgl=yes], [have_glitz_wgl=no])
+ PKG_CHECK_MODULES(GLITZ_AGL, glitz-agl >= $GLITZ_MIN_VERSION,
+ [have_glitz_agl=yes], [have_glitz_agl=no; echo $MYSTUFF_PKG_ERRORS])
+ PKG_CHECK_MODULES(GLITZ_EGL, glitz-egl >= $GLITZ_MIN_VERSION,
+ [have_glitz_egl=yes], [have_glitz_egl=no; echo $MYSTUFF_PKG_ERRORS])
+ PKG_CHECK_MODULES(GLITZ_GLX, glitz-glx >= $GLITZ_MIN_VERSION,
+ [have_glitz_glx=yes], [have_glitz_glx=no; echo $MYSTUFF_PKG_ERRORS])
+ PKG_CHECK_MODULES(GLITZ_WGL, glitz-wgl >= $GLITZ_MIN_VERSION,
+ [have_glitz_wgl=yes], [have_glitz_wgl=no; echo $MYSTUFF_PKG_ERRORS])
if test "x$have_glitz_agl" = "xyes";then
AC_DEFINE(CAIRO_CAN_TEST_GLITZ_AGL_SURFACE, 1, [define if glitz backend can be tested against agl])
@@ -339,51 +332,23 @@ AM_CONDITIONAL(CAIRO_CAN_TEST_GLITZ_EGL_SURFACE, test "x$have_glitz_egl" = "xyes
AM_CONDITIONAL(CAIRO_CAN_TEST_GLITZ_GLX_SURFACE, test "x$have_glitz_glx" = "xyes")
AM_CONDITIONAL(CAIRO_CAN_TEST_GLITZ_WGL_SURFACE, test "x$have_glitz_wgl" = "xyes")
-AM_CONDITIONAL(CAIRO_HAS_GLITZ_SURFACE, test "x$use_glitz" = "xyes")
-if test "x$use_glitz" = "xyes"; then
- GLITZ_SURFACE_FEATURE="#define CAIRO_HAS_GLITZ_SURFACE 1"
-fi
-AC_SUBST(GLITZ_SURFACE_FEATURE)
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $GLITZ_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $GLITZ_LIBS"
-
-AC_SUBST(GLITZ_REQUIRES)
-
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(directfb, directfb, no, directfb, [directfb], [
- PKG_CHECK_MODULES(DIRECTFB, directfb, [use_directfb=yes], [
- use_directfb="no (requires directfb http://www.directfb.org)"])
+CAIRO_BACKEND_ENABLE(directfb, directfb, directfb, DIRECTFB_SURFACE, no, [
+ directfb_REQUIRES=directfb
+ PKG_CHECK_MODULES(directfb, $directfb_REQUIRES, ,
+ [use_directfb="no (requires directfb http://www.directfb.org)"])
])
-AM_CONDITIONAL(CAIRO_HAS_DIRECTFB_SURFACE, test "x$use_directfb" = "xyes")
-if test "x$use_directfb" = "xyes"; then
- DIRECTFB_SURFACE_FEATURE="#define CAIRO_HAS_DIRECTFB_SURFACE 1"
-fi
-AC_SUBST(DIRECTFB_SURFACE_FEATURE)
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $DIRECTFB_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $DIRECTFB_LIBS"
-
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(freetype, freetype font, auto, ft, [freetype2 fontconfig], [
- PKG_CHECK_MODULES(FONTCONFIG, fontconfig,
- [use_freetype=yes], [use_freetype=no])
- _CHECK_FUNCS_WITH_FLAGS(FcFini, $FONTCONFIG_CFLAGS, $FONTCONFIG_LIBS)
-])
-
-CAIRO_CFLAGS="$CAIRO_CFLAGS $FONTCONFIG_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $FONTCONFIG_LIBS"
-
# We use pkg-config to look for freetype2, but fall back to
# freetype-config if it fails. We prefer pkg-config, since we can
# then just put freetype2 >= $FREETYPE_MIN_VERSION in
# Requires.private, but at least up to 2003-06-07, there was no
# freetype2.pc in the release.
#
-# Freetype versions come in three forms:
+# FreeType versions come in three forms:
# release (such as 2.1.5)
# libtool (such as 9.4.3) (returned by freetype-config and pkg-config)
# platform-specific/soname (such as 6.3.4)
@@ -397,64 +362,64 @@ FREETYPE_MIN_RELEASE=2.1.0
# libtool-specific version - this is what is checked
FREETYPE_MIN_VERSION=8.0.2
-if test "x$use_freetype" = "xyes"; then
-
- PKG_CHECK_MODULES(FREETYPE, freetype2 >= $FREETYPE_MIN_VERSION,
- [freetype_pkgconfig=yes], [freetype_pkgconfig=no])
-
- if test "x$freetype_pkgconfig" = "xyes"; then
-
- FREETYPE_REQUIRES="freetype2 >= $FREETYPE_MIN_VERSION fontconfig"
+CAIRO_BACKEND_ENABLE(ft, FreeType font, freetype, FT_FONT, auto, [
+ ft_REQUIRES="fontconfig"
+ PKG_CHECK_MODULES(FONTCONFIG, $ft_REQUIRES,
+ [_CHECK_FUNCS_WITH_FLAGS(FcFini, $ft_CFLAGS, $ft_LIBS)],
+ [use_ft="no (requires fontconfig"])
- else
-
- if test -z "$FREETYPE_CONFIG"; then
- AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
- fi
- if test "$FREETYPE_CONFIG" = "no" ; then
- AC_MSG_WARN([No freetype-config script found in path or FREETYPE_CONFIG])
- use_freetype=no
- else
- AC_MSG_CHECKING(freetype2 libtool version)
+ if test "x$use_ft" = "xyes"; then
+ PKG_CHECK_MODULES(FREETYPE, freetype2 >= $FREETYPE_MIN_VERSION,
+ [freetype_pkgconfig=yes], [freetype_pkgconfig=no])
- FREETYPE_VERSION=`$FREETYPE_CONFIG --version`
+ if test "x$freetype_pkgconfig" = "xyes"; then
+ ft_REQUIRES="freetype2 >= $FREETYPE_MIN_VERSION $ft_REQUIRES"
+ else
- VERSION_DEC=`echo $FREETYPE_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
- MIN_VERSION_DEC=`echo $FREETYPE_MIN_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
- if test $VERSION_DEC -lt $MIN_VERSION_DEC; then
- AC_MSG_RESULT($FREETYPE_VERSION - Too old)
- AC_MSG_WARN([$FREETYPE_VERSION - version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required])
- use_freetype=no
+ if test -z "$FREETYPE_CONFIG"; then
+ AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+ fi
+ if test "x$FREETYPE_CONFIG" = "xno" ; then
+ use_ft='no (freetype-config not found in path or $FREETYPE_CONFIG)'
else
- AC_MSG_RESULT($FREETYPE_VERSION - OK)
-
- FREETYPE_CONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags`
- FREETYPE_CONFIG_LIBS=`$FREETYPE_CONFIG --libs`
- FREETYPE_CFLAGS=$FREETYPE_CONFIG_CFLAGS
- FREETYPE_LIBS=$FREETYPE_CONFIG_LIBS
- FREETYPE_REQUIRES=fontconfig
+ AC_MSG_CHECKING(freetype2 libtool version)
+
+ FREETYPE_VERSION=`$FREETYPE_CONFIG --version`
+
+ VERSION_DEC=`echo $FREETYPE_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
+ MIN_VERSION_DEC=`echo $FREETYPE_MIN_VERSION | awk -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};'`
+ if test $VERSION_DEC -lt $MIN_VERSION_DEC; then
+ AC_MSG_RESULT($FREETYPE_VERSION - Too old)
+ use_ft="no ($FREETYPE_VERSION found; version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required)"
+ else
+ AC_MSG_RESULT($FREETYPE_VERSION - OK)
+
+ ft_NONPKGCONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags`
+ ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs`
+ fi
fi
fi
fi
-fi
+ ft_CFLAGS="$FREETYPE_CFLAGS $FONTCONFIG_CFLAGS"
+ ft_LIBS="$FREETYPE_LIBS $FONTCONFIG_LIBS"
+])
have_ft_load_sfnt_table=no
-if test "x$use_freetype" = "xyes"; then
- AC_SUBST(FREETYPE_CFLAGS)
- AC_SUBST(FREETYPE_LIBS)
+if test "x$use_ft" = "xyes"; then
+ FREETYPE_CONFIG_CFLAGS=$cairo_cv_ft_config_CFLAGS
+ FREETYPE_CONFIG_LIBS=$cairo_cv_ft_config_LIBS
AC_SUBST(FREETYPE_CONFIG_CFLAGS)
AC_SUBST(FREETYPE_CONFIG_LIBS)
- AC_SUBST(FREETYPE_REQUIRES)
temp_save_libs="$LIBS"
temp_save_cflags="$CFLAGS"
- LIBS="$LIBS $FREETYPE_LIBS"
- CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
+ LIBS="$LIBS $ft_LIBS"
+ CFLAGS="$CFLAGS $ft_CFLAGS"
AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
- [#include<ft2build.h>
+ [#include <ft2build.h>
#include FT_FREETYPE_H])
AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
[FT_Bitmap_Size structure includes y_ppem field])
@@ -466,15 +431,6 @@ if test "x$use_freetype" = "xyes"; then
CFLAGS="$temp_save_cflags"
fi
-CAIRO_CFLAGS="$CAIRO_CFLAGS $FREETYPE_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS $FREETYPE_LIBS"
-
-AM_CONDITIONAL(CAIRO_HAS_FT_FONT, test "x$use_freetype" = "xyes")
-if test "x$use_freetype" = "xyes"; then
- FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
-fi
-AC_SUBST(FT_FONT_FEATURE)
-
dnl ===========================================================================
AC_CHECK_HEADERS([pthread.h], have_pthread=yes, have_pthread=no)
@@ -482,42 +438,30 @@ AM_CONDITIONAL(HAVE_PTHREAD, test "x$have_pthread" = "xyes")
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(ps, PostScript, auto, ps, [], [
+CAIRO_BACKEND_ENABLE(ps, PostScript, ps, PS_SURFACE, auto, [], [
if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_ps="no (PS backend requires FreeType 2.1.4 or newer)"
+ use_ps="no (requires FreeType 2.1.4 or newer)"
+ else
+ # The postscript module requires zlib.
+ AC_CHECK_LIB(z, compress,
+ [AC_CHECK_HEADER(zlib.h, [],
+ [use_ps="no (requires zlib http://www.gzip.org/zlib/)"])],
+ [use_ps="no (requires zlib http://www.gzip.org/zlib/)"])
+ ps_LIBS=-lz
fi
])
-# The postscript module requires zlib.
-AC_CHECK_LIB(z, compress,
- [AC_CHECK_HEADER(zlib.h, [],
- [use_ps="no (requires zlib http://www.gzip.org/zlib/)"])],
- [use_ps="no (requires zlib http://www.gzip.org/zlib/)"])
-
-AM_CONDITIONAL(CAIRO_HAS_PS_SURFACE, test "x$use_ps" = "xyes")
-if test "x$use_ps" = "xyes"; then
- PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
- PS_LIBS=-lz
-fi
-AC_SUBST(PS_SURFACE_FEATURE)
-
-CAIRO_LIBS="$CAIRO_LIBS $PS_LIBS"
-
-AC_SUBST(PS_LIBS)
-
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(pdf, PDF, auto, pdf, [], [
+CAIRO_BACKEND_ENABLE(pdf, PDF, pdf, PDF_SURFACE, auto, [], [
if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_pdf="no (PDF backend requires FreeType 2.1.4 or newer)"
+ use_pdf="no (requires FreeType 2.1.4 or newer)"
fi
+ pdf_LIBS=-lz
])
test_pdf=no
-AM_CONDITIONAL(CAIRO_HAS_PDF_SURFACE, test "x$use_pdf" = "xyes")
if test "x$use_pdf" = "xyes"; then
- PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
- PDF_LIBS=-lz
PKG_CHECK_MODULES(POPPLER, poppler-glib >= 0.4.1 pango gtk+-2.0, [test_pdf=yes], [test_pdf=no])
if test "x$test_pdf" = "xyes"; then
AC_DEFINE([CAIRO_CAN_TEST_PDF_SURFACE], 1, [Define to 1 if the PDF backend can be tested (need poppler and other dependencies for pdf2png)])
@@ -525,7 +469,6 @@ if test "x$use_pdf" = "xyes"; then
AC_MSG_WARN([PDF backend will not be tested since poppler is not available])
fi
fi
-AC_SUBST(PDF_SURFACE_FEATURE)
AM_CONDITIONAL(CAIRO_CAN_TEST_PDF_SURFACE, test "x$test_pdf" = "xyes")
AC_SUBST(POPPLER_CFLAGS)
@@ -533,21 +476,15 @@ AC_SUBST(POPPLER_LIBS)
AM_CONDITIONAL(CAIRO_HAS_MULTI_PAGE_SURFACES, test "x$use_ps" = "xyes" -o "x$use_pdf" = "xyes")
-CAIRO_LIBS="$CAIRO_LIBS $PDF_LIBS"
-
-AC_SUBST(PDF_LIBS)
-
dnl ===========================================================================
-CAIRO_BACKEND_ENABLE(svg, SVG, auto, svg, [], [
+CAIRO_BACKEND_ENABLE(svg, SVG, svg, SVG_SURFACE, auto, [], [
if test x"$have_ft_load_sfnt_table" != "xyes" ; then
- use_svg="no (SVG backend requires FreeType 2.1.4 or newer)"
+ use_svg="no (requires FreeType 2.1.4 or newer)"
fi
])
-AM_CONDITIONAL(CAIRO_HAS_SVG_SURFACE, test "x$use_svg" = "xyes")
if test "x$use_svg" = "xyes"; then
- SVG_SURFACE_FEATURE="#define CAIRO_HAS_SVG_SURFACE 1"
PKG_CHECK_MODULES(LIBRSVG, librsvg-2.0 gdk-2.0, [test_svg=yes], [test_svg=no])
if test "x$test_svg" = "xyes"; then
AC_DEFINE([CAIRO_CAN_TEST_SVG_SURFACE], 1, [Define to 1 if the SVG backend can be tested (need librsvg)])
@@ -555,7 +492,6 @@ if test "x$use_svg" = "xyes"; then
AC_MSG_WARN([SVG backend will not be tested since a librsvg is not available])
fi
fi
-AC_SUBST(SVG_SURFACE_FEATURE)
AM_CONDITIONAL(CAIRO_CAN_TEST_SVG_SURFACE, test "x$test_svg" = "xyes")
AC_SUBST(LIBRSVG_CFLAGS)
@@ -563,20 +499,14 @@ AC_SUBST(LIBRSVG_LIBS)
dnl ===========================================================================
-dnl This check should default to 'yes' once we have code to actually
+dnl This check should default to 'auto' once we have code to actually
dnl check for the atsui font backend.
-CAIRO_BACKEND_ENABLE(atsui, atsui font, no, atsui, [], [
+CAIRO_BACKEND_ENABLE(atsui, ATSUI font, atsui, ATSUI_FONT, no, [
dnl There is no pkgconfig for atsui; lets do a header check
- AC_CHECK_HEADER(Carbon/Carbon.h, [use_atsui=yes], [use_atsui=no])
+ AC_CHECK_HEADER(Carbon/Carbon.h, , [use_atsui="no (Carbon not found)"])
])
-AM_CONDITIONAL(CAIRO_HAS_ATSUI_FONT, test "x$use_atsui" = "xyes")
-if test "x$use_atsui" = "xyes"; then
- ATSUI_FONT_FEATURE="#define CAIRO_HAS_ATSUI_FONT 1"
-fi
-AC_SUBST(ATSUI_FONT_FEATURE)
-
dnl ===========================================================================
dnl Checks for precise integer types
AC_CHECK_HEADERS([stdint.h inttypes.h sys/int_types.h])
@@ -595,15 +525,15 @@ fi
AC_SUBST(WARN_CFLAGS)
CAIRO_CFLAGS="$CAIRO_CFLAGS $WARN_CFLAGS"
-CAIRO_LIBS="$CAIRO_LIBS"
+AC_SUBST(CAIRO_REQUIRES)
AC_SUBST(CAIRO_CFLAGS)
AC_SUBST(CAIRO_LIBS)
dnl ===========================================================================
dnl Check for gtk-doc and docbook
-GTK_DOC_CHECK([1.3])
+GTK_DOC_CHECK([1.6])
dnl ===========================================================================
dnl Check for recent pkg-config which supports Requires.private
@@ -621,7 +551,7 @@ dnl Check for MMX
MMX_CFLAGS="-mmmx -Winline --param inline-unit-growth=10000 --param large-function-growth=10000"
have_mmx_intrinsics=no
-AC_MSG_CHECKING(For MMX/SSE intrinsics in the compiler)
+AC_MSG_CHECKING(for MMX/SSE intrinsics in the compiler)
xserver_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $MMX_CFLAGS"
AC_COMPILE_IFELSE([
@@ -727,12 +657,59 @@ fi
dnl ===========================================================================
-AC_OUTPUT([
+AC_CONFIG_COMMANDS([src/cairo-features.h],
+[
+ featuresfile=src/cairo-features.h
+ outfile=$featuresfile.tmp
+ AC_MSG_NOTICE([creating $featuresfile])
+ cat > $outfile <<_EOF
+/* Generated by configure. Do not edit */
+#ifndef CAIRO_FEATURES_H
+#define CAIRO_FEATURES_H
+
+#ifdef __cplusplus
+# define CAIRO_BEGIN_DECLS extern "C" {
+# define CAIRO_END_DECLS }
+#else
+# define CAIRO_BEGIN_DECLS
+# define CAIRO_END_DECLS
+#endif
+
+#ifndef cairo_public
+# define cairo_public
+#endif
+
+#define CAIRO_VERSION_MAJOR $CAIRO_VERSION_MAJOR
+#define CAIRO_VERSION_MINOR $CAIRO_VERSION_MINOR
+#define CAIRO_VERSION_MICRO $CAIRO_VERSION_MICRO
+
+#define CAIRO_VERSION_STRING "$CAIRO_VERSION_MAJOR.$CAIRO_VERSION_MINOR.$CAIRO_VERSION_MICRO"
+
+_EOF
+ for FEATURE in $CAIRO_FEATURES; do
+ echo "#define CAIRO_HAS_$FEATURE 1" >> $outfile
+ done
+
+ echo '' >> $outfile
+ echo '#endif' >> $outfile
+
+ if cmp -s $outfile $featuresfile; then
+ AC_MSG_NOTICE([$featuresfile is unchanged])
+ rm -f $outfile
+ else
+ mv $outfile $featuresfile
+ fi
+],[
+ CAIRO_FEATURES='$CAIRO_FEATURES'
+ CAIRO_VERSION_MAJOR=$CAIRO_VERSION_MAJOR
+ CAIRO_VERSION_MINOR=$CAIRO_VERSION_MINOR
+ CAIRO_VERSION_MICRO=$CAIRO_VERSION_MICRO
+])
+AC_CONFIG_FILES([
Makefile
pixman/Makefile
pixman/src/Makefile
src/Makefile
-src/cairo-features.h
test/Makefile
doc/Makefile
doc/public/Makefile
@@ -740,26 +717,29 @@ doc/public/version.xml
src/cairo.pc
])
+AC_OUTPUT
+
dnl ===========================================================================
echo ""
echo "cairo will be compiled with the following surface backends:"
-echo " image: yes (always builtin)"
-echo " Xlib: $use_xlib"
-echo " Quartz: $use_quartz"
-echo " XCB: $use_xcb"
-echo " Win32: $use_win32"
-echo " PostScript: $use_ps"
-echo " PDF: $use_pdf"
-echo " SVG: $use_svg"
-echo " glitz: $use_glitz"
-echo " BeOS: $use_beos"
-echo " DirectFB: $use_directfb"
+echo " image: yes (always builtin)"
+echo " Xlib: $use_xlib"
+echo " Xlib Xrender: $use_xlib_xrender"
+echo " Quartz: $use_quartz"
+echo " XCB: $use_xcb"
+echo " Win32: $use_win32"
+echo " PostScript: $use_ps"
+echo " PDF: $use_pdf"
+echo " SVG: $use_svg"
+echo " glitz: $use_glitz"
+echo " BeOS: $use_beos"
+echo " DirectFB: $use_directfb"
echo ""
echo "the following font backends:"
-echo " FreeType: $use_freetype"
-echo " Win32: $use_win32"
-echo " ATSUI: $use_atsui"
+echo " FreeType: $use_ft"
+echo " Win32: $use_win32_font"
+echo " ATSUI: $use_atsui"
echo ""
echo "the following features:"
echo " PNG functions: $use_png"
@@ -772,9 +752,9 @@ echo "using CFLAGS:"
echo $CAIRO_CFLAGS
echo ""
-if test x"$use_freetype" != "xyes" && \
- test x"$use_win32" != "xyes" && \
- test x"$use_atsui" != "xyes" ; then
+if test x"$use_ft" != "xyes" && \
+ test x"$use_win32_font" != "xyes" && \
+ test x"$use_atsui" != "xyes" ; then
AC_MSG_ERROR([Cairo requires at least one font backend.
Please install freetype and fontconfig, then try again:
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 411ad5c..74d8298 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,2 +1,4 @@
SUBDIRS=public
-
+.PHONY: doc
+doc:
+ -$(MAKE) -C public doc
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 9560a9f..43d8c18 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -62,12 +62,10 @@ AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
-ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BEOS_SURFACE_FEATURE = @BEOS_SURFACE_FEATURE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE@
CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE@
@@ -113,11 +111,13 @@ CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_REQUIRES = @CAIRO_REQUIRES@
CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@
CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@
CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@
-CAIRO_VERSION_OTHER = @CAIRO_VERSION_OTHER@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -130,9 +130,6 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
-DIRECTFB_LIBS = @DIRECTFB_LIBS@
-DIRECTFB_SURFACE_FEATURE = @DIRECTFB_SURFACE_FEATURE@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -150,18 +147,12 @@ FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_CONFIG_CFLAGS = @FREETYPE_CONFIG_CFLAGS@
FREETYPE_CONFIG_LIBS = @FREETYPE_CONFIG_LIBS@
FREETYPE_LIBS = @FREETYPE_LIBS@
-FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
-FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_AGL_CFLAGS = @GLITZ_AGL_CFLAGS@
GLITZ_AGL_LIBS = @GLITZ_AGL_LIBS@
-GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_EGL_CFLAGS = @GLITZ_EGL_CFLAGS@
GLITZ_EGL_LIBS = @GLITZ_EGL_LIBS@
GLITZ_GLX_CFLAGS = @GLITZ_GLX_CFLAGS@
GLITZ_GLX_LIBS = @GLITZ_GLX_LIBS@
-GLITZ_LIBS = @GLITZ_LIBS@
-GLITZ_REQUIRES = @GLITZ_REQUIRES@
-GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GLITZ_WGL_CFLAGS = @GLITZ_WGL_CFLAGS@
GLITZ_WGL_LIBS = @GLITZ_WGL_LIBS@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
@@ -197,38 +188,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PDF_LIBS = @PDF_LIBS@
-PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
PKG_CONFIG = @PKG_CONFIG@
-PNG_CFLAGS = @PNG_CFLAGS@
-PNG_FUNCTIONS_FEATURE = @PNG_FUNCTIONS_FEATURE@
-PNG_LIBS = @PNG_LIBS@
-PNG_REQUIRES = @PNG_REQUIRES@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
-PS_LIBS = @PS_LIBS@
-PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
-QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-SVG_SURFACE_FEATURE = @SVG_SURFACE_FEATURE@
USE_MMX_FALSE = @USE_MMX_FALSE@
USE_MMX_TRUE = @USE_MMX_TRUE@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WARN_CFLAGS = @WARN_CFLAGS@
-WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
-WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
-XCB_CFLAGS = @XCB_CFLAGS@
-XCB_LIBS = @XCB_LIBS@
-XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
-XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
-XRENDER_CFLAGS = @XRENDER_CFLAGS@
-XRENDER_LIBS = @XRENDER_LIBS@
-XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
@@ -256,7 +228,11 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+directfb_CFLAGS = @directfb_CFLAGS@
+directfb_LIBS = @directfb_LIBS@
exec_prefix = @exec_prefix@
+glitz_CFLAGS = @glitz_CFLAGS@
+glitz_LIBS = @glitz_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -271,12 +247,18 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+png_CFLAGS = @png_CFLAGS@
+png_LIBS = @png_LIBS@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+xcb_CFLAGS = @xcb_CFLAGS@
+xcb_LIBS = @xcb_LIBS@
+xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@
+xlib_xrender_LIBS = @xlib_xrender_LIBS@
SUBDIRS = public
all: all-recursive
@@ -586,6 +568,9 @@ uninstall-info: uninstall-info-recursive
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-info-am
+.PHONY: doc
+doc:
+ -$(MAKE) -C public doc
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/doc/public/Makefile.am b/doc/public/Makefile.am
index 98d3706..ce815e2 100644
--- a/doc/public/Makefile.am
+++ b/doc/public/Makefile.am
@@ -9,7 +9,7 @@ DOC_MODULE=cairo
DOC_MAIN_SGML_FILE=cairo-docs.xml
# Extra options to supply to gtkdoc-scan
-SCAN_OPTIONS=--deprecated-guards="CAIRO_DISABLE_DEPRECATED"
+SCAN_OPTIONS=--deprecated-guards="CAIRO_DISABLE_DEPRECATED" --ignore-decorators="cairo_public|cairo_private"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=../../src
@@ -19,22 +19,41 @@ HFILE_GLOB=$(top_srcdir)/src/*.h
CFILE_GLOB=$(top_srcdir)/src/*.c $(top_srcdir)/src/*.h
# Headers to ignore
-IGNORE_HFILES= \
- cairo-clip-private.h \
- cairo-features.h \
- cairo-font-subset-private.h \
- cairo-ft-private.h \
- cairo-gstate-private.h \
- cairo-hash-private.h \
- cairo-meta-surface-private.h \
- cairo-path-fixed-private.h \
- cairo-pdf-test.h \
- cairo-private.h \
- cairo-win32-private.h \
- cairo-xlib-private.h \
- cairo-xlib-test.h \
- cairoint.h \
- cairo-wideint.h
+IGNORE_HFILES= \
+ cairo-analysis-surface-private.h \
+ cairo-arc-private.h \
+ cairo-cache-private.h \
+ cairo-clip-private.h \
+ cairo-font-subset-private.h \
+ cairo-ft-private.h \
+ cairo-gstate-private.h \
+ cairo-hash-private.h \
+ cairo-meta-surface-private.h \
+ cairo-output-stream-private.h \
+ cairo-paginated-surface-private.h \
+ cairo-path-data-private.h \
+ cairo-path-fixed-private.h \
+ cairo-private.h \
+ cairo-quartz-private.h \
+ cairo-scaled-font-subsets-private.h \
+ cairo-surface-fallback-private.h \
+ cairo-wideint-private.h \
+ cairo-win32-private.h \
+ cairo-xlib-private.h \
+ cairo-pdf-test.h \
+ cairo-ps-test.h \
+ cairo-scaled-font-test.h \
+ cairo-svg-test.h \
+ cairo-xlib-test.h \
+ cairoint.h \
+ cairo-atsui.h \
+ cairo-beos.h \
+ cairo-directfb.h \
+ cairo-glitz.h \
+ cairo-quartz.h \
+ cairo-xcb.h \
+ cairo-xcb-xrender.h
+
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
diff --git a/doc/public/Makefile.in b/doc/public/Makefile.in
index 15e228a..4b69b3a 100644
--- a/doc/public/Makefile.in
+++ b/doc/public/Makefile.in
@@ -60,12 +60,10 @@ AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
-ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BEOS_SURFACE_FEATURE = @BEOS_SURFACE_FEATURE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE@
CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE@
@@ -111,11 +109,13 @@ CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_REQUIRES = @CAIRO_REQUIRES@
CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@
CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@
CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@
-CAIRO_VERSION_OTHER = @CAIRO_VERSION_OTHER@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -128,9 +128,6 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
-DIRECTFB_LIBS = @DIRECTFB_LIBS@
-DIRECTFB_SURFACE_FEATURE = @DIRECTFB_SURFACE_FEATURE@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -148,18 +145,12 @@ FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_CONFIG_CFLAGS = @FREETYPE_CONFIG_CFLAGS@
FREETYPE_CONFIG_LIBS = @FREETYPE_CONFIG_LIBS@
FREETYPE_LIBS = @FREETYPE_LIBS@
-FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
-FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_AGL_CFLAGS = @GLITZ_AGL_CFLAGS@
GLITZ_AGL_LIBS = @GLITZ_AGL_LIBS@
-GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_EGL_CFLAGS = @GLITZ_EGL_CFLAGS@
GLITZ_EGL_LIBS = @GLITZ_EGL_LIBS@
GLITZ_GLX_CFLAGS = @GLITZ_GLX_CFLAGS@
GLITZ_GLX_LIBS = @GLITZ_GLX_LIBS@
-GLITZ_LIBS = @GLITZ_LIBS@
-GLITZ_REQUIRES = @GLITZ_REQUIRES@
-GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GLITZ_WGL_CFLAGS = @GLITZ_WGL_CFLAGS@
GLITZ_WGL_LIBS = @GLITZ_WGL_LIBS@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
@@ -195,38 +186,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PDF_LIBS = @PDF_LIBS@
-PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
PKG_CONFIG = @PKG_CONFIG@
-PNG_CFLAGS = @PNG_CFLAGS@
-PNG_FUNCTIONS_FEATURE = @PNG_FUNCTIONS_FEATURE@
-PNG_LIBS = @PNG_LIBS@
-PNG_REQUIRES = @PNG_REQUIRES@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
-PS_LIBS = @PS_LIBS@
-PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
-QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-SVG_SURFACE_FEATURE = @SVG_SURFACE_FEATURE@
USE_MMX_FALSE = @USE_MMX_FALSE@
USE_MMX_TRUE = @USE_MMX_TRUE@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WARN_CFLAGS = @WARN_CFLAGS@
-WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
-WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
-XCB_CFLAGS = @XCB_CFLAGS@
-XCB_LIBS = @XCB_LIBS@
-XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
-XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
-XRENDER_CFLAGS = @XRENDER_CFLAGS@
-XRENDER_LIBS = @XRENDER_LIBS@
-XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
@@ -254,7 +226,11 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+directfb_CFLAGS = @directfb_CFLAGS@
+directfb_LIBS = @directfb_LIBS@
exec_prefix = @exec_prefix@
+glitz_CFLAGS = @glitz_CFLAGS@
+glitz_LIBS = @glitz_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -269,12 +245,18 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+png_CFLAGS = @png_CFLAGS@
+png_LIBS = @png_LIBS@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+xcb_CFLAGS = @xcb_CFLAGS@
+xcb_LIBS = @xcb_LIBS@
+xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@
+xlib_xrender_LIBS = @xlib_xrender_LIBS@
AUTOMAKE_OPTIONS = 1.7
# The name of the module.
@@ -284,7 +266,7 @@ DOC_MODULE = cairo
DOC_MAIN_SGML_FILE = cairo-docs.xml
# Extra options to supply to gtkdoc-scan
-SCAN_OPTIONS = --deprecated-guards="CAIRO_DISABLE_DEPRECATED"
+SCAN_OPTIONS = --deprecated-guards="CAIRO_DISABLE_DEPRECATED" --ignore-decorators="cairo_public|cairo_private"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR = ../../src
@@ -295,21 +277,39 @@ CFILE_GLOB = $(top_srcdir)/src/*.c $(top_srcdir)/src/*.h
# Headers to ignore
IGNORE_HFILES = \
- cairo-clip-private.h \
- cairo-features.h \
- cairo-font-subset-private.h \
- cairo-ft-private.h \
- cairo-gstate-private.h \
- cairo-hash-private.h \
- cairo-meta-surface-private.h \
- cairo-path-fixed-private.h \
- cairo-pdf-test.h \
- cairo-private.h \
- cairo-win32-private.h \
- cairo-xlib-private.h \
- cairo-xlib-test.h \
- cairoint.h \
- cairo-wideint.h
+ cairo-analysis-surface-private.h \
+ cairo-arc-private.h \
+ cairo-cache-private.h \
+ cairo-clip-private.h \
+ cairo-font-subset-private.h \
+ cairo-ft-private.h \
+ cairo-gstate-private.h \
+ cairo-hash-private.h \
+ cairo-meta-surface-private.h \
+ cairo-output-stream-private.h \
+ cairo-paginated-surface-private.h \
+ cairo-path-data-private.h \
+ cairo-path-fixed-private.h \
+ cairo-private.h \
+ cairo-quartz-private.h \
+ cairo-scaled-font-subsets-private.h \
+ cairo-surface-fallback-private.h \
+ cairo-wideint-private.h \
+ cairo-win32-private.h \
+ cairo-xlib-private.h \
+ cairo-pdf-test.h \
+ cairo-ps-test.h \
+ cairo-scaled-font-test.h \
+ cairo-svg-test.h \
+ cairo-xlib-test.h \
+ cairoint.h \
+ cairo-atsui.h \
+ cairo-beos.h \
+ cairo-directfb.h \
+ cairo-glitz.h \
+ cairo-quartz.h \
+ cairo-xcb.h \
+ cairo-xcb-xrender.h
# CFLAGS and LDFLAGS for compiling scan program. Only needed
@@ -446,7 +446,7 @@ distdir: $(DISTFILES)
dist-hook
check-am: all-am
check: check-am
-all-am: Makefile all-local
+all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
@@ -520,20 +520,19 @@ ps-am:
uninstall-am: uninstall-info-am uninstall-local
-.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool clean-local dist-hook distclean \
- distclean-generic distclean-libtool distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-data-local install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic \
- maintainer-clean-local mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-info-am uninstall-local
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ clean-local dist-hook distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-exec install-exec-am install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic maintainer-clean-local mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-info-am uninstall-local
-@ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp
+@ENABLE_GTK_DOC_TRUE@doc: html-build.stamp
#### scan ####
@@ -580,6 +579,8 @@ uninstall-am: uninstall-info-am uninstall-local
#### html ####
+@ENABLE_GTK_DOC_TRUE@dist-hook install-data-local: html-build.stamp
+
@ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
@ENABLE_GTK_DOC_TRUE@ @echo 'gtk-doc: Building HTML'
@ENABLE_GTK_DOC_TRUE@ @-chmod -R u+w $(srcdir)
@@ -590,7 +591,9 @@ uninstall-am: uninstall-info-am uninstall-local
@ENABLE_GTK_DOC_TRUE@ @echo 'gtk-doc: Fixing cross-references'
@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
@ENABLE_GTK_DOC_TRUE@ touch html-build.stamp
-@ENABLE_GTK_DOC_FALSE@all-local:
+@ENABLE_GTK_DOC_FALSE@doc:
+@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make doc"
+@ENABLE_GTK_DOC_FALSE@ @false
##############
diff --git a/doc/public/cairo-sections.txt b/doc/public/cairo-sections.txt
index 575aa67..c18bc05 100644
--- a/doc/public/cairo-sections.txt
+++ b/doc/public/cairo-sections.txt
@@ -12,25 +12,23 @@ cairo_ft_scaled_font_unlock_face
<FILE>cairo-win32-fonts</FILE>
<TITLE>Win32 Fonts</TITLE>
cairo_win32_font_face_create_for_logfontw
+cairo_win32_font_face_create_for_hfont
cairo_win32_scaled_font_select_font
cairo_win32_scaled_font_done_font
cairo_win32_scaled_font_get_metrics_factor
</SECTION>
<SECTION>
-<FILE>cairo-glitz</FILE>
-<TITLE>Glitz Surfaces</TITLE>
-cairo_glitz_surface_create
-</SECTION>
-
-<SECTION>
<FILE>cairo-image</FILE>
<TITLE>Image Surfaces</TITLE>
cairo_format_t
cairo_image_surface_create
cairo_image_surface_create_for_data
+cairo_image_surface_get_data
+cairo_image_surface_get_format
cairo_image_surface_get_width
cairo_image_surface_get_height
+cairo_image_surface_get_stride
</SECTION>
<SECTION>
@@ -38,7 +36,7 @@ cairo_image_surface_get_height
<TITLE>PDF Surfaces</TITLE>
cairo_pdf_surface_create
cairo_pdf_surface_create_for_stream
-cairo_pdf_surface_set_dpi
+cairo_pdf_surface_set_size
</SECTION>
<SECTION>
@@ -57,40 +55,18 @@ cairo_surface_write_to_png_stream
<TITLE>PostScript Surfaces</TITLE>
cairo_ps_surface_create
cairo_ps_surface_create_for_stream
-cairo_ps_surface_set_dpi
-</SECTION>
-
-<SECTION>
-<FILE>cairo-quartz</FILE>
-<TITLE>Quartz Surfaces</TITLE>
-cairo_quartz_surface_create
+cairo_ps_surface_set_size
+cairo_ps_surface_dsc_begin_setup
+cairo_ps_surface_dsc_begin_page_setup
+cairo_ps_surface_dsc_comment
</SECTION>
<SECTION>
<FILE>cairo-win32</FILE>
<TITLE>Win32 Surfaces</TITLE>
cairo_win32_surface_create
-</SECTION>
-
-<SECTION>
-<FILE>cairo-beos</FILE>
-<TITLE>BeOS Surfaces</TITLE>
-cairo_beos_surface_create
-cairo_beos_surface_create_for_bitmap
-</SECTION>
-
-<SECTION>
-<FILE>cairo-xcb</FILE>
-<TITLE>XCB Surfaces</TITLE>
-cairo_xcb_surface_create
-cairo_xcb_surface_create_for_bitmap
-cairo_xcb_surface_set_size
-</SECTION>
-
-<SECTION>
-<FILE>cairo-xcb-xrender</FILE>
-<TITLE>XCB Render Surfaces</TITLE>
-cairo_xcb_surface_create_with_xrender_format
+cairo_win32_surface_create_with_dib
+cairo_win32_surface_get_dc
</SECTION>
<SECTION>
@@ -99,7 +75,14 @@ cairo_xcb_surface_create_with_xrender_format
cairo_xlib_surface_create
cairo_xlib_surface_create_for_bitmap
cairo_xlib_surface_set_size
+cairo_xlib_surface_get_display
+cairo_xlib_surface_get_screen
cairo_xlib_surface_set_drawable
+cairo_xlib_surface_get_drawable
+cairo_xlib_surface_get_visual
+cairo_xlib_surface_get_width
+cairo_xlib_surface_get_height
+cairo_xlib_surface_get_depth
</SECTION>
<SECTION>
@@ -113,8 +96,8 @@ cairo_xlib_surface_create_with_xrender_format
<TITLE>SVG Surfaces</TITLE>
cairo_svg_surface_create
cairo_svg_surface_create_for_stream
-cairo_svg_surface_set_dpi
cairo_svg_surface_restrict_to_version
+cairo_svg_version_t
cairo_svg_get_versions
cairo_svg_version_to_string
</SECTION>
@@ -129,19 +112,27 @@ cairo_surface_destroy
cairo_surface_finish
cairo_surface_flush
cairo_surface_get_font_options
+cairo_surface_get_content
cairo_surface_set_user_data
cairo_surface_get_user_data
cairo_surface_mark_dirty
cairo_surface_mark_dirty_rectangle
cairo_surface_reference
cairo_surface_set_device_offset
+cairo_surface_get_device_offset
+cairo_surface_set_fallback_resolution
cairo_surface_status
+cairo_surface_type_t
+cairo_surface_get_type
</SECTION>
<SECTION>
<FILE>cairo-version</FILE>
<TITLE>Version Information</TITLE>
CAIRO_VERSION
+CAIRO_VERSION_MAJOR
+CAIRO_VERSION_MINOR
+CAIRO_VERSION_MICRO
CAIRO_VERSION_STRING
CAIRO_VERSION_ENCODE
cairo_version
@@ -170,6 +161,8 @@ cairo_pattern_set_filter
cairo_pattern_get_filter
cairo_pattern_set_matrix
cairo_pattern_get_matrix
+cairo_pattern_type_t
+cairo_pattern_get_type
</SECTION>
<SECTION>
@@ -207,6 +200,8 @@ cairo_font_face_destroy
cairo_font_face_status
cairo_font_face_get_user_data
cairo_font_face_set_user_data
+cairo_font_type_t
+cairo_font_face_get_type
</SECTION>
<SECTION>
@@ -220,7 +215,13 @@ cairo_scaled_font_status
cairo_font_extents_t
cairo_scaled_font_extents
cairo_text_extents_t
+cairo_scaled_font_text_extents
cairo_scaled_font_glyph_extents
+cairo_scaled_font_get_font_face
+cairo_scaled_font_get_font_options
+cairo_scaled_font_get_font_matrix
+cairo_scaled_font_get_ctm
+cairo_scaled_font_get_type
</SECTION>
<SECTION>
@@ -284,6 +285,7 @@ cairo_path_destroy
cairo_append_path
cairo_get_current_point
cairo_new_path
+cairo_new_sub_path
cairo_close_path
cairo_arc
cairo_arc_negative
@@ -315,6 +317,7 @@ cairo_show_glyphs
cairo_get_font_face
cairo_font_extents
cairo_set_font_face
+cairo_set_scaled_font
cairo_text_extents
cairo_glyph_extents
</SECTION>
@@ -326,10 +329,15 @@ cairo_t
cairo_create
cairo_reference
cairo_destroy
+cairo_status
cairo_save
cairo_restore
-cairo_status
cairo_get_target
+cairo_push_group
+cairo_push_group_with_content
+cairo_pop_group
+cairo_pop_group_to_source
+cairo_get_group_target
cairo_set_source_rgb
cairo_set_source_rgba
cairo_set_source
@@ -375,6 +383,9 @@ cairo_in_stroke
cairo_copy_page
cairo_show_page
<SUBSECTION Private>
+cairo_public
+CAIRO_BEGIN_DECLS
+CAIRO_END_DECLS
cairo_current_font_extents
cairo_get_font_extents
cairo_current_operator
@@ -388,7 +399,6 @@ cairo_current_miter_limit
cairo_current_matrix
cairo_current_target_surface
cairo_get_status
-cairo_get_status_string
cairo_concat_matrix
cairo_scale_font
cairo_select_font
@@ -409,6 +419,9 @@ cairo_xlib_surface_create_for_pixmap_with_visual
cairo_xlib_surface_create_for_window_with_visual
cairo_xcb_surface_create_for_pixmap_with_visual
cairo_xcb_surface_create_for_window_with_visual
+cairo_ps_surface_set_dpi
+cairo_pdf_surface_set_dpi
+cairo_svg_surface_set_dpi
cairo_current_path
cairo_current_path_flat
cairo_get_path
@@ -424,8 +437,6 @@ cairo_surface_get_filter
cairo_matrix_create
cairo_matrix_destroy
cairo_matrix_copy
-cairo_matrix_set_identity
-cairo_matrix_set_affine
cairo_matrix_get_affine
cairo_set_target_surface
cairo_set_target_glitz
@@ -437,4 +448,6 @@ cairo_set_target_quartz
cairo_set_target_win32
cairo_set_target_xcb
cairo_set_target_drawable
+cairo_get_status_string
+cairo_status_string
</SECTION>
diff --git a/doc/public/html/Surfaces.html b/doc/public/html/Surfaces.html
index 181954d..fefc744 100644
--- a/doc/public/html/Surfaces.html
+++ b/doc/public/html/Surfaces.html
@@ -38,9 +38,6 @@
<span class="refentrytitle"><a href="cairo-Image-Surfaces.html">Image Surfaces</a></span><span class="refpurpose"> - Rendering to memory buffers</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="cairo-Glitz-Surfaces.html">Glitz Surfaces</a></span><span class="refpurpose"> - OpenGL accelerated rendering using the Glitz library</span>
-</dt>
-<dt>
<span class="refentrytitle"><a href="cairo-PDF-Surfaces.html">PDF Surfaces</a></span><span class="refpurpose"> - Rendering PDF documents</span>
</dt>
<dt>
@@ -53,15 +50,13 @@
<span class="refentrytitle"><a href="cairo-Win32-Surfaces.html">Win32 Surfaces</a></span><span class="refpurpose"> - Microsoft Windows surface support</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="cairo-BeOS-Surfaces.html">BeOS Surfaces</a></span><span class="refpurpose"> - BeOS surface support</span>
-</dt>
-<dt>
<span class="refentrytitle"><a href="cairo-SVG-Surfaces.html">SVG Surfaces</a></span><span class="refpurpose"> - Rendering SVG documents</span>
</dt>
<dt>
<span class="refentrytitle"><a href="cairo-XLib-Surfaces.html">XLib Surfaces</a></span><span class="refpurpose"> - X Window System rendering using XLib</span>
</dt>
</dl></div>
+<font color="red">&lt;xi:include&gt;&lt;/xi:include&gt;</font><font color="red">&lt;xi:include&gt;&lt;/xi:include&gt;</font>
</div>
</body>
</html>
diff --git a/doc/public/html/bindings-errors.html b/doc/public/html/bindings-errors.html
index 4537981..1df4983 100644
--- a/doc/public/html/bindings-errors.html
+++ b/doc/public/html/bindings-errors.html
@@ -39,7 +39,7 @@
When a method on an object fails, the object is put into
an error state. Subsequent operations on the object do
nothing. The status of the object can be queried with
- a function like <code class="function">status()</code>.
+ a function like <a href="cairo-cairo-t.html#cairo-status"><code class="function">status()</code></a>.
</p></li>
<li>
<p>
diff --git a/doc/public/html/bindings-fonts.html b/doc/public/html/bindings-fonts.html
index b62fddc..d768a39 100644
--- a/doc/public/html/bindings-fonts.html
+++ b/doc/public/html/bindings-fonts.html
@@ -48,8 +48,8 @@ cairo_scaled_font_t
types.
</p>
<p>
- The <code class="function">cairo_font_face_set_user_data()</code>,
- and <code class="function">cairo_font_face_get_user_data()</code>
+ The <a href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data"><code class="function">cairo_font_face_set_user_data()</code></a>,
+ and <a href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data"><code class="function">cairo_font_face_get_user_data()</code></a>
methods are provided for use in language bindings, and should
not be directly exposed to applications.
</p>
diff --git a/doc/public/html/bindings-memory.html b/doc/public/html/bindings-memory.html
index e81baad..89cbc0f 100644
--- a/doc/public/html/bindings-memory.html
+++ b/doc/public/html/bindings-memory.html
@@ -66,7 +66,7 @@
uniquifying via a <em class="firstterm">pin table</em> (a hash
table that goes from cairo object to language object).
For <span class="type">cairo_surface_t</span> you can use also
- <code class="function">cairo_surface_set_user_data()</code>
+ <a href="cairo-cairo-surface-t.html#cairo-surface-set-user-data"><code class="function">cairo_surface_set_user_data()</code></a>
instead of a separate pin table.
</p></li>
<li>
diff --git a/doc/public/html/bindings-overloading.html b/doc/public/html/bindings-overloading.html
index 0407b88..c6980ef 100644
--- a/doc/public/html/bindings-overloading.html
+++ b/doc/public/html/bindings-overloading.html
@@ -41,7 +41,7 @@
overloading. What may seem like an obvious overload now may
turn out to be strange with future additions to cairo.
It might seem logical to make
- <code class="function">cairo_set_source_rgb()</code>
+ <a href="cairo-cairo-t.html#cairo-set-source-rgb"><code class="function">cairo_set_source_rgb()</code></a>
an overload of <code class="function">cairo_set_source()</code>, but future plans to add
<code class="function">cairo_set_source_rgb_premultiplied()</code>,
which will also take three doubles make this a bad idea. For
@@ -98,9 +98,9 @@ cairo_image_surface_create_from_png_stream (cairo_read_func_t read_func,
<p>
Note that there are cases where all constructors for a type
aren't overloaded together. For example
- <code class="function">cairo_image_surface_create_from_png()</code>
+ <a href="cairo-PNG-Support.html#cairo-image-surface-create-from-png"><code class="function">cairo_image_surface_create_from_png()</code></a>
should <span class="emphasis"><em>not</em></span> be overloaded together with
- <code class="function">cairo_image_surface_create()</code>.
+ <a href="cairo-Image-Surfaces.html#cairo-image-surface-create"><code class="function">cairo_image_surface_create()</code></a>.
In such cases, the remaining constructors will typically need to
be bound as static methods. In Java, for example, we might have:
</p>
diff --git a/doc/public/html/bindings-path.html b/doc/public/html/bindings-path.html
index 63a4a9f..3a4c49e 100644
--- a/doc/public/html/bindings-path.html
+++ b/doc/public/html/bindings-path.html
@@ -112,10 +112,10 @@ for element in cr.copy_path():
<span class="type">cairo_path_t</span> objects. In the future, these
guidelines may be extended to present an API for creating a
<span class="type">cairo_path_t</span> from scratch for use with
- <code class="function">cairo_append_path()</code>
+ <a href="cairo-Paths.html#cairo-append-path"><code class="function">cairo_append_path()</code></a>
but the current expectation is that <code class="function">cairo_append_path()</code> will
mostly be used with paths from
- <code class="function">cairo_copy_path()</code>.
+ <a href="cairo-Paths.html#cairo-append-path"><code class="function">cairo_copy_path()</code></a>.
</p>
</div>
</body>
diff --git a/doc/public/html/bindings-patterns.html b/doc/public/html/bindings-patterns.html
index d0726bd..771b75f 100644
--- a/doc/public/html/bindings-patterns.html
+++ b/doc/public/html/bindings-patterns.html
@@ -41,19 +41,19 @@
</p>
<pre class="programlisting">
cairo_pattern_t
- <code class="function">cairo_pattern_set_matrix()</code>
- <code class="function">cairo_pattern_get_matrix()</code>
+ <a href="cairo-Patterns.html#cairo-pattern-set-matrix"><code class="function">cairo_pattern_set_matrix()</code></a>
+ <a href="cairo-Patterns.html#cairo-pattern-get-matrix"><code class="function">cairo_pattern_get_matrix()</code></a>
cairo_solid_pattern_t
- cairo_surface_pattern_t (<code class="function">cairo_pattern_create_for_surface()</code>)
- <code class="function">cairo_pattern_set_extend()</code>
- <code class="function">cairo_pattern_get_extend()</code>
- <code class="function">cairo_pattern_set_filter()</code>
- <code class="function">cairo_pattern_get_filter()</code>
+ cairo_surface_pattern_t (<a href="cairo-Patterns.html#cairo-pattern-create-for-surface"><code class="function">cairo_pattern_create_for_surface()</code></a>)
+ <a href="cairo-Patterns.html#cairo-pattern-set-extend"><code class="function">cairo_pattern_set_extend()</code></a>
+ <a href="cairo-Patterns.html#cairo-pattern-get-extend"><code class="function">cairo_pattern_get_extend()</code></a>
+ <a href="cairo-Patterns.html#cairo-pattern-set-filter"><code class="function">cairo_pattern_set_filter()</code></a>
+ <a href="cairo-Patterns.html#cairo-pattern-get-filter"><code class="function">cairo_pattern_get_filter()</code></a>
cairo_gradient_t
- <code class="function">cairo_pattern_add_color_stop_rgb()</code>
- <code class="function">cairo_pattern_add_color_stop_rgba()</code>
- cairo_linear_gradient_t (<code class="function">cairo_pattern_create_linear()</code>)
- cairo_radial_gradient_t (<code class="function">cairo_pattern_create_radial()</code>)
+ <a href="cairo-Patterns.html#cairo-pattern-add-color-stop-rgb"><code class="function">cairo_pattern_add_color_stop_rgb()</code></a>
+ <a href="cairo-Patterns.html#cairo-pattern-add-color-stop-rgba"><code class="function">cairo_pattern_add_color_stop_rgba()</code></a>
+ cairo_linear_gradient_t (<a href="cairo-Patterns.html#cairo-pattern-create-linear"><code class="function">cairo_pattern_create_linear()</code></a>)
+ cairo_radial_gradient_t (<a href="cairo-Patterns.html#cairo-pattern-create-radial"><code class="function">cairo_pattern_create_radial()</code></a>)
</pre>
<p>
</p>
diff --git a/doc/public/html/bindings-surfaces.html b/doc/public/html/bindings-surfaces.html
index be36881..c87536c 100644
--- a/doc/public/html/bindings-surfaces.html
+++ b/doc/public/html/bindings-surfaces.html
@@ -64,15 +64,15 @@ cairo_surface_t
ways to get references to platform specific surfaces.
</p>
<p>
- The <code class="function">cairo_surface_set_user_data()</code>,
- and <code class="function">cairo_surface_get_user_data()</code>
+ The <a href="cairo-cairo-surface-t.html#cairo-surface-set-user-data"><code class="function">cairo_surface_set_user_data()</code></a>,
+ and <a href="cairo-cairo-surface-t.html#cairo-surface-get-user-data"><code class="function">cairo_surface_get_user_data()</code></a>
methods are provided for use in language bindings, and should
not be directly exposed to applications. One example of the use
of these functions in a language binding is creating a binding for:
</p>
<pre class="programlisting">
cairo_surface_t *
-<code class="function">cairo_image_surface_create_for_data</code> (unsigned char *data,
+<a href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data"><code class="function">cairo_image_surface_create_for_data</code></a> (unsigned char *data,
cairo_format_t format,
int width,
int height,
diff --git a/doc/public/html/cairo-BeOS-Surfaces.html b/doc/public/html/cairo-BeOS-Surfaces.html
deleted file mode 100644
index 12712df..0000000
--- a/doc/public/html/cairo-BeOS-Surfaces.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>BeOS Surfaces</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
-<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library">
-<link rel="up" href="Surfaces.html" title="Surfaces">
-<link rel="prev" href="cairo-Win32-Surfaces.html" title="Win32 Surfaces">
-<link rel="next" href="cairo-SVG-Surfaces.html" title="SVG Surfaces">
-<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="part" href="pt01.html" title="Part&#160;I.&#160;Tutorial">
-<link rel="part" href="pt02.html" title="Part&#160;II.&#160;Reference">
-<link rel="chapter" href="Drawing.html" title="Drawing">
-<link rel="chapter" href="Fonts.html" title="Fonts">
-<link rel="chapter" href="Surfaces.html" title="Surfaces">
-<link rel="chapter" href="Support.html" title="Utilities">
-<link rel="index" href="ix01.html" title="Index">
-<link rel="appendix" href="language-bindings.html" title="Appendix&#160;A.&#160;Creating a language binding for cairo">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="cairo-Win32-Surfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="Surfaces.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">Cairo: A Vector Graphics Library</th>
-<td><a accesskey="n" href="cairo-SVG-Surfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts"><nobr><a href="#top_of_page" class="shortcut">Top</a>
- &#160;|&#160;
- <a href="#desc" class="shortcut">Description</a></nobr></td></tr>
-</table>
-<div class="refentry" lang="en">
-<a name="cairo-BeOS-Surfaces"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="top_of_page"></a>BeOS Surfaces</span></h2>
-<p>BeOS Surfaces &#8212; BeOS surface support</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-
-
-</pre>
-</div>
-<div class="refsect1" lang="en">
-<a name="desc"></a><h2>Description</h2>
-<p>
-
-</p>
-</div>
-<div class="refsect1" lang="en">
-<a name="details"></a><h2>Details</h2>
-</div>
-</div>
-</body>
-</html>
diff --git a/doc/public/html/cairo-Error-handling.html b/doc/public/html/cairo-Error-handling.html
index fe52be7..8e866ca 100644
--- a/doc/public/html/cairo-Error-handling.html
+++ b/doc/public/html/cairo-Error-handling.html
@@ -48,6 +48,8 @@
enum <a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a>;
+const char* <a href="cairo-Error-handling.html#cairo-status-to-string">cairo_status_to_string</a> (<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> status);
+void <a href="cairo-Error-handling.html#cairo-debug-reset-static-data">cairo_debug_reset_static_data</a> (void);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -59,9 +61,9 @@ enum <a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2535189"></a><h3>
+<a name="id2586964"></a><h3>
<a name="cairo-status-t"></a>enum cairo_status_t</h3>
-<a class="indexterm" name="id2535048"></a><pre class="programlisting">typedef enum _cairo_status {
+<a class="indexterm" name="id2586976"></a><pre class="programlisting">typedef enum _cairo_status {
CAIRO_STATUS_SUCCESS = 0,
CAIRO_STATUS_NO_MEMORY,
CAIRO_STATUS_INVALID_RESTORE,
@@ -89,7 +91,7 @@ enum <a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a
<a href="cairo-Error-handling.html#cairo-status-t"><span class="type">cairo_status_t</span></a> is used to indicate errors that can occur when
using Cairo. In some cases it is returned directly by functions.
but when using <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>, the last error, if any, is stored in
-the context and can be retrieved with <code class="function">cairo_status()</code>.</p>
+the context and can be retrieved with <a href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a>.</p>
<p>
</p>
@@ -219,12 +221,24 @@ the context and can be retrieved with <code class="function">cairo_status()</cod
<tr>
<td>
<span class="term"><a name="CAIRO-STATUS-INVALID-DSC-COMMENT:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_DSC_COMMENT</code></span></td>
-<td> invalid value for a DSC comment
+<td> invalid value for a DSC comment (Since 1.2)
</td>
</tr>
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2590655"></a><h3>
+<a name="cairo-status-to-string"></a>cairo_status_to_string ()</h3>
+<a class="indexterm" name="id2590666"></a><pre class="programlisting">const char* cairo_status_to_string (<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> status);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588346"></a><h3>
+<a name="cairo-debug-reset-static-data"></a>cairo_debug_reset_static_data ()</h3>
+<a class="indexterm" name="id2588360"></a><pre class="programlisting">void cairo_debug_reset_static_data (void);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Font-Options.html b/doc/public/html/cairo-Font-Options.html
index a311c21..a1be9ee 100644
--- a/doc/public/html/cairo-Font-Options.html
+++ b/doc/public/html/cairo-Font-Options.html
@@ -48,9 +48,40 @@
typedef <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>;
+<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>* <a href="cairo-Font-Options.html#cairo-font-options-create">cairo_font_options_create</a>
+ (void);
+<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>* <a href="cairo-Font-Options.html#cairo-font-options-copy">cairo_font_options_copy</a>
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *original);
+void <a href="cairo-Font-Options.html#cairo-font-options-destroy">cairo_font_options_destroy</a> (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-Font-Options.html#cairo-font-options-status">cairo_font_options_status</a> (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
+void <a href="cairo-Font-Options.html#cairo-font-options-merge">cairo_font_options_merge</a> (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *other);
+unsigned long <a href="cairo-Font-Options.html#cairo-font-options-hash">cairo_font_options_hash</a> (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
+<a href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> <a href="cairo-Font-Options.html#cairo-font-options-equal">cairo_font_options_equal</a> (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *other);
+void <a href="cairo-Font-Options.html#cairo-font-options-set-antialias">cairo_font_options_set_antialias</a>
+ (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ <a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> antialias);
+<a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> <a href="cairo-Font-Options.html#cairo-font-options-get-antialias">cairo_font_options_get_antialias</a>
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
enum <a href="cairo-Font-Options.html#cairo-subpixel-order-t">cairo_subpixel_order_t</a>;
+void <a href="cairo-Font-Options.html#cairo-font-options-set-subpixel-order">cairo_font_options_set_subpixel_order</a>
+ (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ <a href="cairo-Font-Options.html#cairo-subpixel-order-t">cairo_subpixel_order_t</a> subpixel_order);
+<a href="cairo-Font-Options.html#cairo-subpixel-order-t">cairo_subpixel_order_t</a> <a href="cairo-Font-Options.html#cairo-font-options-get-subpixel-order">cairo_font_options_get_subpixel_order</a>
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
enum <a href="cairo-Font-Options.html#cairo-hint-style-t">cairo_hint_style_t</a>;
+void <a href="cairo-Font-Options.html#cairo-font-options-set-hint-style">cairo_font_options_set_hint_style</a>
+ (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ <a href="cairo-Font-Options.html#cairo-hint-style-t">cairo_hint_style_t</a> hint_style);
+<a href="cairo-Font-Options.html#cairo-hint-style-t">cairo_hint_style_t</a> <a href="cairo-Font-Options.html#cairo-font-options-get-hint-style">cairo_font_options_get_hint_style</a>
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
enum <a href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_metrics_t</a>;
+void <a href="cairo-Font-Options.html#cairo-font-options-set-hint-metrics">cairo_font_options_set_hint_metrics</a>
+ (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ <a href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_metrics_t</a> hint_metrics);
+<a href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_metrics_t</a> <a href="cairo-Font-Options.html#cairo-font-options-get-hint-metrics">cairo_font_options_get_hint_metrics</a>
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -62,9 +93,9 @@ enum <a href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_me
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2559524"></a><h3>
+<a name="id2580467"></a><h3>
<a name="cairo-font-options-t"></a>cairo_font_options_t</h3>
-<a class="indexterm" name="id2559536"></a><pre class="programlisting">typedef struct _cairo_font_options cairo_font_options_t;
+<a class="indexterm" name="id2580478"></a><pre class="programlisting">typedef struct _cairo_font_options cairo_font_options_t;
</pre>
<p>
@@ -72,9 +103,70 @@ enum <a href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_me
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2559551"></a><h3>
+<a name="id2580494"></a><h3>
+<a name="cairo-font-options-create"></a>cairo_font_options_create ()</h3>
+<a class="indexterm" name="id2580505"></a><pre class="programlisting"><a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>* cairo_font_options_create
+ (void);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580523"></a><h3>
+<a name="cairo-font-options-copy"></a>cairo_font_options_copy ()</h3>
+<a class="indexterm" name="id2580534"></a><pre class="programlisting"><a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>* cairo_font_options_copy
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *original);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580558"></a><h3>
+<a name="cairo-font-options-destroy"></a>cairo_font_options_destroy ()</h3>
+<a class="indexterm" name="id2580570"></a><pre class="programlisting">void cairo_font_options_destroy (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580593"></a><h3>
+<a name="cairo-font-options-status"></a>cairo_font_options_status ()</h3>
+<a class="indexterm" name="id2580605"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_font_options_status (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580629"></a><h3>
+<a name="cairo-font-options-merge"></a>cairo_font_options_merge ()</h3>
+<a class="indexterm" name="id2580640"></a><pre class="programlisting">void cairo_font_options_merge (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *other);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580670"></a><h3>
+<a name="cairo-font-options-hash"></a>cairo_font_options_hash ()</h3>
+<a class="indexterm" name="id2580681"></a><pre class="programlisting">unsigned long cairo_font_options_hash (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577906"></a><h3>
+<a name="cairo-font-options-equal"></a>cairo_font_options_equal ()</h3>
+<a class="indexterm" name="id2577917"></a><pre class="programlisting"><a href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_font_options_equal (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *other);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577947"></a><h3>
+<a name="cairo-font-options-set-antialias"></a>cairo_font_options_set_antialias ()</h3>
+<a class="indexterm" name="id2577961"></a><pre class="programlisting">void cairo_font_options_set_antialias
+ (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ <a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> antialias);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577993"></a><h3>
+<a name="cairo-font-options-get-antialias"></a>cairo_font_options_get_antialias ()</h3>
+<a class="indexterm" name="id2578006"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> cairo_font_options_get_antialias
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2578031"></a><h3>
<a name="cairo-subpixel-order-t"></a>enum cairo_subpixel_order_t</h3>
-<a class="indexterm" name="id2559563"></a><pre class="programlisting">typedef enum _cairo_subpixel_order {
+<a class="indexterm" name="id2578043"></a><pre class="programlisting">typedef enum _cairo_subpixel_order {
CAIRO_SUBPIXEL_ORDER_DEFAULT,
CAIRO_SUBPIXEL_ORDER_RGB,
CAIRO_SUBPIXEL_ORDER_BGR,
@@ -132,9 +224,24 @@ antialiasing mode of <a href="cairo-cairo-t.html#CAIRO-ANTIALIAS-SUBPIXEL:CAPS">
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2542979"></a><h3>
+<a name="id2582742"></a><h3>
+<a name="cairo-font-options-set-subpixel-order"></a>cairo_font_options_set_subpixel_order ()</h3>
+<a class="indexterm" name="id2582754"></a><pre class="programlisting">void cairo_font_options_set_subpixel_order
+ (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ <a href="cairo-Font-Options.html#cairo-subpixel-order-t">cairo_subpixel_order_t</a> subpixel_order);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2582783"></a><h3>
+<a name="cairo-font-options-get-subpixel-order"></a>cairo_font_options_get_subpixel_order ()</h3>
+<a class="indexterm" name="id2582796"></a><pre class="programlisting"><a href="cairo-Font-Options.html#cairo-subpixel-order-t">cairo_subpixel_order_t</a> cairo_font_options_get_subpixel_order
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2582819"></a><h3>
<a name="cairo-hint-style-t"></a>enum cairo_hint_style_t</h3>
-<a class="indexterm" name="id2542992"></a><pre class="programlisting">typedef enum _cairo_hint_style {
+<a class="indexterm" name="id2582830"></a><pre class="programlisting">typedef enum _cairo_hint_style {
CAIRO_HINT_STYLE_DEFAULT,
CAIRO_HINT_STYLE_NONE,
CAIRO_HINT_STYLE_SLIGHT,
@@ -195,9 +302,24 @@ styles are supported by all font backends.</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2543134"></a><h3>
+<a name="id2582972"></a><h3>
+<a name="cairo-font-options-set-hint-style"></a>cairo_font_options_set_hint_style ()</h3>
+<a class="indexterm" name="id2582985"></a><pre class="programlisting">void cairo_font_options_set_hint_style
+ (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ <a href="cairo-Font-Options.html#cairo-hint-style-t">cairo_hint_style_t</a> hint_style);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2583016"></a><h3>
+<a name="cairo-font-options-get-hint-style"></a>cairo_font_options_get_hint_style ()</h3>
+<a class="indexterm" name="id2583030"></a><pre class="programlisting"><a href="cairo-Font-Options.html#cairo-hint-style-t">cairo_hint_style_t</a> cairo_font_options_get_hint_style
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2583055"></a><h3>
<a name="cairo-hint-metrics-t"></a>enum cairo_hint_metrics_t</h3>
-<a class="indexterm" name="id2545341"></a><pre class="programlisting">typedef enum _cairo_hint_metrics {
+<a class="indexterm" name="id2583066"></a><pre class="programlisting">typedef enum _cairo_hint_metrics {
CAIRO_HINT_METRICS_DEFAULT,
CAIRO_HINT_METRICS_OFF,
CAIRO_HINT_METRICS_ON
@@ -237,6 +359,21 @@ will be laid out differently at different zoom factors.</p>
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2583162"></a><h3>
+<a name="cairo-font-options-set-hint-metrics"></a>cairo_font_options_set_hint_metrics ()</h3>
+<a class="indexterm" name="id2583175"></a><pre class="programlisting">void cairo_font_options_set_hint_metrics
+ (<a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ <a href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_metrics_t</a> hint_metrics);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2583206"></a><h3>
+<a name="cairo-font-options-get-hint-metrics"></a>cairo_font_options_get_hint_metrics ()</h3>
+<a class="indexterm" name="id2583220"></a><pre class="programlisting"><a href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_metrics_t</a> cairo_font_options_get_hint_metrics
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-FreeType-Fonts.html b/doc/public/html/cairo-FreeType-Fonts.html
index 93383f5..19683b9 100644
--- a/doc/public/html/cairo-FreeType-Fonts.html
+++ b/doc/public/html/cairo-FreeType-Fonts.html
@@ -47,6 +47,17 @@
+<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face">cairo_ft_font_face_create_for_ft_face</a>
+ (FT_Face face,
+ int load_flags);
+<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern">cairo_ft_font_face_create_for_pattern</a>
+ (FcPattern *pattern);
+void <a href="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute">cairo_ft_font_options_substitute</a>
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ FcPattern *pattern);
+FT_Face <a href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face">cairo_ft_scaled_font_lock_face</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
+void <a href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face">cairo_ft_scaled_font_unlock_face</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -57,6 +68,41 @@
</div>
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
+<div class="refsect2" lang="en">
+<a name="id2538012"></a><h3>
+<a name="cairo-ft-font-face-create-for-ft-face"></a>cairo_ft_font_face_create_for_ft_face ()</h3>
+<a class="indexterm" name="id2538026"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_ft_font_face_create_for_ft_face
+ (FT_Face face,
+ int load_flags);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2538058"></a><h3>
+<a name="cairo-ft-font-face-create-for-pattern"></a>cairo_ft_font_face_create_for_pattern ()</h3>
+<a class="indexterm" name="id2538071"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_ft_font_face_create_for_pattern
+ (FcPattern *pattern);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2538097"></a><h3>
+<a name="cairo-ft-font-options-substitute"></a>cairo_ft_font_options_substitute ()</h3>
+<a class="indexterm" name="id2538109"></a><pre class="programlisting">void cairo_ft_font_options_substitute
+ (const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options,
+ FcPattern *pattern);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581663"></a><h3>
+<a name="cairo-ft-scaled-font-lock-face"></a>cairo_ft_scaled_font_lock_face ()</h3>
+<a class="indexterm" name="id2581675"></a><pre class="programlisting">FT_Face cairo_ft_scaled_font_lock_face (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581700"></a><h3>
+<a name="cairo-ft-scaled-font-unlock-face"></a>cairo_ft_scaled_font_unlock_face ()</h3>
+<a class="indexterm" name="id2581713"></a><pre class="programlisting">void cairo_ft_scaled_font_unlock_face
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Glitz-Surfaces.html b/doc/public/html/cairo-Glitz-Surfaces.html
deleted file mode 100644
index 234a75f..0000000
--- a/doc/public/html/cairo-Glitz-Surfaces.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Glitz Surfaces</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
-<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library">
-<link rel="up" href="Surfaces.html" title="Surfaces">
-<link rel="prev" href="cairo-Image-Surfaces.html" title="Image Surfaces">
-<link rel="next" href="cairo-PDF-Surfaces.html" title="PDF Surfaces">
-<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="part" href="pt01.html" title="Part&#160;I.&#160;Tutorial">
-<link rel="part" href="pt02.html" title="Part&#160;II.&#160;Reference">
-<link rel="chapter" href="Drawing.html" title="Drawing">
-<link rel="chapter" href="Fonts.html" title="Fonts">
-<link rel="chapter" href="Surfaces.html" title="Surfaces">
-<link rel="chapter" href="Support.html" title="Utilities">
-<link rel="index" href="ix01.html" title="Index">
-<link rel="appendix" href="language-bindings.html" title="Appendix&#160;A.&#160;Creating a language binding for cairo">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="cairo-Image-Surfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="Surfaces.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">Cairo: A Vector Graphics Library</th>
-<td><a accesskey="n" href="cairo-PDF-Surfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts"><nobr><a href="#top_of_page" class="shortcut">Top</a>
- &#160;|&#160;
- <a href="#desc" class="shortcut">Description</a></nobr></td></tr>
-</table>
-<div class="refentry" lang="en">
-<a name="cairo-Glitz-Surfaces"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="top_of_page"></a>Glitz Surfaces</span></h2>
-<p>Glitz Surfaces &#8212; OpenGL accelerated rendering using the Glitz library</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-
-
-</pre>
-</div>
-<div class="refsect1" lang="en">
-<a name="desc"></a><h2>Description</h2>
-<p>
-
-</p>
-</div>
-<div class="refsect1" lang="en">
-<a name="details"></a><h2>Details</h2>
-</div>
-</div>
-</body>
-</html>
diff --git a/doc/public/html/cairo-Image-Surfaces.html b/doc/public/html/cairo-Image-Surfaces.html
index c5104e5..a04b06a 100644
--- a/doc/public/html/cairo-Image-Surfaces.html
+++ b/doc/public/html/cairo-Image-Surfaces.html
@@ -7,7 +7,7 @@
<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library">
<link rel="up" href="Surfaces.html" title="Surfaces">
<link rel="prev" href="cairo-cairo-surface-t.html" title="cairo_surface_t">
-<link rel="next" href="cairo-Glitz-Surfaces.html" title="Glitz Surfaces">
+<link rel="next" href="cairo-PDF-Surfaces.html" title="PDF Surfaces">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="part" href="pt01.html" title="Part&#160;I.&#160;Tutorial">
@@ -26,7 +26,7 @@
<td><a accesskey="u" href="Surfaces.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Cairo: A Vector Graphics Library</th>
-<td><a accesskey="n" href="cairo-Glitz-Surfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="cairo-PDF-Surfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#top_of_page" class="shortcut">Top</a>
&#160;|&#160;
@@ -48,6 +48,21 @@
enum <a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a>;
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-Image-Surfaces.html#cairo-image-surface-create">cairo_image_surface_create</a> (<a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format,
+ int width,
+ int height);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data">cairo_image_surface_create_for_data</a>
+ (unsigned char *data,
+ <a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format,
+ int width,
+ int height,
+ int stride);
+unsigned char* <a href="cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+<a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> <a href="cairo-Image-Surfaces.html#cairo-image-surface-get-format">cairo_image_surface_get_format</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+int <a href="cairo-Image-Surfaces.html#cairo-image-surface-get-width">cairo_image_surface_get_width</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+int <a href="cairo-Image-Surfaces.html#cairo-image-surface-get-height">cairo_image_surface_get_height</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+int <a href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -61,9 +76,9 @@ enum <a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2530937"></a><h3>
+<a name="id2570315"></a><h3>
<a name="cairo-format-t"></a>enum cairo_format_t</h3>
-<a class="indexterm" name="id2530948"></a><pre class="programlisting">typedef enum _cairo_format {
+<a class="indexterm" name="id2570327"></a><pre class="programlisting">typedef enum _cairo_format {
CAIRO_FORMAT_ARGB32,
CAIRO_FORMAT_RGB24,
CAIRO_FORMAT_A8,
@@ -121,12 +136,68 @@ image data.</p>
<span class="term"><a name="CAIRO-FORMAT-RGB16-565:CAPS"></a><code class="literal">CAIRO_FORMAT_RGB16_565</code></span></td>
<td> each pixel is a 16-bit quantity,
with red in the upper 5 bits, then green in the next 6,
- then blue in the lowest 5 bits.
+ then blue in the lowest 5 bits. (Since 1.2)
</td>
</tr>
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2583709"></a><h3>
+<a name="cairo-image-surface-create"></a>cairo_image_surface_create ()</h3>
+<a class="indexterm" name="id2583720"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create (<a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format,
+ int width,
+ int height);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2583759"></a><h3>
+<a name="cairo-image-surface-create-for-data"></a>cairo_image_surface_create_for_data ()</h3>
+<a class="indexterm" name="id2583772"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_for_data
+ (unsigned char *data,
+ <a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format,
+ int width,
+ int height,
+ int stride);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2583825"></a><h3>
+<a name="cairo-image-surface-get-data"></a>cairo_image_surface_get_data ()</h3>
+<a class="indexterm" name="id2583840"></a><pre class="programlisting">unsigned char* cairo_image_surface_get_data (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2583871"></a><h3>
+<a name="cairo-image-surface-get-format"></a>cairo_image_surface_get_format ()</h3>
+<a class="indexterm" name="id2583886"></a><pre class="programlisting"><a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> cairo_image_surface_get_format
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2570721"></a><h3>
+<a name="cairo-image-surface-get-width"></a>cairo_image_surface_get_width ()</h3>
+<a class="indexterm" name="id2570734"></a><pre class="programlisting">int cairo_image_surface_get_width (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2570759"></a><h3>
+<a name="cairo-image-surface-get-height"></a>cairo_image_surface_get_height ()</h3>
+<a class="indexterm" name="id2570772"></a><pre class="programlisting">int cairo_image_surface_get_height (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2570796"></a><h3>
+<a name="cairo-image-surface-get-stride"></a>cairo_image_surface_get_stride ()</h3>
+<a class="indexterm" name="id2570812"></a><pre class="programlisting">int cairo_image_surface_get_stride (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-PDF-Surfaces.html b/doc/public/html/cairo-PDF-Surfaces.html
index 3b98f37..bdd44d1 100644
--- a/doc/public/html/cairo-PDF-Surfaces.html
+++ b/doc/public/html/cairo-PDF-Surfaces.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library">
<link rel="up" href="Surfaces.html" title="Surfaces">
-<link rel="prev" href="cairo-Glitz-Surfaces.html" title="Glitz Surfaces">
+<link rel="prev" href="cairo-Image-Surfaces.html" title="Image Surfaces">
<link rel="next" href="cairo-PNG-Support.html" title="PNG Support">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -22,7 +22,7 @@
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="cairo-Glitz-Surfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="cairo-Image-Surfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="Surfaces.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Cairo: A Vector Graphics Library</th>
@@ -47,7 +47,17 @@
-#define <a href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-dpi">cairo_pdf_surface_set_dpi</a>
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create">cairo_pdf_surface_create</a> (const char *filename,
+ double width_in_points,
+ double height_in_points);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream">cairo_pdf_surface_create_for_stream</a>
+ (<a href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func,
+ void *closure,
+ double width_in_points,
+ double height_in_points);
+void <a href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size">cairo_pdf_surface_set_size</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double width_in_points,
+ double height_in_points);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -59,12 +69,34 @@
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2529371"></a><h3>
-<a name="cairo-pdf-surface-set-dpi"></a>cairo_pdf_surface_set_dpi</h3>
-<a class="indexterm" name="id2568033"></a><pre class="programlisting">#define cairo_pdf_surface_set_dpi cairo_pdf_surface_set_dpi_REPLACED_BY_cairo_surface_set_fallback_resolution
-</pre>
-<p>
-
+<a name="id2583958"></a><h3>
+<a name="cairo-pdf-surface-create"></a>cairo_pdf_surface_create ()</h3>
+<a class="indexterm" name="id2583972"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_pdf_surface_create (const char *filename,
+ double width_in_points,
+ double height_in_points);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2584012"></a><h3>
+<a name="cairo-pdf-surface-create-for-stream"></a>cairo_pdf_surface_create_for_stream ()</h3>
+<a class="indexterm" name="id2584026"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_pdf_surface_create_for_stream
+ (<a href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func,
+ void *closure,
+ double width_in_points,
+ double height_in_points);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2570867"></a><h3>
+<a name="cairo-pdf-surface-set-size"></a>cairo_pdf_surface_set_size ()</h3>
+<a class="indexterm" name="id2570881"></a><pre class="programlisting">void cairo_pdf_surface_set_size (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double width_in_points,
+ double height_in_points);</pre>
+<p>Since 1.2
</p>
</div>
</div>
diff --git a/doc/public/html/cairo-PNG-Support.html b/doc/public/html/cairo-PNG-Support.html
index a99e972..6727359 100644
--- a/doc/public/html/cairo-PNG-Support.html
+++ b/doc/public/html/cairo-PNG-Support.html
@@ -47,12 +47,23 @@
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PNG-Support.html#cairo-image-surface-create-from-png">cairo_image_surface_create_from_png</a>
+ (const char *filename);
<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> (<a href="cairo-PNG-Support.html#cairo-read-func-t">*cairo_read_func_t</a>) (void *closure,
unsigned char *data,
unsigned int length);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream">cairo_image_surface_create_from_png_stream</a>
+ (<a href="cairo-PNG-Support.html#cairo-read-func-t">cairo_read_func_t</a> read_func,
+ void *closure);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-PNG-Support.html#cairo-surface-write-to-png">cairo_surface_write_to_png</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ const char *filename);
<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> (<a href="cairo-PNG-Support.html#cairo-write-func-t">*cairo_write_func_t</a>) (void *closure,
unsigned char *data,
unsigned int length);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-PNG-Support.html#cairo-surface-write-to-png-stream">cairo_surface_write_to_png_stream</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ <a href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func,
+ void *closure);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -64,9 +75,16 @@
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2520855"></a><h3>
+<a name="id2583516"></a><h3>
+<a name="cairo-image-surface-create-from-png"></a>cairo_image_surface_create_from_png ()</h3>
+<a class="indexterm" name="id2583527"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_from_png
+ (const char *filename);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2584414"></a><h3>
<a name="cairo-read-func-t"></a>cairo_read_func_t ()</h3>
-<a class="indexterm" name="id2520866"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> (*cairo_read_func_t) (void *closure,
+<a class="indexterm" name="id2584427"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> (*cairo_read_func_t) (void *closure,
unsigned char *data,
unsigned int length);</pre>
<p>
@@ -112,9 +130,24 @@ CAIRO_STATUS_READ_ERROR otherwise.</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2557243"></a><h3>
+<a name="id2584542"></a><h3>
+<a name="cairo-image-surface-create-from-png-stream"></a>cairo_image_surface_create_from_png_stream ()</h3>
+<a class="indexterm" name="id2584554"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_from_png_stream
+ (<a href="cairo-PNG-Support.html#cairo-read-func-t">cairo_read_func_t</a> read_func,
+ void *closure);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2584586"></a><h3>
+<a name="cairo-surface-write-to-png"></a>cairo_surface_write_to_png ()</h3>
+<a class="indexterm" name="id2584597"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_write_to_png (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ const char *filename);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2584628"></a><h3>
<a name="cairo-write-func-t"></a>cairo_write_func_t ()</h3>
-<a class="indexterm" name="id2557255"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> (*cairo_write_func_t) (void *closure,
+<a class="indexterm" name="id2584641"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> (*cairo_write_func_t) (void *closure,
unsigned char *data,
unsigned int length);</pre>
<p>
@@ -158,6 +191,15 @@ CAIRO_STATUS_WRITE_ERROR otherwise.</p>
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2584755"></a><h3>
+<a name="cairo-surface-write-to-png-stream"></a>cairo_surface_write_to_png_stream ()</h3>
+<a class="indexterm" name="id2584767"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_write_to_png_stream
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ <a href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func,
+ void *closure);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Paths.html b/doc/public/html/cairo-Paths.html
index 38c22f0..9207b53 100644
--- a/doc/public/html/cairo-Paths.html
+++ b/doc/public/html/cairo-Paths.html
@@ -50,6 +50,65 @@
<a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>;
union <a href="cairo-Paths.html#cairo-path-data-t">cairo_path_data_t</a>;
enum <a href="cairo-Paths.html#cairo-path-data-type-t">cairo_path_data_type_t</a>;
+<a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>* <a href="cairo-Paths.html#cairo-copy-path">cairo_copy_path</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+<a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>* <a href="cairo-Paths.html#cairo-copy-path-flat">cairo_copy_path_flat</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-Paths.html#cairo-path-destroy">cairo_path_destroy</a> (<a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path);
+void <a href="cairo-Paths.html#cairo-append-path">cairo_append_path</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path);
+void <a href="cairo-Paths.html#cairo-get-current-point">cairo_get_current_point</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x,
+ double *y);
+void <a href="cairo-Paths.html#cairo-new-path">cairo_new_path</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-Paths.html#cairo-new-sub-path">cairo_new_sub_path</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-Paths.html#cairo-close-path">cairo_close_path</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-Paths.html#cairo-arc">cairo_arc</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double xc,
+ double yc,
+ double radius,
+ double angle1,
+ double angle2);
+void <a href="cairo-Paths.html#cairo-arc-negative">cairo_arc_negative</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double xc,
+ double yc,
+ double radius,
+ double angle1,
+ double angle2);
+void <a href="cairo-Paths.html#cairo-curve-to">cairo_curve_to</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x1,
+ double y1,
+ double x2,
+ double y2,
+ double x3,
+ double y3);
+void <a href="cairo-Paths.html#cairo-line-to">cairo_line_to</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y);
+void <a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y);
+void <a href="cairo-Paths.html#cairo-rectangle">cairo_rectangle</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y,
+ double width,
+ double height);
+void <a href="cairo-Paths.html#cairo-glyph-path">cairo_glyph_path</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs,
+ int num_glyphs);
+void <a href="cairo-Paths.html#cairo-text-path">cairo_text_path</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const char *utf8);
+void <a href="cairo-Paths.html#cairo-rel-curve-to">cairo_rel_curve_to</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double dx1,
+ double dy1,
+ double dx2,
+ double dy2,
+ double dx3,
+ double dy3);
+void <a href="cairo-Paths.html#cairo-rel-line-to">cairo_rel_line_to</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double dx,
+ double dy);
+void <a href="cairo-Paths.html#cairo-rel-move-to">cairo_rel_move_to</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double dx,
+ double dy);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -61,9 +120,9 @@ enum <a href="cairo-Paths.html#cairo-path-data-type-t">cairo_path_data_ty
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2472481"></a><h3>
+<a name="id2560382"></a><h3>
<a name="cairo-path-t"></a>cairo_path_t</h3>
-<a class="indexterm" name="id2472493"></a><pre class="programlisting">typedef struct {
+<a class="indexterm" name="id2560394"></a><pre class="programlisting">typedef struct {
cairo_status_t status;
cairo_path_data_t *data;
int num_data;
@@ -73,7 +132,7 @@ enum <a href="cairo-Paths.html#cairo-path-data-type-t">cairo_path_data_ty
A data structure for holding a path. This data structure serves as
the return value for <code class="function">cairo_copy_path_data()</code> and
<code class="function">cairo_copy_path_data_flat()</code> as well the input value for
-<code class="function">cairo_append_path()</code>.
+<a href="cairo-Paths.html#cairo-append-path"><code class="function">cairo_append_path()</code></a>.
</p>
<p>
See <a href="cairo-Paths.html#cairo-path-data-t"><span class="type">cairo_path_data_t</span></a> for hints on how to iterate over the
@@ -113,9 +172,9 @@ includes both headers and coordinates for each portion.</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2550573"></a><h3>
+<a name="id2560534"></a><h3>
<a name="cairo-path-data-t"></a>union cairo_path_data_t</h3>
-<a class="indexterm" name="id2550585"></a><pre class="programlisting">union cairo_path_data_t {
+<a class="indexterm" name="id2560547"></a><pre class="programlisting">union cairo_path_data_t {
struct {
cairo_path_data_type_t type;
int length;
@@ -154,8 +213,8 @@ follows:
</p>
<p>
The semantics and ordering of the coordinate values are consistent
-with <code class="function">cairo_move_to()</code>, <code class="function">cairo_line_to()</code>, <code class="function">cairo_curve_to()</code>, and
-<code class="function">cairo_close_path()</code>.
+with <a href="cairo-Paths.html#cairo-move-to"><code class="function">cairo_move_to()</code></a>, <a href="cairo-Paths.html#cairo-line-to"><code class="function">cairo_line_to()</code></a>, <a href="cairo-Paths.html#cairo-curve-to"><code class="function">cairo_curve_to()</code></a>, and
+<a href="cairo-Paths.html#cairo-close-path"><code class="function">cairo_close_path()</code></a>.
</p>
<p>
Here is sample code for iterating through a <span class="type">cairo_path_t:</span>
@@ -196,9 +255,9 @@ Here is sample code for iterating through a <span class="type">cairo_path_t:</sp
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2561783"></a><h3>
+<a name="id2566664"></a><h3>
<a name="cairo-path-data-type-t"></a>enum cairo_path_data_type_t</h3>
-<a class="indexterm" name="id2546589"></a><pre class="programlisting">typedef enum _cairo_path_data_type {
+<a class="indexterm" name="id2554979"></a><pre class="programlisting">typedef enum _cairo_path_data_type {
CAIRO_PATH_MOVE_TO,
CAIRO_PATH_LINE_TO,
CAIRO_PATH_CURVE_TO,
@@ -209,6 +268,162 @@ Here is sample code for iterating through a <span class="type">cairo_path_t:</sp
</p>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2530940"></a><h3>
+<a name="cairo-copy-path"></a>cairo_copy_path ()</h3>
+<a class="indexterm" name="id2530952"></a><pre class="programlisting"><a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>* cairo_copy_path (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2530976"></a><h3>
+<a name="cairo-copy-path-flat"></a>cairo_copy_path_flat ()</h3>
+<a class="indexterm" name="id2530987"></a><pre class="programlisting"><a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>* cairo_copy_path_flat (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531011"></a><h3>
+<a name="cairo-path-destroy"></a>cairo_path_destroy ()</h3>
+<a class="indexterm" name="id2531023"></a><pre class="programlisting">void cairo_path_destroy (<a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531047"></a><h3>
+<a name="cairo-append-path"></a>cairo_append_path ()</h3>
+<a class="indexterm" name="id2531059"></a><pre class="programlisting">void cairo_append_path (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531089"></a><h3>
+<a name="cairo-get-current-point"></a>cairo_get_current_point ()</h3>
+<a class="indexterm" name="id2531101"></a><pre class="programlisting">void cairo_get_current_point (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x,
+ double *y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531137"></a><h3>
+<a name="cairo-new-path"></a>cairo_new_path ()</h3>
+<a class="indexterm" name="id2531150"></a><pre class="programlisting">void cairo_new_path (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531174"></a><h3>
+<a name="cairo-new-sub-path"></a>cairo_new_sub_path ()</h3>
+<a class="indexterm" name="id2531189"></a><pre class="programlisting">void cairo_new_sub_path (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531218"></a><h3>
+<a name="cairo-close-path"></a>cairo_close_path ()</h3>
+<a class="indexterm" name="id2531230"></a><pre class="programlisting">void cairo_close_path (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531255"></a><h3>
+<a name="cairo-arc"></a>cairo_arc ()</h3>
+<a class="indexterm" name="id2531267"></a><pre class="programlisting">void cairo_arc (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double xc,
+ double yc,
+ double radius,
+ double angle1,
+ double angle2);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531325"></a><h3>
+<a name="cairo-arc-negative"></a>cairo_arc_negative ()</h3>
+<a class="indexterm" name="id2531337"></a><pre class="programlisting">void cairo_arc_negative (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double xc,
+ double yc,
+ double radius,
+ double angle1,
+ double angle2);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531395"></a><h3>
+<a name="cairo-curve-to"></a>cairo_curve_to ()</h3>
+<a class="indexterm" name="id2531407"></a><pre class="programlisting">void cairo_curve_to (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x1,
+ double y1,
+ double x2,
+ double y2,
+ double x3,
+ double y3);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531472"></a><h3>
+<a name="cairo-line-to"></a>cairo_line_to ()</h3>
+<a class="indexterm" name="id2531484"></a><pre class="programlisting">void cairo_line_to (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531522"></a><h3>
+<a name="cairo-move-to"></a>cairo_move_to ()</h3>
+<a class="indexterm" name="id2531534"></a><pre class="programlisting">void cairo_move_to (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531572"></a><h3>
+<a name="cairo-rectangle"></a>cairo_rectangle ()</h3>
+<a class="indexterm" name="id2531585"></a><pre class="programlisting">void cairo_rectangle (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y,
+ double width,
+ double height);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531636"></a><h3>
+<a name="cairo-glyph-path"></a>cairo_glyph_path ()</h3>
+<a class="indexterm" name="id2531648"></a><pre class="programlisting">void cairo_glyph_path (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs,
+ int num_glyphs);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531687"></a><h3>
+<a name="cairo-text-path"></a>cairo_text_path ()</h3>
+<a class="indexterm" name="id2531699"></a><pre class="programlisting">void cairo_text_path (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const char *utf8);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2531731"></a><h3>
+<a name="cairo-rel-curve-to"></a>cairo_rel_curve_to ()</h3>
+<a class="indexterm" name="id2531743"></a><pre class="programlisting">void cairo_rel_curve_to (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double dx1,
+ double dy1,
+ double dx2,
+ double dy2,
+ double dx3,
+ double dy3);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2576064"></a><h3>
+<a name="cairo-rel-line-to"></a>cairo_rel_line_to ()</h3>
+<a class="indexterm" name="id2576074"></a><pre class="programlisting">void cairo_rel_line_to (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double dx,
+ double dy);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2576108"></a><h3>
+<a name="cairo-rel-move-to"></a>cairo_rel_move_to ()</h3>
+<a class="indexterm" name="id2576119"></a><pre class="programlisting">void cairo_rel_move_to (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double dx,
+ double dy);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Patterns.html b/doc/public/html/cairo-Patterns.html
index 7c1528c..45ba144 100644
--- a/doc/public/html/cairo-Patterns.html
+++ b/doc/public/html/cairo-Patterns.html
@@ -48,8 +48,57 @@
typedef <a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>;
+void <a href="cairo-Patterns.html#cairo-pattern-add-color-stop-rgb">cairo_pattern_add_color_stop_rgb</a>
+ (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ double offset,
+ double red,
+ double green,
+ double blue);
+void <a href="cairo-Patterns.html#cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba</a>
+ (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ double offset,
+ double red,
+ double green,
+ double blue,
+ double alpha);
+<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-Patterns.html#cairo-pattern-create-rgb">cairo_pattern_create_rgb</a> (double red,
+ double green,
+ double blue);
+<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-Patterns.html#cairo-pattern-create-rgba">cairo_pattern_create_rgba</a> (double red,
+ double green,
+ double blue,
+ double alpha);
+<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-Patterns.html#cairo-pattern-create-for-surface">cairo_pattern_create_for_surface</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-Patterns.html#cairo-pattern-create-linear">cairo_pattern_create_linear</a>
+ (double x0,
+ double y0,
+ double x1,
+ double y1);
+<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-Patterns.html#cairo-pattern-create-radial">cairo_pattern_create_radial</a>
+ (double cx0,
+ double cy0,
+ double radius0,
+ double cx1,
+ double cy1,
+ double radius1);
+void <a href="cairo-Patterns.html#cairo-pattern-destroy">cairo_pattern_destroy</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
+<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-Patterns.html#cairo-pattern-reference">cairo_pattern_reference</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-Patterns.html#cairo-pattern-status">cairo_pattern_status</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
enum <a href="cairo-Patterns.html#cairo-extend-t">cairo_extend_t</a>;
+void <a href="cairo-Patterns.html#cairo-pattern-set-extend">cairo_pattern_set_extend</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ <a href="cairo-Patterns.html#cairo-extend-t">cairo_extend_t</a> extend);
+<a href="cairo-Patterns.html#cairo-extend-t">cairo_extend_t</a> <a href="cairo-Patterns.html#cairo-pattern-get-extend">cairo_pattern_get_extend</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
enum <a href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a>;
+void <a href="cairo-Patterns.html#cairo-pattern-set-filter">cairo_pattern_set_filter</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ <a href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a> filter);
+<a href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a> <a href="cairo-Patterns.html#cairo-pattern-get-filter">cairo_pattern_get_filter</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
+void <a href="cairo-Patterns.html#cairo-pattern-set-matrix">cairo_pattern_set_matrix</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+void <a href="cairo-Patterns.html#cairo-pattern-get-matrix">cairo_pattern_get_matrix</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+enum <a href="cairo-Patterns.html#cairo-pattern-type-t">cairo_pattern_type_t</a>;
+<a href="cairo-Patterns.html#cairo-pattern-type-t">cairo_pattern_type_t</a> <a href="cairo-Patterns.html#cairo-pattern-get-type">cairo_pattern_get_type</a> (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -61,9 +110,9 @@ enum <a href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a>;
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2556386"></a><h3>
+<a name="id2567003"></a><h3>
<a name="cairo-pattern-t"></a>cairo_pattern_t</h3>
-<a class="indexterm" name="id2556398"></a><pre class="programlisting">typedef struct _cairo_pattern cairo_pattern_t;
+<a class="indexterm" name="id2567015"></a><pre class="programlisting">typedef struct _cairo_pattern cairo_pattern_t;
</pre>
<p>
@@ -71,9 +120,96 @@ enum <a href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a>;
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2556414"></a><h3>
+<a name="id2567031"></a><h3>
+<a name="cairo-pattern-add-color-stop-rgb"></a>cairo_pattern_add_color_stop_rgb ()</h3>
+<a class="indexterm" name="id2567042"></a><pre class="programlisting">void cairo_pattern_add_color_stop_rgb
+ (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ double offset,
+ double red,
+ double green,
+ double blue);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2538432"></a><h3>
+<a name="cairo-pattern-add-color-stop-rgba"></a>cairo_pattern_add_color_stop_rgba ()</h3>
+<a class="indexterm" name="id2538443"></a><pre class="programlisting">void cairo_pattern_add_color_stop_rgba
+ (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ double offset,
+ double red,
+ double green,
+ double blue,
+ double alpha);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2538502"></a><h3>
+<a name="cairo-pattern-create-rgb"></a>cairo_pattern_create_rgb ()</h3>
+<a class="indexterm" name="id2538513"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_rgb (double red,
+ double green,
+ double blue);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2538551"></a><h3>
+<a name="cairo-pattern-create-rgba"></a>cairo_pattern_create_rgba ()</h3>
+<a class="indexterm" name="id2538563"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_rgba (double red,
+ double green,
+ double blue,
+ double alpha);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2538607"></a><h3>
+<a name="cairo-pattern-create-for-surface"></a>cairo_pattern_create_for_surface ()</h3>
+<a class="indexterm" name="id2538620"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_for_surface
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2538646"></a><h3>
+<a name="cairo-pattern-create-linear"></a>cairo_pattern_create_linear ()</h3>
+<a class="indexterm" name="id2538658"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_linear
+ (double x0,
+ double y0,
+ double x1,
+ double y1);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2576736"></a><h3>
+<a name="cairo-pattern-create-radial"></a>cairo_pattern_create_radial ()</h3>
+<a class="indexterm" name="id2576746"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_radial
+ (double cx0,
+ double cy0,
+ double radius0,
+ double cx1,
+ double cy1,
+ double radius1);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2576799"></a><h3>
+<a name="cairo-pattern-destroy"></a>cairo_pattern_destroy ()</h3>
+<a class="indexterm" name="id2576809"></a><pre class="programlisting">void cairo_pattern_destroy (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2576830"></a><h3>
+<a name="cairo-pattern-reference"></a>cairo_pattern_reference ()</h3>
+<a class="indexterm" name="id2576840"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_reference (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2576863"></a><h3>
+<a name="cairo-pattern-status"></a>cairo_pattern_status ()</h3>
+<a class="indexterm" name="id2576874"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_status (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2576899"></a><h3>
<a name="cairo-extend-t"></a>enum cairo_extend_t</h3>
-<a class="indexterm" name="id2556426"></a><pre class="programlisting">typedef enum _cairo_extend {
+<a class="indexterm" name="id2576911"></a><pre class="programlisting">typedef enum _cairo_extend {
CAIRO_EXTEND_NONE,
CAIRO_EXTEND_REPEAT,
CAIRO_EXTEND_REFLECT,
@@ -106,14 +242,15 @@ of a pattern will be drawn.</p>
<td>
<span class="term"><a name="CAIRO-EXTEND-REFLECT:CAPS"></a><code class="literal">CAIRO_EXTEND_REFLECT</code></span></td>
<td> the pattern is tiled by reflecting
- at the edges
+ at the edges (not implemented for surface patterns currently)
</td>
</tr>
<tr>
<td>
<span class="term"><a name="CAIRO-EXTEND-PAD:CAPS"></a><code class="literal">CAIRO_EXTEND_PAD</code></span></td>
<td> pixels outside of the pattern copy
- the closest pixel from the source (since cairo 1.2)
+ the closest pixel from the source (Since 1.2; not implemented
+ for surface patterns currently)
</td>
</tr>
</tbody>
@@ -121,9 +258,22 @@ of a pattern will be drawn.</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2553217"></a><h3>
+<a name="id2577035"></a><h3>
+<a name="cairo-pattern-set-extend"></a>cairo_pattern_set_extend ()</h3>
+<a class="indexterm" name="id2577046"></a><pre class="programlisting">void cairo_pattern_set_extend (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ <a href="cairo-Patterns.html#cairo-extend-t">cairo_extend_t</a> extend);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577077"></a><h3>
+<a name="cairo-pattern-get-extend"></a>cairo_pattern_get_extend ()</h3>
+<a class="indexterm" name="id2577089"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-extend-t">cairo_extend_t</a> cairo_pattern_get_extend (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577113"></a><h3>
<a name="cairo-filter-t"></a>enum cairo_filter_t</h3>
-<a class="indexterm" name="id2553230"></a><pre class="programlisting">typedef enum _cairo_filter {
+<a class="indexterm" name="id2577126"></a><pre class="programlisting">typedef enum _cairo_filter {
CAIRO_FILTER_FAST,
CAIRO_FILTER_GOOD,
CAIRO_FILTER_BEST,
@@ -136,6 +286,55 @@ of a pattern will be drawn.</p>
</p>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577144"></a><h3>
+<a name="cairo-pattern-set-filter"></a>cairo_pattern_set_filter ()</h3>
+<a class="indexterm" name="id2577156"></a><pre class="programlisting">void cairo_pattern_set_filter (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ <a href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a> filter);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577187"></a><h3>
+<a name="cairo-pattern-get-filter"></a>cairo_pattern_get_filter ()</h3>
+<a class="indexterm" name="id2577198"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a> cairo_pattern_get_filter (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577223"></a><h3>
+<a name="cairo-pattern-set-matrix"></a>cairo_pattern_set_matrix ()</h3>
+<a class="indexterm" name="id2577234"></a><pre class="programlisting">void cairo_pattern_set_matrix (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577266"></a><h3>
+<a name="cairo-pattern-get-matrix"></a>cairo_pattern_get_matrix ()</h3>
+<a class="indexterm" name="id2563126"></a><pre class="programlisting">void cairo_pattern_get_matrix (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577290"></a><h3>
+<a name="cairo-pattern-type-t"></a>enum cairo_pattern_type_t</h3>
+<a class="indexterm" name="id2577302"></a><pre class="programlisting">typedef enum _cairo_pattern_type {
+ CAIRO_PATTERN_TYPE_SOLID,
+ CAIRO_PATTERN_TYPE_SURFACE,
+ CAIRO_PATTERN_TYPE_LINEAR,
+ CAIRO_PATTERN_TYPE_RADIAL
+} cairo_pattern_type_t;
+</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577321"></a><h3>
+<a name="cairo-pattern-get-type"></a>cairo_pattern_get_type ()</h3>
+<a class="indexterm" name="id2577333"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-type-t">cairo_pattern_type_t</a> cairo_pattern_get_type (<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre>
+<p>Since 1.2
+</p>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-PostScript-Surfaces.html b/doc/public/html/cairo-PostScript-Surfaces.html
index 67d2615..1568268 100644
--- a/doc/public/html/cairo-PostScript-Surfaces.html
+++ b/doc/public/html/cairo-PostScript-Surfaces.html
@@ -47,7 +47,23 @@
-#define <a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-dpi">cairo_ps_surface_set_dpi</a>
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create">cairo_ps_surface_create</a> (const char *filename,
+ double width_in_points,
+ double height_in_points);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream">cairo_ps_surface_create_for_stream</a>
+ (<a href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func,
+ void *closure,
+ double width_in_points,
+ double height_in_points);
+void <a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size">cairo_ps_surface_set_size</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double width_in_points,
+ double height_in_points);
+void <a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+void <a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+void <a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ const char *comment);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -59,12 +75,61 @@
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2567655"></a><h3>
-<a name="cairo-ps-surface-set-dpi"></a>cairo_ps_surface_set_dpi</h3>
-<a class="indexterm" name="id2536236"></a><pre class="programlisting">#define cairo_ps_surface_set_dpi cairo_ps_surface_set_dpi_REPLACED_BY_cairo_surface_set_fallback_resolution
-</pre>
-<p>
-
+<a name="id2584935"></a><h3>
+<a name="cairo-ps-surface-create"></a>cairo_ps_surface_create ()</h3>
+<a class="indexterm" name="id2584949"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_ps_surface_create (const char *filename,
+ double width_in_points,
+ double height_in_points);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2584990"></a><h3>
+<a name="cairo-ps-surface-create-for-stream"></a>cairo_ps_surface_create_for_stream ()</h3>
+<a class="indexterm" name="id2585004"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_ps_surface_create_for_stream
+ (<a href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func,
+ void *closure,
+ double width_in_points,
+ double height_in_points);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585054"></a><h3>
+<a name="cairo-ps-surface-set-size"></a>cairo_ps_surface_set_size ()</h3>
+<a class="indexterm" name="id2585068"></a><pre class="programlisting">void cairo_ps_surface_set_size (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double width_in_points,
+ double height_in_points);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2543631"></a><h3>
+<a name="cairo-ps-surface-dsc-begin-setup"></a>cairo_ps_surface_dsc_begin_setup ()</h3>
+<a class="indexterm" name="id2543645"></a><pre class="programlisting">void cairo_ps_surface_dsc_begin_setup
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2543675"></a><h3>
+<a name="cairo-ps-surface-dsc-begin-page-setup"></a>cairo_ps_surface_dsc_begin_page_setup ()</h3>
+<a class="indexterm" name="id2543688"></a><pre class="programlisting">void cairo_ps_surface_dsc_begin_page_setup
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2543718"></a><h3>
+<a name="cairo-ps-surface-dsc-comment"></a>cairo_ps_surface_dsc_comment ()</h3>
+<a class="indexterm" name="id2543731"></a><pre class="programlisting">void cairo_ps_surface_dsc_comment (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ const char *comment);</pre>
+<p>Since 1.2
</p>
</div>
</div>
diff --git a/doc/public/html/cairo-SVG-Surfaces.html b/doc/public/html/cairo-SVG-Surfaces.html
index 2302baa..bba1c7e 100644
--- a/doc/public/html/cairo-SVG-Surfaces.html
+++ b/doc/public/html/cairo-SVG-Surfaces.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library">
<link rel="up" href="Surfaces.html" title="Surfaces">
-<link rel="prev" href="cairo-BeOS-Surfaces.html" title="BeOS Surfaces">
+<link rel="prev" href="cairo-Win32-Surfaces.html" title="Win32 Surfaces">
<link rel="next" href="cairo-XLib-Surfaces.html" title="XLib Surfaces">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -22,7 +22,7 @@
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="cairo-BeOS-Surfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="cairo-Win32-Surfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="Surfaces.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Cairo: A Vector Graphics Library</th>
@@ -47,7 +47,21 @@
-#define <a href="cairo-SVG-Surfaces.html#cairo-svg-surface-set-dpi">cairo_svg_surface_set_dpi</a>
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-SVG-Surfaces.html#cairo-svg-surface-create">cairo_svg_surface_create</a> (const char *filename,
+ double width_in_points,
+ double height_in_points);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream</a>
+ (<a href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func,
+ void *closure,
+ double width_in_points,
+ double height_in_points);
+void <a href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ <a href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> version);
+enum <a href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a>;
+void <a href="cairo-SVG-Surfaces.html#cairo-svg-get-versions">cairo_svg_get_versions</a> (<a href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> const **versions,
+ int *num_versions);
+const char* <a href="cairo-SVG-Surfaces.html#cairo-svg-version-to-string">cairo_svg_version_to_string</a> (<a href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> version);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -59,12 +73,61 @@
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2521248"></a><h3>
-<a name="cairo-svg-surface-set-dpi"></a>cairo_svg_surface_set_dpi</h3>
-<a class="indexterm" name="id2529286"></a><pre class="programlisting">#define cairo_svg_surface_set_dpi cairo_svg_surface_set_dpi_REPLACED_BY_cairo_surface_set_fallback_resolution
+<a name="id2588648"></a><h3>
+<a name="cairo-svg-surface-create"></a>cairo_svg_surface_create ()</h3>
+<a class="indexterm" name="id2588662"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_svg_surface_create (const char *filename,
+ double width_in_points,
+ double height_in_points);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588703"></a><h3>
+<a name="cairo-svg-surface-create-for-stream"></a>cairo_svg_surface_create_for_stream ()</h3>
+<a class="indexterm" name="id2588717"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_svg_surface_create_for_stream
+ (<a href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func,
+ void *closure,
+ double width_in_points,
+ double height_in_points);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588767"></a><h3>
+<a name="cairo-svg-surface-restrict-to-version"></a>cairo_svg_surface_restrict_to_version ()</h3>
+<a class="indexterm" name="id2588782"></a><pre class="programlisting">void cairo_svg_surface_restrict_to_version
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ <a href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> version);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588820"></a><h3>
+<a name="cairo-svg-version-t"></a>enum cairo_svg_version_t</h3>
+<a class="indexterm" name="id2588832"></a><pre class="programlisting">typedef enum {
+ CAIRO_SVG_VERSION_1_1,
+ CAIRO_SVG_VERSION_1_2
+} cairo_svg_version_t;
</pre>
-<p>
-
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588847"></a><h3>
+<a name="cairo-svg-get-versions"></a>cairo_svg_get_versions ()</h3>
+<a class="indexterm" name="id2588860"></a><pre class="programlisting">void cairo_svg_get_versions (<a href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> const **versions,
+ int *num_versions);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588896"></a><h3>
+<a name="cairo-svg-version-to-string"></a>cairo_svg_version_to_string ()</h3>
+<a class="indexterm" name="id2586590"></a><pre class="programlisting">const char* cairo_svg_version_to_string (<a href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> version);</pre>
+<p>Since 1.2
</p>
</div>
</div>
diff --git a/doc/public/html/cairo-Scaled-Fonts.html b/doc/public/html/cairo-Scaled-Fonts.html
index 6910560..f2bfb30 100644
--- a/doc/public/html/cairo-Scaled-Fonts.html
+++ b/doc/public/html/cairo-Scaled-Fonts.html
@@ -48,8 +48,38 @@
typedef <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>;
+<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-create">cairo_scaled_font_create</a>
+ (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm,
+ const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
+<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-reference">cairo_scaled_font_reference</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
+void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-destroy">cairo_scaled_font_destroy</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-status">cairo_scaled_font_status</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
<a href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a>;
+void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-extents">cairo_scaled_font_extents</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a> *extents);
<a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a>;
+void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-text-extents">cairo_scaled_font_text_extents</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ const char *utf8,
+ <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);
+void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-glyph-extents">cairo_scaled_font_glyph_extents</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs,
+ int num_glyphs,
+ <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);
+<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
+void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
+void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix);
+void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm);
+<a href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-type">cairo_scaled_font_get_type</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -61,9 +91,9 @@ typedef <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_f
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2541397"></a><h3>
+<a name="id2579432"></a><h3>
<a name="cairo-scaled-font-t"></a>cairo_scaled_font_t</h3>
-<a class="indexterm" name="id2541409"></a><pre class="programlisting">typedef struct _cairo_scaled_font cairo_scaled_font_t;
+<a class="indexterm" name="id2579444"></a><pre class="programlisting">typedef struct _cairo_scaled_font cairo_scaled_font_t;
</pre>
<p>
A <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a> is a font scaled to a particular size and device
@@ -76,9 +106,38 @@ to a scaled font to speed up the computation of metrics.</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2541440"></a><h3>
+<a name="id2579475"></a><h3>
+<a name="cairo-scaled-font-create"></a>cairo_scaled_font_create ()</h3>
+<a class="indexterm" name="id2579486"></a><pre class="programlisting"><a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_scaled_font_create
+ (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm,
+ const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579532"></a><h3>
+<a name="cairo-scaled-font-reference"></a>cairo_scaled_font_reference ()</h3>
+<a class="indexterm" name="id2579543"></a><pre class="programlisting"><a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_scaled_font_reference
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579569"></a><h3>
+<a name="cairo-scaled-font-destroy"></a>cairo_scaled_font_destroy ()</h3>
+<a class="indexterm" name="id2579580"></a><pre class="programlisting">void cairo_scaled_font_destroy (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579604"></a><h3>
+<a name="cairo-scaled-font-status"></a>cairo_scaled_font_status ()</h3>
+<a class="indexterm" name="id2579615"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_scaled_font_status (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579639"></a><h3>
<a name="cairo-font-extents-t"></a>cairo_font_extents_t</h3>
-<a class="indexterm" name="id2541451"></a><pre class="programlisting">typedef struct {
+<a class="indexterm" name="id2579650"></a><pre class="programlisting">typedef struct {
double ascent;
double descent;
double height;
@@ -161,9 +220,16 @@ matrix), but otherwise will remain unchanged.</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2540423"></a><h3>
+<a name="id2532979"></a><h3>
+<a name="cairo-scaled-font-extents"></a>cairo_scaled_font_extents ()</h3>
+<a class="indexterm" name="id2532990"></a><pre class="programlisting">void cairo_scaled_font_extents (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a> *extents);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2533020"></a><h3>
<a name="cairo-text-extents-t"></a>cairo_text_extents_t</h3>
-<a class="indexterm" name="id2540434"></a><pre class="programlisting">typedef struct {
+<a class="indexterm" name="id2533032"></a><pre class="programlisting">typedef struct {
double x_bearing;
double y_bearing;
double width;
@@ -235,6 +301,72 @@ but otherwise will remain unchanged.</p>
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581275"></a><h3>
+<a name="cairo-scaled-font-text-extents"></a>cairo_scaled_font_text_extents ()</h3>
+<a class="indexterm" name="id2581291"></a><pre class="programlisting">void cairo_scaled_font_text_extents (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ const char *utf8,
+ <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581334"></a><h3>
+<a name="cairo-scaled-font-glyph-extents"></a>cairo_scaled_font_glyph_extents ()</h3>
+<a class="indexterm" name="id2581347"></a><pre class="programlisting">void cairo_scaled_font_glyph_extents (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs,
+ int num_glyphs,
+ <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581392"></a><h3>
+<a name="cairo-scaled-font-get-font-face"></a>cairo_scaled_font_get_font_face ()</h3>
+<a class="indexterm" name="id2581408"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_scaled_font_get_font_face
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581439"></a><h3>
+<a name="cairo-scaled-font-get-font-options"></a>cairo_scaled_font_get_font_options ()</h3>
+<a class="indexterm" name="id2581455"></a><pre class="programlisting">void cairo_scaled_font_get_font_options
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581491"></a><h3>
+<a name="cairo-scaled-font-get-font-matrix"></a>cairo_scaled_font_get_font_matrix ()</h3>
+<a class="indexterm" name="id2581507"></a><pre class="programlisting">void cairo_scaled_font_get_font_matrix
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581545"></a><h3>
+<a name="cairo-scaled-font-get-ctm"></a>cairo_scaled_font_get_ctm ()</h3>
+<a class="indexterm" name="id2581559"></a><pre class="programlisting">void cairo_scaled_font_get_ctm (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2581595"></a><h3>
+<a name="cairo-scaled-font-get-type"></a>cairo_scaled_font_get_type ()</h3>
+<a class="indexterm" name="id2581609"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> cairo_scaled_font_get_type
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+<p>Since 1.2
+</p>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Text.html b/doc/public/html/cairo-Text.html
index 78af80e..2053436 100644
--- a/doc/public/html/cairo-Text.html
+++ b/doc/public/html/cairo-Text.html
@@ -50,6 +50,39 @@
<a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a>;
enum <a href="cairo-Text.html#cairo-font-slant-t">cairo_font_slant_t</a>;
enum <a href="cairo-Text.html#cairo-font-weight-t">cairo_font_weight_t</a>;
+void <a href="cairo-Text.html#cairo-select-font-face">cairo_select_font_face</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const char *family,
+ <a href="cairo-Text.html#cairo-font-slant-t">cairo_font_slant_t</a> slant,
+ <a href="cairo-Text.html#cairo-font-weight-t">cairo_font_weight_t</a> weight);
+void <a href="cairo-Text.html#cairo-set-font-size">cairo_set_font_size</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double size);
+void <a href="cairo-Text.html#cairo-set-font-matrix">cairo_set_font_matrix</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+void <a href="cairo-Text.html#cairo-get-font-matrix">cairo_get_font_matrix</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+void <a href="cairo-Text.html#cairo-set-font-options">cairo_set_font_options</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
+void <a href="cairo-Text.html#cairo-get-font-options">cairo_get_font_options</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
+void <a href="cairo-Text.html#cairo-show-text">cairo_show_text</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const char *utf8);
+void <a href="cairo-Text.html#cairo-show-glyphs">cairo_show_glyphs</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs,
+ int num_glyphs);
+<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a href="cairo-Text.html#cairo-get-font-face">cairo_get_font_face</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-Text.html#cairo-font-extents">cairo_font_extents</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a> *extents);
+void <a href="cairo-Text.html#cairo-set-font-face">cairo_set_font_face</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);
+void <a href="cairo-Text.html#cairo-set-scaled-font">cairo_set_scaled_font</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
+void <a href="cairo-Text.html#cairo-text-extents">cairo_text_extents</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const char *utf8,
+ <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);
+void <a href="cairo-Text.html#cairo-glyph-extents">cairo_glyph_extents</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs,
+ int num_glyphs,
+ <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -61,9 +94,9 @@ enum <a href="cairo-Text.html#cairo-font-weight-t">cairo_font_weight_t</a
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2542832"></a><h3>
+<a name="id2576403"></a><h3>
<a name="cairo-glyph-t"></a>cairo_glyph_t</h3>
-<a class="indexterm" name="id2542843"></a><pre class="programlisting">typedef struct {
+<a class="indexterm" name="id2576414"></a><pre class="programlisting">typedef struct {
unsigned long index;
double x;
double y;
@@ -117,9 +150,9 @@ with respect to the overall origin</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2557762"></a><h3>
+<a name="id2576547"></a><h3>
<a name="cairo-font-slant-t"></a>enum cairo_font_slant_t</h3>
-<a class="indexterm" name="id2557774"></a><pre class="programlisting">typedef enum _cairo_font_slant {
+<a class="indexterm" name="id2572360"></a><pre class="programlisting">typedef enum _cairo_font_slant {
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_SLANT_ITALIC,
CAIRO_FONT_SLANT_OBLIQUE
@@ -131,9 +164,9 @@ with respect to the overall origin</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2557791"></a><h3>
+<a name="id2572377"></a><h3>
<a name="cairo-font-weight-t"></a>enum cairo_font_weight_t</h3>
-<a class="indexterm" name="id2555782"></a><pre class="programlisting">typedef enum _cairo_font_weight {
+<a class="indexterm" name="id2572390"></a><pre class="programlisting">typedef enum _cairo_font_weight {
CAIRO_FONT_WEIGHT_NORMAL,
CAIRO_FONT_WEIGHT_BOLD
} cairo_font_weight_t;
@@ -142,6 +175,111 @@ with respect to the overall origin</p>
</p>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2572407"></a><h3>
+<a name="cairo-select-font-face"></a>cairo_select_font_face ()</h3>
+<a class="indexterm" name="id2572418"></a><pre class="programlisting">void cairo_select_font_face (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const char *family,
+ <a href="cairo-Text.html#cairo-font-slant-t">cairo_font_slant_t</a> slant,
+ <a href="cairo-Text.html#cairo-font-weight-t">cairo_font_weight_t</a> weight);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2572462"></a><h3>
+<a name="cairo-set-font-size"></a>cairo_set_font_size ()</h3>
+<a class="indexterm" name="id2572474"></a><pre class="programlisting">void cairo_set_font_size (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double size);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2572504"></a><h3>
+<a name="cairo-set-font-matrix"></a>cairo_set_font_matrix ()</h3>
+<a class="indexterm" name="id2572516"></a><pre class="programlisting">void cairo_set_font_matrix (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2572546"></a><h3>
+<a name="cairo-get-font-matrix"></a>cairo_get_font_matrix ()</h3>
+<a class="indexterm" name="id2572557"></a><pre class="programlisting">void cairo_get_font_matrix (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2572588"></a><h3>
+<a name="cairo-set-font-options"></a>cairo_set_font_options ()</h3>
+<a class="indexterm" name="id2572599"></a><pre class="programlisting">void cairo_set_font_options (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2572628"></a><h3>
+<a name="cairo-get-font-options"></a>cairo_get_font_options ()</h3>
+<a class="indexterm" name="id2579026"></a><pre class="programlisting">void cairo_get_font_options (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579053"></a><h3>
+<a name="cairo-show-text"></a>cairo_show_text ()</h3>
+<a class="indexterm" name="id2579063"></a><pre class="programlisting">void cairo_show_text (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const char *utf8);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579091"></a><h3>
+<a name="cairo-show-glyphs"></a>cairo_show_glyphs ()</h3>
+<a class="indexterm" name="id2579101"></a><pre class="programlisting">void cairo_show_glyphs (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs,
+ int num_glyphs);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579135"></a><h3>
+<a name="cairo-get-font-face"></a>cairo_get_font_face ()</h3>
+<a class="indexterm" name="id2579146"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_get_font_face (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579167"></a><h3>
+<a name="cairo-font-extents"></a>cairo_font_extents ()</h3>
+<a class="indexterm" name="id2579180"></a><pre class="programlisting">void cairo_font_extents (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a> *extents);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579210"></a><h3>
+<a name="cairo-set-font-face"></a>cairo_set_font_face ()</h3>
+<a class="indexterm" name="id2579222"></a><pre class="programlisting">void cairo_set_font_face (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579254"></a><h3>
+<a name="cairo-set-scaled-font"></a>cairo_set_scaled_font ()</h3>
+<a class="indexterm" name="id2579267"></a><pre class="programlisting">void cairo_set_scaled_font (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579303"></a><h3>
+<a name="cairo-text-extents"></a>cairo_text_extents ()</h3>
+<a class="indexterm" name="id2579315"></a><pre class="programlisting">void cairo_text_extents (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const char *utf8,
+ <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2579353"></a><h3>
+<a name="cairo-glyph-extents"></a>cairo_glyph_extents ()</h3>
+<a class="indexterm" name="id2579365"></a><pre class="programlisting">void cairo_glyph_extents (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs,
+ int num_glyphs,
+ <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Transformations.html b/doc/public/html/cairo-Transformations.html
index c8a5a43..6874060 100644
--- a/doc/public/html/cairo-Transformations.html
+++ b/doc/public/html/cairo-Transformations.html
@@ -47,6 +47,33 @@
+void <a href="cairo-Transformations.html#cairo-translate">cairo_translate</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double tx,
+ double ty);
+void <a href="cairo-Transformations.html#cairo-scale">cairo_scale</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double sx,
+ double sy);
+void <a href="cairo-Transformations.html#cairo-rotate">cairo_rotate</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double angle);
+void <a href="cairo-Transformations.html#cairo-transform">cairo_transform</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+void <a href="cairo-Transformations.html#cairo-set-matrix">cairo_set_matrix</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+void <a href="cairo-Transformations.html#cairo-get-matrix">cairo_get_matrix</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+void <a href="cairo-Transformations.html#cairo-identity-matrix">cairo_identity_matrix</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-Transformations.html#cairo-user-to-device">cairo_user_to_device</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x,
+ double *y);
+void <a href="cairo-Transformations.html#cairo-user-to-device-distance">cairo_user_to_device_distance</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *dx,
+ double *dy);
+void <a href="cairo-Transformations.html#cairo-device-to-user">cairo_device_to_user</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x,
+ double *y);
+void <a href="cairo-Transformations.html#cairo-device-to-user-distance">cairo_device_to_user_distance</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *dx,
+ double *dy);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -57,6 +84,87 @@
</div>
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
+<div class="refsect2" lang="en">
+<a name="id2537554"></a><h3>
+<a name="cairo-translate"></a>cairo_translate ()</h3>
+<a class="indexterm" name="id2537566"></a><pre class="programlisting">void cairo_translate (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double tx,
+ double ty);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2537603"></a><h3>
+<a name="cairo-scale"></a>cairo_scale ()</h3>
+<a class="indexterm" name="id2537615"></a><pre class="programlisting">void cairo_scale (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double sx,
+ double sy);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2537652"></a><h3>
+<a name="cairo-rotate"></a>cairo_rotate ()</h3>
+<a class="indexterm" name="id2537664"></a><pre class="programlisting">void cairo_rotate (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double angle);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2537694"></a><h3>
+<a name="cairo-transform"></a>cairo_transform ()</h3>
+<a class="indexterm" name="id2537707"></a><pre class="programlisting">void cairo_transform (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2537738"></a><h3>
+<a name="cairo-set-matrix"></a>cairo_set_matrix ()</h3>
+<a class="indexterm" name="id2537750"></a><pre class="programlisting">void cairo_set_matrix (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2537782"></a><h3>
+<a name="cairo-get-matrix"></a>cairo_get_matrix ()</h3>
+<a class="indexterm" name="id2537794"></a><pre class="programlisting">void cairo_get_matrix (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2533738"></a><h3>
+<a name="cairo-identity-matrix"></a>cairo_identity_matrix ()</h3>
+<a class="indexterm" name="id2533750"></a><pre class="programlisting">void cairo_identity_matrix (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2533774"></a><h3>
+<a name="cairo-user-to-device"></a>cairo_user_to_device ()</h3>
+<a class="indexterm" name="id2533785"></a><pre class="programlisting">void cairo_user_to_device (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x,
+ double *y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2533822"></a><h3>
+<a name="cairo-user-to-device-distance"></a>cairo_user_to_device_distance ()</h3>
+<a class="indexterm" name="id2533834"></a><pre class="programlisting">void cairo_user_to_device_distance (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *dx,
+ double *dy);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2533871"></a><h3>
+<a name="cairo-device-to-user"></a>cairo_device_to_user ()</h3>
+<a class="indexterm" name="id2533882"></a><pre class="programlisting">void cairo_device_to_user (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x,
+ double *y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2533920"></a><h3>
+<a name="cairo-device-to-user-distance"></a>cairo_device_to_user_distance ()</h3>
+<a class="indexterm" name="id2533932"></a><pre class="programlisting">void cairo_device_to_user_distance (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *dx,
+ double *dy);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Types.html b/doc/public/html/cairo-Types.html
index 72cb583..d1cd5ad 100644
--- a/doc/public/html/cairo-Types.html
+++ b/doc/public/html/cairo-Types.html
@@ -47,7 +47,7 @@
-typedef <a href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> ();
+typedef <a href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a>;
<a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a>;
void (<a href="cairo-Types.html#cairo-destroy-func-t">*cairo_destroy_func_t</a>) (void *data);
</pre>
@@ -61,9 +61,10 @@ void (<a href="cairo-Types.html#cairo-destroy-func-t">*cairo_destroy_func
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2522333"></a><h3>
-<a name="cairo-bool-t"></a>cairo_bool_t ()</h3>
-<a class="indexterm" name="id2522344"></a><pre class="programlisting">typedef cairo_bool_t ();</pre>
+<a name="id2562768"></a><h3>
+<a name="cairo-bool-t"></a>cairo_bool_t</h3>
+<a class="indexterm" name="id2565811"></a><pre class="programlisting">typedef int cairo_bool_t;
+</pre>
<p>
<a href="cairo-Types.html#cairo-bool-t"><span class="type">cairo_bool_t</span></a> is used for boolean values. Returns of type
<a href="cairo-Types.html#cairo-bool-t"><span class="type">cairo_bool_t</span></a> will always be either 0 or 1, but testing against
@@ -80,23 +81,12 @@ value as a boolean condition.
<p>
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td>
-<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
-<td>
-
-
-</td>
-</tr></tbody>
-</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2522412"></a><h3>
+<a name="id2589661"></a><h3>
<a name="cairo-user-data-key-t"></a>cairo_user_data_key_t</h3>
-<a class="indexterm" name="id2522423"></a><pre class="programlisting">typedef struct {
+<a class="indexterm" name="id2589672"></a><pre class="programlisting">typedef struct {
int unused;
} cairo_user_data_key_t;
</pre>
@@ -121,9 +111,9 @@ would just use the address of a static <span class="type">cairo_data_key_t</span
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2558991"></a><h3>
+<a name="id2587392"></a><h3>
<a name="cairo-destroy-func-t"></a>cairo_destroy_func_t ()</h3>
-<a class="indexterm" name="id2559002"></a><pre class="programlisting">void (*cairo_destroy_func_t) (void *data);</pre>
+<a class="indexterm" name="id2587403"></a><pre class="programlisting">void (*cairo_destroy_func_t) (void *data);</pre>
<p>
<a href="cairo-Types.html#cairo-destroy-func-t"><span class="type">cairo_destroy_func_t</span></a> the type of function which is called when a
data element is destroyed. It is passed the pointer to the data
diff --git a/doc/public/html/cairo-Version-Information.html b/doc/public/html/cairo-Version-Information.html
index 929e4d4..8bfff2a 100644
--- a/doc/public/html/cairo-Version-Information.html
+++ b/doc/public/html/cairo-Version-Information.html
@@ -48,7 +48,13 @@
#define <a href="cairo-Version-Information.html#CAIRO-VERSION:CAPS">CAIRO_VERSION</a>
+#define <a href="cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS">CAIRO_VERSION_MAJOR</a>
+#define <a href="cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS">CAIRO_VERSION_MINOR</a>
+#define <a href="cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS">CAIRO_VERSION_MICRO</a>
+#define <a href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS">CAIRO_VERSION_STRING</a>
#define <a href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS">CAIRO_VERSION_ENCODE</a> (major, minor, micro)
+int <a href="cairo-Version-Information.html#cairo-version">cairo_version</a> (void);
+const char* <a href="cairo-Version-Information.html#cairo-version-string">cairo_version_string</a> (void);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -92,7 +98,7 @@ In-progress development (eg. from CVS)
<p>
</p>
<div class="refsect2" lang="en">
-<a name="id2521870"></a><h3>Compatibility</h3>
+<a name="id2589447"></a><h3>Compatibility</h3>
<p>
The API/ABI compatibility guarantees for various versions are as
follows. First, let's assume some cairo-using application code that is
@@ -120,7 +126,7 @@ rather the many states between snapshots and releases.
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2521908"></a><h3>Examining the version</h3>
+<a name="id2590714"></a><h3>Examining the version</h3>
<p>
Cairo provides the ability to examine the version at either
compile-time or run-time and in both a human-readable form as well as
@@ -132,15 +138,13 @@ macro (CAIRO_VERSION_ENCODE) to perform the encoding.
<div class="informalexample"><pre class="programlisting">
Compile-time
------------
-<a
-href="../cairo/cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS"
-><code class="literal">CAIRO_VERSION_STRING</code></a> Human-readable
+<a href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS"><code class="literal">CAIRO_VERSION_STRING</code></a> Human-readable
<a href="cairo-Version-Information.html#CAIRO-VERSION:CAPS"><code class="literal">CAIRO_VERSION</code></a> Encoded, suitable for comparison
Run-time
--------
-<code class="function">cairo_version_string()</code> Human-readable
-<code class="function">cairo_version()</code> Encoded, suitable for comparison
+<a href="cairo-Version-Information.html#cairo-version-string"><code class="function">cairo_version_string()</code></a> Human-readable
+<a href="cairo-Version-Information.html#cairo-version"><code class="function">cairo_version()</code></a> Encoded, suitable for comparison
</pre></div>
<p>
</p>
@@ -154,8 +158,8 @@ to 1.0.0 could be achieved at compile-time or run-time as follows:
printf ("Compiling with suitable cairo version: %<code class="literal">s</code>\n", CAIRO_VERSION_STRING);
#<span class="type">endif</span>
-if (<code class="function">cairo_version()</code> &gt;= <a href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"><code class="literal">CAIRO_VERSION_ENCODE</code></a>(1, 0, 0))
- printf ("Running with suitable cairo version: %<code class="literal">s</code>\n", <code class="function">cairo_version_string()</code>);
+if (<a href="cairo-Version-Information.html#cairo-version"><code class="function">cairo_version()</code></a> &gt;= <a href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"><code class="literal">CAIRO_VERSION_ENCODE</code></a>(1, 0, 0))
+ printf ("Running with suitable cairo version: %<code class="literal">s</code>\n", <a href="cairo-Version-Information.html#cairo-version-string"><code class="function">cairo_version_string()</code></a>);
</pre></div>
<p>
</p>
@@ -164,18 +168,49 @@ if (<code class="function">cairo_version()</code> &gt;= <a href="cairo-Version-I
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2522570"></a><h3>
+<a name="id2587108"></a><h3>
<a name="CAIRO-VERSION:CAPS"></a>CAIRO_VERSION</h3>
-<a class="indexterm" name="id2522582"></a><pre class="programlisting">#define CAIRO_VERSION</pre>
+<a class="indexterm" name="id2587119"></a><pre class="programlisting">#define CAIRO_VERSION</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2522597"></a><h3>
+<a name="id2587135"></a><h3>
+<a name="CAIRO-VERSION-MAJOR:CAPS"></a>CAIRO_VERSION_MAJOR</h3>
+<a class="indexterm" name="id2587146"></a><pre class="programlisting">#define CAIRO_VERSION_MAJOR 1
+</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2587159"></a><h3>
+<a name="CAIRO-VERSION-MINOR:CAPS"></a>CAIRO_VERSION_MINOR</h3>
+<a class="indexterm" name="id2587171"></a><pre class="programlisting">#define CAIRO_VERSION_MINOR 2
+</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2587184"></a><h3>
+<a name="CAIRO-VERSION-MICRO:CAPS"></a>CAIRO_VERSION_MICRO</h3>
+<a class="indexterm" name="id2587196"></a><pre class="programlisting">#define CAIRO_VERSION_MICRO 0
+</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2587209"></a><h3>
+<a name="CAIRO-VERSION-STRING:CAPS"></a>CAIRO_VERSION_STRING</h3>
+<a class="indexterm" name="id2587220"></a><pre class="programlisting">#define CAIRO_VERSION_STRING "1.2.0"
+</pre>
+<p>
+
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2587235"></a><h3>
<a name="CAIRO-VERSION-ENCODE:CAPS"></a>CAIRO_VERSION_ENCODE()</h3>
-<a class="indexterm" name="id2522608"></a><pre class="programlisting">#define CAIRO_VERSION_ENCODE(major, minor, micro)</pre>
+<a class="indexterm" name="id2587246"></a><pre class="programlisting">#define CAIRO_VERSION_ENCODE(major, minor, micro)</pre>
<p>
</p>
@@ -205,6 +240,18 @@ if (<code class="function">cairo_version()</code> &gt;= <a href="cairo-Version-I
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2587310"></a><h3>
+<a name="cairo-version"></a>cairo_version ()</h3>
+<a class="indexterm" name="id2587322"></a><pre class="programlisting">int cairo_version (void);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2587341"></a><h3>
+<a name="cairo-version-string"></a>cairo_version_string ()</h3>
+<a class="indexterm" name="id2587352"></a><pre class="programlisting">const char* cairo_version_string (void);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Win32-Fonts.html b/doc/public/html/cairo-Win32-Fonts.html
index b4fbe99..d04b2c3 100644
--- a/doc/public/html/cairo-Win32-Fonts.html
+++ b/doc/public/html/cairo-Win32-Fonts.html
@@ -47,6 +47,17 @@
+<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw">cairo_win32_font_face_create_for_logfontw</a>
+ (LOGFONTW *logfont);
+<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont</a>
+ (HFONT font);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font">cairo_win32_scaled_font_select_font</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ HDC hdc);
+void <a href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font">cairo_win32_scaled_font_done_font</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
+double <a href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor">cairo_win32_scaled_font_get_metrics_factor</a>
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -57,6 +68,41 @@
</div>
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
+<div class="refsect2" lang="en">
+<a name="id2582511"></a><h3>
+<a name="cairo-win32-font-face-create-for-logfontw"></a>cairo_win32_font_face_create_for_logfontw ()</h3>
+<a class="indexterm" name="id2582525"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_win32_font_face_create_for_logfontw
+ (LOGFONTW *logfont);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2582550"></a><h3>
+<a name="cairo-win32-font-face-create-for-hfont"></a>cairo_win32_font_face_create_for_hfont ()</h3>
+<a class="indexterm" name="id2582173"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_win32_font_face_create_for_hfont
+ (HFONT font);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2582199"></a><h3>
+<a name="cairo-win32-scaled-font-select-font"></a>cairo_win32_scaled_font_select_font ()</h3>
+<a class="indexterm" name="id2582211"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_win32_scaled_font_select_font
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font,
+ HDC hdc);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2582244"></a><h3>
+<a name="cairo-win32-scaled-font-done-font"></a>cairo_win32_scaled_font_done_font ()</h3>
+<a class="indexterm" name="id2582256"></a><pre class="programlisting">void cairo_win32_scaled_font_done_font
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2582281"></a><h3>
+<a name="cairo-win32-scaled-font-get-metrics-factor"></a>cairo_win32_scaled_font_get_metrics_factor ()</h3>
+<a class="indexterm" name="id2582296"></a><pre class="programlisting">double cairo_win32_scaled_font_get_metrics_factor
+ (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-Win32-Surfaces.html b/doc/public/html/cairo-Win32-Surfaces.html
index 7b1513f..1ea5143 100644
--- a/doc/public/html/cairo-Win32-Surfaces.html
+++ b/doc/public/html/cairo-Win32-Surfaces.html
@@ -7,7 +7,7 @@
<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library">
<link rel="up" href="Surfaces.html" title="Surfaces">
<link rel="prev" href="cairo-PostScript-Surfaces.html" title="PostScript Surfaces">
-<link rel="next" href="cairo-BeOS-Surfaces.html" title="BeOS Surfaces">
+<link rel="next" href="cairo-SVG-Surfaces.html" title="SVG Surfaces">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="part" href="pt01.html" title="Part&#160;I.&#160;Tutorial">
@@ -26,7 +26,7 @@
<td><a accesskey="u" href="Surfaces.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Cairo: A Vector Graphics Library</th>
-<td><a accesskey="n" href="cairo-BeOS-Surfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="cairo-SVG-Surfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#top_of_page" class="shortcut">Top</a>
&#160;|&#160;
@@ -47,6 +47,12 @@
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-Win32-Surfaces.html#cairo-win32-surface-create">cairo_win32_surface_create</a> (HDC hdc);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib</a>
+ (<a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format,
+ int width,
+ int height);
+HDC <a href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc">cairo_win32_surface_get_dc</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -57,6 +63,30 @@
</div>
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
+<div class="refsect2" lang="en">
+<a name="id2543796"></a><h3>
+<a name="cairo-win32-surface-create"></a>cairo_win32_surface_create ()</h3>
+<a class="indexterm" name="id2543807"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create (HDC hdc);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2543830"></a><h3>
+<a name="cairo-win32-surface-create-with-dib"></a>cairo_win32_surface_create_with_dib ()</h3>
+<a class="indexterm" name="id2543843"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create_with_dib
+ (<a href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format,
+ int width,
+ int height);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2543885"></a><h3>
+<a name="cairo-win32-surface-get-dc"></a>cairo_win32_surface_get_dc ()</h3>
+<a class="indexterm" name="id2543898"></a><pre class="programlisting">HDC cairo_win32_surface_get_dc (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-XLib-Surfaces.html b/doc/public/html/cairo-XLib-Surfaces.html
index 10ac35b..9aadd3f 100644
--- a/doc/public/html/cairo-XLib-Surfaces.html
+++ b/doc/public/html/cairo-XLib-Surfaces.html
@@ -47,6 +47,31 @@
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create">cairo_xlib_surface_create</a> (Display *dpy,
+ Drawable drawable,
+ Visual *visual,
+ int width,
+ int height);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap">cairo_xlib_surface_create_for_bitmap</a>
+ (Display *dpy,
+ Pixmap bitmap,
+ Screen *screen,
+ int width,
+ int height);
+void <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size">cairo_xlib_surface_set_size</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ int width,
+ int height);
+Display* <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display">cairo_xlib_surface_get_display</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+Screen* <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen">cairo_xlib_surface_get_screen</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+void <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable">cairo_xlib_surface_set_drawable</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ Drawable drawable,
+ int width,
+ int height);
+Drawable <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable">cairo_xlib_surface_get_drawable</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+Visual* <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual">cairo_xlib_surface_get_visual</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+int <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width">cairo_xlib_surface_get_width</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+int <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height">cairo_xlib_surface_get_height</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+int <a href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth">cairo_xlib_surface_get_depth</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -57,6 +82,99 @@
</div>
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
+<div class="refsect2" lang="en">
+<a name="id2586484"></a><h3>
+<a name="cairo-xlib-surface-create"></a>cairo_xlib_surface_create ()</h3>
+<a class="indexterm" name="id2586496"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_xlib_surface_create (Display *dpy,
+ Drawable drawable,
+ Visual *visual,
+ int width,
+ int height);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2586546"></a><h3>
+<a name="cairo-xlib-surface-create-for-bitmap"></a>cairo_xlib_surface_create_for_bitmap ()</h3>
+<a class="indexterm" name="id2586558"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_xlib_surface_create_for_bitmap
+ (Display *dpy,
+ Pixmap bitmap,
+ Screen *screen,
+ int width,
+ int height);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588049"></a><h3>
+<a name="cairo-xlib-surface-set-size"></a>cairo_xlib_surface_set_size ()</h3>
+<a class="indexterm" name="id2588060"></a><pre class="programlisting">void cairo_xlib_surface_set_size (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ int width,
+ int height);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588098"></a><h3>
+<a name="cairo-xlib-surface-get-display"></a>cairo_xlib_surface_get_display ()</h3>
+<a class="indexterm" name="id2588112"></a><pre class="programlisting">Display* cairo_xlib_surface_get_display (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588141"></a><h3>
+<a name="cairo-xlib-surface-get-screen"></a>cairo_xlib_surface_get_screen ()</h3>
+<a class="indexterm" name="id2588157"></a><pre class="programlisting">Screen* cairo_xlib_surface_get_screen (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588186"></a><h3>
+<a name="cairo-xlib-surface-set-drawable"></a>cairo_xlib_surface_set_drawable ()</h3>
+<a class="indexterm" name="id2588200"></a><pre class="programlisting">void cairo_xlib_surface_set_drawable (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ Drawable drawable,
+ int width,
+ int height);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2588245"></a><h3>
+<a name="cairo-xlib-surface-get-drawable"></a>cairo_xlib_surface_get_drawable ()</h3>
+<a class="indexterm" name="id2588261"></a><pre class="programlisting">Drawable cairo_xlib_surface_get_drawable (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2543949"></a><h3>
+<a name="cairo-xlib-surface-get-visual"></a>cairo_xlib_surface_get_visual ()</h3>
+<a class="indexterm" name="id2543965"></a><pre class="programlisting">Visual* cairo_xlib_surface_get_visual (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2543994"></a><h3>
+<a name="cairo-xlib-surface-get-width"></a>cairo_xlib_surface_get_width ()</h3>
+<a class="indexterm" name="id2544010"></a><pre class="programlisting">int cairo_xlib_surface_get_width (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2544040"></a><h3>
+<a name="cairo-xlib-surface-get-height"></a>cairo_xlib_surface_get_height ()</h3>
+<a class="indexterm" name="id2544055"></a><pre class="programlisting">int cairo_xlib_surface_get_height (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2544085"></a><h3>
+<a name="cairo-xlib-surface-get-depth"></a>cairo_xlib_surface_get_depth ()</h3>
+<a class="indexterm" name="id2544100"></a><pre class="programlisting">int cairo_xlib_surface_get_depth (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-cairo-font-face-t.html b/doc/public/html/cairo-cairo-font-face-t.html
index 6d0ca58..2d70b5a 100644
--- a/doc/public/html/cairo-cairo-font-face-t.html
+++ b/doc/public/html/cairo-cairo-font-face-t.html
@@ -48,6 +48,19 @@
typedef <a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>;
+<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a href="cairo-cairo-font-face-t.html#cairo-font-face-reference">cairo_font_face_reference</a>
+ (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);
+void <a href="cairo-cairo-font-face-t.html#cairo-font-face-destroy">cairo_font_face_destroy</a> (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-font-face-t.html#cairo-font-face-status">cairo_font_face_status</a> (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);
+void* <a href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data">cairo_font_face_get_user_data</a> (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face,
+ const <a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data">cairo_font_face_set_user_data</a>
+ (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face,
+ const <a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key,
+ void *user_data,
+ <a href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);
+enum <a href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a>;
+<a href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> <a href="cairo-cairo-font-face-t.html#cairo-font-face-get-type">cairo_font_face_get_type</a> (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -59,21 +72,79 @@ typedef <a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2526999"></a><h3>
+<a name="id2577643"></a><h3>
<a name="cairo-font-face-t"></a>cairo_font_face_t</h3>
-<a class="indexterm" name="id2527010"></a><pre class="programlisting">typedef struct _cairo_font_face cairo_font_face_t;
+<a class="indexterm" name="id2577654"></a><pre class="programlisting">typedef struct _cairo_font_face cairo_font_face_t;
</pre>
<p>
A <a href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a> specifies all aspects of a font other
than the size or font matrix (a font matrix is used to distort
a font by sheering it or scaling it unequally in the two
directions) . A font face can be set on a <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> by using
-<code class="function">cairo_set_font_face()</code>; the size and font matrix are set with
-<code class="function">cairo_set_font_size()</code> and <code class="function">cairo_set_font_matrix()</code>.</p>
+<a href="cairo-Text.html#cairo-set-font-face"><code class="function">cairo_set_font_face()</code></a>; the size and font matrix are set with
+<a href="cairo-Text.html#cairo-set-font-size"><code class="function">cairo_set_font_size()</code></a> and <a href="cairo-Text.html#cairo-set-font-matrix"><code class="function">cairo_set_font_matrix()</code></a>.</p>
<p>
</p>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577719"></a><h3>
+<a name="cairo-font-face-reference"></a>cairo_font_face_reference ()</h3>
+<a class="indexterm" name="id2577730"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_font_face_reference
+ (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577756"></a><h3>
+<a name="cairo-font-face-destroy"></a>cairo_font_face_destroy ()</h3>
+<a class="indexterm" name="id2577767"></a><pre class="programlisting">void cairo_font_face_destroy (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2577790"></a><h3>
+<a name="cairo-font-face-status"></a>cairo_font_face_status ()</h3>
+<a class="indexterm" name="id2578424"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_font_face_status (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2578448"></a><h3>
+<a name="cairo-font-face-get-user-data"></a>cairo_font_face_get_user_data ()</h3>
+<a class="indexterm" name="id2578459"></a><pre class="programlisting">void* cairo_font_face_get_user_data (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face,
+ const <a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2578489"></a><h3>
+<a name="cairo-font-face-set-user-data"></a>cairo_font_face_set_user_data ()</h3>
+<a class="indexterm" name="id2578500"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_font_face_set_user_data
+ (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face,
+ const <a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key,
+ void *user_data,
+ <a href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2578545"></a><h3>
+<a name="cairo-font-type-t"></a>enum cairo_font_type_t</h3>
+<a class="indexterm" name="id2578560"></a><pre class="programlisting">typedef enum _cairo_font_type {
+ CAIRO_FONT_TYPE_TOY,
+ CAIRO_FONT_TYPE_FT,
+ CAIRO_FONT_TYPE_WIN32,
+ CAIRO_FONT_TYPE_ATSUI
+} cairo_font_type_t;
+</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2578580"></a><h3>
+<a name="cairo-font-face-get-type"></a>cairo_font_face_get_type ()</h3>
+<a class="indexterm" name="id2578593"></a><pre class="programlisting"><a href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> cairo_font_face_get_type (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre>
+<p>Since 1.2
+</p>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-cairo-matrix-t.html b/doc/public/html/cairo-cairo-matrix-t.html
index 6c861cc..3dab18d 100644
--- a/doc/public/html/cairo-cairo-matrix-t.html
+++ b/doc/public/html/cairo-cairo-matrix-t.html
@@ -48,11 +48,45 @@
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a>;
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-init">cairo_matrix_init</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double xx,
+ double yx,
+ double xy,
+ double yy,
+ double x0,
+ double y0);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-init-identity">cairo_matrix_init_identity</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-init-translate">cairo_matrix_init_translate</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double tx,
+ double ty);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-init-scale">cairo_matrix_init_scale</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double sx,
+ double sy);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-init-rotate">cairo_matrix_init_rotate</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double radians);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-translate">cairo_matrix_translate</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double tx,
+ double ty);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-scale">cairo_matrix_scale</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double sx,
+ double sy);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-rotate">cairo_matrix_rotate</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double radians);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-invert">cairo_matrix_invert</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-multiply">cairo_matrix_multiply</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *result,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *a,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *b);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance">cairo_matrix_transform_distance</a> (const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double *dx,
+ double *dy);
+void <a href="cairo-cairo-matrix-t.html#cairo-matrix-transform-point">cairo_matrix_transform_point</a> (const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double *x,
+ double *y);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="desc"></a><h2>Description</h2>
-<p><a class="indexterm" name="id2554612"></a><a class="indexterm" name="id2535179"></a>
+<p><a class="indexterm" name="id2587579"></a><a class="indexterm" name="id2587587"></a>
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a> is used throughout cairo to convert between different
coordinate spaces. A <a href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a> holds an affine transformation,
such as a scale, rotation, shear, or a combination of these.
@@ -66,16 +100,16 @@
<p>
The current transformation matrix of a <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>, represented as a
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a>, defines the transformation from user-space
- coordinates to device-space coordinates. See <code class="function">cairo_get_matrix()</code> and
- <code class="function">cairo_set_matrix()</code>.
+ coordinates to device-space coordinates. See <a href="cairo-Transformations.html#cairo-get-matrix"><code class="function">cairo_get_matrix()</code></a> and
+ <a href="cairo-Transformations.html#cairo-set-matrix"><code class="function">cairo_set_matrix()</code></a>.
</p>
</div>
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2521192"></a><h3>
+<a name="id2587684"></a><h3>
<a name="cairo-matrix-t"></a>cairo_matrix_t</h3>
-<a class="indexterm" name="id2521204"></a><pre class="programlisting">typedef struct {
+<a class="indexterm" name="id2587695"></a><pre class="programlisting">typedef struct {
double xx; double yx;
double xy; double yy;
double x0; double y0;
@@ -135,6 +169,100 @@ a point (x, y) is given by:
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2544216"></a><h3>
+<a name="cairo-matrix-init"></a>cairo_matrix_init ()</h3>
+<a class="indexterm" name="id2544228"></a><pre class="programlisting">void cairo_matrix_init (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double xx,
+ double yx,
+ double xy,
+ double yy,
+ double x0,
+ double y0);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2544292"></a><h3>
+<a name="cairo-matrix-init-identity"></a>cairo_matrix_init_identity ()</h3>
+<a class="indexterm" name="id2544303"></a><pre class="programlisting">void cairo_matrix_init_identity (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2544327"></a><h3>
+<a name="cairo-matrix-init-translate"></a>cairo_matrix_init_translate ()</h3>
+<a class="indexterm" name="id2544338"></a><pre class="programlisting">void cairo_matrix_init_translate (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double tx,
+ double ty);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2544376"></a><h3>
+<a name="cairo-matrix-init-scale"></a>cairo_matrix_init_scale ()</h3>
+<a class="indexterm" name="id2544388"></a><pre class="programlisting">void cairo_matrix_init_scale (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double sx,
+ double sy);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2590907"></a><h3>
+<a name="cairo-matrix-init-rotate"></a>cairo_matrix_init_rotate ()</h3>
+<a class="indexterm" name="id2590917"></a><pre class="programlisting">void cairo_matrix_init_rotate (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double radians);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2590945"></a><h3>
+<a name="cairo-matrix-translate"></a>cairo_matrix_translate ()</h3>
+<a class="indexterm" name="id2590956"></a><pre class="programlisting">void cairo_matrix_translate (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double tx,
+ double ty);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2590990"></a><h3>
+<a name="cairo-matrix-scale"></a>cairo_matrix_scale ()</h3>
+<a class="indexterm" name="id2591000"></a><pre class="programlisting">void cairo_matrix_scale (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double sx,
+ double sy);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2591034"></a><h3>
+<a name="cairo-matrix-rotate"></a>cairo_matrix_rotate ()</h3>
+<a class="indexterm" name="id2591045"></a><pre class="programlisting">void cairo_matrix_rotate (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double radians);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2591076"></a><h3>
+<a name="cairo-matrix-invert"></a>cairo_matrix_invert ()</h3>
+<a class="indexterm" name="id2591089"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_matrix_invert (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2591112"></a><h3>
+<a name="cairo-matrix-multiply"></a>cairo_matrix_multiply ()</h3>
+<a class="indexterm" name="id2591124"></a><pre class="programlisting">void cairo_matrix_multiply (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *result,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *a,
+ const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *b);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2591162"></a><h3>
+<a name="cairo-matrix-transform-distance"></a>cairo_matrix_transform_distance ()</h3>
+<a class="indexterm" name="id2591174"></a><pre class="programlisting">void cairo_matrix_transform_distance (const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double *dx,
+ double *dy);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2591213"></a><h3>
+<a name="cairo-matrix-transform-point"></a>cairo_matrix_transform_point ()</h3>
+<a class="indexterm" name="id2591226"></a><pre class="programlisting">void cairo_matrix_transform_point (const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
+ double *x,
+ double *y);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-cairo-surface-t.html b/doc/public/html/cairo-cairo-surface-t.html
index 3de94d8..a8cc63b 100644
--- a/doc/public/html/cairo-cairo-surface-t.html
+++ b/doc/public/html/cairo-cairo-surface-t.html
@@ -49,6 +49,44 @@
typedef <a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>;
enum <a href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a>;
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-cairo-surface-t.html#cairo-surface-create-similar">cairo_surface_create_similar</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *other,
+ <a href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> content,
+ int width,
+ int height);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-destroy">cairo_surface_destroy</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-finish">cairo_surface_finish</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-flush">cairo_surface_flush</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-get-font-options">cairo_surface_get_font_options</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);
+<a href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-get-content">cairo_surface_get_content</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-set-user-data">cairo_surface_set_user_data</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ const <a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key,
+ void *user_data,
+ <a href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);
+void* <a href="cairo-cairo-surface-t.html#cairo-surface-get-user-data">cairo_surface_get_user_data</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ const <a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty">cairo_surface_mark_dirty</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle">cairo_surface_mark_dirty_rectangle</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ int x,
+ int y,
+ int width,
+ int height);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-cairo-surface-t.html#cairo-surface-reference">cairo_surface_reference</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset">cairo_surface_set_device_offset</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double x_offset,
+ double y_offset);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset">cairo_surface_get_device_offset</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double *x_offset,
+ double *y_offset);
+void <a href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution">cairo_surface_set_fallback_resolution</a>
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double x_pixels_per_inch,
+ double y_pixels_per_inch);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-status">cairo_surface_status</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
+enum <a href="cairo-cairo-surface-t.html#cairo-surface-type-t">cairo_surface_type_t</a>;
+<a href="cairo-cairo-surface-t.html#cairo-surface-type-t">cairo_surface_type_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-get-type">cairo_surface_get_type</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -60,36 +98,36 @@ enum <a href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2545536"></a><h3>
+<a name="id2584196"></a><h3>
<a name="cairo-surface-t"></a>cairo_surface_t</h3>
-<a class="indexterm" name="id2545547"></a><pre class="programlisting">typedef struct _cairo_surface cairo_surface_t;
+<a class="indexterm" name="id2584208"></a><pre class="programlisting">typedef struct _cairo_surface cairo_surface_t;
</pre>
<p>
A <a href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> represents an image, either as the destination
of a drawing operation or as source when drawing onto another
surface. There are different subtypes of cairo_surface_t for
-different drawing backends; for example, <code class="function">cairo_image_surface_create()</code>
+different drawing backends; for example, <a href="cairo-Image-Surfaces.html#cairo-image-surface-create"><code class="function">cairo_image_surface_create()</code></a>
creates a bitmap image in memory.
</p>
<p>
Memory management of <a href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> is done with
-<code class="function">cairo_surface_reference()</code> and <code class="function">cairo_surface_destroy()</code>.</p>
+<a href="cairo-cairo-surface-t.html#cairo-surface-reference"><code class="function">cairo_surface_reference()</code></a> and <a href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a>.</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2558691"></a><h3>
+<a name="id2584276"></a><h3>
<a name="cairo-content-t"></a>enum cairo_content_t</h3>
-<a class="indexterm" name="id2558703"></a><pre class="programlisting">typedef enum _cairo_content {
+<a class="indexterm" name="id2584288"></a><pre class="programlisting">typedef enum _cairo_content {
CAIRO_CONTENT_COLOR = 0x1000,
CAIRO_CONTENT_ALPHA = 0x2000,
CAIRO_CONTENT_COLOR_ALPHA = 0x3000
} cairo_content_t;
</pre>
<p>
-<em class="parameter"><code>cairo_content_t</code></em> is used to describe the content that a surface will
+<a href="cairo-cairo-surface-t.html#cairo-content-t"><span class="type">cairo_content_t</span></a> is used to describe the content that a surface will
contain, whether color information, alpha information (translucence
vs. opacity), or both.
</p>
@@ -124,6 +162,152 @@ implementation can detect the error if users confuse the two types.</p>
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580099"></a><h3>
+<a name="cairo-surface-create-similar"></a>cairo_surface_create_similar ()</h3>
+<a class="indexterm" name="id2580112"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_surface_create_similar
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *other,
+ <a href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> content,
+ int width,
+ int height);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580158"></a><h3>
+<a name="cairo-surface-destroy"></a>cairo_surface_destroy ()</h3>
+<a class="indexterm" name="id2580170"></a><pre class="programlisting">void cairo_surface_destroy (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580193"></a><h3>
+<a name="cairo-surface-finish"></a>cairo_surface_finish ()</h3>
+<a class="indexterm" name="id2580204"></a><pre class="programlisting">void cairo_surface_finish (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580228"></a><h3>
+<a name="cairo-surface-flush"></a>cairo_surface_flush ()</h3>
+<a class="indexterm" name="id2580240"></a><pre class="programlisting">void cairo_surface_flush (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2580265"></a><h3>
+<a name="cairo-surface-get-font-options"></a>cairo_surface_get_font_options ()</h3>
+<a class="indexterm" name="id2580278"></a><pre class="programlisting">void cairo_surface_get_font_options (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585177"></a><h3>
+<a name="cairo-surface-get-content"></a>cairo_surface_get_content ()</h3>
+<a class="indexterm" name="id2585190"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> cairo_surface_get_content (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585215"></a><h3>
+<a name="cairo-surface-set-user-data"></a>cairo_surface_set_user_data ()</h3>
+<a class="indexterm" name="id2585226"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_set_user_data (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ const <a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key,
+ void *user_data,
+ <a href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585267"></a><h3>
+<a name="cairo-surface-get-user-data"></a>cairo_surface_get_user_data ()</h3>
+<a class="indexterm" name="id2585278"></a><pre class="programlisting">void* cairo_surface_get_user_data (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ const <a href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585307"></a><h3>
+<a name="cairo-surface-mark-dirty"></a>cairo_surface_mark_dirty ()</h3>
+<a class="indexterm" name="id2585318"></a><pre class="programlisting">void cairo_surface_mark_dirty (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585343"></a><h3>
+<a name="cairo-surface-mark-dirty-rectangle"></a>cairo_surface_mark_dirty_rectangle ()</h3>
+<a class="indexterm" name="id2585357"></a><pre class="programlisting">void cairo_surface_mark_dirty_rectangle
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ int x,
+ int y,
+ int width,
+ int height);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585409"></a><h3>
+<a name="cairo-surface-reference"></a>cairo_surface_reference ()</h3>
+<a class="indexterm" name="id2585420"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_surface_reference (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585445"></a><h3>
+<a name="cairo-surface-set-device-offset"></a>cairo_surface_set_device_offset ()</h3>
+<a class="indexterm" name="id2585458"></a><pre class="programlisting">void cairo_surface_set_device_offset (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double x_offset,
+ double y_offset);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585497"></a><h3>
+<a name="cairo-surface-get-device-offset"></a>cairo_surface_get_device_offset ()</h3>
+<a class="indexterm" name="id2585512"></a><pre class="programlisting">void cairo_surface_get_device_offset (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double *x_offset,
+ double *y_offset);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585556"></a><h3>
+<a name="cairo-surface-set-fallback-resolution"></a>cairo_surface_set_fallback_resolution ()</h3>
+<a class="indexterm" name="id2585571"></a><pre class="programlisting">void cairo_surface_set_fallback_resolution
+ (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double x_pixels_per_inch,
+ double y_pixels_per_inch);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585616"></a><h3>
+<a name="cairo-surface-status"></a>cairo_surface_status ()</h3>
+<a class="indexterm" name="id2585627"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_status (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585651"></a><h3>
+<a name="cairo-surface-type-t"></a>enum cairo_surface_type_t</h3>
+<a class="indexterm" name="id2585665"></a><pre class="programlisting">typedef enum _cairo_surface_type {
+ CAIRO_SURFACE_TYPE_IMAGE,
+ CAIRO_SURFACE_TYPE_PDF,
+ CAIRO_SURFACE_TYPE_PS,
+ CAIRO_SURFACE_TYPE_XLIB,
+ CAIRO_SURFACE_TYPE_XCB,
+ CAIRO_SURFACE_TYPE_GLITZ,
+ CAIRO_SURFACE_TYPE_QUARTZ,
+ CAIRO_SURFACE_TYPE_WIN32,
+ CAIRO_SURFACE_TYPE_BEOS,
+ CAIRO_SURFACE_TYPE_DIRECTFB,
+ CAIRO_SURFACE_TYPE_SVG
+} cairo_surface_type_t;
+</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2585689"></a><h3>
+<a name="cairo-surface-get-type"></a>cairo_surface_get_type ()</h3>
+<a class="indexterm" name="id2585702"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-type-t">cairo_surface_type_t</a> cairo_surface_get_type (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre>
+<p>Since 1.2
+</p>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo-cairo-t.html b/doc/public/html/cairo-cairo-t.html
index 418d144..7ec2268 100644
--- a/doc/public/html/cairo-cairo-t.html
+++ b/doc/public/html/cairo-cairo-t.html
@@ -48,11 +48,102 @@
typedef <a href="cairo-cairo-t.html#cairo-t">cairo_t</a>;
+<a href="cairo-cairo-t.html#cairo-t">cairo_t</a>* <a href="cairo-cairo-t.html#cairo-create">cairo_create</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *target);
+<a href="cairo-cairo-t.html#cairo-t">cairo_t</a>* <a href="cairo-cairo-t.html#cairo-reference">cairo_reference</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-destroy">cairo_destroy</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-t.html#cairo-status">cairo_status</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-save">cairo_save</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-restore">cairo_restore</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-cairo-t.html#cairo-get-target">cairo_get_target</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-push-group">cairo_push_group</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-push-group-with-content">cairo_push_group_with_content</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> content);
+<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-cairo-t.html#cairo-pop-group">cairo_pop_group</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-pop-group-to-source">cairo_pop_group_to_source</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-cairo-t.html#cairo-get-group-target">cairo_get_group_target</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-set-source-rgb">cairo_set_source_rgb</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double red,
+ double green,
+ double blue);
+void <a href="cairo-cairo-t.html#cairo-set-source-rgba">cairo_set_source_rgba</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double red,
+ double green,
+ double blue,
+ double alpha);
+void <a href="cairo-cairo-t.html#cairo-set-source">cairo_set_source</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *source);
+void <a href="cairo-cairo-t.html#cairo-set-source-surface">cairo_set_source_surface</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double x,
+ double y);
+<a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-cairo-t.html#cairo-get-source">cairo_get_source</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
enum <a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a>;
+void <a href="cairo-cairo-t.html#cairo-set-antialias">cairo_set_antialias</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> antialias);
+<a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> <a href="cairo-cairo-t.html#cairo-get-antialias">cairo_get_antialias</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-set-dash">cairo_set_dash</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *dashes,
+ int num_dashes,
+ double offset);
enum <a href="cairo-cairo-t.html#cairo-fill-rule-t">cairo_fill_rule_t</a>;
+void <a href="cairo-cairo-t.html#cairo-set-fill-rule">cairo_set_fill_rule</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-fill-rule-t">cairo_fill_rule_t</a> fill_rule);
+<a href="cairo-cairo-t.html#cairo-fill-rule-t">cairo_fill_rule_t</a> <a href="cairo-cairo-t.html#cairo-get-fill-rule">cairo_get_fill_rule</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
enum <a href="cairo-cairo-t.html#cairo-line-cap-t">cairo_line_cap_t</a>;
+void <a href="cairo-cairo-t.html#cairo-set-line-cap">cairo_set_line_cap</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-line-cap-t">cairo_line_cap_t</a> line_cap);
+<a href="cairo-cairo-t.html#cairo-line-cap-t">cairo_line_cap_t</a> <a href="cairo-cairo-t.html#cairo-get-line-cap">cairo_get_line_cap</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
enum <a href="cairo-cairo-t.html#cairo-line-join-t">cairo_line_join_t</a>;
+void <a href="cairo-cairo-t.html#cairo-set-line-join">cairo_set_line_join</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-line-join-t">cairo_line_join_t</a> line_join);
+<a href="cairo-cairo-t.html#cairo-line-join-t">cairo_line_join_t</a> <a href="cairo-cairo-t.html#cairo-get-line-join">cairo_get_line_join</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-set-line-width">cairo_set_line_width</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double width);
+double <a href="cairo-cairo-t.html#cairo-get-line-width">cairo_get_line_width</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-set-miter-limit">cairo_set_miter_limit</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double limit);
+double <a href="cairo-cairo-t.html#cairo-get-miter-limit">cairo_get_miter_limit</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
enum <a href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a>;
+void <a href="cairo-cairo-t.html#cairo-set-operator">cairo_set_operator</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a> op);
+<a href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a> <a href="cairo-cairo-t.html#cairo-get-operator">cairo_get_operator</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-set-tolerance">cairo_set_tolerance</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double tolerance);
+double <a href="cairo-cairo-t.html#cairo-get-tolerance">cairo_get_tolerance</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-clip">cairo_clip</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-clip-preserve">cairo_clip_preserve</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-reset-clip">cairo_reset_clip</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-fill">cairo_fill</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-fill-preserve">cairo_fill_preserve</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-fill-extents">cairo_fill_extents</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x1,
+ double *y1,
+ double *x2,
+ double *y2);
+<a href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> <a href="cairo-cairo-t.html#cairo-in-fill">cairo_in_fill</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y);
+void <a href="cairo-cairo-t.html#cairo-mask">cairo_mask</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
+void <a href="cairo-cairo-t.html#cairo-mask-surface">cairo_mask_surface</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double surface_x,
+ double surface_y);
+void <a href="cairo-cairo-t.html#cairo-paint">cairo_paint</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-paint-with-alpha">cairo_paint_with_alpha</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double alpha);
+void <a href="cairo-cairo-t.html#cairo-stroke">cairo_stroke</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-stroke-preserve">cairo_stroke_preserve</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-stroke-extents">cairo_stroke_extents</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x1,
+ double *y1,
+ double *x2,
+ double *y2);
+<a href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> <a href="cairo-cairo-t.html#cairo-in-stroke">cairo_in_stroke</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y);
+void <a href="cairo-cairo-t.html#cairo-copy-page">cairo_copy_page</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
+void <a href="cairo-cairo-t.html#cairo-show-page">cairo_show_page</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);
</pre>
</div>
@@ -62,21 +153,21 @@ enum <a href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a>;
<a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> is the main object used when drawing with cairo. To
draw with cairo, you create a <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>, set the target surface,
and drawing options for the <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>, create shapes with
- functions like <code class="function">cairo_move_to()</code> and <code class="function">cairo_line_to()</code>, and then
- draw shapes with <code class="function">cairo_stroke()</code> or <code class="function">cairo_fill()</code>.
+ functions like <a href="cairo-Paths.html#cairo-move-to"><code class="function">cairo_move_to()</code></a> and <a href="cairo-Paths.html#cairo-line-to"><code class="function">cairo_line_to()</code></a>, and then
+ draw shapes with <a href="cairo-cairo-t.html#cairo-stroke"><code class="function">cairo_stroke()</code></a> or <a href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a>.
</p>
<p>
- <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>'s can be pushed to a stack via <code class="function">cairo_save()</code>.
+ <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>'s can be pushed to a stack via <a href="cairo-cairo-t.html#cairo-save"><code class="function">cairo_save()</code></a>.
They may then safely be changed, without loosing the current state.
- Use <code class="function">cairo_restore()</code> to restore to the saved state.
+ Use <a href="cairo-cairo-t.html#cairo-restore"><code class="function">cairo_restore()</code></a> to restore to the saved state.
</p>
</div>
<div class="refsect1" lang="en">
<a name="details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
-<a name="id2472952"></a><h3>
+<a name="id2573523"></a><h3>
<a name="cairo-t"></a>cairo_t</h3>
-<a class="indexterm" name="id2495627"></a><pre class="programlisting">typedef struct _cairo cairo_t;
+<a class="indexterm" name="id2573535"></a><pre class="programlisting">typedef struct _cairo cairo_t;
</pre>
<p>
A <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> contains the current state of the rendering device,
@@ -87,9 +178,133 @@ including coordinates of yet to be drawn shapes.</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2495655"></a><h3>
+<a name="id2573563"></a><h3>
+<a name="cairo-create"></a>cairo_create ()</h3>
+<a class="indexterm" name="id2573576"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-t">cairo_t</a>* cairo_create (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *target);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573600"></a><h3>
+<a name="cairo-reference"></a>cairo_reference ()</h3>
+<a class="indexterm" name="id2573612"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-t">cairo_t</a>* cairo_reference (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573636"></a><h3>
+<a name="cairo-destroy"></a>cairo_destroy ()</h3>
+<a class="indexterm" name="id2573648"></a><pre class="programlisting">void cairo_destroy (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573672"></a><h3>
+<a name="cairo-status"></a>cairo_status ()</h3>
+<a class="indexterm" name="id2573684"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_status (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573709"></a><h3>
+<a name="cairo-save"></a>cairo_save ()</h3>
+<a class="indexterm" name="id2573721"></a><pre class="programlisting">void cairo_save (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573745"></a><h3>
+<a name="cairo-restore"></a>cairo_restore ()</h3>
+<a class="indexterm" name="id2573757"></a><pre class="programlisting">void cairo_restore (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573782"></a><h3>
+<a name="cairo-get-target"></a>cairo_get_target ()</h3>
+<a class="indexterm" name="id2573794"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_get_target (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573819"></a><h3>
+<a name="cairo-push-group"></a>cairo_push_group ()</h3>
+<a class="indexterm" name="id2573834"></a><pre class="programlisting">void cairo_push_group (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573863"></a><h3>
+<a name="cairo-push-group-with-content"></a>cairo_push_group_with_content ()</h3>
+<a class="indexterm" name="id2573878"></a><pre class="programlisting">void cairo_push_group_with_content (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> content);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573915"></a><h3>
+<a name="cairo-pop-group"></a>cairo_pop_group ()</h3>
+<a class="indexterm" name="id2573929"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pop_group (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2573959"></a><h3>
+<a name="cairo-pop-group-to-source"></a>cairo_pop_group_to_source ()</h3>
+<a class="indexterm" name="id2573973"></a><pre class="programlisting">void cairo_pop_group_to_source (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574002"></a><h3>
+<a name="cairo-get-group-target"></a>cairo_get_group_target ()</h3>
+<a class="indexterm" name="id2574015"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_get_group_target (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+<p>Since 1.2
+</p>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574044"></a><h3>
+<a name="cairo-set-source-rgb"></a>cairo_set_source_rgb ()</h3>
+<a class="indexterm" name="id2574055"></a><pre class="programlisting">void cairo_set_source_rgb (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double red,
+ double green,
+ double blue);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574099"></a><h3>
+<a name="cairo-set-source-rgba"></a>cairo_set_source_rgba ()</h3>
+<a class="indexterm" name="id2574111"></a><pre class="programlisting">void cairo_set_source_rgba (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double red,
+ double green,
+ double blue,
+ double alpha);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574162"></a><h3>
+<a name="cairo-set-source"></a>cairo_set_source ()</h3>
+<a class="indexterm" name="id2574174"></a><pre class="programlisting">void cairo_set_source (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *source);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574206"></a><h3>
+<a name="cairo-set-source-surface"></a>cairo_set_source_surface ()</h3>
+<a class="indexterm" name="id2574217"></a><pre class="programlisting">void cairo_set_source_surface (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double x,
+ double y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574261"></a><h3>
+<a name="cairo-get-source"></a>cairo_get_source ()</h3>
+<a class="indexterm" name="id2574274"></a><pre class="programlisting"><a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_get_source (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574298"></a><h3>
<a name="cairo-antialias-t"></a>enum cairo_antialias_t</h3>
-<a class="indexterm" name="id2495667"></a><pre class="programlisting">typedef enum _cairo_antialias {
+<a class="indexterm" name="id2574311"></a><pre class="programlisting">typedef enum _cairo_antialias {
CAIRO_ANTIALIAS_DEFAULT,
CAIRO_ANTIALIAS_NONE,
CAIRO_ANTIALIAS_GRAY,
@@ -137,9 +352,31 @@ Specifies the type of antialiasing to do when rendering text or shapes.</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2495781"></a><h3>
+<a name="id2574428"></a><h3>
+<a name="cairo-set-antialias"></a>cairo_set_antialias ()</h3>
+<a class="indexterm" name="id2574441"></a><pre class="programlisting">void cairo_set_antialias (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> antialias);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574472"></a><h3>
+<a name="cairo-get-antialias"></a>cairo_get_antialias ()</h3>
+<a class="indexterm" name="id2574484"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> cairo_get_antialias (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574508"></a><h3>
+<a name="cairo-set-dash"></a>cairo_set_dash ()</h3>
+<a class="indexterm" name="id2574520"></a><pre class="programlisting">void cairo_set_dash (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *dashes,
+ int num_dashes,
+ double offset);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574565"></a><h3>
<a name="cairo-fill-rule-t"></a>enum cairo_fill_rule_t</h3>
-<a class="indexterm" name="id2520208"></a><pre class="programlisting">typedef enum _cairo_fill_rule {
+<a class="indexterm" name="id2574578"></a><pre class="programlisting">typedef enum _cairo_fill_rule {
CAIRO_FILL_RULE_WINDING,
CAIRO_FILL_RULE_EVEN_ODD
} cairo_fill_rule_t;
@@ -183,9 +420,22 @@ filled.
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2520298"></a><h3>
+<a name="id2574670"></a><h3>
+<a name="cairo-set-fill-rule"></a>cairo_set_fill_rule ()</h3>
+<a class="indexterm" name="id2574683"></a><pre class="programlisting">void cairo_set_fill_rule (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-fill-rule-t">cairo_fill_rule_t</a> fill_rule);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574714"></a><h3>
+<a name="cairo-get-fill-rule"></a>cairo_get_fill_rule ()</h3>
+<a class="indexterm" name="id2574726"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-fill-rule-t">cairo_fill_rule_t</a> cairo_get_fill_rule (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574750"></a><h3>
<a name="cairo-line-cap-t"></a>enum cairo_line_cap_t</h3>
-<a class="indexterm" name="id2520310"></a><pre class="programlisting">typedef enum _cairo_line_cap {
+<a class="indexterm" name="id2574762"></a><pre class="programlisting">typedef enum _cairo_line_cap {
CAIRO_LINE_CAP_BUTT,
CAIRO_LINE_CAP_ROUND,
CAIRO_LINE_CAP_SQUARE
@@ -222,9 +472,22 @@ enumeration for style of line-endings</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2520400"></a><h3>
+<a name="id2574852"></a><h3>
+<a name="cairo-set-line-cap"></a>cairo_set_line_cap ()</h3>
+<a class="indexterm" name="id2574865"></a><pre class="programlisting">void cairo_set_line_cap (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-line-cap-t">cairo_line_cap_t</a> line_cap);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574896"></a><h3>
+<a name="cairo-get-line-cap"></a>cairo_get_line_cap ()</h3>
+<a class="indexterm" name="id2574908"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-line-cap-t">cairo_line_cap_t</a> cairo_get_line_cap (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2574933"></a><h3>
<a name="cairo-line-join-t"></a>enum cairo_line_join_t</h3>
-<a class="indexterm" name="id2540314"></a><pre class="programlisting">typedef enum _cairo_line_join {
+<a class="indexterm" name="id2574945"></a><pre class="programlisting">typedef enum _cairo_line_join {
CAIRO_LINE_JOIN_MITER,
CAIRO_LINE_JOIN_ROUND,
CAIRO_LINE_JOIN_BEVEL
@@ -236,9 +499,48 @@ enumeration for style of line-endings</p>
</div>
<hr>
<div class="refsect2" lang="en">
-<a name="id2540332"></a><h3>
+<a name="id2574962"></a><h3>
+<a name="cairo-set-line-join"></a>cairo_set_line_join ()</h3>
+<a class="indexterm" name="id2574975"></a><pre class="programlisting">void cairo_set_line_join (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-line-join-t">cairo_line_join_t</a> line_join);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575006"></a><h3>
+<a name="cairo-get-line-join"></a>cairo_get_line_join ()</h3>
+<a class="indexterm" name="id2554010"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-line-join-t">cairo_line_join_t</a> cairo_get_line_join (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575027"></a><h3>
+<a name="cairo-set-line-width"></a>cairo_set_line_width ()</h3>
+<a class="indexterm" name="id2575038"></a><pre class="programlisting">void cairo_set_line_width (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double width);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575065"></a><h3>
+<a name="cairo-get-line-width"></a>cairo_get_line_width ()</h3>
+<a class="indexterm" name="id2575076"></a><pre class="programlisting">double cairo_get_line_width (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575097"></a><h3>
+<a name="cairo-set-miter-limit"></a>cairo_set_miter_limit ()</h3>
+<a class="indexterm" name="id2575108"></a><pre class="programlisting">void cairo_set_miter_limit (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double limit);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575136"></a><h3>
+<a name="cairo-get-miter-limit"></a>cairo_get_miter_limit ()</h3>
+<a class="indexterm" name="id2575146"></a><pre class="programlisting">double cairo_get_miter_limit (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575168"></a><h3>
<a name="cairo-operator-t"></a>enum cairo_operator_t</h3>
-<a class="indexterm" name="id2540344"></a><pre class="programlisting">typedef enum _cairo_operator {
+<a class="indexterm" name="id2575178"></a><pre class="programlisting">typedef enum _cairo_operator {
CAIRO_OPERATOR_CLEAR,
CAIRO_OPERATOR_SOURCE,
@@ -262,6 +564,151 @@ enumeration for style of line-endings</p>
</p>
</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575199"></a><h3>
+<a name="cairo-set-operator"></a>cairo_set_operator ()</h3>
+<a class="indexterm" name="id2575209"></a><pre class="programlisting">void cairo_set_operator (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a> op);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575237"></a><h3>
+<a name="cairo-get-operator"></a>cairo_get_operator ()</h3>
+<a class="indexterm" name="id2575247"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a> cairo_get_operator (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575269"></a><h3>
+<a name="cairo-set-tolerance"></a>cairo_set_tolerance ()</h3>
+<a class="indexterm" name="id2575279"></a><pre class="programlisting">void cairo_set_tolerance (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double tolerance);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575307"></a><h3>
+<a name="cairo-get-tolerance"></a>cairo_get_tolerance ()</h3>
+<a class="indexterm" name="id2575317"></a><pre class="programlisting">double cairo_get_tolerance (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575339"></a><h3>
+<a name="cairo-clip"></a>cairo_clip ()</h3>
+<a class="indexterm" name="id2575349"></a><pre class="programlisting">void cairo_clip (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575371"></a><h3>
+<a name="cairo-clip-preserve"></a>cairo_clip_preserve ()</h3>
+<a class="indexterm" name="id2575381"></a><pre class="programlisting">void cairo_clip_preserve (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575403"></a><h3>
+<a name="cairo-reset-clip"></a>cairo_reset_clip ()</h3>
+<a class="indexterm" name="id2575413"></a><pre class="programlisting">void cairo_reset_clip (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575435"></a><h3>
+<a name="cairo-fill"></a>cairo_fill ()</h3>
+<a class="indexterm" name="id2575445"></a><pre class="programlisting">void cairo_fill (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575467"></a><h3>
+<a name="cairo-fill-preserve"></a>cairo_fill_preserve ()</h3>
+<a class="indexterm" name="id2575477"></a><pre class="programlisting">void cairo_fill_preserve (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575499"></a><h3>
+<a name="cairo-fill-extents"></a>cairo_fill_extents ()</h3>
+<a class="indexterm" name="id2575509"></a><pre class="programlisting">void cairo_fill_extents (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x1,
+ double *y1,
+ double *x2,
+ double *y2);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575555"></a><h3>
+<a name="cairo-in-fill"></a>cairo_in_fill ()</h3>
+<a class="indexterm" name="id2575566"></a><pre class="programlisting"><a href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_in_fill (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575600"></a><h3>
+<a name="cairo-mask"></a>cairo_mask ()</h3>
+<a class="indexterm" name="id2575610"></a><pre class="programlisting">void cairo_mask (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575638"></a><h3>
+<a name="cairo-mask-surface"></a>cairo_mask_surface ()</h3>
+<a class="indexterm" name="id2575648"></a><pre class="programlisting">void cairo_mask_surface (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ <a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
+ double surface_x,
+ double surface_y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575688"></a><h3>
+<a name="cairo-paint"></a>cairo_paint ()</h3>
+<a class="indexterm" name="id2575699"></a><pre class="programlisting">void cairo_paint (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575720"></a><h3>
+<a name="cairo-paint-with-alpha"></a>cairo_paint_with_alpha ()</h3>
+<a class="indexterm" name="id2575731"></a><pre class="programlisting">void cairo_paint_with_alpha (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double alpha);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575758"></a><h3>
+<a name="cairo-stroke"></a>cairo_stroke ()</h3>
+<a class="indexterm" name="id2575769"></a><pre class="programlisting">void cairo_stroke (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575790"></a><h3>
+<a name="cairo-stroke-preserve"></a>cairo_stroke_preserve ()</h3>
+<a class="indexterm" name="id2575801"></a><pre class="programlisting">void cairo_stroke_preserve (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575822"></a><h3>
+<a name="cairo-stroke-extents"></a>cairo_stroke_extents ()</h3>
+<a class="indexterm" name="id2575833"></a><pre class="programlisting">void cairo_stroke_extents (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double *x1,
+ double *y1,
+ double *x2,
+ double *y2);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575879"></a><h3>
+<a name="cairo-in-stroke"></a>cairo_in_stroke ()</h3>
+<a class="indexterm" name="id2575889"></a><pre class="programlisting"><a href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_in_stroke (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
+ double x,
+ double y);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575923"></a><h3>
+<a name="cairo-copy-page"></a>cairo_copy_page ()</h3>
+<a class="indexterm" name="id2575934"></a><pre class="programlisting">void cairo_copy_page (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
+<hr>
+<div class="refsect2" lang="en">
+<a name="id2575955"></a><h3>
+<a name="cairo-show-page"></a>cairo_show_page ()</h3>
+<a class="indexterm" name="id2575966"></a><pre class="programlisting">void cairo_show_page (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre>
+</div>
</div>
</div>
</body>
diff --git a/doc/public/html/cairo.devhelp b/doc/public/html/cairo.devhelp
index 18bc9fb..f5e5775 100644
--- a/doc/public/html/cairo.devhelp
+++ b/doc/public/html/cairo.devhelp
@@ -21,12 +21,10 @@
<sub name="Surfaces" link="Surfaces.html">
<sub name="cairo_surface_t" link="cairo-cairo-surface-t.html"/>
<sub name="Image Surfaces" link="cairo-Image-Surfaces.html"/>
- <sub name="Glitz Surfaces" link="cairo-Glitz-Surfaces.html"/>
<sub name="PDF Surfaces" link="cairo-PDF-Surfaces.html"/>
<sub name="PNG Support" link="cairo-PNG-Support.html"/>
<sub name="PostScript Surfaces" link="cairo-PostScript-Surfaces.html"/>
<sub name="Win32 Surfaces" link="cairo-Win32-Surfaces.html"/>
- <sub name="BeOS Surfaces" link="cairo-BeOS-Surfaces.html"/>
<sub name="SVG Surfaces" link="cairo-SVG-Surfaces.html"/>
<sub name="XLib Surfaces" link="cairo-XLib-Surfaces.html"/>
</sub>
@@ -53,43 +51,274 @@
</chapters>
<functions>
<function name="cairo_t" link="cairo-cairo-t.html#cairo-t"/>
+ <function name="cairo_create ()" link="cairo-cairo-t.html#cairo-create"/>
+ <function name="cairo_reference ()" link="cairo-cairo-t.html#cairo-reference"/>
+ <function name="cairo_destroy ()" link="cairo-cairo-t.html#cairo-destroy"/>
+ <function name="cairo_status ()" link="cairo-cairo-t.html#cairo-status"/>
+ <function name="cairo_save ()" link="cairo-cairo-t.html#cairo-save"/>
+ <function name="cairo_restore ()" link="cairo-cairo-t.html#cairo-restore"/>
+ <function name="cairo_get_target ()" link="cairo-cairo-t.html#cairo-get-target"/>
+ <function name="cairo_push_group ()" link="cairo-cairo-t.html#cairo-push-group"/>
+ <function name="cairo_push_group_with_content ()" link="cairo-cairo-t.html#cairo-push-group-with-content"/>
+ <function name="cairo_pop_group ()" link="cairo-cairo-t.html#cairo-pop-group"/>
+ <function name="cairo_pop_group_to_source ()" link="cairo-cairo-t.html#cairo-pop-group-to-source"/>
+ <function name="cairo_get_group_target ()" link="cairo-cairo-t.html#cairo-get-group-target"/>
+ <function name="cairo_set_source_rgb ()" link="cairo-cairo-t.html#cairo-set-source-rgb"/>
+ <function name="cairo_set_source_rgba ()" link="cairo-cairo-t.html#cairo-set-source-rgba"/>
+ <function name="cairo_set_source ()" link="cairo-cairo-t.html#cairo-set-source"/>
+ <function name="cairo_set_source_surface ()" link="cairo-cairo-t.html#cairo-set-source-surface"/>
+ <function name="cairo_get_source ()" link="cairo-cairo-t.html#cairo-get-source"/>
<function name="enum cairo_antialias_t" link="cairo-cairo-t.html#cairo-antialias-t"/>
+ <function name="cairo_set_antialias ()" link="cairo-cairo-t.html#cairo-set-antialias"/>
+ <function name="cairo_get_antialias ()" link="cairo-cairo-t.html#cairo-get-antialias"/>
+ <function name="cairo_set_dash ()" link="cairo-cairo-t.html#cairo-set-dash"/>
<function name="enum cairo_fill_rule_t" link="cairo-cairo-t.html#cairo-fill-rule-t"/>
+ <function name="cairo_set_fill_rule ()" link="cairo-cairo-t.html#cairo-set-fill-rule"/>
+ <function name="cairo_get_fill_rule ()" link="cairo-cairo-t.html#cairo-get-fill-rule"/>
<function name="enum cairo_line_cap_t" link="cairo-cairo-t.html#cairo-line-cap-t"/>
+ <function name="cairo_set_line_cap ()" link="cairo-cairo-t.html#cairo-set-line-cap"/>
+ <function name="cairo_get_line_cap ()" link="cairo-cairo-t.html#cairo-get-line-cap"/>
<function name="enum cairo_line_join_t" link="cairo-cairo-t.html#cairo-line-join-t"/>
+ <function name="cairo_set_line_join ()" link="cairo-cairo-t.html#cairo-set-line-join"/>
+ <function name="cairo_get_line_join ()" link="cairo-cairo-t.html#cairo-get-line-join"/>
+ <function name="cairo_set_line_width ()" link="cairo-cairo-t.html#cairo-set-line-width"/>
+ <function name="cairo_get_line_width ()" link="cairo-cairo-t.html#cairo-get-line-width"/>
+ <function name="cairo_set_miter_limit ()" link="cairo-cairo-t.html#cairo-set-miter-limit"/>
+ <function name="cairo_get_miter_limit ()" link="cairo-cairo-t.html#cairo-get-miter-limit"/>
<function name="enum cairo_operator_t" link="cairo-cairo-t.html#cairo-operator-t"/>
+ <function name="cairo_set_operator ()" link="cairo-cairo-t.html#cairo-set-operator"/>
+ <function name="cairo_get_operator ()" link="cairo-cairo-t.html#cairo-get-operator"/>
+ <function name="cairo_set_tolerance ()" link="cairo-cairo-t.html#cairo-set-tolerance"/>
+ <function name="cairo_get_tolerance ()" link="cairo-cairo-t.html#cairo-get-tolerance"/>
+ <function name="cairo_clip ()" link="cairo-cairo-t.html#cairo-clip"/>
+ <function name="cairo_clip_preserve ()" link="cairo-cairo-t.html#cairo-clip-preserve"/>
+ <function name="cairo_reset_clip ()" link="cairo-cairo-t.html#cairo-reset-clip"/>
+ <function name="cairo_fill ()" link="cairo-cairo-t.html#cairo-fill"/>
+ <function name="cairo_fill_preserve ()" link="cairo-cairo-t.html#cairo-fill-preserve"/>
+ <function name="cairo_fill_extents ()" link="cairo-cairo-t.html#cairo-fill-extents"/>
+ <function name="cairo_in_fill ()" link="cairo-cairo-t.html#cairo-in-fill"/>
+ <function name="cairo_mask ()" link="cairo-cairo-t.html#cairo-mask"/>
+ <function name="cairo_mask_surface ()" link="cairo-cairo-t.html#cairo-mask-surface"/>
+ <function name="cairo_paint ()" link="cairo-cairo-t.html#cairo-paint"/>
+ <function name="cairo_paint_with_alpha ()" link="cairo-cairo-t.html#cairo-paint-with-alpha"/>
+ <function name="cairo_stroke ()" link="cairo-cairo-t.html#cairo-stroke"/>
+ <function name="cairo_stroke_preserve ()" link="cairo-cairo-t.html#cairo-stroke-preserve"/>
+ <function name="cairo_stroke_extents ()" link="cairo-cairo-t.html#cairo-stroke-extents"/>
+ <function name="cairo_in_stroke ()" link="cairo-cairo-t.html#cairo-in-stroke"/>
+ <function name="cairo_copy_page ()" link="cairo-cairo-t.html#cairo-copy-page"/>
+ <function name="cairo_show_page ()" link="cairo-cairo-t.html#cairo-show-page"/>
<function name="cairo_path_t" link="cairo-Paths.html#cairo-path-t"/>
<function name="union cairo_path_data_t" link="cairo-Paths.html#cairo-path-data-t"/>
<function name="enum cairo_path_data_type_t" link="cairo-Paths.html#cairo-path-data-type-t"/>
+ <function name="cairo_copy_path ()" link="cairo-Paths.html#cairo-copy-path"/>
+ <function name="cairo_copy_path_flat ()" link="cairo-Paths.html#cairo-copy-path-flat"/>
+ <function name="cairo_path_destroy ()" link="cairo-Paths.html#cairo-path-destroy"/>
+ <function name="cairo_append_path ()" link="cairo-Paths.html#cairo-append-path"/>
+ <function name="cairo_get_current_point ()" link="cairo-Paths.html#cairo-get-current-point"/>
+ <function name="cairo_new_path ()" link="cairo-Paths.html#cairo-new-path"/>
+ <function name="cairo_new_sub_path ()" link="cairo-Paths.html#cairo-new-sub-path"/>
+ <function name="cairo_close_path ()" link="cairo-Paths.html#cairo-close-path"/>
+ <function name="cairo_arc ()" link="cairo-Paths.html#cairo-arc"/>
+ <function name="cairo_arc_negative ()" link="cairo-Paths.html#cairo-arc-negative"/>
+ <function name="cairo_curve_to ()" link="cairo-Paths.html#cairo-curve-to"/>
+ <function name="cairo_line_to ()" link="cairo-Paths.html#cairo-line-to"/>
+ <function name="cairo_move_to ()" link="cairo-Paths.html#cairo-move-to"/>
+ <function name="cairo_rectangle ()" link="cairo-Paths.html#cairo-rectangle"/>
+ <function name="cairo_glyph_path ()" link="cairo-Paths.html#cairo-glyph-path"/>
+ <function name="cairo_text_path ()" link="cairo-Paths.html#cairo-text-path"/>
+ <function name="cairo_rel_curve_to ()" link="cairo-Paths.html#cairo-rel-curve-to"/>
+ <function name="cairo_rel_line_to ()" link="cairo-Paths.html#cairo-rel-line-to"/>
+ <function name="cairo_rel_move_to ()" link="cairo-Paths.html#cairo-rel-move-to"/>
<function name="cairo_pattern_t" link="cairo-Patterns.html#cairo-pattern-t"/>
+ <function name="cairo_pattern_add_color_stop_rgb ()" link="cairo-Patterns.html#cairo-pattern-add-color-stop-rgb"/>
+ <function name="cairo_pattern_add_color_stop_rgba ()" link="cairo-Patterns.html#cairo-pattern-add-color-stop-rgba"/>
+ <function name="cairo_pattern_create_rgb ()" link="cairo-Patterns.html#cairo-pattern-create-rgb"/>
+ <function name="cairo_pattern_create_rgba ()" link="cairo-Patterns.html#cairo-pattern-create-rgba"/>
+ <function name="cairo_pattern_create_for_surface ()" link="cairo-Patterns.html#cairo-pattern-create-for-surface"/>
+ <function name="cairo_pattern_create_linear ()" link="cairo-Patterns.html#cairo-pattern-create-linear"/>
+ <function name="cairo_pattern_create_radial ()" link="cairo-Patterns.html#cairo-pattern-create-radial"/>
+ <function name="cairo_pattern_destroy ()" link="cairo-Patterns.html#cairo-pattern-destroy"/>
+ <function name="cairo_pattern_reference ()" link="cairo-Patterns.html#cairo-pattern-reference"/>
+ <function name="cairo_pattern_status ()" link="cairo-Patterns.html#cairo-pattern-status"/>
<function name="enum cairo_extend_t" link="cairo-Patterns.html#cairo-extend-t"/>
+ <function name="cairo_pattern_set_extend ()" link="cairo-Patterns.html#cairo-pattern-set-extend"/>
+ <function name="cairo_pattern_get_extend ()" link="cairo-Patterns.html#cairo-pattern-get-extend"/>
<function name="enum cairo_filter_t" link="cairo-Patterns.html#cairo-filter-t"/>
+ <function name="cairo_pattern_set_filter ()" link="cairo-Patterns.html#cairo-pattern-set-filter"/>
+ <function name="cairo_pattern_get_filter ()" link="cairo-Patterns.html#cairo-pattern-get-filter"/>
+ <function name="cairo_pattern_set_matrix ()" link="cairo-Patterns.html#cairo-pattern-set-matrix"/>
+ <function name="cairo_pattern_get_matrix ()" link="cairo-Patterns.html#cairo-pattern-get-matrix"/>
+ <function name="enum cairo_pattern_type_t" link="cairo-Patterns.html#cairo-pattern-type-t"/>
+ <function name="cairo_pattern_get_type ()" link="cairo-Patterns.html#cairo-pattern-get-type"/>
+ <function name="cairo_translate ()" link="cairo-Transformations.html#cairo-translate"/>
+ <function name="cairo_scale ()" link="cairo-Transformations.html#cairo-scale"/>
+ <function name="cairo_rotate ()" link="cairo-Transformations.html#cairo-rotate"/>
+ <function name="cairo_transform ()" link="cairo-Transformations.html#cairo-transform"/>
+ <function name="cairo_set_matrix ()" link="cairo-Transformations.html#cairo-set-matrix"/>
+ <function name="cairo_get_matrix ()" link="cairo-Transformations.html#cairo-get-matrix"/>
+ <function name="cairo_identity_matrix ()" link="cairo-Transformations.html#cairo-identity-matrix"/>
+ <function name="cairo_user_to_device ()" link="cairo-Transformations.html#cairo-user-to-device"/>
+ <function name="cairo_user_to_device_distance ()" link="cairo-Transformations.html#cairo-user-to-device-distance"/>
+ <function name="cairo_device_to_user ()" link="cairo-Transformations.html#cairo-device-to-user"/>
+ <function name="cairo_device_to_user_distance ()" link="cairo-Transformations.html#cairo-device-to-user-distance"/>
<function name="cairo_glyph_t" link="cairo-Text.html#cairo-glyph-t"/>
<function name="enum cairo_font_slant_t" link="cairo-Text.html#cairo-font-slant-t"/>
<function name="enum cairo_font_weight_t" link="cairo-Text.html#cairo-font-weight-t"/>
+ <function name="cairo_select_font_face ()" link="cairo-Text.html#cairo-select-font-face"/>
+ <function name="cairo_set_font_size ()" link="cairo-Text.html#cairo-set-font-size"/>
+ <function name="cairo_set_font_matrix ()" link="cairo-Text.html#cairo-set-font-matrix"/>
+ <function name="cairo_get_font_matrix ()" link="cairo-Text.html#cairo-get-font-matrix"/>
+ <function name="cairo_set_font_options ()" link="cairo-Text.html#cairo-set-font-options"/>
+ <function name="cairo_get_font_options ()" link="cairo-Text.html#cairo-get-font-options"/>
+ <function name="cairo_show_text ()" link="cairo-Text.html#cairo-show-text"/>
+ <function name="cairo_show_glyphs ()" link="cairo-Text.html#cairo-show-glyphs"/>
+ <function name="cairo_get_font_face ()" link="cairo-Text.html#cairo-get-font-face"/>
+ <function name="cairo_font_extents ()" link="cairo-Text.html#cairo-font-extents"/>
+ <function name="cairo_set_font_face ()" link="cairo-Text.html#cairo-set-font-face"/>
+ <function name="cairo_set_scaled_font ()" link="cairo-Text.html#cairo-set-scaled-font"/>
+ <function name="cairo_text_extents ()" link="cairo-Text.html#cairo-text-extents"/>
+ <function name="cairo_glyph_extents ()" link="cairo-Text.html#cairo-glyph-extents"/>
<function name="cairo_font_face_t" link="cairo-cairo-font-face-t.html#cairo-font-face-t"/>
+ <function name="cairo_font_face_reference ()" link="cairo-cairo-font-face-t.html#cairo-font-face-reference"/>
+ <function name="cairo_font_face_destroy ()" link="cairo-cairo-font-face-t.html#cairo-font-face-destroy"/>
+ <function name="cairo_font_face_status ()" link="cairo-cairo-font-face-t.html#cairo-font-face-status"/>
+ <function name="cairo_font_face_get_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data"/>
+ <function name="cairo_font_face_set_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data"/>
+ <function name="enum cairo_font_type_t" link="cairo-cairo-font-face-t.html#cairo-font-type-t"/>
+ <function name="cairo_font_face_get_type ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-type"/>
<function name="cairo_scaled_font_t" link="cairo-Scaled-Fonts.html#cairo-scaled-font-t"/>
+ <function name="cairo_scaled_font_create ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-create"/>
+ <function name="cairo_scaled_font_reference ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-reference"/>
+ <function name="cairo_scaled_font_destroy ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-destroy"/>
+ <function name="cairo_scaled_font_status ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-status"/>
<function name="cairo_font_extents_t" link="cairo-Scaled-Fonts.html#cairo-font-extents-t"/>
+ <function name="cairo_scaled_font_extents ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-extents"/>
<function name="cairo_text_extents_t" link="cairo-Scaled-Fonts.html#cairo-text-extents-t"/>
+ <function name="cairo_scaled_font_text_extents ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-text-extents"/>
+ <function name="cairo_scaled_font_glyph_extents ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-glyph-extents"/>
+ <function name="cairo_scaled_font_get_font_face ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-face"/>
+ <function name="cairo_scaled_font_get_font_options ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-options"/>
+ <function name="cairo_scaled_font_get_font_matrix ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-matrix"/>
+ <function name="cairo_scaled_font_get_ctm ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-ctm"/>
+ <function name="cairo_scaled_font_get_type ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-type"/>
<function name="cairo_font_options_t" link="cairo-Font-Options.html#cairo-font-options-t"/>
+ <function name="cairo_font_options_create ()" link="cairo-Font-Options.html#cairo-font-options-create"/>
+ <function name="cairo_font_options_copy ()" link="cairo-Font-Options.html#cairo-font-options-copy"/>
+ <function name="cairo_font_options_destroy ()" link="cairo-Font-Options.html#cairo-font-options-destroy"/>
+ <function name="cairo_font_options_status ()" link="cairo-Font-Options.html#cairo-font-options-status"/>
+ <function name="cairo_font_options_merge ()" link="cairo-Font-Options.html#cairo-font-options-merge"/>
+ <function name="cairo_font_options_hash ()" link="cairo-Font-Options.html#cairo-font-options-hash"/>
+ <function name="cairo_font_options_equal ()" link="cairo-Font-Options.html#cairo-font-options-equal"/>
+ <function name="cairo_font_options_set_antialias ()" link="cairo-Font-Options.html#cairo-font-options-set-antialias"/>
+ <function name="cairo_font_options_get_antialias ()" link="cairo-Font-Options.html#cairo-font-options-get-antialias"/>
<function name="enum cairo_subpixel_order_t" link="cairo-Font-Options.html#cairo-subpixel-order-t"/>
+ <function name="cairo_font_options_set_subpixel_order ()" link="cairo-Font-Options.html#cairo-font-options-set-subpixel-order"/>
+ <function name="cairo_font_options_get_subpixel_order ()" link="cairo-Font-Options.html#cairo-font-options-get-subpixel-order"/>
<function name="enum cairo_hint_style_t" link="cairo-Font-Options.html#cairo-hint-style-t"/>
+ <function name="cairo_font_options_set_hint_style ()" link="cairo-Font-Options.html#cairo-font-options-set-hint-style"/>
+ <function name="cairo_font_options_get_hint_style ()" link="cairo-Font-Options.html#cairo-font-options-get-hint-style"/>
<function name="enum cairo_hint_metrics_t" link="cairo-Font-Options.html#cairo-hint-metrics-t"/>
+ <function name="cairo_font_options_set_hint_metrics ()" link="cairo-Font-Options.html#cairo-font-options-set-hint-metrics"/>
+ <function name="cairo_font_options_get_hint_metrics ()" link="cairo-Font-Options.html#cairo-font-options-get-hint-metrics"/>
+ <function name="cairo_ft_font_face_create_for_ft_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face"/>
+ <function name="cairo_ft_font_face_create_for_pattern ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern"/>
+ <function name="cairo_ft_font_options_substitute ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute"/>
+ <function name="cairo_ft_scaled_font_lock_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face"/>
+ <function name="cairo_ft_scaled_font_unlock_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face"/>
+ <function name="cairo_win32_font_face_create_for_logfontw ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw"/>
+ <function name="cairo_win32_font_face_create_for_hfont ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont"/>
+ <function name="cairo_win32_scaled_font_select_font ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font"/>
+ <function name="cairo_win32_scaled_font_done_font ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font"/>
+ <function name="cairo_win32_scaled_font_get_metrics_factor ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor"/>
<function name="cairo_surface_t" link="cairo-cairo-surface-t.html#cairo-surface-t"/>
<function name="enum cairo_content_t" link="cairo-cairo-surface-t.html#cairo-content-t"/>
+ <function name="cairo_surface_create_similar ()" link="cairo-cairo-surface-t.html#cairo-surface-create-similar"/>
+ <function name="cairo_surface_destroy ()" link="cairo-cairo-surface-t.html#cairo-surface-destroy"/>
+ <function name="cairo_surface_finish ()" link="cairo-cairo-surface-t.html#cairo-surface-finish"/>
+ <function name="cairo_surface_flush ()" link="cairo-cairo-surface-t.html#cairo-surface-flush"/>
+ <function name="cairo_surface_get_font_options ()" link="cairo-cairo-surface-t.html#cairo-surface-get-font-options"/>
+ <function name="cairo_surface_get_content ()" link="cairo-cairo-surface-t.html#cairo-surface-get-content"/>
+ <function name="cairo_surface_set_user_data ()" link="cairo-cairo-surface-t.html#cairo-surface-set-user-data"/>
+ <function name="cairo_surface_get_user_data ()" link="cairo-cairo-surface-t.html#cairo-surface-get-user-data"/>
+ <function name="cairo_surface_mark_dirty ()" link="cairo-cairo-surface-t.html#cairo-surface-mark-dirty"/>
+ <function name="cairo_surface_mark_dirty_rectangle ()" link="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle"/>
+ <function name="cairo_surface_reference ()" link="cairo-cairo-surface-t.html#cairo-surface-reference"/>
+ <function name="cairo_surface_set_device_offset ()" link="cairo-cairo-surface-t.html#cairo-surface-set-device-offset"/>
+ <function name="cairo_surface_get_device_offset ()" link="cairo-cairo-surface-t.html#cairo-surface-get-device-offset"/>
+ <function name="cairo_surface_set_fallback_resolution ()" link="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution"/>
+ <function name="cairo_surface_status ()" link="cairo-cairo-surface-t.html#cairo-surface-status"/>
+ <function name="enum cairo_surface_type_t" link="cairo-cairo-surface-t.html#cairo-surface-type-t"/>
+ <function name="cairo_surface_get_type ()" link="cairo-cairo-surface-t.html#cairo-surface-get-type"/>
<function name="enum cairo_format_t" link="cairo-Image-Surfaces.html#cairo-format-t"/>
- <function name="cairo_pdf_surface_set_dpi" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-dpi"/>
+ <function name="cairo_image_surface_create ()" link="cairo-Image-Surfaces.html#cairo-image-surface-create"/>
+ <function name="cairo_image_surface_create_for_data ()" link="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data"/>
+ <function name="cairo_image_surface_get_data ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-data"/>
+ <function name="cairo_image_surface_get_format ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-format"/>
+ <function name="cairo_image_surface_get_width ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-width"/>
+ <function name="cairo_image_surface_get_height ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-height"/>
+ <function name="cairo_image_surface_get_stride ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-stride"/>
+ <function name="cairo_pdf_surface_create ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-create"/>
+ <function name="cairo_pdf_surface_create_for_stream ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream"/>
+ <function name="cairo_pdf_surface_set_size ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size"/>
+ <function name="cairo_image_surface_create_from_png ()" link="cairo-PNG-Support.html#cairo-image-surface-create-from-png"/>
<function name="cairo_read_func_t ()" link="cairo-PNG-Support.html#cairo-read-func-t"/>
+ <function name="cairo_image_surface_create_from_png_stream ()" link="cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream"/>
+ <function name="cairo_surface_write_to_png ()" link="cairo-PNG-Support.html#cairo-surface-write-to-png"/>
<function name="cairo_write_func_t ()" link="cairo-PNG-Support.html#cairo-write-func-t"/>
- <function name="cairo_ps_surface_set_dpi" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-dpi"/>
- <function name="cairo_svg_surface_set_dpi" link="cairo-SVG-Surfaces.html#cairo-svg-surface-set-dpi"/>
+ <function name="cairo_surface_write_to_png_stream ()" link="cairo-PNG-Support.html#cairo-surface-write-to-png-stream"/>
+ <function name="cairo_ps_surface_create ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-create"/>
+ <function name="cairo_ps_surface_create_for_stream ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream"/>
+ <function name="cairo_ps_surface_set_size ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size"/>
+ <function name="cairo_ps_surface_dsc_begin_setup ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup"/>
+ <function name="cairo_ps_surface_dsc_begin_page_setup ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup"/>
+ <function name="cairo_ps_surface_dsc_comment ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment"/>
+ <function name="cairo_win32_surface_create ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create"/>
+ <function name="cairo_win32_surface_create_with_dib ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib"/>
+ <function name="cairo_win32_surface_get_dc ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc"/>
+ <function name="cairo_svg_surface_create ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-create"/>
+ <function name="cairo_svg_surface_create_for_stream ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream"/>
+ <function name="cairo_svg_surface_restrict_to_version ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version"/>
+ <function name="enum cairo_svg_version_t" link="cairo-SVG-Surfaces.html#cairo-svg-version-t"/>
+ <function name="cairo_svg_get_versions ()" link="cairo-SVG-Surfaces.html#cairo-svg-get-versions"/>
+ <function name="cairo_svg_version_to_string ()" link="cairo-SVG-Surfaces.html#cairo-svg-version-to-string"/>
+ <function name="cairo_xlib_surface_create ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-create"/>
+ <function name="cairo_xlib_surface_create_for_bitmap ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap"/>
+ <function name="cairo_xlib_surface_set_size ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size"/>
+ <function name="cairo_xlib_surface_get_display ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display"/>
+ <function name="cairo_xlib_surface_get_screen ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen"/>
+ <function name="cairo_xlib_surface_set_drawable ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable"/>
+ <function name="cairo_xlib_surface_get_drawable ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable"/>
+ <function name="cairo_xlib_surface_get_visual ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual"/>
+ <function name="cairo_xlib_surface_get_width ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width"/>
+ <function name="cairo_xlib_surface_get_height ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height"/>
+ <function name="cairo_xlib_surface_get_depth ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth"/>
<function name="cairo_matrix_t" link="cairo-cairo-matrix-t.html#cairo-matrix-t"/>
+ <function name="cairo_matrix_init ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init"/>
+ <function name="cairo_matrix_init_identity ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-identity"/>
+ <function name="cairo_matrix_init_translate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-translate"/>
+ <function name="cairo_matrix_init_scale ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-scale"/>
+ <function name="cairo_matrix_init_rotate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-rotate"/>
+ <function name="cairo_matrix_translate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-translate"/>
+ <function name="cairo_matrix_scale ()" link="cairo-cairo-matrix-t.html#cairo-matrix-scale"/>
+ <function name="cairo_matrix_rotate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-rotate"/>
+ <function name="cairo_matrix_invert ()" link="cairo-cairo-matrix-t.html#cairo-matrix-invert"/>
+ <function name="cairo_matrix_multiply ()" link="cairo-cairo-matrix-t.html#cairo-matrix-multiply"/>
+ <function name="cairo_matrix_transform_distance ()" link="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance"/>
+ <function name="cairo_matrix_transform_point ()" link="cairo-cairo-matrix-t.html#cairo-matrix-transform-point"/>
<function name="enum cairo_status_t" link="cairo-Error-handling.html#cairo-status-t"/>
- <function name="Compatibility" link="cairo-Version-Information.html#id2521870"/>
- <function name="Examining the version" link="cairo-Version-Information.html#id2521908"/>
+ <function name="cairo_status_to_string ()" link="cairo-Error-handling.html#cairo-status-to-string"/>
+ <function name="cairo_debug_reset_static_data ()" link="cairo-Error-handling.html#cairo-debug-reset-static-data"/>
+ <function name="Compatibility" link="cairo-Version-Information.html#id2589447"/>
+ <function name="Examining the version" link="cairo-Version-Information.html#id2590714"/>
<function name="CAIRO_VERSION" link="cairo-Version-Information.html#CAIRO-VERSION:CAPS"/>
+ <function name="CAIRO_VERSION_MAJOR" link="cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS"/>
+ <function name="CAIRO_VERSION_MINOR" link="cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS"/>
+ <function name="CAIRO_VERSION_MICRO" link="cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS"/>
+ <function name="CAIRO_VERSION_STRING" link="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS"/>
<function name="CAIRO_VERSION_ENCODE()" link="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"/>
- <function name="cairo_bool_t ()" link="cairo-Types.html#cairo-bool-t"/>
+ <function name="cairo_version ()" link="cairo-Version-Information.html#cairo-version"/>
+ <function name="cairo_version_string ()" link="cairo-Version-Information.html#cairo-version-string"/>
+ <function name="cairo_bool_t" link="cairo-Types.html#cairo-bool-t"/>
<function name="cairo_user_data_key_t" link="cairo-Types.html#cairo-user-data-key-t"/>
<function name="cairo_destroy_func_t ()" link="cairo-Types.html#cairo-destroy-func-t"/>
</functions>
diff --git a/doc/public/html/cairo.devhelp2 b/doc/public/html/cairo.devhelp2
index ee1d5cb..153b6dd 100644
--- a/doc/public/html/cairo.devhelp2
+++ b/doc/public/html/cairo.devhelp2
@@ -21,12 +21,10 @@
<sub name="Surfaces" link="Surfaces.html">
<sub name="cairo_surface_t" link="cairo-cairo-surface-t.html"/>
<sub name="Image Surfaces" link="cairo-Image-Surfaces.html"/>
- <sub name="Glitz Surfaces" link="cairo-Glitz-Surfaces.html"/>
<sub name="PDF Surfaces" link="cairo-PDF-Surfaces.html"/>
<sub name="PNG Support" link="cairo-PNG-Support.html"/>
<sub name="PostScript Surfaces" link="cairo-PostScript-Surfaces.html"/>
<sub name="Win32 Surfaces" link="cairo-Win32-Surfaces.html"/>
- <sub name="BeOS Surfaces" link="cairo-BeOS-Surfaces.html"/>
<sub name="SVG Surfaces" link="cairo-SVG-Surfaces.html"/>
<sub name="XLib Surfaces" link="cairo-XLib-Surfaces.html"/>
</sub>
@@ -53,43 +51,274 @@
</chapters>
<functions>
<keyword type="typedef" name="cairo_t" link="cairo-cairo-t.html#cairo-t"/>
+ <keyword type="function" name="cairo_create ()" link="cairo-cairo-t.html#cairo-create"/>
+ <keyword type="function" name="cairo_reference ()" link="cairo-cairo-t.html#cairo-reference"/>
+ <keyword type="function" name="cairo_destroy ()" link="cairo-cairo-t.html#cairo-destroy"/>
+ <keyword type="function" name="cairo_status ()" link="cairo-cairo-t.html#cairo-status"/>
+ <keyword type="function" name="cairo_save ()" link="cairo-cairo-t.html#cairo-save"/>
+ <keyword type="function" name="cairo_restore ()" link="cairo-cairo-t.html#cairo-restore"/>
+ <keyword type="function" name="cairo_get_target ()" link="cairo-cairo-t.html#cairo-get-target"/>
+ <keyword type="function" name="cairo_push_group ()" link="cairo-cairo-t.html#cairo-push-group" since="1.2"/>
+ <keyword type="function" name="cairo_push_group_with_content ()" link="cairo-cairo-t.html#cairo-push-group-with-content" since="1.2"/>
+ <keyword type="function" name="cairo_pop_group ()" link="cairo-cairo-t.html#cairo-pop-group" since="1.2"/>
+ <keyword type="function" name="cairo_pop_group_to_source ()" link="cairo-cairo-t.html#cairo-pop-group-to-source" since="1.2"/>
+ <keyword type="function" name="cairo_get_group_target ()" link="cairo-cairo-t.html#cairo-get-group-target" since="1.2"/>
+ <keyword type="function" name="cairo_set_source_rgb ()" link="cairo-cairo-t.html#cairo-set-source-rgb"/>
+ <keyword type="function" name="cairo_set_source_rgba ()" link="cairo-cairo-t.html#cairo-set-source-rgba"/>
+ <keyword type="function" name="cairo_set_source ()" link="cairo-cairo-t.html#cairo-set-source"/>
+ <keyword type="function" name="cairo_set_source_surface ()" link="cairo-cairo-t.html#cairo-set-source-surface"/>
+ <keyword type="function" name="cairo_get_source ()" link="cairo-cairo-t.html#cairo-get-source"/>
<keyword type="enum" name="enum cairo_antialias_t" link="cairo-cairo-t.html#cairo-antialias-t"/>
+ <keyword type="function" name="cairo_set_antialias ()" link="cairo-cairo-t.html#cairo-set-antialias"/>
+ <keyword type="function" name="cairo_get_antialias ()" link="cairo-cairo-t.html#cairo-get-antialias"/>
+ <keyword type="function" name="cairo_set_dash ()" link="cairo-cairo-t.html#cairo-set-dash"/>
<keyword type="enum" name="enum cairo_fill_rule_t" link="cairo-cairo-t.html#cairo-fill-rule-t"/>
+ <keyword type="function" name="cairo_set_fill_rule ()" link="cairo-cairo-t.html#cairo-set-fill-rule"/>
+ <keyword type="function" name="cairo_get_fill_rule ()" link="cairo-cairo-t.html#cairo-get-fill-rule"/>
<keyword type="enum" name="enum cairo_line_cap_t" link="cairo-cairo-t.html#cairo-line-cap-t"/>
+ <keyword type="function" name="cairo_set_line_cap ()" link="cairo-cairo-t.html#cairo-set-line-cap"/>
+ <keyword type="function" name="cairo_get_line_cap ()" link="cairo-cairo-t.html#cairo-get-line-cap"/>
<keyword type="enum" name="enum cairo_line_join_t" link="cairo-cairo-t.html#cairo-line-join-t"/>
+ <keyword type="function" name="cairo_set_line_join ()" link="cairo-cairo-t.html#cairo-set-line-join"/>
+ <keyword type="function" name="cairo_get_line_join ()" link="cairo-cairo-t.html#cairo-get-line-join"/>
+ <keyword type="function" name="cairo_set_line_width ()" link="cairo-cairo-t.html#cairo-set-line-width"/>
+ <keyword type="function" name="cairo_get_line_width ()" link="cairo-cairo-t.html#cairo-get-line-width"/>
+ <keyword type="function" name="cairo_set_miter_limit ()" link="cairo-cairo-t.html#cairo-set-miter-limit"/>
+ <keyword type="function" name="cairo_get_miter_limit ()" link="cairo-cairo-t.html#cairo-get-miter-limit"/>
<keyword type="enum" name="enum cairo_operator_t" link="cairo-cairo-t.html#cairo-operator-t"/>
+ <keyword type="function" name="cairo_set_operator ()" link="cairo-cairo-t.html#cairo-set-operator"/>
+ <keyword type="function" name="cairo_get_operator ()" link="cairo-cairo-t.html#cairo-get-operator"/>
+ <keyword type="function" name="cairo_set_tolerance ()" link="cairo-cairo-t.html#cairo-set-tolerance"/>
+ <keyword type="function" name="cairo_get_tolerance ()" link="cairo-cairo-t.html#cairo-get-tolerance"/>
+ <keyword type="function" name="cairo_clip ()" link="cairo-cairo-t.html#cairo-clip"/>
+ <keyword type="function" name="cairo_clip_preserve ()" link="cairo-cairo-t.html#cairo-clip-preserve"/>
+ <keyword type="function" name="cairo_reset_clip ()" link="cairo-cairo-t.html#cairo-reset-clip"/>
+ <keyword type="function" name="cairo_fill ()" link="cairo-cairo-t.html#cairo-fill"/>
+ <keyword type="function" name="cairo_fill_preserve ()" link="cairo-cairo-t.html#cairo-fill-preserve"/>
+ <keyword type="function" name="cairo_fill_extents ()" link="cairo-cairo-t.html#cairo-fill-extents"/>
+ <keyword type="function" name="cairo_in_fill ()" link="cairo-cairo-t.html#cairo-in-fill"/>
+ <keyword type="function" name="cairo_mask ()" link="cairo-cairo-t.html#cairo-mask"/>
+ <keyword type="function" name="cairo_mask_surface ()" link="cairo-cairo-t.html#cairo-mask-surface"/>
+ <keyword type="function" name="cairo_paint ()" link="cairo-cairo-t.html#cairo-paint"/>
+ <keyword type="function" name="cairo_paint_with_alpha ()" link="cairo-cairo-t.html#cairo-paint-with-alpha"/>
+ <keyword type="function" name="cairo_stroke ()" link="cairo-cairo-t.html#cairo-stroke"/>
+ <keyword type="function" name="cairo_stroke_preserve ()" link="cairo-cairo-t.html#cairo-stroke-preserve"/>
+ <keyword type="function" name="cairo_stroke_extents ()" link="cairo-cairo-t.html#cairo-stroke-extents"/>
+ <keyword type="function" name="cairo_in_stroke ()" link="cairo-cairo-t.html#cairo-in-stroke"/>
+ <keyword type="function" name="cairo_copy_page ()" link="cairo-cairo-t.html#cairo-copy-page"/>
+ <keyword type="function" name="cairo_show_page ()" link="cairo-cairo-t.html#cairo-show-page"/>
<keyword type="struct" name="cairo_path_t" link="cairo-Paths.html#cairo-path-t"/>
<keyword type="union" name="union cairo_path_data_t" link="cairo-Paths.html#cairo-path-data-t"/>
<keyword type="enum" name="enum cairo_path_data_type_t" link="cairo-Paths.html#cairo-path-data-type-t"/>
+ <keyword type="function" name="cairo_copy_path ()" link="cairo-Paths.html#cairo-copy-path"/>
+ <keyword type="function" name="cairo_copy_path_flat ()" link="cairo-Paths.html#cairo-copy-path-flat"/>
+ <keyword type="function" name="cairo_path_destroy ()" link="cairo-Paths.html#cairo-path-destroy"/>
+ <keyword type="function" name="cairo_append_path ()" link="cairo-Paths.html#cairo-append-path"/>
+ <keyword type="function" name="cairo_get_current_point ()" link="cairo-Paths.html#cairo-get-current-point"/>
+ <keyword type="function" name="cairo_new_path ()" link="cairo-Paths.html#cairo-new-path"/>
+ <keyword type="function" name="cairo_new_sub_path ()" link="cairo-Paths.html#cairo-new-sub-path" since="1.2"/>
+ <keyword type="function" name="cairo_close_path ()" link="cairo-Paths.html#cairo-close-path"/>
+ <keyword type="function" name="cairo_arc ()" link="cairo-Paths.html#cairo-arc"/>
+ <keyword type="function" name="cairo_arc_negative ()" link="cairo-Paths.html#cairo-arc-negative"/>
+ <keyword type="function" name="cairo_curve_to ()" link="cairo-Paths.html#cairo-curve-to"/>
+ <keyword type="function" name="cairo_line_to ()" link="cairo-Paths.html#cairo-line-to"/>
+ <keyword type="function" name="cairo_move_to ()" link="cairo-Paths.html#cairo-move-to"/>
+ <keyword type="function" name="cairo_rectangle ()" link="cairo-Paths.html#cairo-rectangle"/>
+ <keyword type="function" name="cairo_glyph_path ()" link="cairo-Paths.html#cairo-glyph-path"/>
+ <keyword type="function" name="cairo_text_path ()" link="cairo-Paths.html#cairo-text-path"/>
+ <keyword type="function" name="cairo_rel_curve_to ()" link="cairo-Paths.html#cairo-rel-curve-to"/>
+ <keyword type="function" name="cairo_rel_line_to ()" link="cairo-Paths.html#cairo-rel-line-to"/>
+ <keyword type="function" name="cairo_rel_move_to ()" link="cairo-Paths.html#cairo-rel-move-to"/>
<keyword type="typedef" name="cairo_pattern_t" link="cairo-Patterns.html#cairo-pattern-t"/>
+ <keyword type="function" name="cairo_pattern_add_color_stop_rgb ()" link="cairo-Patterns.html#cairo-pattern-add-color-stop-rgb"/>
+ <keyword type="function" name="cairo_pattern_add_color_stop_rgba ()" link="cairo-Patterns.html#cairo-pattern-add-color-stop-rgba"/>
+ <keyword type="function" name="cairo_pattern_create_rgb ()" link="cairo-Patterns.html#cairo-pattern-create-rgb"/>
+ <keyword type="function" name="cairo_pattern_create_rgba ()" link="cairo-Patterns.html#cairo-pattern-create-rgba"/>
+ <keyword type="function" name="cairo_pattern_create_for_surface ()" link="cairo-Patterns.html#cairo-pattern-create-for-surface"/>
+ <keyword type="function" name="cairo_pattern_create_linear ()" link="cairo-Patterns.html#cairo-pattern-create-linear"/>
+ <keyword type="function" name="cairo_pattern_create_radial ()" link="cairo-Patterns.html#cairo-pattern-create-radial"/>
+ <keyword type="function" name="cairo_pattern_destroy ()" link="cairo-Patterns.html#cairo-pattern-destroy"/>
+ <keyword type="function" name="cairo_pattern_reference ()" link="cairo-Patterns.html#cairo-pattern-reference"/>
+ <keyword type="function" name="cairo_pattern_status ()" link="cairo-Patterns.html#cairo-pattern-status"/>
<keyword type="enum" name="enum cairo_extend_t" link="cairo-Patterns.html#cairo-extend-t"/>
+ <keyword type="function" name="cairo_pattern_set_extend ()" link="cairo-Patterns.html#cairo-pattern-set-extend"/>
+ <keyword type="function" name="cairo_pattern_get_extend ()" link="cairo-Patterns.html#cairo-pattern-get-extend"/>
<keyword type="enum" name="enum cairo_filter_t" link="cairo-Patterns.html#cairo-filter-t"/>
+ <keyword type="function" name="cairo_pattern_set_filter ()" link="cairo-Patterns.html#cairo-pattern-set-filter"/>
+ <keyword type="function" name="cairo_pattern_get_filter ()" link="cairo-Patterns.html#cairo-pattern-get-filter"/>
+ <keyword type="function" name="cairo_pattern_set_matrix ()" link="cairo-Patterns.html#cairo-pattern-set-matrix"/>
+ <keyword type="function" name="cairo_pattern_get_matrix ()" link="cairo-Patterns.html#cairo-pattern-get-matrix"/>
+ <keyword type="enum" name="enum cairo_pattern_type_t" link="cairo-Patterns.html#cairo-pattern-type-t" since="1.2"/>
+ <keyword type="function" name="cairo_pattern_get_type ()" link="cairo-Patterns.html#cairo-pattern-get-type" since="1.2"/>
+ <keyword type="function" name="cairo_translate ()" link="cairo-Transformations.html#cairo-translate"/>
+ <keyword type="function" name="cairo_scale ()" link="cairo-Transformations.html#cairo-scale"/>
+ <keyword type="function" name="cairo_rotate ()" link="cairo-Transformations.html#cairo-rotate"/>
+ <keyword type="function" name="cairo_transform ()" link="cairo-Transformations.html#cairo-transform"/>
+ <keyword type="function" name="cairo_set_matrix ()" link="cairo-Transformations.html#cairo-set-matrix"/>
+ <keyword type="function" name="cairo_get_matrix ()" link="cairo-Transformations.html#cairo-get-matrix"/>
+ <keyword type="function" name="cairo_identity_matrix ()" link="cairo-Transformations.html#cairo-identity-matrix"/>
+ <keyword type="function" name="cairo_user_to_device ()" link="cairo-Transformations.html#cairo-user-to-device"/>
+ <keyword type="function" name="cairo_user_to_device_distance ()" link="cairo-Transformations.html#cairo-user-to-device-distance"/>
+ <keyword type="function" name="cairo_device_to_user ()" link="cairo-Transformations.html#cairo-device-to-user"/>
+ <keyword type="function" name="cairo_device_to_user_distance ()" link="cairo-Transformations.html#cairo-device-to-user-distance"/>
<keyword type="struct" name="cairo_glyph_t" link="cairo-Text.html#cairo-glyph-t"/>
<keyword type="enum" name="enum cairo_font_slant_t" link="cairo-Text.html#cairo-font-slant-t"/>
<keyword type="enum" name="enum cairo_font_weight_t" link="cairo-Text.html#cairo-font-weight-t"/>
+ <keyword type="function" name="cairo_select_font_face ()" link="cairo-Text.html#cairo-select-font-face"/>
+ <keyword type="function" name="cairo_set_font_size ()" link="cairo-Text.html#cairo-set-font-size"/>
+ <keyword type="function" name="cairo_set_font_matrix ()" link="cairo-Text.html#cairo-set-font-matrix"/>
+ <keyword type="function" name="cairo_get_font_matrix ()" link="cairo-Text.html#cairo-get-font-matrix"/>
+ <keyword type="function" name="cairo_set_font_options ()" link="cairo-Text.html#cairo-set-font-options"/>
+ <keyword type="function" name="cairo_get_font_options ()" link="cairo-Text.html#cairo-get-font-options"/>
+ <keyword type="function" name="cairo_show_text ()" link="cairo-Text.html#cairo-show-text"/>
+ <keyword type="function" name="cairo_show_glyphs ()" link="cairo-Text.html#cairo-show-glyphs"/>
+ <keyword type="function" name="cairo_get_font_face ()" link="cairo-Text.html#cairo-get-font-face"/>
+ <keyword type="function" name="cairo_font_extents ()" link="cairo-Text.html#cairo-font-extents"/>
+ <keyword type="function" name="cairo_set_font_face ()" link="cairo-Text.html#cairo-set-font-face"/>
+ <keyword type="function" name="cairo_set_scaled_font ()" link="cairo-Text.html#cairo-set-scaled-font" since="1.2"/>
+ <keyword type="function" name="cairo_text_extents ()" link="cairo-Text.html#cairo-text-extents"/>
+ <keyword type="function" name="cairo_glyph_extents ()" link="cairo-Text.html#cairo-glyph-extents"/>
<keyword type="typedef" name="cairo_font_face_t" link="cairo-cairo-font-face-t.html#cairo-font-face-t"/>
+ <keyword type="function" name="cairo_font_face_reference ()" link="cairo-cairo-font-face-t.html#cairo-font-face-reference"/>
+ <keyword type="function" name="cairo_font_face_destroy ()" link="cairo-cairo-font-face-t.html#cairo-font-face-destroy"/>
+ <keyword type="function" name="cairo_font_face_status ()" link="cairo-cairo-font-face-t.html#cairo-font-face-status"/>
+ <keyword type="function" name="cairo_font_face_get_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data"/>
+ <keyword type="function" name="cairo_font_face_set_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data"/>
+ <keyword type="enum" name="enum cairo_font_type_t" link="cairo-cairo-font-face-t.html#cairo-font-type-t" since="1.2"/>
+ <keyword type="function" name="cairo_font_face_get_type ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-type" since="1.2"/>
<keyword type="typedef" name="cairo_scaled_font_t" link="cairo-Scaled-Fonts.html#cairo-scaled-font-t"/>
+ <keyword type="function" name="cairo_scaled_font_create ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-create"/>
+ <keyword type="function" name="cairo_scaled_font_reference ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-reference"/>
+ <keyword type="function" name="cairo_scaled_font_destroy ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-destroy"/>
+ <keyword type="function" name="cairo_scaled_font_status ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-status"/>
<keyword type="struct" name="cairo_font_extents_t" link="cairo-Scaled-Fonts.html#cairo-font-extents-t"/>
+ <keyword type="function" name="cairo_scaled_font_extents ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-extents"/>
<keyword type="struct" name="cairo_text_extents_t" link="cairo-Scaled-Fonts.html#cairo-text-extents-t"/>
+ <keyword type="function" name="cairo_scaled_font_text_extents ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-text-extents" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_glyph_extents ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-glyph-extents"/>
+ <keyword type="function" name="cairo_scaled_font_get_font_face ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-face" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_font_options ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-options" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_font_matrix ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-matrix" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_ctm ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-ctm" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_type ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-type" since="1.2"/>
<keyword type="typedef" name="cairo_font_options_t" link="cairo-Font-Options.html#cairo-font-options-t"/>
+ <keyword type="function" name="cairo_font_options_create ()" link="cairo-Font-Options.html#cairo-font-options-create"/>
+ <keyword type="function" name="cairo_font_options_copy ()" link="cairo-Font-Options.html#cairo-font-options-copy"/>
+ <keyword type="function" name="cairo_font_options_destroy ()" link="cairo-Font-Options.html#cairo-font-options-destroy"/>
+ <keyword type="function" name="cairo_font_options_status ()" link="cairo-Font-Options.html#cairo-font-options-status"/>
+ <keyword type="function" name="cairo_font_options_merge ()" link="cairo-Font-Options.html#cairo-font-options-merge"/>
+ <keyword type="function" name="cairo_font_options_hash ()" link="cairo-Font-Options.html#cairo-font-options-hash"/>
+ <keyword type="function" name="cairo_font_options_equal ()" link="cairo-Font-Options.html#cairo-font-options-equal"/>
+ <keyword type="function" name="cairo_font_options_set_antialias ()" link="cairo-Font-Options.html#cairo-font-options-set-antialias"/>
+ <keyword type="function" name="cairo_font_options_get_antialias ()" link="cairo-Font-Options.html#cairo-font-options-get-antialias"/>
<keyword type="enum" name="enum cairo_subpixel_order_t" link="cairo-Font-Options.html#cairo-subpixel-order-t"/>
+ <keyword type="function" name="cairo_font_options_set_subpixel_order ()" link="cairo-Font-Options.html#cairo-font-options-set-subpixel-order"/>
+ <keyword type="function" name="cairo_font_options_get_subpixel_order ()" link="cairo-Font-Options.html#cairo-font-options-get-subpixel-order"/>
<keyword type="enum" name="enum cairo_hint_style_t" link="cairo-Font-Options.html#cairo-hint-style-t"/>
+ <keyword type="function" name="cairo_font_options_set_hint_style ()" link="cairo-Font-Options.html#cairo-font-options-set-hint-style"/>
+ <keyword type="function" name="cairo_font_options_get_hint_style ()" link="cairo-Font-Options.html#cairo-font-options-get-hint-style"/>
<keyword type="enum" name="enum cairo_hint_metrics_t" link="cairo-Font-Options.html#cairo-hint-metrics-t"/>
+ <keyword type="function" name="cairo_font_options_set_hint_metrics ()" link="cairo-Font-Options.html#cairo-font-options-set-hint-metrics"/>
+ <keyword type="function" name="cairo_font_options_get_hint_metrics ()" link="cairo-Font-Options.html#cairo-font-options-get-hint-metrics"/>
+ <keyword type="function" name="cairo_ft_font_face_create_for_ft_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face"/>
+ <keyword type="function" name="cairo_ft_font_face_create_for_pattern ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern"/>
+ <keyword type="function" name="cairo_ft_font_options_substitute ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute"/>
+ <keyword type="function" name="cairo_ft_scaled_font_lock_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face"/>
+ <keyword type="function" name="cairo_ft_scaled_font_unlock_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face"/>
+ <keyword type="function" name="cairo_win32_font_face_create_for_logfontw ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw"/>
+ <keyword type="function" name="cairo_win32_font_face_create_for_hfont ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont"/>
+ <keyword type="function" name="cairo_win32_scaled_font_select_font ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font"/>
+ <keyword type="function" name="cairo_win32_scaled_font_done_font ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font"/>
+ <keyword type="function" name="cairo_win32_scaled_font_get_metrics_factor ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor"/>
<keyword type="typedef" name="cairo_surface_t" link="cairo-cairo-surface-t.html#cairo-surface-t"/>
<keyword type="enum" name="enum cairo_content_t" link="cairo-cairo-surface-t.html#cairo-content-t"/>
+ <keyword type="function" name="cairo_surface_create_similar ()" link="cairo-cairo-surface-t.html#cairo-surface-create-similar"/>
+ <keyword type="function" name="cairo_surface_destroy ()" link="cairo-cairo-surface-t.html#cairo-surface-destroy"/>
+ <keyword type="function" name="cairo_surface_finish ()" link="cairo-cairo-surface-t.html#cairo-surface-finish"/>
+ <keyword type="function" name="cairo_surface_flush ()" link="cairo-cairo-surface-t.html#cairo-surface-flush"/>
+ <keyword type="function" name="cairo_surface_get_font_options ()" link="cairo-cairo-surface-t.html#cairo-surface-get-font-options"/>
+ <keyword type="function" name="cairo_surface_get_content ()" link="cairo-cairo-surface-t.html#cairo-surface-get-content" since="1.2"/>
+ <keyword type="function" name="cairo_surface_set_user_data ()" link="cairo-cairo-surface-t.html#cairo-surface-set-user-data"/>
+ <keyword type="function" name="cairo_surface_get_user_data ()" link="cairo-cairo-surface-t.html#cairo-surface-get-user-data"/>
+ <keyword type="function" name="cairo_surface_mark_dirty ()" link="cairo-cairo-surface-t.html#cairo-surface-mark-dirty"/>
+ <keyword type="function" name="cairo_surface_mark_dirty_rectangle ()" link="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle"/>
+ <keyword type="function" name="cairo_surface_reference ()" link="cairo-cairo-surface-t.html#cairo-surface-reference"/>
+ <keyword type="function" name="cairo_surface_set_device_offset ()" link="cairo-cairo-surface-t.html#cairo-surface-set-device-offset"/>
+ <keyword type="function" name="cairo_surface_get_device_offset ()" link="cairo-cairo-surface-t.html#cairo-surface-get-device-offset" since="1.2"/>
+ <keyword type="function" name="cairo_surface_set_fallback_resolution ()" link="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution" since="1.2"/>
+ <keyword type="function" name="cairo_surface_status ()" link="cairo-cairo-surface-t.html#cairo-surface-status"/>
+ <keyword type="enum" name="enum cairo_surface_type_t" link="cairo-cairo-surface-t.html#cairo-surface-type-t" since="1.2"/>
+ <keyword type="function" name="cairo_surface_get_type ()" link="cairo-cairo-surface-t.html#cairo-surface-get-type" since="1.2"/>
<keyword type="enum" name="enum cairo_format_t" link="cairo-Image-Surfaces.html#cairo-format-t"/>
- <keyword type="macro" name="cairo_pdf_surface_set_dpi" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-dpi"/>
+ <keyword type="function" name="cairo_image_surface_create ()" link="cairo-Image-Surfaces.html#cairo-image-surface-create"/>
+ <keyword type="function" name="cairo_image_surface_create_for_data ()" link="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data"/>
+ <keyword type="function" name="cairo_image_surface_get_data ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-data" since="1.2"/>
+ <keyword type="function" name="cairo_image_surface_get_format ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-format" since="1.2"/>
+ <keyword type="function" name="cairo_image_surface_get_width ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-width"/>
+ <keyword type="function" name="cairo_image_surface_get_height ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-height"/>
+ <keyword type="function" name="cairo_image_surface_get_stride ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-stride" since="1.2"/>
+ <keyword type="function" name="cairo_pdf_surface_create ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-create" since="1.2"/>
+ <keyword type="function" name="cairo_pdf_surface_create_for_stream ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream" since="1.2"/>
+ <keyword type="function" name="cairo_pdf_surface_set_size ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size" since="1.2"/>
+ <keyword type="function" name="cairo_image_surface_create_from_png ()" link="cairo-PNG-Support.html#cairo-image-surface-create-from-png"/>
<keyword type="function" name="cairo_read_func_t ()" link="cairo-PNG-Support.html#cairo-read-func-t"/>
+ <keyword type="function" name="cairo_image_surface_create_from_png_stream ()" link="cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream"/>
+ <keyword type="function" name="cairo_surface_write_to_png ()" link="cairo-PNG-Support.html#cairo-surface-write-to-png"/>
<keyword type="function" name="cairo_write_func_t ()" link="cairo-PNG-Support.html#cairo-write-func-t"/>
- <keyword type="macro" name="cairo_ps_surface_set_dpi" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-dpi"/>
- <keyword type="macro" name="cairo_svg_surface_set_dpi" link="cairo-SVG-Surfaces.html#cairo-svg-surface-set-dpi"/>
+ <keyword type="function" name="cairo_surface_write_to_png_stream ()" link="cairo-PNG-Support.html#cairo-surface-write-to-png-stream"/>
+ <keyword type="function" name="cairo_ps_surface_create ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-create" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_create_for_stream ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_set_size ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_dsc_begin_setup ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_dsc_begin_page_setup ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_dsc_comment ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment" since="1.2"/>
+ <keyword type="function" name="cairo_win32_surface_create ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create"/>
+ <keyword type="function" name="cairo_win32_surface_create_with_dib ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib" since="1.2"/>
+ <keyword type="function" name="cairo_win32_surface_get_dc ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc" since="1.2"/>
+ <keyword type="function" name="cairo_svg_surface_create ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-create" since="1.2"/>
+ <keyword type="function" name="cairo_svg_surface_create_for_stream ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream" since="1.2"/>
+ <keyword type="function" name="cairo_svg_surface_restrict_to_version ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version" since="1.2"/>
+ <keyword type="enum" name="enum cairo_svg_version_t" link="cairo-SVG-Surfaces.html#cairo-svg-version-t"/>
+ <keyword type="function" name="cairo_svg_get_versions ()" link="cairo-SVG-Surfaces.html#cairo-svg-get-versions" since="1.2"/>
+ <keyword type="function" name="cairo_svg_version_to_string ()" link="cairo-SVG-Surfaces.html#cairo-svg-version-to-string" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_create ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-create"/>
+ <keyword type="function" name="cairo_xlib_surface_create_for_bitmap ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap"/>
+ <keyword type="function" name="cairo_xlib_surface_set_size ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size"/>
+ <keyword type="function" name="cairo_xlib_surface_get_display ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_screen ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_set_drawable ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable"/>
+ <keyword type="function" name="cairo_xlib_surface_get_drawable ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_visual ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_width ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_height ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_depth ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth" since="1.2"/>
<keyword type="struct" name="cairo_matrix_t" link="cairo-cairo-matrix-t.html#cairo-matrix-t"/>
+ <keyword type="function" name="cairo_matrix_init ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init"/>
+ <keyword type="function" name="cairo_matrix_init_identity ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-identity"/>
+ <keyword type="function" name="cairo_matrix_init_translate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-translate"/>
+ <keyword type="function" name="cairo_matrix_init_scale ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-scale"/>
+ <keyword type="function" name="cairo_matrix_init_rotate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-rotate"/>
+ <keyword type="function" name="cairo_matrix_translate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-translate"/>
+ <keyword type="function" name="cairo_matrix_scale ()" link="cairo-cairo-matrix-t.html#cairo-matrix-scale"/>
+ <keyword type="function" name="cairo_matrix_rotate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-rotate"/>
+ <keyword type="function" name="cairo_matrix_invert ()" link="cairo-cairo-matrix-t.html#cairo-matrix-invert"/>
+ <keyword type="function" name="cairo_matrix_multiply ()" link="cairo-cairo-matrix-t.html#cairo-matrix-multiply"/>
+ <keyword type="function" name="cairo_matrix_transform_distance ()" link="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance"/>
+ <keyword type="function" name="cairo_matrix_transform_point ()" link="cairo-cairo-matrix-t.html#cairo-matrix-transform-point"/>
<keyword type="enum" name="enum cairo_status_t" link="cairo-Error-handling.html#cairo-status-t"/>
- <keyword type="" name="Compatibility" link="cairo-Version-Information.html#id2521870"/>
- <keyword type="" name="Examining the version" link="cairo-Version-Information.html#id2521908"/>
+ <keyword type="function" name="cairo_status_to_string ()" link="cairo-Error-handling.html#cairo-status-to-string"/>
+ <keyword type="function" name="cairo_debug_reset_static_data ()" link="cairo-Error-handling.html#cairo-debug-reset-static-data"/>
+ <keyword type="" name="Compatibility" link="cairo-Version-Information.html#id2589447"/>
+ <keyword type="" name="Examining the version" link="cairo-Version-Information.html#id2590714"/>
<keyword type="macro" name="CAIRO_VERSION" link="cairo-Version-Information.html#CAIRO-VERSION:CAPS"/>
+ <keyword type="macro" name="CAIRO_VERSION_MAJOR" link="cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS"/>
+ <keyword type="macro" name="CAIRO_VERSION_MINOR" link="cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS"/>
+ <keyword type="macro" name="CAIRO_VERSION_MICRO" link="cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS"/>
+ <keyword type="macro" name="CAIRO_VERSION_STRING" link="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS"/>
<keyword type="macro" name="CAIRO_VERSION_ENCODE()" link="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"/>
- <keyword type="function" name="cairo_bool_t ()" link="cairo-Types.html#cairo-bool-t"/>
+ <keyword type="function" name="cairo_version ()" link="cairo-Version-Information.html#cairo-version"/>
+ <keyword type="function" name="cairo_version_string ()" link="cairo-Version-Information.html#cairo-version-string"/>
+ <keyword type="typedef" name="cairo_bool_t" link="cairo-Types.html#cairo-bool-t"/>
<keyword type="struct" name="cairo_user_data_key_t" link="cairo-Types.html#cairo-user-data-key-t"/>
<keyword type="function" name="cairo_destroy_func_t ()" link="cairo-Types.html#cairo-destroy-func-t"/>
</functions>
diff --git a/doc/public/html/index.html b/doc/public/html/index.html
index d4e759d..c254691 100644
--- a/doc/public/html/index.html
+++ b/doc/public/html/index.html
@@ -21,7 +21,7 @@
<div class="titlepage">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Cairo: A Vector Graphics Library</p></th></tr></table></div>
-<div><p class="releaseinfo">for Cairo 1.1.9
+<div><p class="releaseinfo">for Cairo 1.2.0
</p></div>
</div>
<hr>
@@ -77,9 +77,6 @@
<span class="refentrytitle"><a href="cairo-Image-Surfaces.html">Image Surfaces</a></span><span class="refpurpose"> - Rendering to memory buffers</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="cairo-Glitz-Surfaces.html">Glitz Surfaces</a></span><span class="refpurpose"> - OpenGL accelerated rendering using the Glitz library</span>
-</dt>
-<dt>
<span class="refentrytitle"><a href="cairo-PDF-Surfaces.html">PDF Surfaces</a></span><span class="refpurpose"> - Rendering PDF documents</span>
</dt>
<dt>
@@ -92,9 +89,6 @@
<span class="refentrytitle"><a href="cairo-Win32-Surfaces.html">Win32 Surfaces</a></span><span class="refpurpose"> - Microsoft Windows surface support</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="cairo-BeOS-Surfaces.html">BeOS Surfaces</a></span><span class="refpurpose"> - BeOS surface support</span>
-</dt>
-<dt>
<span class="refentrytitle"><a href="cairo-SVG-Surfaces.html">SVG Surfaces</a></span><span class="refpurpose"> - Rendering SVG documents</span>
</dt>
<dt>
diff --git a/doc/public/html/index.sgml b/doc/public/html/index.sgml
index a20ccbc..4a2874d 100644
--- a/doc/public/html/index.sgml
+++ b/doc/public/html/index.sgml
@@ -1,68 +1,242 @@
<ANCHOR id="cairo-cairo-t" href="cairo/cairo-cairo-t.html">
<ANCHOR id="cairo-t" href="cairo/cairo-cairo-t.html#cairo-t">
+<ANCHOR id="cairo-create" href="cairo/cairo-cairo-t.html#cairo-create">
+<ANCHOR id="cairo-reference" href="cairo/cairo-cairo-t.html#cairo-reference">
+<ANCHOR id="cairo-destroy" href="cairo/cairo-cairo-t.html#cairo-destroy">
+<ANCHOR id="cairo-status" href="cairo/cairo-cairo-t.html#cairo-status">
+<ANCHOR id="cairo-save" href="cairo/cairo-cairo-t.html#cairo-save">
+<ANCHOR id="cairo-restore" href="cairo/cairo-cairo-t.html#cairo-restore">
+<ANCHOR id="cairo-get-target" href="cairo/cairo-cairo-t.html#cairo-get-target">
+<ANCHOR id="cairo-push-group" href="cairo/cairo-cairo-t.html#cairo-push-group">
+<ANCHOR id="cairo-push-group-with-content" href="cairo/cairo-cairo-t.html#cairo-push-group-with-content">
+<ANCHOR id="cairo-pop-group" href="cairo/cairo-cairo-t.html#cairo-pop-group">
+<ANCHOR id="cairo-pop-group-to-source" href="cairo/cairo-cairo-t.html#cairo-pop-group-to-source">
+<ANCHOR id="cairo-get-group-target" href="cairo/cairo-cairo-t.html#cairo-get-group-target">
+<ANCHOR id="cairo-set-source-rgb" href="cairo/cairo-cairo-t.html#cairo-set-source-rgb">
+<ANCHOR id="cairo-set-source-rgba" href="cairo/cairo-cairo-t.html#cairo-set-source-rgba">
+<ANCHOR id="cairo-set-source" href="cairo/cairo-cairo-t.html#cairo-set-source">
+<ANCHOR id="cairo-set-source-surface" href="cairo/cairo-cairo-t.html#cairo-set-source-surface">
+<ANCHOR id="cairo-get-source" href="cairo/cairo-cairo-t.html#cairo-get-source">
<ANCHOR id="cairo-antialias-t" href="cairo/cairo-cairo-t.html#cairo-antialias-t">
<ANCHOR id="CAIRO-ANTIALIAS-DEFAULT:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-ANTIALIAS-DEFAULT:CAPS">
<ANCHOR id="CAIRO-ANTIALIAS-NONE:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-ANTIALIAS-NONE:CAPS">
<ANCHOR id="CAIRO-ANTIALIAS-GRAY:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-ANTIALIAS-GRAY:CAPS">
<ANCHOR id="CAIRO-ANTIALIAS-SUBPIXEL:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-ANTIALIAS-SUBPIXEL:CAPS">
+<ANCHOR id="cairo-set-antialias" href="cairo/cairo-cairo-t.html#cairo-set-antialias">
+<ANCHOR id="cairo-get-antialias" href="cairo/cairo-cairo-t.html#cairo-get-antialias">
+<ANCHOR id="cairo-set-dash" href="cairo/cairo-cairo-t.html#cairo-set-dash">
<ANCHOR id="cairo-fill-rule-t" href="cairo/cairo-cairo-t.html#cairo-fill-rule-t">
<ANCHOR id="CAIRO-FILL-RULE-WINDING:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-FILL-RULE-WINDING:CAPS">
<ANCHOR id="CAIRO-FILL-RULE-EVEN-ODD:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-FILL-RULE-EVEN-ODD:CAPS">
+<ANCHOR id="cairo-set-fill-rule" href="cairo/cairo-cairo-t.html#cairo-set-fill-rule">
+<ANCHOR id="cairo-get-fill-rule" href="cairo/cairo-cairo-t.html#cairo-get-fill-rule">
<ANCHOR id="cairo-line-cap-t" href="cairo/cairo-cairo-t.html#cairo-line-cap-t">
<ANCHOR id="CAIRO-LINE-CAP-BUTT:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-LINE-CAP-BUTT:CAPS">
<ANCHOR id="CAIRO-LINE-CAP-ROUND:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS">
<ANCHOR id="CAIRO-LINE-CAP-SQUARE:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS">
+<ANCHOR id="cairo-set-line-cap" href="cairo/cairo-cairo-t.html#cairo-set-line-cap">
+<ANCHOR id="cairo-get-line-cap" href="cairo/cairo-cairo-t.html#cairo-get-line-cap">
<ANCHOR id="cairo-line-join-t" href="cairo/cairo-cairo-t.html#cairo-line-join-t">
+<ANCHOR id="cairo-set-line-join" href="cairo/cairo-cairo-t.html#cairo-set-line-join">
+<ANCHOR id="cairo-get-line-join" href="cairo/cairo-cairo-t.html#cairo-get-line-join">
+<ANCHOR id="cairo-set-line-width" href="cairo/cairo-cairo-t.html#cairo-set-line-width">
+<ANCHOR id="cairo-get-line-width" href="cairo/cairo-cairo-t.html#cairo-get-line-width">
+<ANCHOR id="cairo-set-miter-limit" href="cairo/cairo-cairo-t.html#cairo-set-miter-limit">
+<ANCHOR id="cairo-get-miter-limit" href="cairo/cairo-cairo-t.html#cairo-get-miter-limit">
<ANCHOR id="cairo-operator-t" href="cairo/cairo-cairo-t.html#cairo-operator-t">
+<ANCHOR id="cairo-set-operator" href="cairo/cairo-cairo-t.html#cairo-set-operator">
+<ANCHOR id="cairo-get-operator" href="cairo/cairo-cairo-t.html#cairo-get-operator">
+<ANCHOR id="cairo-set-tolerance" href="cairo/cairo-cairo-t.html#cairo-set-tolerance">
+<ANCHOR id="cairo-get-tolerance" href="cairo/cairo-cairo-t.html#cairo-get-tolerance">
+<ANCHOR id="cairo-clip" href="cairo/cairo-cairo-t.html#cairo-clip">
+<ANCHOR id="cairo-clip-preserve" href="cairo/cairo-cairo-t.html#cairo-clip-preserve">
+<ANCHOR id="cairo-reset-clip" href="cairo/cairo-cairo-t.html#cairo-reset-clip">
+<ANCHOR id="cairo-fill" href="cairo/cairo-cairo-t.html#cairo-fill">
+<ANCHOR id="cairo-fill-preserve" href="cairo/cairo-cairo-t.html#cairo-fill-preserve">
+<ANCHOR id="cairo-fill-extents" href="cairo/cairo-cairo-t.html#cairo-fill-extents">
+<ANCHOR id="cairo-in-fill" href="cairo/cairo-cairo-t.html#cairo-in-fill">
+<ANCHOR id="cairo-mask" href="cairo/cairo-cairo-t.html#cairo-mask">
+<ANCHOR id="cairo-mask-surface" href="cairo/cairo-cairo-t.html#cairo-mask-surface">
+<ANCHOR id="cairo-paint" href="cairo/cairo-cairo-t.html#cairo-paint">
+<ANCHOR id="cairo-paint-with-alpha" href="cairo/cairo-cairo-t.html#cairo-paint-with-alpha">
+<ANCHOR id="cairo-stroke" href="cairo/cairo-cairo-t.html#cairo-stroke">
+<ANCHOR id="cairo-stroke-preserve" href="cairo/cairo-cairo-t.html#cairo-stroke-preserve">
+<ANCHOR id="cairo-stroke-extents" href="cairo/cairo-cairo-t.html#cairo-stroke-extents">
+<ANCHOR id="cairo-in-stroke" href="cairo/cairo-cairo-t.html#cairo-in-stroke">
+<ANCHOR id="cairo-copy-page" href="cairo/cairo-cairo-t.html#cairo-copy-page">
+<ANCHOR id="cairo-show-page" href="cairo/cairo-cairo-t.html#cairo-show-page">
<ANCHOR id="cairo-Paths" href="cairo/cairo-Paths.html">
<ANCHOR id="cairo-path-t" href="cairo/cairo-Paths.html#cairo-path-t">
<ANCHOR id="cairo-path-data-t" href="cairo/cairo-Paths.html#cairo-path-data-t">
<ANCHOR id="cairo-path-data-type-t" href="cairo/cairo-Paths.html#cairo-path-data-type-t">
+<ANCHOR id="cairo-copy-path" href="cairo/cairo-Paths.html#cairo-copy-path">
+<ANCHOR id="cairo-copy-path-flat" href="cairo/cairo-Paths.html#cairo-copy-path-flat">
+<ANCHOR id="cairo-path-destroy" href="cairo/cairo-Paths.html#cairo-path-destroy">
+<ANCHOR id="cairo-append-path" href="cairo/cairo-Paths.html#cairo-append-path">
+<ANCHOR id="cairo-get-current-point" href="cairo/cairo-Paths.html#cairo-get-current-point">
+<ANCHOR id="cairo-new-path" href="cairo/cairo-Paths.html#cairo-new-path">
+<ANCHOR id="cairo-new-sub-path" href="cairo/cairo-Paths.html#cairo-new-sub-path">
+<ANCHOR id="cairo-close-path" href="cairo/cairo-Paths.html#cairo-close-path">
+<ANCHOR id="cairo-arc" href="cairo/cairo-Paths.html#cairo-arc">
+<ANCHOR id="cairo-arc-negative" href="cairo/cairo-Paths.html#cairo-arc-negative">
+<ANCHOR id="cairo-curve-to" href="cairo/cairo-Paths.html#cairo-curve-to">
+<ANCHOR id="cairo-line-to" href="cairo/cairo-Paths.html#cairo-line-to">
+<ANCHOR id="cairo-move-to" href="cairo/cairo-Paths.html#cairo-move-to">
+<ANCHOR id="cairo-rectangle" href="cairo/cairo-Paths.html#cairo-rectangle">
+<ANCHOR id="cairo-glyph-path" href="cairo/cairo-Paths.html#cairo-glyph-path">
+<ANCHOR id="cairo-text-path" href="cairo/cairo-Paths.html#cairo-text-path">
+<ANCHOR id="cairo-rel-curve-to" href="cairo/cairo-Paths.html#cairo-rel-curve-to">
+<ANCHOR id="cairo-rel-line-to" href="cairo/cairo-Paths.html#cairo-rel-line-to">
+<ANCHOR id="cairo-rel-move-to" href="cairo/cairo-Paths.html#cairo-rel-move-to">
<ANCHOR id="cairo-Patterns" href="cairo/cairo-Patterns.html">
<ANCHOR id="cairo-pattern-t" href="cairo/cairo-Patterns.html#cairo-pattern-t">
+<ANCHOR id="cairo-pattern-add-color-stop-rgb" href="cairo/cairo-Patterns.html#cairo-pattern-add-color-stop-rgb">
+<ANCHOR id="cairo-pattern-add-color-stop-rgba" href="cairo/cairo-Patterns.html#cairo-pattern-add-color-stop-rgba">
+<ANCHOR id="cairo-pattern-create-rgb" href="cairo/cairo-Patterns.html#cairo-pattern-create-rgb">
+<ANCHOR id="cairo-pattern-create-rgba" href="cairo/cairo-Patterns.html#cairo-pattern-create-rgba">
+<ANCHOR id="cairo-pattern-create-for-surface" href="cairo/cairo-Patterns.html#cairo-pattern-create-for-surface">
+<ANCHOR id="cairo-pattern-create-linear" href="cairo/cairo-Patterns.html#cairo-pattern-create-linear">
+<ANCHOR id="cairo-pattern-create-radial" href="cairo/cairo-Patterns.html#cairo-pattern-create-radial">
+<ANCHOR id="cairo-pattern-destroy" href="cairo/cairo-Patterns.html#cairo-pattern-destroy">
+<ANCHOR id="cairo-pattern-reference" href="cairo/cairo-Patterns.html#cairo-pattern-reference">
+<ANCHOR id="cairo-pattern-status" href="cairo/cairo-Patterns.html#cairo-pattern-status">
<ANCHOR id="cairo-extend-t" href="cairo/cairo-Patterns.html#cairo-extend-t">
<ANCHOR id="CAIRO-EXTEND-NONE:CAPS" href="cairo/cairo-Patterns.html#CAIRO-EXTEND-NONE:CAPS">
<ANCHOR id="CAIRO-EXTEND-REPEAT:CAPS" href="cairo/cairo-Patterns.html#CAIRO-EXTEND-REPEAT:CAPS">
<ANCHOR id="CAIRO-EXTEND-REFLECT:CAPS" href="cairo/cairo-Patterns.html#CAIRO-EXTEND-REFLECT:CAPS">
<ANCHOR id="CAIRO-EXTEND-PAD:CAPS" href="cairo/cairo-Patterns.html#CAIRO-EXTEND-PAD:CAPS">
+<ANCHOR id="cairo-pattern-set-extend" href="cairo/cairo-Patterns.html#cairo-pattern-set-extend">
+<ANCHOR id="cairo-pattern-get-extend" href="cairo/cairo-Patterns.html#cairo-pattern-get-extend">
<ANCHOR id="cairo-filter-t" href="cairo/cairo-Patterns.html#cairo-filter-t">
+<ANCHOR id="cairo-pattern-set-filter" href="cairo/cairo-Patterns.html#cairo-pattern-set-filter">
+<ANCHOR id="cairo-pattern-get-filter" href="cairo/cairo-Patterns.html#cairo-pattern-get-filter">
+<ANCHOR id="cairo-pattern-set-matrix" href="cairo/cairo-Patterns.html#cairo-pattern-set-matrix">
+<ANCHOR id="cairo-pattern-get-matrix" href="cairo/cairo-Patterns.html#cairo-pattern-get-matrix">
+<ANCHOR id="cairo-pattern-type-t" href="cairo/cairo-Patterns.html#cairo-pattern-type-t">
+<ANCHOR id="cairo-pattern-get-type" href="cairo/cairo-Patterns.html#cairo-pattern-get-type">
<ANCHOR id="cairo-Transformations" href="cairo/cairo-Transformations.html">
+<ANCHOR id="cairo-translate" href="cairo/cairo-Transformations.html#cairo-translate">
+<ANCHOR id="cairo-scale" href="cairo/cairo-Transformations.html#cairo-scale">
+<ANCHOR id="cairo-rotate" href="cairo/cairo-Transformations.html#cairo-rotate">
+<ANCHOR id="cairo-transform" href="cairo/cairo-Transformations.html#cairo-transform">
+<ANCHOR id="cairo-set-matrix" href="cairo/cairo-Transformations.html#cairo-set-matrix">
+<ANCHOR id="cairo-get-matrix" href="cairo/cairo-Transformations.html#cairo-get-matrix">
+<ANCHOR id="cairo-identity-matrix" href="cairo/cairo-Transformations.html#cairo-identity-matrix">
+<ANCHOR id="cairo-user-to-device" href="cairo/cairo-Transformations.html#cairo-user-to-device">
+<ANCHOR id="cairo-user-to-device-distance" href="cairo/cairo-Transformations.html#cairo-user-to-device-distance">
+<ANCHOR id="cairo-device-to-user" href="cairo/cairo-Transformations.html#cairo-device-to-user">
+<ANCHOR id="cairo-device-to-user-distance" href="cairo/cairo-Transformations.html#cairo-device-to-user-distance">
<ANCHOR id="cairo-Text" href="cairo/cairo-Text.html">
<ANCHOR id="cairo-glyph-t" href="cairo/cairo-Text.html#cairo-glyph-t">
<ANCHOR id="cairo-font-slant-t" href="cairo/cairo-Text.html#cairo-font-slant-t">
<ANCHOR id="cairo-font-weight-t" href="cairo/cairo-Text.html#cairo-font-weight-t">
+<ANCHOR id="cairo-select-font-face" href="cairo/cairo-Text.html#cairo-select-font-face">
+<ANCHOR id="cairo-set-font-size" href="cairo/cairo-Text.html#cairo-set-font-size">
+<ANCHOR id="cairo-set-font-matrix" href="cairo/cairo-Text.html#cairo-set-font-matrix">
+<ANCHOR id="cairo-get-font-matrix" href="cairo/cairo-Text.html#cairo-get-font-matrix">
+<ANCHOR id="cairo-set-font-options" href="cairo/cairo-Text.html#cairo-set-font-options">
+<ANCHOR id="cairo-get-font-options" href="cairo/cairo-Text.html#cairo-get-font-options">
+<ANCHOR id="cairo-show-text" href="cairo/cairo-Text.html#cairo-show-text">
+<ANCHOR id="cairo-show-glyphs" href="cairo/cairo-Text.html#cairo-show-glyphs">
+<ANCHOR id="cairo-get-font-face" href="cairo/cairo-Text.html#cairo-get-font-face">
+<ANCHOR id="cairo-font-extents" href="cairo/cairo-Text.html#cairo-font-extents">
+<ANCHOR id="cairo-set-font-face" href="cairo/cairo-Text.html#cairo-set-font-face">
+<ANCHOR id="cairo-set-scaled-font" href="cairo/cairo-Text.html#cairo-set-scaled-font">
+<ANCHOR id="cairo-text-extents" href="cairo/cairo-Text.html#cairo-text-extents">
+<ANCHOR id="cairo-glyph-extents" href="cairo/cairo-Text.html#cairo-glyph-extents">
<ANCHOR id="cairo-cairo-font-face-t" href="cairo/cairo-cairo-font-face-t.html">
<ANCHOR id="cairo-font-face-t" href="cairo/cairo-cairo-font-face-t.html#cairo-font-face-t">
+<ANCHOR id="cairo-font-face-reference" href="cairo/cairo-cairo-font-face-t.html#cairo-font-face-reference">
+<ANCHOR id="cairo-font-face-destroy" href="cairo/cairo-cairo-font-face-t.html#cairo-font-face-destroy">
+<ANCHOR id="cairo-font-face-status" href="cairo/cairo-cairo-font-face-t.html#cairo-font-face-status">
+<ANCHOR id="cairo-font-face-get-user-data" href="cairo/cairo-cairo-font-face-t.html#cairo-font-face-get-user-data">
+<ANCHOR id="cairo-font-face-set-user-data" href="cairo/cairo-cairo-font-face-t.html#cairo-font-face-set-user-data">
+<ANCHOR id="cairo-font-type-t" href="cairo/cairo-cairo-font-face-t.html#cairo-font-type-t">
+<ANCHOR id="cairo-font-face-get-type" href="cairo/cairo-cairo-font-face-t.html#cairo-font-face-get-type">
<ANCHOR id="cairo-Scaled-Fonts" href="cairo/cairo-Scaled-Fonts.html">
<ANCHOR id="cairo-scaled-font-t" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-t">
+<ANCHOR id="cairo-scaled-font-create" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-create">
+<ANCHOR id="cairo-scaled-font-reference" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-reference">
+<ANCHOR id="cairo-scaled-font-destroy" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-destroy">
+<ANCHOR id="cairo-scaled-font-status" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-status">
<ANCHOR id="cairo-font-extents-t" href="cairo/cairo-Scaled-Fonts.html#cairo-font-extents-t">
+<ANCHOR id="cairo-scaled-font-extents" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-extents">
<ANCHOR id="cairo-text-extents-t" href="cairo/cairo-Scaled-Fonts.html#cairo-text-extents-t">
+<ANCHOR id="cairo-scaled-font-text-extents" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-text-extents">
+<ANCHOR id="cairo-scaled-font-glyph-extents" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-glyph-extents">
+<ANCHOR id="cairo-scaled-font-get-font-face" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-face">
+<ANCHOR id="cairo-scaled-font-get-font-options" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-options">
+<ANCHOR id="cairo-scaled-font-get-font-matrix" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-matrix">
+<ANCHOR id="cairo-scaled-font-get-ctm" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-get-ctm">
+<ANCHOR id="cairo-scaled-font-get-type" href="cairo/cairo-Scaled-Fonts.html#cairo-scaled-font-get-type">
<ANCHOR id="cairo-Font-Options" href="cairo/cairo-Font-Options.html">
<ANCHOR id="cairo-font-options-t" href="cairo/cairo-Font-Options.html#cairo-font-options-t">
+<ANCHOR id="cairo-font-options-create" href="cairo/cairo-Font-Options.html#cairo-font-options-create">
+<ANCHOR id="cairo-font-options-copy" href="cairo/cairo-Font-Options.html#cairo-font-options-copy">
+<ANCHOR id="cairo-font-options-destroy" href="cairo/cairo-Font-Options.html#cairo-font-options-destroy">
+<ANCHOR id="cairo-font-options-status" href="cairo/cairo-Font-Options.html#cairo-font-options-status">
+<ANCHOR id="cairo-font-options-merge" href="cairo/cairo-Font-Options.html#cairo-font-options-merge">
+<ANCHOR id="cairo-font-options-hash" href="cairo/cairo-Font-Options.html#cairo-font-options-hash">
+<ANCHOR id="cairo-font-options-equal" href="cairo/cairo-Font-Options.html#cairo-font-options-equal">
+<ANCHOR id="cairo-font-options-set-antialias" href="cairo/cairo-Font-Options.html#cairo-font-options-set-antialias">
+<ANCHOR id="cairo-font-options-get-antialias" href="cairo/cairo-Font-Options.html#cairo-font-options-get-antialias">
<ANCHOR id="cairo-subpixel-order-t" href="cairo/cairo-Font-Options.html#cairo-subpixel-order-t">
<ANCHOR id="CAIRO-SUBPIXEL-ORDER-DEFAULT:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-SUBPIXEL-ORDER-DEFAULT:CAPS">
<ANCHOR id="CAIRO-SUBPIXEL-ORDER-RGB:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-SUBPIXEL-ORDER-RGB:CAPS">
<ANCHOR id="CAIRO-SUBPIXEL-ORDER-BGR:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-SUBPIXEL-ORDER-BGR:CAPS">
<ANCHOR id="CAIRO-SUBPIXEL-ORDER-VRGB:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-SUBPIXEL-ORDER-VRGB:CAPS">
<ANCHOR id="CAIRO-SUBPIXEL-ORDER-VBGR:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-SUBPIXEL-ORDER-VBGR:CAPS">
+<ANCHOR id="cairo-font-options-set-subpixel-order" href="cairo/cairo-Font-Options.html#cairo-font-options-set-subpixel-order">
+<ANCHOR id="cairo-font-options-get-subpixel-order" href="cairo/cairo-Font-Options.html#cairo-font-options-get-subpixel-order">
<ANCHOR id="cairo-hint-style-t" href="cairo/cairo-Font-Options.html#cairo-hint-style-t">
<ANCHOR id="CAIRO-HINT-STYLE-DEFAULT:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-HINT-STYLE-DEFAULT:CAPS">
<ANCHOR id="CAIRO-HINT-STYLE-NONE:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-HINT-STYLE-NONE:CAPS">
<ANCHOR id="CAIRO-HINT-STYLE-SLIGHT:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-HINT-STYLE-SLIGHT:CAPS">
<ANCHOR id="CAIRO-HINT-STYLE-MEDIUM:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-HINT-STYLE-MEDIUM:CAPS">
<ANCHOR id="CAIRO-HINT-STYLE-FULL:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-HINT-STYLE-FULL:CAPS">
+<ANCHOR id="cairo-font-options-set-hint-style" href="cairo/cairo-Font-Options.html#cairo-font-options-set-hint-style">
+<ANCHOR id="cairo-font-options-get-hint-style" href="cairo/cairo-Font-Options.html#cairo-font-options-get-hint-style">
<ANCHOR id="cairo-hint-metrics-t" href="cairo/cairo-Font-Options.html#cairo-hint-metrics-t">
<ANCHOR id="CAIRO-HINT-METRICS-DEFAULT:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-HINT-METRICS-DEFAULT:CAPS">
<ANCHOR id="CAIRO-HINT-METRICS-OFF:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-HINT-METRICS-OFF:CAPS">
<ANCHOR id="CAIRO-HINT-METRICS-ON:CAPS" href="cairo/cairo-Font-Options.html#CAIRO-HINT-METRICS-ON:CAPS">
+<ANCHOR id="cairo-font-options-set-hint-metrics" href="cairo/cairo-Font-Options.html#cairo-font-options-set-hint-metrics">
+<ANCHOR id="cairo-font-options-get-hint-metrics" href="cairo/cairo-Font-Options.html#cairo-font-options-get-hint-metrics">
<ANCHOR id="cairo-FreeType-Fonts" href="cairo/cairo-FreeType-Fonts.html">
+<ANCHOR id="cairo-ft-font-face-create-for-ft-face" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face">
+<ANCHOR id="cairo-ft-font-face-create-for-pattern" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern">
+<ANCHOR id="cairo-ft-font-options-substitute" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute">
+<ANCHOR id="cairo-ft-scaled-font-lock-face" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face">
+<ANCHOR id="cairo-ft-scaled-font-unlock-face" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face">
<ANCHOR id="cairo-Win32-Fonts" href="cairo/cairo-Win32-Fonts.html">
+<ANCHOR id="cairo-win32-font-face-create-for-logfontw" href="cairo/cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw">
+<ANCHOR id="cairo-win32-font-face-create-for-hfont" href="cairo/cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">
+<ANCHOR id="cairo-win32-scaled-font-select-font" href="cairo/cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font">
+<ANCHOR id="cairo-win32-scaled-font-done-font" href="cairo/cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font">
+<ANCHOR id="cairo-win32-scaled-font-get-metrics-factor" href="cairo/cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor">
<ANCHOR id="cairo-cairo-surface-t" href="cairo/cairo-cairo-surface-t.html">
<ANCHOR id="cairo-surface-t" href="cairo/cairo-cairo-surface-t.html#cairo-surface-t">
<ANCHOR id="cairo-content-t" href="cairo/cairo-cairo-surface-t.html#cairo-content-t">
<ANCHOR id="CAIRO-CONTENT-COLOR:CAPS" href="cairo/cairo-cairo-surface-t.html#CAIRO-CONTENT-COLOR:CAPS">
<ANCHOR id="CAIRO-CONTENT-ALPHA:CAPS" href="cairo/cairo-cairo-surface-t.html#CAIRO-CONTENT-ALPHA:CAPS">
<ANCHOR id="CAIRO-CONTENT-COLOR-ALPHA:CAPS" href="cairo/cairo-cairo-surface-t.html#CAIRO-CONTENT-COLOR-ALPHA:CAPS">
+<ANCHOR id="cairo-surface-create-similar" href="cairo/cairo-cairo-surface-t.html#cairo-surface-create-similar">
+<ANCHOR id="cairo-surface-destroy" href="cairo/cairo-cairo-surface-t.html#cairo-surface-destroy">
+<ANCHOR id="cairo-surface-finish" href="cairo/cairo-cairo-surface-t.html#cairo-surface-finish">
+<ANCHOR id="cairo-surface-flush" href="cairo/cairo-cairo-surface-t.html#cairo-surface-flush">
+<ANCHOR id="cairo-surface-get-font-options" href="cairo/cairo-cairo-surface-t.html#cairo-surface-get-font-options">
+<ANCHOR id="cairo-surface-get-content" href="cairo/cairo-cairo-surface-t.html#cairo-surface-get-content">
+<ANCHOR id="cairo-surface-set-user-data" href="cairo/cairo-cairo-surface-t.html#cairo-surface-set-user-data">
+<ANCHOR id="cairo-surface-get-user-data" href="cairo/cairo-cairo-surface-t.html#cairo-surface-get-user-data">
+<ANCHOR id="cairo-surface-mark-dirty" href="cairo/cairo-cairo-surface-t.html#cairo-surface-mark-dirty">
+<ANCHOR id="cairo-surface-mark-dirty-rectangle" href="cairo/cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle">
+<ANCHOR id="cairo-surface-reference" href="cairo/cairo-cairo-surface-t.html#cairo-surface-reference">
+<ANCHOR id="cairo-surface-set-device-offset" href="cairo/cairo-cairo-surface-t.html#cairo-surface-set-device-offset">
+<ANCHOR id="cairo-surface-get-device-offset" href="cairo/cairo-cairo-surface-t.html#cairo-surface-get-device-offset">
+<ANCHOR id="cairo-surface-set-fallback-resolution" href="cairo/cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution">
+<ANCHOR id="cairo-surface-status" href="cairo/cairo-cairo-surface-t.html#cairo-surface-status">
+<ANCHOR id="cairo-surface-type-t" href="cairo/cairo-cairo-surface-t.html#cairo-surface-type-t">
+<ANCHOR id="cairo-surface-get-type" href="cairo/cairo-cairo-surface-t.html#cairo-surface-get-type">
<ANCHOR id="cairo-Image-Surfaces" href="cairo/cairo-Image-Surfaces.html">
<ANCHOR id="cairo-format-t" href="cairo/cairo-Image-Surfaces.html#cairo-format-t">
<ANCHOR id="CAIRO-FORMAT-ARGB32:CAPS" href="cairo/cairo-Image-Surfaces.html#CAIRO-FORMAT-ARGB32:CAPS">
@@ -70,21 +244,68 @@
<ANCHOR id="CAIRO-FORMAT-A8:CAPS" href="cairo/cairo-Image-Surfaces.html#CAIRO-FORMAT-A8:CAPS">
<ANCHOR id="CAIRO-FORMAT-A1:CAPS" href="cairo/cairo-Image-Surfaces.html#CAIRO-FORMAT-A1:CAPS">
<ANCHOR id="CAIRO-FORMAT-RGB16-565:CAPS" href="cairo/cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB16-565:CAPS">
-<ANCHOR id="cairo-Glitz-Surfaces" href="cairo/cairo-Glitz-Surfaces.html">
+<ANCHOR id="cairo-image-surface-create" href="cairo/cairo-Image-Surfaces.html#cairo-image-surface-create">
+<ANCHOR id="cairo-image-surface-create-for-data" href="cairo/cairo-Image-Surfaces.html#cairo-image-surface-create-for-data">
+<ANCHOR id="cairo-image-surface-get-data" href="cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-data">
+<ANCHOR id="cairo-image-surface-get-format" href="cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-format">
+<ANCHOR id="cairo-image-surface-get-width" href="cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-width">
+<ANCHOR id="cairo-image-surface-get-height" href="cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-height">
+<ANCHOR id="cairo-image-surface-get-stride" href="cairo/cairo-Image-Surfaces.html#cairo-image-surface-get-stride">
<ANCHOR id="cairo-PDF-Surfaces" href="cairo/cairo-PDF-Surfaces.html">
-<ANCHOR id="cairo-pdf-surface-set-dpi" href="cairo/cairo-PDF-Surfaces.html#cairo-pdf-surface-set-dpi">
+<ANCHOR id="cairo-pdf-surface-create" href="cairo/cairo-PDF-Surfaces.html#cairo-pdf-surface-create">
+<ANCHOR id="cairo-pdf-surface-create-for-stream" href="cairo/cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream">
+<ANCHOR id="cairo-pdf-surface-set-size" href="cairo/cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size">
<ANCHOR id="cairo-PNG-Support" href="cairo/cairo-PNG-Support.html">
+<ANCHOR id="cairo-image-surface-create-from-png" href="cairo/cairo-PNG-Support.html#cairo-image-surface-create-from-png">
<ANCHOR id="cairo-read-func-t" href="cairo/cairo-PNG-Support.html#cairo-read-func-t">
+<ANCHOR id="cairo-image-surface-create-from-png-stream" href="cairo/cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream">
+<ANCHOR id="cairo-surface-write-to-png" href="cairo/cairo-PNG-Support.html#cairo-surface-write-to-png">
<ANCHOR id="cairo-write-func-t" href="cairo/cairo-PNG-Support.html#cairo-write-func-t">
+<ANCHOR id="cairo-surface-write-to-png-stream" href="cairo/cairo-PNG-Support.html#cairo-surface-write-to-png-stream">
<ANCHOR id="cairo-PostScript-Surfaces" href="cairo/cairo-PostScript-Surfaces.html">
-<ANCHOR id="cairo-ps-surface-set-dpi" href="cairo/cairo-PostScript-Surfaces.html#cairo-ps-surface-set-dpi">
+<ANCHOR id="cairo-ps-surface-create" href="cairo/cairo-PostScript-Surfaces.html#cairo-ps-surface-create">
+<ANCHOR id="cairo-ps-surface-create-for-stream" href="cairo/cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream">
+<ANCHOR id="cairo-ps-surface-set-size" href="cairo/cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size">
+<ANCHOR id="cairo-ps-surface-dsc-begin-setup" href="cairo/cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">
+<ANCHOR id="cairo-ps-surface-dsc-begin-page-setup" href="cairo/cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">
+<ANCHOR id="cairo-ps-surface-dsc-comment" href="cairo/cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">
<ANCHOR id="cairo-Win32-Surfaces" href="cairo/cairo-Win32-Surfaces.html">
-<ANCHOR id="cairo-BeOS-Surfaces" href="cairo/cairo-BeOS-Surfaces.html">
+<ANCHOR id="cairo-win32-surface-create" href="cairo/cairo-Win32-Surfaces.html#cairo-win32-surface-create">
+<ANCHOR id="cairo-win32-surface-create-with-dib" href="cairo/cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">
+<ANCHOR id="cairo-win32-surface-get-dc" href="cairo/cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc">
<ANCHOR id="cairo-SVG-Surfaces" href="cairo/cairo-SVG-Surfaces.html">
-<ANCHOR id="cairo-svg-surface-set-dpi" href="cairo/cairo-SVG-Surfaces.html#cairo-svg-surface-set-dpi">
+<ANCHOR id="cairo-svg-surface-create" href="cairo/cairo-SVG-Surfaces.html#cairo-svg-surface-create">
+<ANCHOR id="cairo-svg-surface-create-for-stream" href="cairo/cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream">
+<ANCHOR id="cairo-svg-surface-restrict-to-version" href="cairo/cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version">
+<ANCHOR id="cairo-svg-version-t" href="cairo/cairo-SVG-Surfaces.html#cairo-svg-version-t">
+<ANCHOR id="cairo-svg-get-versions" href="cairo/cairo-SVG-Surfaces.html#cairo-svg-get-versions">
+<ANCHOR id="cairo-svg-version-to-string" href="cairo/cairo-SVG-Surfaces.html#cairo-svg-version-to-string">
<ANCHOR id="cairo-XLib-Surfaces" href="cairo/cairo-XLib-Surfaces.html">
+<ANCHOR id="cairo-xlib-surface-create" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-create">
+<ANCHOR id="cairo-xlib-surface-create-for-bitmap" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap">
+<ANCHOR id="cairo-xlib-surface-set-size" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size">
+<ANCHOR id="cairo-xlib-surface-get-display" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display">
+<ANCHOR id="cairo-xlib-surface-get-screen" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen">
+<ANCHOR id="cairo-xlib-surface-set-drawable" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable">
+<ANCHOR id="cairo-xlib-surface-get-drawable" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable">
+<ANCHOR id="cairo-xlib-surface-get-visual" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual">
+<ANCHOR id="cairo-xlib-surface-get-width" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width">
+<ANCHOR id="cairo-xlib-surface-get-height" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height">
+<ANCHOR id="cairo-xlib-surface-get-depth" href="cairo/cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth">
<ANCHOR id="cairo-cairo-matrix-t" href="cairo/cairo-cairo-matrix-t.html">
<ANCHOR id="cairo-matrix-t" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-t">
+<ANCHOR id="cairo-matrix-init" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-init">
+<ANCHOR id="cairo-matrix-init-identity" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-init-identity">
+<ANCHOR id="cairo-matrix-init-translate" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-init-translate">
+<ANCHOR id="cairo-matrix-init-scale" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-init-scale">
+<ANCHOR id="cairo-matrix-init-rotate" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-init-rotate">
+<ANCHOR id="cairo-matrix-translate" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-translate">
+<ANCHOR id="cairo-matrix-scale" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-scale">
+<ANCHOR id="cairo-matrix-rotate" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-rotate">
+<ANCHOR id="cairo-matrix-invert" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-invert">
+<ANCHOR id="cairo-matrix-multiply" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-multiply">
+<ANCHOR id="cairo-matrix-transform-distance" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-transform-distance">
+<ANCHOR id="cairo-matrix-transform-point" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-transform-point">
<ANCHOR id="cairo-Error-handling" href="cairo/cairo-Error-handling.html">
<ANCHOR id="cairo-status-t" href="cairo/cairo-Error-handling.html#cairo-status-t">
<ANCHOR id="CAIRO-STATUS-SUCCESS:CAPS" href="cairo/cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS">
@@ -108,9 +329,17 @@
<ANCHOR id="CAIRO-STATUS-FILE-NOT-FOUND:CAPS" href="cairo/cairo-Error-handling.html#CAIRO-STATUS-FILE-NOT-FOUND:CAPS">
<ANCHOR id="CAIRO-STATUS-INVALID-DASH:CAPS" href="cairo/cairo-Error-handling.html#CAIRO-STATUS-INVALID-DASH:CAPS">
<ANCHOR id="CAIRO-STATUS-INVALID-DSC-COMMENT:CAPS" href="cairo/cairo-Error-handling.html#CAIRO-STATUS-INVALID-DSC-COMMENT:CAPS">
+<ANCHOR id="cairo-status-to-string" href="cairo/cairo-Error-handling.html#cairo-status-to-string">
+<ANCHOR id="cairo-debug-reset-static-data" href="cairo/cairo-Error-handling.html#cairo-debug-reset-static-data">
<ANCHOR id="cairo-Version-Information" href="cairo/cairo-Version-Information.html">
<ANCHOR id="CAIRO-VERSION:CAPS" href="cairo/cairo-Version-Information.html#CAIRO-VERSION:CAPS">
+<ANCHOR id="CAIRO-VERSION-MAJOR:CAPS" href="cairo/cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS">
+<ANCHOR id="CAIRO-VERSION-MINOR:CAPS" href="cairo/cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS">
+<ANCHOR id="CAIRO-VERSION-MICRO:CAPS" href="cairo/cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS">
+<ANCHOR id="CAIRO-VERSION-STRING:CAPS" href="cairo/cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS">
<ANCHOR id="CAIRO-VERSION-ENCODE:CAPS" href="cairo/cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS">
+<ANCHOR id="cairo-version" href="cairo/cairo-Version-Information.html#cairo-version">
+<ANCHOR id="cairo-version-string" href="cairo/cairo-Version-Information.html#cairo-version-string">
<ANCHOR id="cairo-Types" href="cairo/cairo-Types.html">
<ANCHOR id="cairo-bool-t" href="cairo/cairo-Types.html#cairo-bool-t">
<ANCHOR id="cairo-user-data-key-t" href="cairo/cairo-Types.html#cairo-user-data-key-t">
diff --git a/doc/public/html/ix01.html b/doc/public/html/ix01.html
index 67d319b..9ded793 100644
--- a/doc/public/html/ix01.html
+++ b/doc/public/html/ix01.html
@@ -29,7 +29,7 @@
</tr></table>
<div class="index">
<div class="titlepage"><div><div><h2 class="title">
-<a name="id2472116"></a>Index</h2></div></div></div>
+<a name="id2477910"></a>Index</h2></div></div></div>
<div class="index">
<div class="indexdiv">
<h3></h3>
@@ -39,81 +39,543 @@
<div class="indexdiv">
<h3>C</h3>
<dl>
-<dt>cairo_antialias_t, <a href="cairo-cairo-t.html#id2495655">enum cairo_antialias_t</a>
+<dt>cairo_antialias_t, <a href="cairo-cairo-t.html#id2574298">enum cairo_antialias_t</a>
</dt>
-<dt>cairo_bool_t, <a href="cairo-Types.html#id2522333">cairo_bool_t ()</a>
+<dt>cairo_append_path, <a href="cairo-Paths.html#id2531047">cairo_append_path ()</a>
</dt>
-<dt>cairo_content_t, <a href="cairo-cairo-surface-t.html#id2558691">enum cairo_content_t</a>
+<dt>cairo_arc, <a href="cairo-Paths.html#id2531255">cairo_arc ()</a>
</dt>
-<dt>cairo_destroy_func_t, <a href="cairo-Types.html#id2558991">cairo_destroy_func_t ()</a>
+<dt>cairo_arc_negative, <a href="cairo-Paths.html#id2531325">cairo_arc_negative ()</a>
</dt>
-<dt>cairo_extend_t, <a href="cairo-Patterns.html#id2556414">enum cairo_extend_t</a>
+<dt>cairo_bool_t, <a href="cairo-Types.html#id2562768">cairo_bool_t</a>
</dt>
-<dt>cairo_fill_rule_t, <a href="cairo-cairo-t.html#id2495781">enum cairo_fill_rule_t</a>
+<dt>cairo_clip, <a href="cairo-cairo-t.html#id2575339">cairo_clip ()</a>
</dt>
-<dt>cairo_filter_t, <a href="cairo-Patterns.html#id2553217">enum cairo_filter_t</a>
+<dt>cairo_clip_preserve, <a href="cairo-cairo-t.html#id2575371">cairo_clip_preserve ()</a>
</dt>
-<dt>cairo_font_extents_t, <a href="cairo-Scaled-Fonts.html#id2541440">cairo_font_extents_t</a>
+<dt>cairo_close_path, <a href="cairo-Paths.html#id2531218">cairo_close_path ()</a>
</dt>
-<dt>cairo_font_face_t, <a href="cairo-cairo-font-face-t.html#id2526999">cairo_font_face_t</a>
+<dt>cairo_content_t, <a href="cairo-cairo-surface-t.html#id2584276">enum cairo_content_t</a>
</dt>
-<dt>cairo_font_options_t, <a href="cairo-Font-Options.html#id2559524">cairo_font_options_t</a>
+<dt>cairo_copy_page, <a href="cairo-cairo-t.html#id2575923">cairo_copy_page ()</a>
</dt>
-<dt>cairo_font_slant_t, <a href="cairo-Text.html#id2557762">enum cairo_font_slant_t</a>
+<dt>cairo_copy_path, <a href="cairo-Paths.html#id2530940">cairo_copy_path ()</a>
</dt>
-<dt>cairo_font_weight_t, <a href="cairo-Text.html#id2557791">enum cairo_font_weight_t</a>
+<dt>cairo_copy_path_flat, <a href="cairo-Paths.html#id2530976">cairo_copy_path_flat ()</a>
</dt>
-<dt>cairo_format_t, <a href="cairo-Image-Surfaces.html#id2530937">enum cairo_format_t</a>
+<dt>cairo_create, <a href="cairo-cairo-t.html#id2573563">cairo_create ()</a>
</dt>
-<dt>cairo_glyph_t, <a href="cairo-Text.html#id2542832">cairo_glyph_t</a>
+<dt>cairo_curve_to, <a href="cairo-Paths.html#id2531395">cairo_curve_to ()</a>
</dt>
-<dt>cairo_hint_metrics_t, <a href="cairo-Font-Options.html#id2543134">enum cairo_hint_metrics_t</a>
+<dt>cairo_debug_reset_static_data, <a href="cairo-Error-handling.html#id2588346">cairo_debug_reset_static_data ()</a>
</dt>
-<dt>cairo_hint_style_t, <a href="cairo-Font-Options.html#id2542979">enum cairo_hint_style_t</a>
+<dt>cairo_destroy, <a href="cairo-cairo-t.html#id2573636">cairo_destroy ()</a>
</dt>
-<dt>cairo_line_cap_t, <a href="cairo-cairo-t.html#id2520298">enum cairo_line_cap_t</a>
+<dt>cairo_destroy_func_t, <a href="cairo-Types.html#id2587392">cairo_destroy_func_t ()</a>
</dt>
-<dt>cairo_line_join_t, <a href="cairo-cairo-t.html#id2520400">enum cairo_line_join_t</a>
+<dt>cairo_device_to_user, <a href="cairo-Transformations.html#id2533871">cairo_device_to_user ()</a>
</dt>
-<dt>cairo_matrix_t, <a href="cairo-cairo-matrix-t.html#id2521192">cairo_matrix_t</a>
+<dt>cairo_device_to_user_distance, <a href="cairo-Transformations.html#id2533920">cairo_device_to_user_distance ()</a>
</dt>
-<dt>cairo_operator_t, <a href="cairo-cairo-t.html#id2540332">enum cairo_operator_t</a>
+<dt>cairo_extend_t, <a href="cairo-Patterns.html#id2576899">enum cairo_extend_t</a>
</dt>
-<dt>cairo_path_data_t, <a href="cairo-Paths.html#id2550573">union cairo_path_data_t</a>
+<dt>cairo_fill, <a href="cairo-cairo-t.html#id2575435">cairo_fill ()</a>
</dt>
-<dt>cairo_path_data_type_t, <a href="cairo-Paths.html#id2561783">enum cairo_path_data_type_t</a>
+<dt>cairo_fill_extents, <a href="cairo-cairo-t.html#id2575499">cairo_fill_extents ()</a>
</dt>
-<dt>cairo_path_t, <a href="cairo-Paths.html#id2472481">cairo_path_t</a>
+<dt>cairo_fill_preserve, <a href="cairo-cairo-t.html#id2575467">cairo_fill_preserve ()</a>
</dt>
-<dt>cairo_pattern_t, <a href="cairo-Patterns.html#id2556386">cairo_pattern_t</a>
+<dt>cairo_fill_rule_t, <a href="cairo-cairo-t.html#id2574565">enum cairo_fill_rule_t</a>
</dt>
-<dt>cairo_pdf_surface_set_dpi, <a href="cairo-PDF-Surfaces.html#id2529371">cairo_pdf_surface_set_dpi</a>
+<dt>cairo_filter_t, <a href="cairo-Patterns.html#id2577113">enum cairo_filter_t</a>
</dt>
-<dt>cairo_ps_surface_set_dpi, <a href="cairo-PostScript-Surfaces.html#id2567655">cairo_ps_surface_set_dpi</a>
+<dt>cairo_font_extents, <a href="cairo-Text.html#id2579167">cairo_font_extents ()</a>
</dt>
-<dt>cairo_read_func_t, <a href="cairo-PNG-Support.html#id2520855">cairo_read_func_t ()</a>
+<dt>cairo_font_extents_t, <a href="cairo-Scaled-Fonts.html#id2579639">cairo_font_extents_t</a>
</dt>
-<dt>cairo_scaled_font_t, <a href="cairo-Scaled-Fonts.html#id2541397">cairo_scaled_font_t</a>
+<dt>cairo_font_face_destroy, <a href="cairo-cairo-font-face-t.html#id2577756">cairo_font_face_destroy ()</a>
</dt>
-<dt>cairo_status_t, <a href="cairo-Error-handling.html#id2535189">enum cairo_status_t</a>
+<dt>cairo_font_face_get_type, <a href="cairo-cairo-font-face-t.html#id2578580">cairo_font_face_get_type ()</a>
</dt>
-<dt>cairo_subpixel_order_t, <a href="cairo-Font-Options.html#id2559551">enum cairo_subpixel_order_t</a>
+<dt>cairo_font_face_get_user_data, <a href="cairo-cairo-font-face-t.html#id2578448">cairo_font_face_get_user_data ()</a>
</dt>
-<dt>cairo_surface_t, <a href="cairo-cairo-surface-t.html#id2545536">cairo_surface_t</a>
+<dt>cairo_font_face_reference, <a href="cairo-cairo-font-face-t.html#id2577719">cairo_font_face_reference ()</a>
</dt>
-<dt>cairo_svg_surface_set_dpi, <a href="cairo-SVG-Surfaces.html#id2521248">cairo_svg_surface_set_dpi</a>
+<dt>cairo_font_face_set_user_data, <a href="cairo-cairo-font-face-t.html#id2578489">cairo_font_face_set_user_data ()</a>
</dt>
-<dt>cairo_t, <a href="cairo-cairo-t.html#id2472952">cairo_t</a>
+<dt>cairo_font_face_status, <a href="cairo-cairo-font-face-t.html#id2577790">cairo_font_face_status ()</a>
</dt>
-<dt>cairo_text_extents_t, <a href="cairo-Scaled-Fonts.html#id2540423">cairo_text_extents_t</a>
+<dt>cairo_font_face_t, <a href="cairo-cairo-font-face-t.html#id2577643">cairo_font_face_t</a>
</dt>
-<dt>cairo_user_data_key_t, <a href="cairo-Types.html#id2522412">cairo_user_data_key_t</a>
+<dt>cairo_font_options_copy, <a href="cairo-Font-Options.html#id2580523">cairo_font_options_copy ()</a>
</dt>
-<dt>CAIRO_VERSION, <a href="cairo-Version-Information.html#id2522570">CAIRO_VERSION</a>
+<dt>cairo_font_options_create, <a href="cairo-Font-Options.html#id2580494">cairo_font_options_create ()</a>
</dt>
-<dt>CAIRO_VERSION_ENCODE, <a href="cairo-Version-Information.html#id2522597">CAIRO_VERSION_ENCODE()</a>
+<dt>cairo_font_options_destroy, <a href="cairo-Font-Options.html#id2580558">cairo_font_options_destroy ()</a>
</dt>
-<dt>cairo_write_func_t, <a href="cairo-PNG-Support.html#id2557243">cairo_write_func_t ()</a>
+<dt>cairo_font_options_equal, <a href="cairo-Font-Options.html#id2577906">cairo_font_options_equal ()</a>
+</dt>
+<dt>cairo_font_options_get_antialias, <a href="cairo-Font-Options.html#id2577993">cairo_font_options_get_antialias ()</a>
+</dt>
+<dt>cairo_font_options_get_hint_metrics, <a href="cairo-Font-Options.html#id2583206">cairo_font_options_get_hint_metrics ()</a>
+</dt>
+<dt>cairo_font_options_get_hint_style, <a href="cairo-Font-Options.html#id2583016">cairo_font_options_get_hint_style ()</a>
+</dt>
+<dt>cairo_font_options_get_subpixel_order, <a href="cairo-Font-Options.html#id2582783">cairo_font_options_get_subpixel_order ()</a>
+</dt>
+<dt>cairo_font_options_hash, <a href="cairo-Font-Options.html#id2580670">cairo_font_options_hash ()</a>
+</dt>
+<dt>cairo_font_options_merge, <a href="cairo-Font-Options.html#id2580629">cairo_font_options_merge ()</a>
+</dt>
+<dt>cairo_font_options_set_antialias, <a href="cairo-Font-Options.html#id2577947">cairo_font_options_set_antialias ()</a>
+</dt>
+<dt>cairo_font_options_set_hint_metrics, <a href="cairo-Font-Options.html#id2583162">cairo_font_options_set_hint_metrics ()</a>
+</dt>
+<dt>cairo_font_options_set_hint_style, <a href="cairo-Font-Options.html#id2582972">cairo_font_options_set_hint_style ()</a>
+</dt>
+<dt>cairo_font_options_set_subpixel_order, <a href="cairo-Font-Options.html#id2582742">cairo_font_options_set_subpixel_order ()</a>
+</dt>
+<dt>cairo_font_options_status, <a href="cairo-Font-Options.html#id2580593">cairo_font_options_status ()</a>
+</dt>
+<dt>cairo_font_options_t, <a href="cairo-Font-Options.html#id2580467">cairo_font_options_t</a>
+</dt>
+<dt>cairo_font_slant_t, <a href="cairo-Text.html#id2576547">enum cairo_font_slant_t</a>
+</dt>
+<dt>cairo_font_type_t, <a href="cairo-cairo-font-face-t.html#id2578545">enum cairo_font_type_t</a>
+</dt>
+<dt>cairo_font_weight_t, <a href="cairo-Text.html#id2572377">enum cairo_font_weight_t</a>
+</dt>
+<dt>cairo_format_t, <a href="cairo-Image-Surfaces.html#id2570315">enum cairo_format_t</a>
+</dt>
+<dt>cairo_ft_font_face_create_for_ft_face, <a href="cairo-FreeType-Fonts.html#id2538012">cairo_ft_font_face_create_for_ft_face ()</a>
+</dt>
+<dt>cairo_ft_font_face_create_for_pattern, <a href="cairo-FreeType-Fonts.html#id2538058">cairo_ft_font_face_create_for_pattern ()</a>
+</dt>
+<dt>cairo_ft_font_options_substitute, <a href="cairo-FreeType-Fonts.html#id2538097">cairo_ft_font_options_substitute ()</a>
+</dt>
+<dt>cairo_ft_scaled_font_lock_face, <a href="cairo-FreeType-Fonts.html#id2581663">cairo_ft_scaled_font_lock_face ()</a>
+</dt>
+<dt>cairo_ft_scaled_font_unlock_face, <a href="cairo-FreeType-Fonts.html#id2581700">cairo_ft_scaled_font_unlock_face ()</a>
+</dt>
+<dt>cairo_get_antialias, <a href="cairo-cairo-t.html#id2574472">cairo_get_antialias ()</a>
+</dt>
+<dt>cairo_get_current_point, <a href="cairo-Paths.html#id2531089">cairo_get_current_point ()</a>
+</dt>
+<dt>cairo_get_fill_rule, <a href="cairo-cairo-t.html#id2574714">cairo_get_fill_rule ()</a>
+</dt>
+<dt>cairo_get_font_face, <a href="cairo-Text.html#id2579135">cairo_get_font_face ()</a>
+</dt>
+<dt>cairo_get_font_matrix, <a href="cairo-Text.html#id2572546">cairo_get_font_matrix ()</a>
+</dt>
+<dt>cairo_get_font_options, <a href="cairo-Text.html#id2572628">cairo_get_font_options ()</a>
+</dt>
+<dt>cairo_get_group_target, <a href="cairo-cairo-t.html#id2574002">cairo_get_group_target ()</a>
+</dt>
+<dt>cairo_get_line_cap, <a href="cairo-cairo-t.html#id2574896">cairo_get_line_cap ()</a>
+</dt>
+<dt>cairo_get_line_join, <a href="cairo-cairo-t.html#id2575006">cairo_get_line_join ()</a>
+</dt>
+<dt>cairo_get_line_width, <a href="cairo-cairo-t.html#id2575065">cairo_get_line_width ()</a>
+</dt>
+<dt>cairo_get_matrix, <a href="cairo-Transformations.html#id2537782">cairo_get_matrix ()</a>
+</dt>
+<dt>cairo_get_miter_limit, <a href="cairo-cairo-t.html#id2575136">cairo_get_miter_limit ()</a>
+</dt>
+<dt>cairo_get_operator, <a href="cairo-cairo-t.html#id2575237">cairo_get_operator ()</a>
+</dt>
+<dt>cairo_get_source, <a href="cairo-cairo-t.html#id2574261">cairo_get_source ()</a>
+</dt>
+<dt>cairo_get_target, <a href="cairo-cairo-t.html#id2573782">cairo_get_target ()</a>
+</dt>
+<dt>cairo_get_tolerance, <a href="cairo-cairo-t.html#id2575307">cairo_get_tolerance ()</a>
+</dt>
+<dt>cairo_glyph_extents, <a href="cairo-Text.html#id2579353">cairo_glyph_extents ()</a>
+</dt>
+<dt>cairo_glyph_path, <a href="cairo-Paths.html#id2531636">cairo_glyph_path ()</a>
+</dt>
+<dt>cairo_glyph_t, <a href="cairo-Text.html#id2576403">cairo_glyph_t</a>
+</dt>
+<dt>cairo_hint_metrics_t, <a href="cairo-Font-Options.html#id2583055">enum cairo_hint_metrics_t</a>
+</dt>
+<dt>cairo_hint_style_t, <a href="cairo-Font-Options.html#id2582819">enum cairo_hint_style_t</a>
+</dt>
+<dt>cairo_identity_matrix, <a href="cairo-Transformations.html#id2533738">cairo_identity_matrix ()</a>
+</dt>
+<dt>cairo_image_surface_create, <a href="cairo-Image-Surfaces.html#id2583709">cairo_image_surface_create ()</a>
+</dt>
+<dt>cairo_image_surface_create_for_data, <a href="cairo-Image-Surfaces.html#id2583759">cairo_image_surface_create_for_data ()</a>
+</dt>
+<dt>cairo_image_surface_create_from_png, <a href="cairo-PNG-Support.html#id2583516">cairo_image_surface_create_from_png ()</a>
+</dt>
+<dt>cairo_image_surface_create_from_png_stream, <a href="cairo-PNG-Support.html#id2584542">cairo_image_surface_create_from_png_stream ()</a>
+</dt>
+<dt>cairo_image_surface_get_data, <a href="cairo-Image-Surfaces.html#id2583825">cairo_image_surface_get_data ()</a>
+</dt>
+<dt>cairo_image_surface_get_format, <a href="cairo-Image-Surfaces.html#id2583871">cairo_image_surface_get_format ()</a>
+</dt>
+<dt>cairo_image_surface_get_height, <a href="cairo-Image-Surfaces.html#id2570759">cairo_image_surface_get_height ()</a>
+</dt>
+<dt>cairo_image_surface_get_stride, <a href="cairo-Image-Surfaces.html#id2570796">cairo_image_surface_get_stride ()</a>
+</dt>
+<dt>cairo_image_surface_get_width, <a href="cairo-Image-Surfaces.html#id2570721">cairo_image_surface_get_width ()</a>
+</dt>
+<dt>cairo_in_fill, <a href="cairo-cairo-t.html#id2575555">cairo_in_fill ()</a>
+</dt>
+<dt>cairo_in_stroke, <a href="cairo-cairo-t.html#id2575879">cairo_in_stroke ()</a>
+</dt>
+<dt>cairo_line_cap_t, <a href="cairo-cairo-t.html#id2574750">enum cairo_line_cap_t</a>
+</dt>
+<dt>cairo_line_join_t, <a href="cairo-cairo-t.html#id2574933">enum cairo_line_join_t</a>
+</dt>
+<dt>cairo_line_to, <a href="cairo-Paths.html#id2531472">cairo_line_to ()</a>
+</dt>
+<dt>cairo_mask, <a href="cairo-cairo-t.html#id2575600">cairo_mask ()</a>
+</dt>
+<dt>cairo_mask_surface, <a href="cairo-cairo-t.html#id2575638">cairo_mask_surface ()</a>
+</dt>
+<dt>cairo_matrix_init, <a href="cairo-cairo-matrix-t.html#id2544216">cairo_matrix_init ()</a>
+</dt>
+<dt>cairo_matrix_init_identity, <a href="cairo-cairo-matrix-t.html#id2544292">cairo_matrix_init_identity ()</a>
+</dt>
+<dt>cairo_matrix_init_rotate, <a href="cairo-cairo-matrix-t.html#id2590907">cairo_matrix_init_rotate ()</a>
+</dt>
+<dt>cairo_matrix_init_scale, <a href="cairo-cairo-matrix-t.html#id2544376">cairo_matrix_init_scale ()</a>
+</dt>
+<dt>cairo_matrix_init_translate, <a href="cairo-cairo-matrix-t.html#id2544327">cairo_matrix_init_translate ()</a>
+</dt>
+<dt>cairo_matrix_invert, <a href="cairo-cairo-matrix-t.html#id2591076">cairo_matrix_invert ()</a>
+</dt>
+<dt>cairo_matrix_multiply, <a href="cairo-cairo-matrix-t.html#id2591112">cairo_matrix_multiply ()</a>
+</dt>
+<dt>cairo_matrix_rotate, <a href="cairo-cairo-matrix-t.html#id2591034">cairo_matrix_rotate ()</a>
+</dt>
+<dt>cairo_matrix_scale, <a href="cairo-cairo-matrix-t.html#id2590990">cairo_matrix_scale ()</a>
+</dt>
+<dt>cairo_matrix_t, <a href="cairo-cairo-matrix-t.html#id2587684">cairo_matrix_t</a>
+</dt>
+<dt>cairo_matrix_transform_distance, <a href="cairo-cairo-matrix-t.html#id2591162">cairo_matrix_transform_distance ()</a>
+</dt>
+<dt>cairo_matrix_transform_point, <a href="cairo-cairo-matrix-t.html#id2591213">cairo_matrix_transform_point ()</a>
+</dt>
+<dt>cairo_matrix_translate, <a href="cairo-cairo-matrix-t.html#id2590945">cairo_matrix_translate ()</a>
+</dt>
+<dt>cairo_move_to, <a href="cairo-Paths.html#id2531522">cairo_move_to ()</a>
+</dt>
+<dt>cairo_new_path, <a href="cairo-Paths.html#id2531137">cairo_new_path ()</a>
+</dt>
+<dt>cairo_new_sub_path, <a href="cairo-Paths.html#id2531174">cairo_new_sub_path ()</a>
+</dt>
+<dt>cairo_operator_t, <a href="cairo-cairo-t.html#id2575168">enum cairo_operator_t</a>
+</dt>
+<dt>cairo_paint, <a href="cairo-cairo-t.html#id2575688">cairo_paint ()</a>
+</dt>
+<dt>cairo_paint_with_alpha, <a href="cairo-cairo-t.html#id2575720">cairo_paint_with_alpha ()</a>
+</dt>
+<dt>cairo_path_data_t, <a href="cairo-Paths.html#id2560534">union cairo_path_data_t</a>
+</dt>
+<dt>cairo_path_data_type_t, <a href="cairo-Paths.html#id2566664">enum cairo_path_data_type_t</a>
+</dt>
+<dt>cairo_path_destroy, <a href="cairo-Paths.html#id2531011">cairo_path_destroy ()</a>
+</dt>
+<dt>cairo_path_t, <a href="cairo-Paths.html#id2560382">cairo_path_t</a>
+</dt>
+<dt>cairo_pattern_add_color_stop_rgb, <a href="cairo-Patterns.html#id2567031">cairo_pattern_add_color_stop_rgb ()</a>
+</dt>
+<dt>cairo_pattern_add_color_stop_rgba, <a href="cairo-Patterns.html#id2538432">cairo_pattern_add_color_stop_rgba ()</a>
+</dt>
+<dt>cairo_pattern_create_for_surface, <a href="cairo-Patterns.html#id2538607">cairo_pattern_create_for_surface ()</a>
+</dt>
+<dt>cairo_pattern_create_linear, <a href="cairo-Patterns.html#id2538646">cairo_pattern_create_linear ()</a>
+</dt>
+<dt>cairo_pattern_create_radial, <a href="cairo-Patterns.html#id2576736">cairo_pattern_create_radial ()</a>
+</dt>
+<dt>cairo_pattern_create_rgb, <a href="cairo-Patterns.html#id2538502">cairo_pattern_create_rgb ()</a>
+</dt>
+<dt>cairo_pattern_create_rgba, <a href="cairo-Patterns.html#id2538551">cairo_pattern_create_rgba ()</a>
+</dt>
+<dt>cairo_pattern_destroy, <a href="cairo-Patterns.html#id2576799">cairo_pattern_destroy ()</a>
+</dt>
+<dt>cairo_pattern_get_extend, <a href="cairo-Patterns.html#id2577077">cairo_pattern_get_extend ()</a>
+</dt>
+<dt>cairo_pattern_get_filter, <a href="cairo-Patterns.html#id2577187">cairo_pattern_get_filter ()</a>
+</dt>
+<dt>cairo_pattern_get_matrix, <a href="cairo-Patterns.html#id2577266">cairo_pattern_get_matrix ()</a>
+</dt>
+<dt>cairo_pattern_get_type, <a href="cairo-Patterns.html#id2577321">cairo_pattern_get_type ()</a>
+</dt>
+<dt>cairo_pattern_reference, <a href="cairo-Patterns.html#id2576830">cairo_pattern_reference ()</a>
+</dt>
+<dt>cairo_pattern_set_extend, <a href="cairo-Patterns.html#id2577035">cairo_pattern_set_extend ()</a>
+</dt>
+<dt>cairo_pattern_set_filter, <a href="cairo-Patterns.html#id2577144">cairo_pattern_set_filter ()</a>
+</dt>
+<dt>cairo_pattern_set_matrix, <a href="cairo-Patterns.html#id2577223">cairo_pattern_set_matrix ()</a>
+</dt>
+<dt>cairo_pattern_status, <a href="cairo-Patterns.html#id2576863">cairo_pattern_status ()</a>
+</dt>
+<dt>cairo_pattern_t, <a href="cairo-Patterns.html#id2567003">cairo_pattern_t</a>
+</dt>
+<dt>cairo_pattern_type_t, <a href="cairo-Patterns.html#id2577290">enum cairo_pattern_type_t</a>
+</dt>
+<dt>cairo_pdf_surface_create, <a href="cairo-PDF-Surfaces.html#id2583958">cairo_pdf_surface_create ()</a>
+</dt>
+<dt>cairo_pdf_surface_create_for_stream, <a href="cairo-PDF-Surfaces.html#id2584012">cairo_pdf_surface_create_for_stream ()</a>
+</dt>
+<dt>cairo_pdf_surface_set_size, <a href="cairo-PDF-Surfaces.html#id2570867">cairo_pdf_surface_set_size ()</a>
+</dt>
+<dt>cairo_pop_group, <a href="cairo-cairo-t.html#id2573915">cairo_pop_group ()</a>
+</dt>
+<dt>cairo_pop_group_to_source, <a href="cairo-cairo-t.html#id2573959">cairo_pop_group_to_source ()</a>
+</dt>
+<dt>cairo_ps_surface_create, <a href="cairo-PostScript-Surfaces.html#id2584935">cairo_ps_surface_create ()</a>
+</dt>
+<dt>cairo_ps_surface_create_for_stream, <a href="cairo-PostScript-Surfaces.html#id2584990">cairo_ps_surface_create_for_stream ()</a>
+</dt>
+<dt>cairo_ps_surface_dsc_begin_page_setup, <a href="cairo-PostScript-Surfaces.html#id2543675">cairo_ps_surface_dsc_begin_page_setup ()</a>
+</dt>
+<dt>cairo_ps_surface_dsc_begin_setup, <a href="cairo-PostScript-Surfaces.html#id2543631">cairo_ps_surface_dsc_begin_setup ()</a>
+</dt>
+<dt>cairo_ps_surface_dsc_comment, <a href="cairo-PostScript-Surfaces.html#id2543718">cairo_ps_surface_dsc_comment ()</a>
+</dt>
+<dt>cairo_ps_surface_set_size, <a href="cairo-PostScript-Surfaces.html#id2585054">cairo_ps_surface_set_size ()</a>
+</dt>
+<dt>cairo_push_group, <a href="cairo-cairo-t.html#id2573819">cairo_push_group ()</a>
+</dt>
+<dt>cairo_push_group_with_content, <a href="cairo-cairo-t.html#id2573863">cairo_push_group_with_content ()</a>
+</dt>
+<dt>cairo_read_func_t, <a href="cairo-PNG-Support.html#id2584414">cairo_read_func_t ()</a>
+</dt>
+<dt>cairo_rectangle, <a href="cairo-Paths.html#id2531572">cairo_rectangle ()</a>
+</dt>
+<dt>cairo_reference, <a href="cairo-cairo-t.html#id2573600">cairo_reference ()</a>
+</dt>
+<dt>cairo_rel_curve_to, <a href="cairo-Paths.html#id2531731">cairo_rel_curve_to ()</a>
+</dt>
+<dt>cairo_rel_line_to, <a href="cairo-Paths.html#id2576064">cairo_rel_line_to ()</a>
+</dt>
+<dt>cairo_rel_move_to, <a href="cairo-Paths.html#id2576108">cairo_rel_move_to ()</a>
+</dt>
+<dt>cairo_reset_clip, <a href="cairo-cairo-t.html#id2575403">cairo_reset_clip ()</a>
+</dt>
+<dt>cairo_restore, <a href="cairo-cairo-t.html#id2573745">cairo_restore ()</a>
+</dt>
+<dt>cairo_rotate, <a href="cairo-Transformations.html#id2537652">cairo_rotate ()</a>
+</dt>
+<dt>cairo_save, <a href="cairo-cairo-t.html#id2573709">cairo_save ()</a>
+</dt>
+<dt>cairo_scale, <a href="cairo-Transformations.html#id2537603">cairo_scale ()</a>
+</dt>
+<dt>cairo_scaled_font_create, <a href="cairo-Scaled-Fonts.html#id2579475">cairo_scaled_font_create ()</a>
+</dt>
+<dt>cairo_scaled_font_destroy, <a href="cairo-Scaled-Fonts.html#id2579569">cairo_scaled_font_destroy ()</a>
+</dt>
+<dt>cairo_scaled_font_extents, <a href="cairo-Scaled-Fonts.html#id2532979">cairo_scaled_font_extents ()</a>
+</dt>
+<dt>cairo_scaled_font_get_ctm, <a href="cairo-Scaled-Fonts.html#id2581545">cairo_scaled_font_get_ctm ()</a>
+</dt>
+<dt>cairo_scaled_font_get_font_face, <a href="cairo-Scaled-Fonts.html#id2581392">cairo_scaled_font_get_font_face ()</a>
+</dt>
+<dt>cairo_scaled_font_get_font_matrix, <a href="cairo-Scaled-Fonts.html#id2581491">cairo_scaled_font_get_font_matrix ()</a>
+</dt>
+<dt>cairo_scaled_font_get_font_options, <a href="cairo-Scaled-Fonts.html#id2581439">cairo_scaled_font_get_font_options ()</a>
+</dt>
+<dt>cairo_scaled_font_get_type, <a href="cairo-Scaled-Fonts.html#id2581595">cairo_scaled_font_get_type ()</a>
+</dt>
+<dt>cairo_scaled_font_glyph_extents, <a href="cairo-Scaled-Fonts.html#id2581334">cairo_scaled_font_glyph_extents ()</a>
+</dt>
+<dt>cairo_scaled_font_reference, <a href="cairo-Scaled-Fonts.html#id2579532">cairo_scaled_font_reference ()</a>
+</dt>
+<dt>cairo_scaled_font_status, <a href="cairo-Scaled-Fonts.html#id2579604">cairo_scaled_font_status ()</a>
+</dt>
+<dt>cairo_scaled_font_t, <a href="cairo-Scaled-Fonts.html#id2579432">cairo_scaled_font_t</a>
+</dt>
+<dt>cairo_scaled_font_text_extents, <a href="cairo-Scaled-Fonts.html#id2581275">cairo_scaled_font_text_extents ()</a>
+</dt>
+<dt>cairo_select_font_face, <a href="cairo-Text.html#id2572407">cairo_select_font_face ()</a>
+</dt>
+<dt>cairo_set_antialias, <a href="cairo-cairo-t.html#id2574428">cairo_set_antialias ()</a>
+</dt>
+<dt>cairo_set_dash, <a href="cairo-cairo-t.html#id2574508">cairo_set_dash ()</a>
+</dt>
+<dt>cairo_set_fill_rule, <a href="cairo-cairo-t.html#id2574670">cairo_set_fill_rule ()</a>
+</dt>
+<dt>cairo_set_font_face, <a href="cairo-Text.html#id2579210">cairo_set_font_face ()</a>
+</dt>
+<dt>cairo_set_font_matrix, <a href="cairo-Text.html#id2572504">cairo_set_font_matrix ()</a>
+</dt>
+<dt>cairo_set_font_options, <a href="cairo-Text.html#id2572588">cairo_set_font_options ()</a>
+</dt>
+<dt>cairo_set_font_size, <a href="cairo-Text.html#id2572462">cairo_set_font_size ()</a>
+</dt>
+<dt>cairo_set_line_cap, <a href="cairo-cairo-t.html#id2574852">cairo_set_line_cap ()</a>
+</dt>
+<dt>cairo_set_line_join, <a href="cairo-cairo-t.html#id2574962">cairo_set_line_join ()</a>
+</dt>
+<dt>cairo_set_line_width, <a href="cairo-cairo-t.html#id2575027">cairo_set_line_width ()</a>
+</dt>
+<dt>cairo_set_matrix, <a href="cairo-Transformations.html#id2537738">cairo_set_matrix ()</a>
+</dt>
+<dt>cairo_set_miter_limit, <a href="cairo-cairo-t.html#id2575097">cairo_set_miter_limit ()</a>
+</dt>
+<dt>cairo_set_operator, <a href="cairo-cairo-t.html#id2575199">cairo_set_operator ()</a>
+</dt>
+<dt>cairo_set_scaled_font, <a href="cairo-Text.html#id2579254">cairo_set_scaled_font ()</a>
+</dt>
+<dt>cairo_set_source, <a href="cairo-cairo-t.html#id2574162">cairo_set_source ()</a>
+</dt>
+<dt>cairo_set_source_rgb, <a href="cairo-cairo-t.html#id2574044">cairo_set_source_rgb ()</a>
+</dt>
+<dt>cairo_set_source_rgba, <a href="cairo-cairo-t.html#id2574099">cairo_set_source_rgba ()</a>
+</dt>
+<dt>cairo_set_source_surface, <a href="cairo-cairo-t.html#id2574206">cairo_set_source_surface ()</a>
+</dt>
+<dt>cairo_set_tolerance, <a href="cairo-cairo-t.html#id2575269">cairo_set_tolerance ()</a>
+</dt>
+<dt>cairo_show_glyphs, <a href="cairo-Text.html#id2579091">cairo_show_glyphs ()</a>
+</dt>
+<dt>cairo_show_page, <a href="cairo-cairo-t.html#id2575955">cairo_show_page ()</a>
+</dt>
+<dt>cairo_show_text, <a href="cairo-Text.html#id2579053">cairo_show_text ()</a>
+</dt>
+<dt>cairo_status, <a href="cairo-cairo-t.html#id2573672">cairo_status ()</a>
+</dt>
+<dt>cairo_status_t, <a href="cairo-Error-handling.html#id2586964">enum cairo_status_t</a>
+</dt>
+<dt>cairo_status_to_string, <a href="cairo-Error-handling.html#id2590655">cairo_status_to_string ()</a>
+</dt>
+<dt>cairo_stroke, <a href="cairo-cairo-t.html#id2575758">cairo_stroke ()</a>
+</dt>
+<dt>cairo_stroke_extents, <a href="cairo-cairo-t.html#id2575822">cairo_stroke_extents ()</a>
+</dt>
+<dt>cairo_stroke_preserve, <a href="cairo-cairo-t.html#id2575790">cairo_stroke_preserve ()</a>
+</dt>
+<dt>cairo_subpixel_order_t, <a href="cairo-Font-Options.html#id2578031">enum cairo_subpixel_order_t</a>
+</dt>
+<dt>cairo_surface_create_similar, <a href="cairo-cairo-surface-t.html#id2580099">cairo_surface_create_similar ()</a>
+</dt>
+<dt>cairo_surface_destroy, <a href="cairo-cairo-surface-t.html#id2580158">cairo_surface_destroy ()</a>
+</dt>
+<dt>cairo_surface_finish, <a href="cairo-cairo-surface-t.html#id2580193">cairo_surface_finish ()</a>
+</dt>
+<dt>cairo_surface_flush, <a href="cairo-cairo-surface-t.html#id2580228">cairo_surface_flush ()</a>
+</dt>
+<dt>cairo_surface_get_content, <a href="cairo-cairo-surface-t.html#id2585177">cairo_surface_get_content ()</a>
+</dt>
+<dt>cairo_surface_get_device_offset, <a href="cairo-cairo-surface-t.html#id2585497">cairo_surface_get_device_offset ()</a>
+</dt>
+<dt>cairo_surface_get_font_options, <a href="cairo-cairo-surface-t.html#id2580265">cairo_surface_get_font_options ()</a>
+</dt>
+<dt>cairo_surface_get_type, <a href="cairo-cairo-surface-t.html#id2585689">cairo_surface_get_type ()</a>
+</dt>
+<dt>cairo_surface_get_user_data, <a href="cairo-cairo-surface-t.html#id2585267">cairo_surface_get_user_data ()</a>
+</dt>
+<dt>cairo_surface_mark_dirty, <a href="cairo-cairo-surface-t.html#id2585307">cairo_surface_mark_dirty ()</a>
+</dt>
+<dt>cairo_surface_mark_dirty_rectangle, <a href="cairo-cairo-surface-t.html#id2585343">cairo_surface_mark_dirty_rectangle ()</a>
+</dt>
+<dt>cairo_surface_reference, <a href="cairo-cairo-surface-t.html#id2585409">cairo_surface_reference ()</a>
+</dt>
+<dt>cairo_surface_set_device_offset, <a href="cairo-cairo-surface-t.html#id2585445">cairo_surface_set_device_offset ()</a>
+</dt>
+<dt>cairo_surface_set_fallback_resolution, <a href="cairo-cairo-surface-t.html#id2585556">cairo_surface_set_fallback_resolution ()</a>
+</dt>
+<dt>cairo_surface_set_user_data, <a href="cairo-cairo-surface-t.html#id2585215">cairo_surface_set_user_data ()</a>
+</dt>
+<dt>cairo_surface_status, <a href="cairo-cairo-surface-t.html#id2585616">cairo_surface_status ()</a>
+</dt>
+<dt>cairo_surface_t, <a href="cairo-cairo-surface-t.html#id2584196">cairo_surface_t</a>
+</dt>
+<dt>cairo_surface_type_t, <a href="cairo-cairo-surface-t.html#id2585651">enum cairo_surface_type_t</a>
+</dt>
+<dt>cairo_surface_write_to_png, <a href="cairo-PNG-Support.html#id2584586">cairo_surface_write_to_png ()</a>
+</dt>
+<dt>cairo_surface_write_to_png_stream, <a href="cairo-PNG-Support.html#id2584755">cairo_surface_write_to_png_stream ()</a>
+</dt>
+<dt>cairo_svg_get_versions, <a href="cairo-SVG-Surfaces.html#id2588847">cairo_svg_get_versions ()</a>
+</dt>
+<dt>cairo_svg_surface_create, <a href="cairo-SVG-Surfaces.html#id2588648">cairo_svg_surface_create ()</a>
+</dt>
+<dt>cairo_svg_surface_create_for_stream, <a href="cairo-SVG-Surfaces.html#id2588703">cairo_svg_surface_create_for_stream ()</a>
+</dt>
+<dt>cairo_svg_surface_restrict_to_version, <a href="cairo-SVG-Surfaces.html#id2588767">cairo_svg_surface_restrict_to_version ()</a>
+</dt>
+<dt>cairo_svg_version_t, <a href="cairo-SVG-Surfaces.html#id2588820">enum cairo_svg_version_t</a>
+</dt>
+<dt>cairo_svg_version_to_string, <a href="cairo-SVG-Surfaces.html#id2588896">cairo_svg_version_to_string ()</a>
+</dt>
+<dt>cairo_t, <a href="cairo-cairo-t.html#id2573523">cairo_t</a>
+</dt>
+<dt>cairo_text_extents, <a href="cairo-Text.html#id2579303">cairo_text_extents ()</a>
+</dt>
+<dt>cairo_text_extents_t, <a href="cairo-Scaled-Fonts.html#id2533020">cairo_text_extents_t</a>
+</dt>
+<dt>cairo_text_path, <a href="cairo-Paths.html#id2531687">cairo_text_path ()</a>
+</dt>
+<dt>cairo_transform, <a href="cairo-Transformations.html#id2537694">cairo_transform ()</a>
+</dt>
+<dt>cairo_translate, <a href="cairo-Transformations.html#id2537554">cairo_translate ()</a>
+</dt>
+<dt>cairo_user_data_key_t, <a href="cairo-Types.html#id2589661">cairo_user_data_key_t</a>
+</dt>
+<dt>cairo_user_to_device, <a href="cairo-Transformations.html#id2533774">cairo_user_to_device ()</a>
+</dt>
+<dt>cairo_user_to_device_distance, <a href="cairo-Transformations.html#id2533822">cairo_user_to_device_distance ()</a>
+</dt>
+<dt>CAIRO_VERSION, <a href="cairo-Version-Information.html#id2587108">CAIRO_VERSION</a>
+</dt>
+<dt>cairo_version, <a href="cairo-Version-Information.html#id2587310">cairo_version ()</a>
+</dt>
+<dt>CAIRO_VERSION_ENCODE, <a href="cairo-Version-Information.html#id2587235">CAIRO_VERSION_ENCODE()</a>
+</dt>
+<dt>CAIRO_VERSION_MAJOR, <a href="cairo-Version-Information.html#id2587135">CAIRO_VERSION_MAJOR</a>
+</dt>
+<dt>CAIRO_VERSION_MICRO, <a href="cairo-Version-Information.html#id2587184">CAIRO_VERSION_MICRO</a>
+</dt>
+<dt>CAIRO_VERSION_MINOR, <a href="cairo-Version-Information.html#id2587159">CAIRO_VERSION_MINOR</a>
+</dt>
+<dt>CAIRO_VERSION_STRING, <a href="cairo-Version-Information.html#id2587209">CAIRO_VERSION_STRING</a>
+</dt>
+<dt>cairo_version_string, <a href="cairo-Version-Information.html#id2587341">cairo_version_string ()</a>
+</dt>
+<dt>cairo_win32_font_face_create_for_hfont, <a href="cairo-Win32-Fonts.html#id2582550">cairo_win32_font_face_create_for_hfont ()</a>
+</dt>
+<dt>cairo_win32_font_face_create_for_logfontw, <a href="cairo-Win32-Fonts.html#id2582511">cairo_win32_font_face_create_for_logfontw ()</a>
+</dt>
+<dt>cairo_win32_scaled_font_done_font, <a href="cairo-Win32-Fonts.html#id2582244">cairo_win32_scaled_font_done_font ()</a>
+</dt>
+<dt>cairo_win32_scaled_font_get_metrics_factor, <a href="cairo-Win32-Fonts.html#id2582281">cairo_win32_scaled_font_get_metrics_factor ()</a>
+</dt>
+<dt>cairo_win32_scaled_font_select_font, <a href="cairo-Win32-Fonts.html#id2582199">cairo_win32_scaled_font_select_font ()</a>
+</dt>
+<dt>cairo_win32_surface_create, <a href="cairo-Win32-Surfaces.html#id2543796">cairo_win32_surface_create ()</a>
+</dt>
+<dt>cairo_win32_surface_create_with_dib, <a href="cairo-Win32-Surfaces.html#id2543830">cairo_win32_surface_create_with_dib ()</a>
+</dt>
+<dt>cairo_win32_surface_get_dc, <a href="cairo-Win32-Surfaces.html#id2543885">cairo_win32_surface_get_dc ()</a>
+</dt>
+<dt>cairo_write_func_t, <a href="cairo-PNG-Support.html#id2584628">cairo_write_func_t ()</a>
+</dt>
+<dt>cairo_xlib_surface_create, <a href="cairo-XLib-Surfaces.html#id2586484">cairo_xlib_surface_create ()</a>
+</dt>
+<dt>cairo_xlib_surface_create_for_bitmap, <a href="cairo-XLib-Surfaces.html#id2586546">cairo_xlib_surface_create_for_bitmap ()</a>
+</dt>
+<dt>cairo_xlib_surface_get_depth, <a href="cairo-XLib-Surfaces.html#id2544085">cairo_xlib_surface_get_depth ()</a>
+</dt>
+<dt>cairo_xlib_surface_get_display, <a href="cairo-XLib-Surfaces.html#id2588098">cairo_xlib_surface_get_display ()</a>
+</dt>
+<dt>cairo_xlib_surface_get_drawable, <a href="cairo-XLib-Surfaces.html#id2588245">cairo_xlib_surface_get_drawable ()</a>
+</dt>
+<dt>cairo_xlib_surface_get_height, <a href="cairo-XLib-Surfaces.html#id2544040">cairo_xlib_surface_get_height ()</a>
+</dt>
+<dt>cairo_xlib_surface_get_screen, <a href="cairo-XLib-Surfaces.html#id2588141">cairo_xlib_surface_get_screen ()</a>
+</dt>
+<dt>cairo_xlib_surface_get_visual, <a href="cairo-XLib-Surfaces.html#id2543949">cairo_xlib_surface_get_visual ()</a>
+</dt>
+<dt>cairo_xlib_surface_get_width, <a href="cairo-XLib-Surfaces.html#id2543994">cairo_xlib_surface_get_width ()</a>
+</dt>
+<dt>cairo_xlib_surface_set_drawable, <a href="cairo-XLib-Surfaces.html#id2588186">cairo_xlib_surface_set_drawable ()</a>
+</dt>
+<dt>cairo_xlib_surface_set_size, <a href="cairo-XLib-Surfaces.html#id2588049">cairo_xlib_surface_set_size ()</a>
</dt>
</dl>
</div>
diff --git a/doc/public/html/pt01.html b/doc/public/html/pt01.html
index b0ab7ae..dbcf08f 100644
--- a/doc/public/html/pt01.html
+++ b/doc/public/html/pt01.html
@@ -28,6 +28,6 @@
<td><a accesskey="n" href="pt02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title">
-<a name="id2510518"></a>Tutorial</h1></div></div></div></div>
+<a name="id2515850"></a>Tutorial</h1></div></div></div></div>
</body>
</html>
diff --git a/doc/public/html/pt02.html b/doc/public/html/pt02.html
index 09ac7aa..af247e5 100644
--- a/doc/public/html/pt02.html
+++ b/doc/public/html/pt02.html
@@ -28,6 +28,6 @@
<td><a accesskey="n" href="Drawing.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title">
-<a name="id2510450"></a>Reference</h1></div></div></div></div>
+<a name="id2515869"></a>Reference</h1></div></div></div></div>
</body>
</html>
diff --git a/doc/public/tmpl/cairo-types.sgml b/doc/public/tmpl/cairo-types.sgml
index 9e6f6b5..c0c14fa 100644
--- a/doc/public/tmpl/cairo-types.sgml
+++ b/doc/public/tmpl/cairo-types.sgml
@@ -17,13 +17,11 @@ Generic data types used in the cairo API
<!-- ##### SECTION Stability_Level ##### -->
-<!-- ##### FUNCTION cairo_bool_t ##### -->
+<!-- ##### TYPEDEF cairo_bool_t ##### -->
<para>
</para>
-@Returns:
-
<!-- ##### STRUCT cairo_user_data_key_t ##### -->
<para>
diff --git a/doc/public/tmpl/cairo-unused.sgml b/doc/public/tmpl/cairo-unused.sgml
index 8846fe8..0d76557 100644
--- a/doc/public/tmpl/cairo-unused.sgml
+++ b/doc/public/tmpl/cairo-unused.sgml
@@ -22,6 +22,126 @@
ATSUI Fonts
+<!-- ##### SECTION ./tmpl/cairo-beos.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-beos.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-beos.sgml:Short_Description ##### -->
+BeOS surface support
+
+
+<!-- ##### SECTION ./tmpl/cairo-beos.sgml:Stability_Level ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/cairo-beos.sgml:Title ##### -->
+BeOS Surfaces
+
+
+<!-- ##### SECTION ./tmpl/cairo-glitz.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-glitz.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-glitz.sgml:Short_Description ##### -->
+OpenGL accelerated rendering using the Glitz library
+
+
+<!-- ##### SECTION ./tmpl/cairo-glitz.sgml:Stability_Level ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/cairo-glitz.sgml:Title ##### -->
+Glitz Surfaces
+
+
+<!-- ##### SECTION ./tmpl/cairo-quartz.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-quartz.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-quartz.sgml:Short_Description ##### -->
+Rendering to Quartz surfaces
+
+
+<!-- ##### SECTION ./tmpl/cairo-quartz.sgml:Stability_Level ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/cairo-quartz.sgml:Title ##### -->
+Quartz Surfaces
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:Short_Description ##### -->
+X Window System rendering using the XCB library
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:Stability_Level ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:Title ##### -->
+XCB Surfaces
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb.sgml:Short_Description ##### -->
+X Window System rendering using the XCB library
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb.sgml:Stability_Level ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/cairo-xcb.sgml:Title ##### -->
+XCB Surfaces
+
+
<!-- ##### FUNCTION cairo_beos_surface_create ##### -->
<para>
@@ -39,3 +159,21 @@ ATSUI Fonts
@bmp:
@Returns:
+<!-- ##### MACRO cairo_pdf_surface_set_dpi ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO cairo_ps_surface_set_dpi ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO cairo_svg_surface_set_dpi ##### -->
+<para>
+
+</para>
+
+
diff --git a/doc/public/tmpl/cairo-version.sgml b/doc/public/tmpl/cairo-version.sgml
index 42eb58e..3c3404e 100644
--- a/doc/public/tmpl/cairo-version.sgml
+++ b/doc/public/tmpl/cairo-version.sgml
@@ -124,6 +124,13 @@ if (cairo_version() >= %CAIRO_VERSION_ENCODE(1, 0, 0))
+<!-- ##### MACRO CAIRO_VERSION_STRING ##### -->
+<para>
+
+</para>
+
+
+
<!-- ##### MACRO CAIRO_VERSION_ENCODE ##### -->
<para>
diff --git a/doc/public/version.xml b/doc/public/version.xml
index 5ed5faa..26aaba0 100644
--- a/doc/public/version.xml
+++ b/doc/public/version.xml
@@ -1 +1 @@
-1.1.10
+1.2.0
diff --git a/doc/public/xml/cairo-beos.xml b/doc/public/xml/cairo-beos.xml
deleted file mode 100644
index 8118af6..0000000
--- a/doc/public/xml/cairo-beos.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<!ENTITY version SYSTEM "version.xml">
-]>
-<refentry id="cairo-BeOS-Surfaces">
-<refmeta>
-<refentrytitle id="top_of_page">BeOS Surfaces</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>CAIRO Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>BeOS Surfaces</refname>
-<refpurpose>BeOS surface support</refpurpose>
-<!--[<xref linkend="desc" endterm="desc.title"/>]-->
-</refnamediv>
-
-<refsynopsisdiv id="synopsis">
-<title id="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-
-
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="desc">
-<title id="desc.title">Description</title>
-<para>
-
-</para>
-</refsect1>
-
-<refsect1 id="details">
-<title id="details.title">Details</title>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/doc/public/xml/cairo-font-options.xml b/doc/public/xml/cairo-font-options.xml
index cba8528..4433c5c 100644
--- a/doc/public/xml/cairo-font-options.xml
+++ b/doc/public/xml/cairo-font-options.xml
@@ -24,9 +24,40 @@
typedef <link linkend="cairo-font-options-t">cairo_font_options_t</link>;
+<link linkend="cairo-font-options-t">cairo_font_options_t</link>* <link linkend="cairo-font-options-create">cairo_font_options_create</link>
+ (void);
+<link linkend="cairo-font-options-t">cairo_font_options_t</link>* <link linkend="cairo-font-options-copy">cairo_font_options_copy</link>
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *original);
+<link linkend="void">void</link> <link linkend="cairo-font-options-destroy">cairo_font_options_destroy</link> (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-font-options-status">cairo_font_options_status</link> (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
+<link linkend="void">void</link> <link linkend="cairo-font-options-merge">cairo_font_options_merge</link> (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *other);
+unsigned <link linkend="long">long</link> <link linkend="cairo-font-options-hash">cairo_font_options_hash</link> (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
+<link linkend="cairo-bool-t">cairo_bool_t</link> <link linkend="cairo-font-options-equal">cairo_font_options_equal</link> (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *other);
+<link linkend="void">void</link> <link linkend="cairo-font-options-set-antialias">cairo_font_options_set_antialias</link>
+ (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="cairo-antialias-t">cairo_antialias_t</link> antialias);
+<link linkend="cairo-antialias-t">cairo_antialias_t</link> <link linkend="cairo-font-options-get-antialias">cairo_font_options_get_antialias</link>
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
enum <link linkend="cairo-subpixel-order-t">cairo_subpixel_order_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-font-options-set-subpixel-order">cairo_font_options_set_subpixel_order</link>
+ (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="cairo-subpixel-order-t">cairo_subpixel_order_t</link> subpixel_order);
+<link linkend="cairo-subpixel-order-t">cairo_subpixel_order_t</link> <link linkend="cairo-font-options-get-subpixel-order">cairo_font_options_get_subpixel_order</link>
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
enum <link linkend="cairo-hint-style-t">cairo_hint_style_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-font-options-set-hint-style">cairo_font_options_set_hint_style</link>
+ (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="cairo-hint-style-t">cairo_hint_style_t</link> hint_style);
+<link linkend="cairo-hint-style-t">cairo_hint_style_t</link> <link linkend="cairo-font-options-get-hint-style">cairo_font_options_get_hint_style</link>
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
enum <link linkend="cairo-hint-metrics-t">cairo_hint_metrics_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-font-options-set-hint-metrics">cairo_font_options_set_hint_metrics</link>
+ (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="cairo-hint-metrics-t">cairo_hint_metrics_t</link> hint_metrics);
+<link linkend="cairo-hint-metrics-t">cairo_hint_metrics_t</link> <link linkend="cairo-font-options-get-hint-metrics">cairo_font_options_get_hint_metrics</link>
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
</synopsis>
</refsynopsisdiv>
@@ -55,6 +86,49 @@ enum <link linkend="cairo-hint-metrics-t">cairo_hint_metrics_t</link>;
</para></refsect2>
<refsect2>
+<title><anchor id="cairo-font-options-create" role="function"/>cairo_font_options_create ()</title>
+<indexterm><primary>cairo_font_options_create</primary></indexterm><programlisting><link linkend="cairo-font-options-t">cairo_font_options_t</link>* cairo_font_options_create
+ (void);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-copy" role="function"/>cairo_font_options_copy ()</title>
+<indexterm><primary>cairo_font_options_copy</primary></indexterm><programlisting><link linkend="cairo-font-options-t">cairo_font_options_t</link>* cairo_font_options_copy
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *original);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-destroy" role="function"/>cairo_font_options_destroy ()</title>
+<indexterm><primary>cairo_font_options_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_font_options_destroy (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-status" role="function"/>cairo_font_options_status ()</title>
+<indexterm><primary>cairo_font_options_status</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_font_options_status (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-merge" role="function"/>cairo_font_options_merge ()</title>
+<indexterm><primary>cairo_font_options_merge</primary></indexterm><programlisting><link linkend="void">void</link> cairo_font_options_merge (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *other);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-hash" role="function"/>cairo_font_options_hash ()</title>
+<indexterm><primary>cairo_font_options_hash</primary></indexterm><programlisting>unsigned <link linkend="long">long</link> cairo_font_options_hash (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-equal" role="function"/>cairo_font_options_equal ()</title>
+<indexterm><primary>cairo_font_options_equal</primary></indexterm><programlisting><link linkend="cairo-bool-t">cairo_bool_t</link> cairo_font_options_equal (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *other);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-set-antialias" role="function"/>cairo_font_options_set_antialias ()</title>
+<indexterm><primary>cairo_font_options_set_antialias</primary></indexterm><programlisting><link linkend="void">void</link> cairo_font_options_set_antialias
+ (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="cairo-antialias-t">cairo_antialias_t</link> antialias);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-get-antialias" role="function"/>cairo_font_options_get_antialias ()</title>
+<indexterm><primary>cairo_font_options_get_antialias</primary></indexterm><programlisting><link linkend="cairo-antialias-t">cairo_antialias_t</link> cairo_font_options_get_antialias
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-subpixel-order-t" role="enum"/>enum cairo_subpixel_order_t</title>
<indexterm><primary>cairo_subpixel_order_t</primary></indexterm><programlisting>typedef enum _cairo_subpixel_order {
CAIRO_SUBPIXEL_ORDER_DEFAULT,
@@ -103,6 +177,17 @@ antialiasing mode of <link linkend="CAIRO-ANTIALIAS-SUBPIXEL:CAPS"><literal>CAIR
</varlistentry>
</variablelist></refsect2>
<refsect2>
+<title><anchor id="cairo-font-options-set-subpixel-order" role="function"/>cairo_font_options_set_subpixel_order ()</title>
+<indexterm><primary>cairo_font_options_set_subpixel_order</primary></indexterm><programlisting><link linkend="void">void</link> cairo_font_options_set_subpixel_order
+ (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="cairo-subpixel-order-t">cairo_subpixel_order_t</link> subpixel_order);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-get-subpixel-order" role="function"/>cairo_font_options_get_subpixel_order ()</title>
+<indexterm><primary>cairo_font_options_get_subpixel_order</primary></indexterm><programlisting><link linkend="cairo-subpixel-order-t">cairo_subpixel_order_t</link> cairo_font_options_get_subpixel_order
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-hint-style-t" role="enum"/>enum cairo_hint_style_t</title>
<indexterm><primary>cairo_hint_style_t</primary></indexterm><programlisting>typedef enum _cairo_hint_style {
CAIRO_HINT_STYLE_DEFAULT,
@@ -154,6 +239,17 @@ styles are supported by all font backends.</para>
</varlistentry>
</variablelist></refsect2>
<refsect2>
+<title><anchor id="cairo-font-options-set-hint-style" role="function"/>cairo_font_options_set_hint_style ()</title>
+<indexterm><primary>cairo_font_options_set_hint_style</primary></indexterm><programlisting><link linkend="void">void</link> cairo_font_options_set_hint_style
+ (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="cairo-hint-style-t">cairo_hint_style_t</link> hint_style);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-get-hint-style" role="function"/>cairo_font_options_get_hint_style ()</title>
+<indexterm><primary>cairo_font_options_get_hint_style</primary></indexterm><programlisting><link linkend="cairo-hint-style-t">cairo_hint_style_t</link> cairo_font_options_get_hint_style
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-hint-metrics-t" role="enum"/>enum cairo_hint_metrics_t</title>
<indexterm><primary>cairo_hint_metrics_t</primary></indexterm><programlisting>typedef enum _cairo_hint_metrics {
CAIRO_HINT_METRICS_DEFAULT,
@@ -187,6 +283,17 @@ will be laid out differently at different zoom factors.</para>
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-set-hint-metrics" role="function"/>cairo_font_options_set_hint_metrics ()</title>
+<indexterm><primary>cairo_font_options_set_hint_metrics</primary></indexterm><programlisting><link linkend="void">void</link> cairo_font_options_set_hint_metrics
+ (<link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="cairo-hint-metrics-t">cairo_hint_metrics_t</link> hint_metrics);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-options-get-hint-metrics" role="function"/>cairo_font_options_get_hint_metrics ()</title>
+<indexterm><primary>cairo_font_options_get_hint_metrics</primary></indexterm><programlisting><link linkend="cairo-hint-metrics-t">cairo_hint_metrics_t</link> cairo_font_options_get_hint_metrics
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-font.xml b/doc/public/xml/cairo-font.xml
index 36c0c9a..d2097bf 100644
--- a/doc/public/xml/cairo-font.xml
+++ b/doc/public/xml/cairo-font.xml
@@ -24,6 +24,19 @@
typedef <link linkend="cairo-font-face-t">cairo_font_face_t</link>;
+<link linkend="cairo-font-face-t">cairo_font_face_t</link>* <link linkend="cairo-font-face-reference">cairo_font_face_reference</link>
+ (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);
+<link linkend="void">void</link> <link linkend="cairo-font-face-destroy">cairo_font_face_destroy</link> (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-font-face-status">cairo_font_face_status</link> (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);
+<link linkend="void">void</link>* <link linkend="cairo-font-face-get-user-data">cairo_font_face_get_user_data</link> (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face,
+ const <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link> *key);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-font-face-set-user-data">cairo_font_face_set_user_data</link>
+ (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face,
+ const <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link> *key,
+ <link linkend="void">void</link> *user_data,
+ <link linkend="cairo-destroy-func-t">cairo_destroy_func_t</link> destroy);
+enum <link linkend="cairo-font-type-t">cairo_font_type_t</link>;
+<link linkend="cairo-font-type-t">cairo_font_type_t</link> <link linkend="cairo-font-face-get-type">cairo_font_face_get_type</link> (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);
</synopsis>
</refsynopsisdiv>
@@ -58,6 +71,48 @@ directions) . A font face can be set on a <link linkend="cairo-t"><type>cairo_t<
<para>
</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-font-face-reference" role="function"/>cairo_font_face_reference ()</title>
+<indexterm><primary>cairo_font_face_reference</primary></indexterm><programlisting><link linkend="cairo-font-face-t">cairo_font_face_t</link>* cairo_font_face_reference
+ (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-face-destroy" role="function"/>cairo_font_face_destroy ()</title>
+<indexterm><primary>cairo_font_face_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_font_face_destroy (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-face-status" role="function"/>cairo_font_face_status ()</title>
+<indexterm><primary>cairo_font_face_status</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_font_face_status (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-face-get-user-data" role="function"/>cairo_font_face_get_user_data ()</title>
+<indexterm><primary>cairo_font_face_get_user_data</primary></indexterm><programlisting><link linkend="void">void</link>* cairo_font_face_get_user_data (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face,
+ const <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link> *key);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-face-set-user-data" role="function"/>cairo_font_face_set_user_data ()</title>
+<indexterm><primary>cairo_font_face_set_user_data</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_font_face_set_user_data
+ (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face,
+ const <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link> *key,
+ <link linkend="void">void</link> *user_data,
+ <link linkend="cairo-destroy-func-t">cairo_destroy_func_t</link> destroy);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-type-t" role="enum" condition="since:1.2"/>enum cairo_font_type_t</title>
+<indexterm role="1.2"><primary>cairo_font_type_t</primary></indexterm><programlisting>typedef enum _cairo_font_type {
+ CAIRO_FONT_TYPE_TOY,
+ CAIRO_FONT_TYPE_FT,
+ CAIRO_FONT_TYPE_WIN32,
+ CAIRO_FONT_TYPE_ATSUI
+} cairo_font_type_t;
+</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-font-face-get-type" role="function" condition="since:1.2"/>cairo_font_face_get_type ()</title>
+<indexterm role="1.2"><primary>cairo_font_face_get_type</primary></indexterm><programlisting><link linkend="cairo-font-type-t">cairo_font_type_t</link> cairo_font_face_get_type (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);</programlisting>
+<para>Since 1.2
+</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-ft.xml b/doc/public/xml/cairo-ft.xml
index 8140a10..906b323 100644
--- a/doc/public/xml/cairo-ft.xml
+++ b/doc/public/xml/cairo-ft.xml
@@ -23,6 +23,17 @@
+<link linkend="cairo-font-face-t">cairo_font_face_t</link>* <link linkend="cairo-ft-font-face-create-for-ft-face">cairo_ft_font_face_create_for_ft_face</link>
+ (<link linkend="FT-Face">FT_Face</link> face,
+ <link linkend="int">int</link> load_flags);
+<link linkend="cairo-font-face-t">cairo_font_face_t</link>* <link linkend="cairo-ft-font-face-create-for-pattern">cairo_ft_font_face_create_for_pattern</link>
+ (<link linkend="FcPattern">FcPattern</link> *pattern);
+<link linkend="void">void</link> <link linkend="cairo-ft-font-options-substitute">cairo_ft_font_options_substitute</link>
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="FcPattern">FcPattern</link> *pattern);
+<link linkend="FT-Face">FT_Face</link> <link linkend="cairo-ft-scaled-font-lock-face">cairo_ft_scaled_font_lock_face</link> (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
+<link linkend="void">void</link> <link linkend="cairo-ft-scaled-font-unlock-face">cairo_ft_scaled_font_unlock_face</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
</synopsis>
</refsynopsisdiv>
@@ -43,6 +54,32 @@
<refsect1 id="details">
<title id="details.title">Details</title>
+<refsect2>
+<title><anchor id="cairo-ft-font-face-create-for-ft-face" role="function"/>cairo_ft_font_face_create_for_ft_face ()</title>
+<indexterm><primary>cairo_ft_font_face_create_for_ft_face</primary></indexterm><programlisting><link linkend="cairo-font-face-t">cairo_font_face_t</link>* cairo_ft_font_face_create_for_ft_face
+ (<link linkend="FT-Face">FT_Face</link> face,
+ <link linkend="int">int</link> load_flags);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-ft-font-face-create-for-pattern" role="function"/>cairo_ft_font_face_create_for_pattern ()</title>
+<indexterm><primary>cairo_ft_font_face_create_for_pattern</primary></indexterm><programlisting><link linkend="cairo-font-face-t">cairo_font_face_t</link>* cairo_ft_font_face_create_for_pattern
+ (<link linkend="FcPattern">FcPattern</link> *pattern);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-ft-font-options-substitute" role="function"/>cairo_ft_font_options_substitute ()</title>
+<indexterm><primary>cairo_ft_font_options_substitute</primary></indexterm><programlisting><link linkend="void">void</link> cairo_ft_font_options_substitute
+ (const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options,
+ <link linkend="FcPattern">FcPattern</link> *pattern);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-ft-scaled-font-lock-face" role="function"/>cairo_ft_scaled_font_lock_face ()</title>
+<indexterm><primary>cairo_ft_scaled_font_lock_face</primary></indexterm><programlisting><link linkend="FT-Face">FT_Face</link> cairo_ft_scaled_font_lock_face (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-ft-scaled-font-unlock-face" role="function"/>cairo_ft_scaled_font_unlock_face ()</title>
+<indexterm><primary>cairo_ft_scaled_font_unlock_face</primary></indexterm><programlisting><link linkend="void">void</link> cairo_ft_scaled_font_unlock_face
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-glitz.xml b/doc/public/xml/cairo-glitz.xml
deleted file mode 100644
index c323077..0000000
--- a/doc/public/xml/cairo-glitz.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<!ENTITY version SYSTEM "version.xml">
-]>
-<refentry id="cairo-Glitz-Surfaces">
-<refmeta>
-<refentrytitle id="top_of_page">Glitz Surfaces</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>CAIRO Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>Glitz Surfaces</refname>
-<refpurpose>OpenGL accelerated rendering using the Glitz library</refpurpose>
-<!--[<xref linkend="desc" endterm="desc.title"/>]-->
-</refnamediv>
-
-<refsynopsisdiv id="synopsis">
-<title id="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-
-
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="desc">
-<title id="desc.title">Description</title>
-<para>
-
-</para>
-</refsect1>
-
-<refsect1 id="details">
-<title id="details.title">Details</title>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/doc/public/xml/cairo-image.xml b/doc/public/xml/cairo-image.xml
index 9070135..11d1dbd 100644
--- a/doc/public/xml/cairo-image.xml
+++ b/doc/public/xml/cairo-image.xml
@@ -24,6 +24,21 @@
enum <link linkend="cairo-format-t">cairo_format_t</link>;
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-image-surface-create">cairo_image_surface_create</link> (<link linkend="cairo-format-t">cairo_format_t</link> format,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-image-surface-create-for-data">cairo_image_surface_create_for_data</link>
+ (unsigned <link linkend="char">char</link> *data,
+ <link linkend="cairo-format-t">cairo_format_t</link> format,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height,
+ <link linkend="int">int</link> stride);
+unsigned <link linkend="char">char</link>* <link linkend="cairo-image-surface-get-data">cairo_image_surface_get_data</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="cairo-format-t">cairo_format_t</link> <link linkend="cairo-image-surface-get-format">cairo_image_surface_get_format</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="int">int</link> <link linkend="cairo-image-surface-get-width">cairo_image_surface_get_width</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="int">int</link> <link linkend="cairo-image-surface-get-height">cairo_image_surface_get_height</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="int">int</link> <link linkend="cairo-image-surface-get-stride">cairo_image_surface_get_stride</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
</synopsis>
</refsynopsisdiv>
@@ -99,10 +114,49 @@ image data.</para>
<term><anchor id="CAIRO-FORMAT-RGB16-565:CAPS" role="constant"/><literal>CAIRO_FORMAT_RGB16_565</literal></term>
<listitem><simpara> each pixel is a 16-bit quantity,
with red in the upper 5 bits, then green in the next 6,
- then blue in the lowest 5 bits.
+ then blue in the lowest 5 bits. (Since 1.2)
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
+<refsect2>
+<title><anchor id="cairo-image-surface-create" role="function"/>cairo_image_surface_create ()</title>
+<indexterm><primary>cairo_image_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_image_surface_create (<link linkend="cairo-format-t">cairo_format_t</link> format,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-image-surface-create-for-data" role="function"/>cairo_image_surface_create_for_data ()</title>
+<indexterm><primary>cairo_image_surface_create_for_data</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_image_surface_create_for_data
+ (unsigned <link linkend="char">char</link> *data,
+ <link linkend="cairo-format-t">cairo_format_t</link> format,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height,
+ <link linkend="int">int</link> stride);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-image-surface-get-data" role="function" condition="since:1.2"/>cairo_image_surface_get_data ()</title>
+<indexterm role="1.2"><primary>cairo_image_surface_get_data</primary></indexterm><programlisting>unsigned <link linkend="char">char</link>* cairo_image_surface_get_data (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-image-surface-get-format" role="function" condition="since:1.2"/>cairo_image_surface_get_format ()</title>
+<indexterm role="1.2"><primary>cairo_image_surface_get_format</primary></indexterm><programlisting><link linkend="cairo-format-t">cairo_format_t</link> cairo_image_surface_get_format
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-image-surface-get-width" role="function"/>cairo_image_surface_get_width ()</title>
+<indexterm><primary>cairo_image_surface_get_width</primary></indexterm><programlisting><link linkend="int">int</link> cairo_image_surface_get_width (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-image-surface-get-height" role="function"/>cairo_image_surface_get_height ()</title>
+<indexterm><primary>cairo_image_surface_get_height</primary></indexterm><programlisting><link linkend="int">int</link> cairo_image_surface_get_height (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-image-surface-get-stride" role="function" condition="since:1.2"/>cairo_image_surface_get_stride ()</title>
+<indexterm role="1.2"><primary>cairo_image_surface_get_stride</primary></indexterm><programlisting><link linkend="int">int</link> cairo_image_surface_get_stride (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-matrix.xml b/doc/public/xml/cairo-matrix.xml
index ef5cdc5..416c907 100644
--- a/doc/public/xml/cairo-matrix.xml
+++ b/doc/public/xml/cairo-matrix.xml
@@ -24,6 +24,40 @@
<link linkend="cairo-matrix-t">cairo_matrix_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-matrix-init">cairo_matrix_init</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> xx,
+ <link linkend="double">double</link> yx,
+ <link linkend="double">double</link> xy,
+ <link linkend="double">double</link> yy,
+ <link linkend="double">double</link> x0,
+ <link linkend="double">double</link> y0);
+<link linkend="void">void</link> <link linkend="cairo-matrix-init-identity">cairo_matrix_init_identity</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+<link linkend="void">void</link> <link linkend="cairo-matrix-init-translate">cairo_matrix_init_translate</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> tx,
+ <link linkend="double">double</link> ty);
+<link linkend="void">void</link> <link linkend="cairo-matrix-init-scale">cairo_matrix_init_scale</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> sx,
+ <link linkend="double">double</link> sy);
+<link linkend="void">void</link> <link linkend="cairo-matrix-init-rotate">cairo_matrix_init_rotate</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> radians);
+<link linkend="void">void</link> <link linkend="cairo-matrix-translate">cairo_matrix_translate</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> tx,
+ <link linkend="double">double</link> ty);
+<link linkend="void">void</link> <link linkend="cairo-matrix-scale">cairo_matrix_scale</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> sx,
+ <link linkend="double">double</link> sy);
+<link linkend="void">void</link> <link linkend="cairo-matrix-rotate">cairo_matrix_rotate</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> radians);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-invert">cairo_matrix_invert</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+<link linkend="void">void</link> <link linkend="cairo-matrix-multiply">cairo_matrix_multiply</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *result,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *a,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *b);
+<link linkend="void">void</link> <link linkend="cairo-matrix-transform-distance">cairo_matrix_transform_distance</link> (const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> *dx,
+ <link linkend="double">double</link> *dy);
+<link linkend="void">void</link> <link linkend="cairo-matrix-transform-point">cairo_matrix_transform_point</link> (const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> *x,
+ <link linkend="double">double</link> *y);
</synopsis>
</refsynopsisdiv>
@@ -109,6 +143,76 @@ a point (x, y) is given by:
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-init" role="function"/>cairo_matrix_init ()</title>
+<indexterm><primary>cairo_matrix_init</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_init (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> xx,
+ <link linkend="double">double</link> yx,
+ <link linkend="double">double</link> xy,
+ <link linkend="double">double</link> yy,
+ <link linkend="double">double</link> x0,
+ <link linkend="double">double</link> y0);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-init-identity" role="function"/>cairo_matrix_init_identity ()</title>
+<indexterm><primary>cairo_matrix_init_identity</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_init_identity (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-init-translate" role="function"/>cairo_matrix_init_translate ()</title>
+<indexterm><primary>cairo_matrix_init_translate</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_init_translate (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> tx,
+ <link linkend="double">double</link> ty);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-init-scale" role="function"/>cairo_matrix_init_scale ()</title>
+<indexterm><primary>cairo_matrix_init_scale</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_init_scale (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> sx,
+ <link linkend="double">double</link> sy);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-init-rotate" role="function"/>cairo_matrix_init_rotate ()</title>
+<indexterm><primary>cairo_matrix_init_rotate</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_init_rotate (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> radians);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-translate" role="function"/>cairo_matrix_translate ()</title>
+<indexterm><primary>cairo_matrix_translate</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_translate (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> tx,
+ <link linkend="double">double</link> ty);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-scale" role="function"/>cairo_matrix_scale ()</title>
+<indexterm><primary>cairo_matrix_scale</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_scale (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> sx,
+ <link linkend="double">double</link> sy);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-rotate" role="function"/>cairo_matrix_rotate ()</title>
+<indexterm><primary>cairo_matrix_rotate</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_rotate (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> radians);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-invert" role="function"/>cairo_matrix_invert ()</title>
+<indexterm><primary>cairo_matrix_invert</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_invert (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-multiply" role="function"/>cairo_matrix_multiply ()</title>
+<indexterm><primary>cairo_matrix_multiply</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_multiply (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *result,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *a,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *b);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-transform-distance" role="function"/>cairo_matrix_transform_distance ()</title>
+<indexterm><primary>cairo_matrix_transform_distance</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_transform_distance (const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> *dx,
+ <link linkend="double">double</link> *dy);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-matrix-transform-point" role="function"/>cairo_matrix_transform_point ()</title>
+<indexterm><primary>cairo_matrix_transform_point</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_transform_point (const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
+ <link linkend="double">double</link> *x,
+ <link linkend="double">double</link> *y);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-paths.xml b/doc/public/xml/cairo-paths.xml
index 728b9f5..717819d 100644
--- a/doc/public/xml/cairo-paths.xml
+++ b/doc/public/xml/cairo-paths.xml
@@ -26,6 +26,65 @@
<link linkend="cairo-path-t">cairo_path_t</link>;
union <link linkend="cairo-path-data-t">cairo_path_data_t</link>;
enum <link linkend="cairo-path-data-type-t">cairo_path_data_type_t</link>;
+<link linkend="cairo-path-t">cairo_path_t</link>* <link linkend="cairo-copy-path">cairo_copy_path</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="cairo-path-t">cairo_path_t</link>* <link linkend="cairo-copy-path-flat">cairo_copy_path_flat</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-path-destroy">cairo_path_destroy</link> (<link linkend="cairo-path-t">cairo_path_t</link> *path);
+<link linkend="void">void</link> <link linkend="cairo-append-path">cairo_append_path</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-path-t">cairo_path_t</link> *path);
+<link linkend="void">void</link> <link linkend="cairo-get-current-point">cairo_get_current_point</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x,
+ <link linkend="double">double</link> *y);
+<link linkend="void">void</link> <link linkend="cairo-new-path">cairo_new_path</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-new-sub-path">cairo_new_sub_path</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-close-path">cairo_close_path</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-arc">cairo_arc</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> xc,
+ <link linkend="double">double</link> yc,
+ <link linkend="double">double</link> radius,
+ <link linkend="double">double</link> angle1,
+ <link linkend="double">double</link> angle2);
+<link linkend="void">void</link> <link linkend="cairo-arc-negative">cairo_arc_negative</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> xc,
+ <link linkend="double">double</link> yc,
+ <link linkend="double">double</link> radius,
+ <link linkend="double">double</link> angle1,
+ <link linkend="double">double</link> angle2);
+<link linkend="void">void</link> <link linkend="cairo-curve-to">cairo_curve_to</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x1,
+ <link linkend="double">double</link> y1,
+ <link linkend="double">double</link> x2,
+ <link linkend="double">double</link> y2,
+ <link linkend="double">double</link> x3,
+ <link linkend="double">double</link> y3);
+<link linkend="void">void</link> <link linkend="cairo-line-to">cairo_line_to</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);
+<link linkend="void">void</link> <link linkend="cairo-move-to">cairo_move_to</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);
+<link linkend="void">void</link> <link linkend="cairo-rectangle">cairo_rectangle</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y,
+ <link linkend="double">double</link> width,
+ <link linkend="double">double</link> height);
+<link linkend="void">void</link> <link linkend="cairo-glyph-path">cairo_glyph_path</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-glyph-t">cairo_glyph_t</link> *glyphs,
+ <link linkend="int">int</link> num_glyphs);
+<link linkend="void">void</link> <link linkend="cairo-text-path">cairo_text_path</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="char">char</link> *utf8);
+<link linkend="void">void</link> <link linkend="cairo-rel-curve-to">cairo_rel_curve_to</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> dx1,
+ <link linkend="double">double</link> dy1,
+ <link linkend="double">double</link> dx2,
+ <link linkend="double">double</link> dy2,
+ <link linkend="double">double</link> dx3,
+ <link linkend="double">double</link> dy3);
+<link linkend="void">void</link> <link linkend="cairo-rel-line-to">cairo_rel_line_to</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> dx,
+ <link linkend="double">double</link> dy);
+<link linkend="void">void</link> <link linkend="cairo-rel-move-to">cairo_rel_move_to</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> dx,
+ <link linkend="double">double</link> dy);
</synopsis>
</refsynopsisdiv>
@@ -177,6 +236,123 @@ Here is sample code for iterating through a <link linkend="cairo-path-t--"><type
<para>
</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-copy-path" role="function"/>cairo_copy_path ()</title>
+<indexterm><primary>cairo_copy_path</primary></indexterm><programlisting><link linkend="cairo-path-t">cairo_path_t</link>* cairo_copy_path (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-copy-path-flat" role="function"/>cairo_copy_path_flat ()</title>
+<indexterm><primary>cairo_copy_path_flat</primary></indexterm><programlisting><link linkend="cairo-path-t">cairo_path_t</link>* cairo_copy_path_flat (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-path-destroy" role="function"/>cairo_path_destroy ()</title>
+<indexterm><primary>cairo_path_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_path_destroy (<link linkend="cairo-path-t">cairo_path_t</link> *path);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-append-path" role="function"/>cairo_append_path ()</title>
+<indexterm><primary>cairo_append_path</primary></indexterm><programlisting><link linkend="void">void</link> cairo_append_path (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-path-t">cairo_path_t</link> *path);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-current-point" role="function"/>cairo_get_current_point ()</title>
+<indexterm><primary>cairo_get_current_point</primary></indexterm><programlisting><link linkend="void">void</link> cairo_get_current_point (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x,
+ <link linkend="double">double</link> *y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-new-path" role="function"/>cairo_new_path ()</title>
+<indexterm><primary>cairo_new_path</primary></indexterm><programlisting><link linkend="void">void</link> cairo_new_path (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-new-sub-path" role="function" condition="since:1.2"/>cairo_new_sub_path ()</title>
+<indexterm role="1.2"><primary>cairo_new_sub_path</primary></indexterm><programlisting><link linkend="void">void</link> cairo_new_sub_path (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-close-path" role="function"/>cairo_close_path ()</title>
+<indexterm><primary>cairo_close_path</primary></indexterm><programlisting><link linkend="void">void</link> cairo_close_path (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-arc" role="function"/>cairo_arc ()</title>
+<indexterm><primary>cairo_arc</primary></indexterm><programlisting><link linkend="void">void</link> cairo_arc (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> xc,
+ <link linkend="double">double</link> yc,
+ <link linkend="double">double</link> radius,
+ <link linkend="double">double</link> angle1,
+ <link linkend="double">double</link> angle2);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-arc-negative" role="function"/>cairo_arc_negative ()</title>
+<indexterm><primary>cairo_arc_negative</primary></indexterm><programlisting><link linkend="void">void</link> cairo_arc_negative (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> xc,
+ <link linkend="double">double</link> yc,
+ <link linkend="double">double</link> radius,
+ <link linkend="double">double</link> angle1,
+ <link linkend="double">double</link> angle2);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-curve-to" role="function"/>cairo_curve_to ()</title>
+<indexterm><primary>cairo_curve_to</primary></indexterm><programlisting><link linkend="void">void</link> cairo_curve_to (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x1,
+ <link linkend="double">double</link> y1,
+ <link linkend="double">double</link> x2,
+ <link linkend="double">double</link> y2,
+ <link linkend="double">double</link> x3,
+ <link linkend="double">double</link> y3);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-line-to" role="function"/>cairo_line_to ()</title>
+<indexterm><primary>cairo_line_to</primary></indexterm><programlisting><link linkend="void">void</link> cairo_line_to (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-move-to" role="function"/>cairo_move_to ()</title>
+<indexterm><primary>cairo_move_to</primary></indexterm><programlisting><link linkend="void">void</link> cairo_move_to (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-rectangle" role="function"/>cairo_rectangle ()</title>
+<indexterm><primary>cairo_rectangle</primary></indexterm><programlisting><link linkend="void">void</link> cairo_rectangle (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y,
+ <link linkend="double">double</link> width,
+ <link linkend="double">double</link> height);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-glyph-path" role="function"/>cairo_glyph_path ()</title>
+<indexterm><primary>cairo_glyph_path</primary></indexterm><programlisting><link linkend="void">void</link> cairo_glyph_path (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-glyph-t">cairo_glyph_t</link> *glyphs,
+ <link linkend="int">int</link> num_glyphs);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-text-path" role="function"/>cairo_text_path ()</title>
+<indexterm><primary>cairo_text_path</primary></indexterm><programlisting><link linkend="void">void</link> cairo_text_path (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="char">char</link> *utf8);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-rel-curve-to" role="function"/>cairo_rel_curve_to ()</title>
+<indexterm><primary>cairo_rel_curve_to</primary></indexterm><programlisting><link linkend="void">void</link> cairo_rel_curve_to (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> dx1,
+ <link linkend="double">double</link> dy1,
+ <link linkend="double">double</link> dx2,
+ <link linkend="double">double</link> dy2,
+ <link linkend="double">double</link> dx3,
+ <link linkend="double">double</link> dy3);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-rel-line-to" role="function"/>cairo_rel_line_to ()</title>
+<indexterm><primary>cairo_rel_line_to</primary></indexterm><programlisting><link linkend="void">void</link> cairo_rel_line_to (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> dx,
+ <link linkend="double">double</link> dy);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-rel-move-to" role="function"/>cairo_rel_move_to ()</title>
+<indexterm><primary>cairo_rel_move_to</primary></indexterm><programlisting><link linkend="void">void</link> cairo_rel_move_to (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> dx,
+ <link linkend="double">double</link> dy);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-pattern.xml b/doc/public/xml/cairo-pattern.xml
index 8e2d8ff..43daa62 100644
--- a/doc/public/xml/cairo-pattern.xml
+++ b/doc/public/xml/cairo-pattern.xml
@@ -24,8 +24,57 @@
typedef <link linkend="cairo-pattern-t">cairo_pattern_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-pattern-add-color-stop-rgb">cairo_pattern_add_color_stop_rgb</link>
+ (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="double">double</link> offset,
+ <link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue);
+<link linkend="void">void</link> <link linkend="cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba</link>
+ (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="double">double</link> offset,
+ <link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue,
+ <link linkend="double">double</link> alpha);
+<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-create-rgb">cairo_pattern_create_rgb</link> (<link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue);
+<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-create-rgba">cairo_pattern_create_rgba</link> (<link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue,
+ <link linkend="double">double</link> alpha);
+<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-create-for-surface">cairo_pattern_create_for_surface</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-create-linear">cairo_pattern_create_linear</link>
+ (<link linkend="double">double</link> x0,
+ <link linkend="double">double</link> y0,
+ <link linkend="double">double</link> x1,
+ <link linkend="double">double</link> y1);
+<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-create-radial">cairo_pattern_create_radial</link>
+ (<link linkend="double">double</link> cx0,
+ <link linkend="double">double</link> cy0,
+ <link linkend="double">double</link> radius0,
+ <link linkend="double">double</link> cx1,
+ <link linkend="double">double</link> cy1,
+ <link linkend="double">double</link> radius1);
+<link linkend="void">void</link> <link linkend="cairo-pattern-destroy">cairo_pattern_destroy</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
+<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-reference">cairo_pattern_reference</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-pattern-status">cairo_pattern_status</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
enum <link linkend="cairo-extend-t">cairo_extend_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-pattern-set-extend">cairo_pattern_set_extend</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="cairo-extend-t">cairo_extend_t</link> extend);
+<link linkend="cairo-extend-t">cairo_extend_t</link> <link linkend="cairo-pattern-get-extend">cairo_pattern_get_extend</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
enum <link linkend="cairo-filter-t">cairo_filter_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-pattern-set-filter">cairo_pattern_set_filter</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="cairo-filter-t">cairo_filter_t</link> filter);
+<link linkend="cairo-filter-t">cairo_filter_t</link> <link linkend="cairo-pattern-get-filter">cairo_pattern_get_filter</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
+<link linkend="void">void</link> <link linkend="cairo-pattern-set-matrix">cairo_pattern_set_matrix</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+<link linkend="void">void</link> <link linkend="cairo-pattern-get-matrix">cairo_pattern_get_matrix</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+enum <link linkend="cairo-pattern-type-t">cairo_pattern_type_t</link>;
+<link linkend="cairo-pattern-type-t">cairo_pattern_type_t</link> <link linkend="cairo-pattern-get-type">cairo_pattern_get_type</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
</synopsis>
</refsynopsisdiv>
@@ -54,6 +103,73 @@ enum <link linkend="cairo-filter-t">cairo_filter_t</link>;
</para></refsect2>
<refsect2>
+<title><anchor id="cairo-pattern-add-color-stop-rgb" role="function"/>cairo_pattern_add_color_stop_rgb ()</title>
+<indexterm><primary>cairo_pattern_add_color_stop_rgb</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_add_color_stop_rgb
+ (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="double">double</link> offset,
+ <link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-add-color-stop-rgba" role="function"/>cairo_pattern_add_color_stop_rgba ()</title>
+<indexterm><primary>cairo_pattern_add_color_stop_rgba</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_add_color_stop_rgba
+ (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="double">double</link> offset,
+ <link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue,
+ <link linkend="double">double</link> alpha);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-create-rgb" role="function"/>cairo_pattern_create_rgb ()</title>
+<indexterm><primary>cairo_pattern_create_rgb</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_create_rgb (<link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-create-rgba" role="function"/>cairo_pattern_create_rgba ()</title>
+<indexterm><primary>cairo_pattern_create_rgba</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_create_rgba (<link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue,
+ <link linkend="double">double</link> alpha);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-create-for-surface" role="function"/>cairo_pattern_create_for_surface ()</title>
+<indexterm><primary>cairo_pattern_create_for_surface</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_create_for_surface
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-create-linear" role="function"/>cairo_pattern_create_linear ()</title>
+<indexterm><primary>cairo_pattern_create_linear</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_create_linear
+ (<link linkend="double">double</link> x0,
+ <link linkend="double">double</link> y0,
+ <link linkend="double">double</link> x1,
+ <link linkend="double">double</link> y1);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-create-radial" role="function"/>cairo_pattern_create_radial ()</title>
+<indexterm><primary>cairo_pattern_create_radial</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_create_radial
+ (<link linkend="double">double</link> cx0,
+ <link linkend="double">double</link> cy0,
+ <link linkend="double">double</link> radius0,
+ <link linkend="double">double</link> cx1,
+ <link linkend="double">double</link> cy1,
+ <link linkend="double">double</link> radius1);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-destroy" role="function"/>cairo_pattern_destroy ()</title>
+<indexterm><primary>cairo_pattern_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_destroy (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-reference" role="function"/>cairo_pattern_reference ()</title>
+<indexterm><primary>cairo_pattern_reference</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_reference (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-status" role="function"/>cairo_pattern_status ()</title>
+<indexterm><primary>cairo_pattern_status</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_pattern_status (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-extend-t" role="enum"/>enum cairo_extend_t</title>
<indexterm><primary>cairo_extend_t</primary></indexterm><programlisting>typedef enum _cairo_extend {
CAIRO_EXTEND_NONE,
@@ -82,17 +198,27 @@ of a pattern will be drawn.</para>
<varlistentry>
<term><anchor id="CAIRO-EXTEND-REFLECT:CAPS" role="constant"/><literal>CAIRO_EXTEND_REFLECT</literal></term>
<listitem><simpara> the pattern is tiled by reflecting
- at the edges
+ at the edges (not implemented for surface patterns currently)
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><anchor id="CAIRO-EXTEND-PAD:CAPS" role="constant"/><literal>CAIRO_EXTEND_PAD</literal></term>
<listitem><simpara> pixels outside of the pattern copy
- the closest pixel from the source (since cairo 1.2)
+ the closest pixel from the source (Since 1.2; not implemented
+ for surface patterns currently)
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2>
+<title><anchor id="cairo-pattern-set-extend" role="function"/>cairo_pattern_set_extend ()</title>
+<indexterm><primary>cairo_pattern_set_extend</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_set_extend (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="cairo-extend-t">cairo_extend_t</link> extend);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-get-extend" role="function"/>cairo_pattern_get_extend ()</title>
+<indexterm><primary>cairo_pattern_get_extend</primary></indexterm><programlisting><link linkend="cairo-extend-t">cairo_extend_t</link> cairo_pattern_get_extend (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-filter-t" role="enum"/>enum cairo_filter_t</title>
<indexterm><primary>cairo_filter_t</primary></indexterm><programlisting>typedef enum _cairo_filter {
CAIRO_FILTER_FAST,
@@ -106,6 +232,41 @@ of a pattern will be drawn.</para>
<para>
</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-set-filter" role="function"/>cairo_pattern_set_filter ()</title>
+<indexterm><primary>cairo_pattern_set_filter</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_set_filter (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="cairo-filter-t">cairo_filter_t</link> filter);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-get-filter" role="function"/>cairo_pattern_get_filter ()</title>
+<indexterm><primary>cairo_pattern_get_filter</primary></indexterm><programlisting><link linkend="cairo-filter-t">cairo_filter_t</link> cairo_pattern_get_filter (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-set-matrix" role="function"/>cairo_pattern_set_matrix ()</title>
+<indexterm><primary>cairo_pattern_set_matrix</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_set_matrix (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-get-matrix" role="function"/>cairo_pattern_get_matrix ()</title>
+<indexterm><primary>cairo_pattern_get_matrix</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_get_matrix (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-type-t" role="enum" condition="since:1.2"/>enum cairo_pattern_type_t</title>
+<indexterm role="1.2"><primary>cairo_pattern_type_t</primary></indexterm><programlisting>typedef enum _cairo_pattern_type {
+ CAIRO_PATTERN_TYPE_SOLID,
+ CAIRO_PATTERN_TYPE_SURFACE,
+ CAIRO_PATTERN_TYPE_LINEAR,
+ CAIRO_PATTERN_TYPE_RADIAL
+} cairo_pattern_type_t;
+</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-pattern-get-type" role="function" condition="since:1.2"/>cairo_pattern_get_type ()</title>
+<indexterm role="1.2"><primary>cairo_pattern_get_type</primary></indexterm><programlisting><link linkend="cairo-pattern-type-t">cairo_pattern_type_t</link> cairo_pattern_get_type (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
+<para>Since 1.2
+</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-pdf.xml b/doc/public/xml/cairo-pdf.xml
index 01ddfff..8ff1adc 100644
--- a/doc/public/xml/cairo-pdf.xml
+++ b/doc/public/xml/cairo-pdf.xml
@@ -23,7 +23,17 @@
-#define <link linkend="cairo-pdf-surface-set-dpi">cairo_pdf_surface_set_dpi</link>
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-pdf-surface-create">cairo_pdf_surface_create</link> (const <link linkend="char">char</link> *filename,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-pdf-surface-create-for-stream">cairo_pdf_surface_create_for_stream</link>
+ (<link linkend="cairo-write-func-t">cairo_write_func_t</link> write_func,
+ <link linkend="void">void</link> *closure,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);
+<link linkend="void">void</link> <link linkend="cairo-pdf-surface-set-size">cairo_pdf_surface_set_size</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);
</synopsis>
</refsynopsisdiv>
@@ -45,11 +55,27 @@
<refsect1 id="details">
<title id="details.title">Details</title>
<refsect2>
-<title><anchor id="cairo-pdf-surface-set-dpi" role="macro"/>cairo_pdf_surface_set_dpi</title>
-<indexterm><primary>cairo_pdf_surface_set_dpi</primary></indexterm><programlisting>#define cairo_pdf_surface_set_dpi cairo_pdf_surface_set_dpi_REPLACED_BY_cairo_surface_set_fallback_resolution
-</programlisting>
-<para>
-
+<title><anchor id="cairo-pdf-surface-create" role="function" condition="since:1.2"/>cairo_pdf_surface_create ()</title>
+<indexterm role="1.2"><primary>cairo_pdf_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_pdf_surface_create (const <link linkend="char">char</link> *filename,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-pdf-surface-create-for-stream" role="function" condition="since:1.2"/>cairo_pdf_surface_create_for_stream ()</title>
+<indexterm role="1.2"><primary>cairo_pdf_surface_create_for_stream</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_pdf_surface_create_for_stream
+ (<link linkend="cairo-write-func-t">cairo_write_func_t</link> write_func,
+ <link linkend="void">void</link> *closure,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-pdf-surface-set-size" role="function" condition="since:1.2"/>cairo_pdf_surface_set_size ()</title>
+<indexterm role="1.2"><primary>cairo_pdf_surface_set_size</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pdf_surface_set_size (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);</programlisting>
+<para>Since 1.2
</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-png.xml b/doc/public/xml/cairo-png.xml
index c370280..6309c38 100644
--- a/doc/public/xml/cairo-png.xml
+++ b/doc/public/xml/cairo-png.xml
@@ -23,12 +23,23 @@
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-image-surface-create-from-png">cairo_image_surface_create_from_png</link>
+ (const <link linkend="char">char</link> *filename);
<link linkend="cairo-status-t">cairo_status_t</link> (<link linkend="cairo-read-func-t">*cairo_read_func_t</link>) (<link linkend="void">void</link> *closure,
unsigned <link linkend="char">char</link> *data,
unsigned <link linkend="int">int</link> length);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-image-surface-create-from-png-stream">cairo_image_surface_create_from_png_stream</link>
+ (<link linkend="cairo-read-func-t">cairo_read_func_t</link> read_func,
+ <link linkend="void">void</link> *closure);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-write-to-png">cairo_surface_write_to_png</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ const <link linkend="char">char</link> *filename);
<link linkend="cairo-status-t">cairo_status_t</link> (<link linkend="cairo-write-func-t">*cairo_write_func_t</link>) (<link linkend="void">void</link> *closure,
unsigned <link linkend="char">char</link> *data,
unsigned <link linkend="int">int</link> length);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-write-to-png-stream">cairo_surface_write_to_png_stream</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="cairo-write-func-t">cairo_write_func_t</link> write_func,
+ <link linkend="void">void</link> *closure);
</synopsis>
</refsynopsisdiv>
@@ -50,6 +61,11 @@
<refsect1 id="details">
<title id="details.title">Details</title>
<refsect2>
+<title><anchor id="cairo-image-surface-create-from-png" role="function"/>cairo_image_surface_create_from_png ()</title>
+<indexterm><primary>cairo_image_surface_create_from_png</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_image_surface_create_from_png
+ (const <link linkend="char">char</link> *filename);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-read-func-t" role="function"/>cairo_read_func_t ()</title>
<indexterm><primary>cairo_read_func_t</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> (*cairo_read_func_t) (<link linkend="void">void</link> *closure,
unsigned <link linkend="char">char</link> *data,
@@ -78,6 +94,17 @@ CAIRO_STATUS_READ_ERROR otherwise.</para>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
+<title><anchor id="cairo-image-surface-create-from-png-stream" role="function"/>cairo_image_surface_create_from_png_stream ()</title>
+<indexterm><primary>cairo_image_surface_create_from_png_stream</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_image_surface_create_from_png_stream
+ (<link linkend="cairo-read-func-t">cairo_read_func_t</link> read_func,
+ <link linkend="void">void</link> *closure);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-write-to-png" role="function"/>cairo_surface_write_to_png ()</title>
+<indexterm><primary>cairo_surface_write_to_png</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_write_to_png (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ const <link linkend="char">char</link> *filename);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-write-func-t" role="function"/>cairo_write_func_t ()</title>
<indexterm><primary>cairo_write_func_t</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> (*cairo_write_func_t) (<link linkend="void">void</link> *closure,
unsigned <link linkend="char">char</link> *data,
@@ -105,6 +132,13 @@ CAIRO_STATUS_WRITE_ERROR otherwise.</para>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the status code of the write operation
</simpara></listitem></varlistentry>
</variablelist></refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-write-to-png-stream" role="function"/>cairo_surface_write_to_png_stream ()</title>
+<indexterm><primary>cairo_surface_write_to_png_stream</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_write_to_png_stream
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="cairo-write-func-t">cairo_write_func_t</link> write_func,
+ <link linkend="void">void</link> *closure);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-ps.xml b/doc/public/xml/cairo-ps.xml
index 89f0558..e6bb8dc 100644
--- a/doc/public/xml/cairo-ps.xml
+++ b/doc/public/xml/cairo-ps.xml
@@ -23,7 +23,23 @@
-#define <link linkend="cairo-ps-surface-set-dpi">cairo_ps_surface_set_dpi</link>
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-ps-surface-create">cairo_ps_surface_create</link> (const <link linkend="char">char</link> *filename,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-ps-surface-create-for-stream">cairo_ps_surface_create_for_stream</link>
+ (<link linkend="cairo-write-func-t">cairo_write_func_t</link> write_func,
+ <link linkend="void">void</link> *closure,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);
+<link linkend="void">void</link> <link linkend="cairo-ps-surface-set-size">cairo_ps_surface_set_size</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);
+<link linkend="void">void</link> <link linkend="cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="void">void</link> <link linkend="cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="void">void</link> <link linkend="cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ const <link linkend="char">char</link> *comment);
</synopsis>
</refsynopsisdiv>
@@ -45,11 +61,45 @@
<refsect1 id="details">
<title id="details.title">Details</title>
<refsect2>
-<title><anchor id="cairo-ps-surface-set-dpi" role="macro"/>cairo_ps_surface_set_dpi</title>
-<indexterm><primary>cairo_ps_surface_set_dpi</primary></indexterm><programlisting>#define cairo_ps_surface_set_dpi cairo_ps_surface_set_dpi_REPLACED_BY_cairo_surface_set_fallback_resolution
-</programlisting>
-<para>
-
+<title><anchor id="cairo-ps-surface-create" role="function" condition="since:1.2"/>cairo_ps_surface_create ()</title>
+<indexterm role="1.2"><primary>cairo_ps_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_ps_surface_create (const <link linkend="char">char</link> *filename,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-ps-surface-create-for-stream" role="function" condition="since:1.2"/>cairo_ps_surface_create_for_stream ()</title>
+<indexterm role="1.2"><primary>cairo_ps_surface_create_for_stream</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_ps_surface_create_for_stream
+ (<link linkend="cairo-write-func-t">cairo_write_func_t</link> write_func,
+ <link linkend="void">void</link> *closure,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-ps-surface-set-size" role="function" condition="since:1.2"/>cairo_ps_surface_set_size ()</title>
+<indexterm role="1.2"><primary>cairo_ps_surface_set_size</primary></indexterm><programlisting><link linkend="void">void</link> cairo_ps_surface_set_size (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-ps-surface-dsc-begin-setup" role="function" condition="since:1.2"/>cairo_ps_surface_dsc_begin_setup ()</title>
+<indexterm role="1.2"><primary>cairo_ps_surface_dsc_begin_setup</primary></indexterm><programlisting><link linkend="void">void</link> cairo_ps_surface_dsc_begin_setup
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-ps-surface-dsc-begin-page-setup" role="function" condition="since:1.2"/>cairo_ps_surface_dsc_begin_page_setup ()</title>
+<indexterm role="1.2"><primary>cairo_ps_surface_dsc_begin_page_setup</primary></indexterm><programlisting><link linkend="void">void</link> cairo_ps_surface_dsc_begin_page_setup
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-ps-surface-dsc-comment" role="function" condition="since:1.2"/>cairo_ps_surface_dsc_comment ()</title>
+<indexterm role="1.2"><primary>cairo_ps_surface_dsc_comment</primary></indexterm><programlisting><link linkend="void">void</link> cairo_ps_surface_dsc_comment (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ const <link linkend="char">char</link> *comment);</programlisting>
+<para>Since 1.2
</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-quartz.xml b/doc/public/xml/cairo-quartz.xml
deleted file mode 100644
index 23904ef..0000000
--- a/doc/public/xml/cairo-quartz.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<!ENTITY version SYSTEM "version.xml">
-]>
-<refentry id="cairo-Quartz-Surfaces">
-<refmeta>
-<refentrytitle id="top_of_page">Quartz Surfaces</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>CAIRO Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>Quartz Surfaces</refname>
-<refpurpose>Rendering to Quartz surfaces</refpurpose>
-<!--[<xref linkend="desc" endterm="desc.title"/>]-->
-</refnamediv>
-
-<refsynopsisdiv id="synopsis">
-<title id="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-
-
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="desc">
-<title id="desc.title">Description</title>
-<para>
-
-</para>
-</refsect1>
-
-<refsect1 id="details">
-<title id="details.title">Details</title>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/doc/public/xml/cairo-scaled-font.xml b/doc/public/xml/cairo-scaled-font.xml
index 1a795aa..f8ff95c 100644
--- a/doc/public/xml/cairo-scaled-font.xml
+++ b/doc/public/xml/cairo-scaled-font.xml
@@ -24,8 +24,38 @@
typedef <link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link>;
+<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link>* <link linkend="cairo-scaled-font-create">cairo_scaled_font_create</link>
+ (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *font_matrix,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *ctm,
+ const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
+<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link>* <link linkend="cairo-scaled-font-reference">cairo_scaled_font_reference</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
+<link linkend="void">void</link> <link linkend="cairo-scaled-font-destroy">cairo_scaled_font_destroy</link> (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-scaled-font-status">cairo_scaled_font_status</link> (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
<link linkend="cairo-font-extents-t">cairo_font_extents_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-scaled-font-extents">cairo_scaled_font_extents</link> (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-font-extents-t">cairo_font_extents_t</link> *extents);
<link linkend="cairo-text-extents-t">cairo_text_extents_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-scaled-font-text-extents">cairo_scaled_font_text_extents</link> (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ const <link linkend="char">char</link> *utf8,
+ <link linkend="cairo-text-extents-t">cairo_text_extents_t</link> *extents);
+<link linkend="void">void</link> <link linkend="cairo-scaled-font-glyph-extents">cairo_scaled_font_glyph_extents</link> (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-glyph-t">cairo_glyph_t</link> *glyphs,
+ <link linkend="int">int</link> num_glyphs,
+ <link linkend="cairo-text-extents-t">cairo_text_extents_t</link> *extents);
+<link linkend="cairo-font-face-t">cairo_font_face_t</link>* <link linkend="cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
+<link linkend="void">void</link> <link linkend="cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
+<link linkend="void">void</link> <link linkend="cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *font_matrix);
+<link linkend="void">void</link> <link linkend="cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm</link> (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *ctm);
+<link linkend="cairo-font-type-t">cairo_font_type_t</link> <link linkend="cairo-scaled-font-get-type">cairo_scaled_font_get_type</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
</synopsis>
</refsynopsisdiv>
@@ -59,6 +89,27 @@ to a scaled font to speed up the computation of metrics.</para>
</para></refsect2>
<refsect2>
+<title><anchor id="cairo-scaled-font-create" role="function"/>cairo_scaled_font_create ()</title>
+<indexterm><primary>cairo_scaled_font_create</primary></indexterm><programlisting><link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link>* cairo_scaled_font_create
+ (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *font_matrix,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *ctm,
+ const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-reference" role="function"/>cairo_scaled_font_reference ()</title>
+<indexterm><primary>cairo_scaled_font_reference</primary></indexterm><programlisting><link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link>* cairo_scaled_font_reference
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-destroy" role="function"/>cairo_scaled_font_destroy ()</title>
+<indexterm><primary>cairo_scaled_font_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_scaled_font_destroy (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-status" role="function"/>cairo_scaled_font_status ()</title>
+<indexterm><primary>cairo_scaled_font_status</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_scaled_font_status (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-font-extents-t" role="struct"/>cairo_font_extents_t</title>
<indexterm><primary>cairo_font_extents_t</primary></indexterm><programlisting>typedef struct {
double ascent;
@@ -132,6 +183,11 @@ matrix), but otherwise will remain unchanged.</para>
</varlistentry>
</variablelist></refsect2>
<refsect2>
+<title><anchor id="cairo-scaled-font-extents" role="function"/>cairo_scaled_font_extents ()</title>
+<indexterm><primary>cairo_scaled_font_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_scaled_font_extents (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-font-extents-t">cairo_font_extents_t</link> *extents);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-text-extents-t" role="struct"/>cairo_text_extents_t</title>
<indexterm><primary>cairo_text_extents_t</primary></indexterm><programlisting>typedef struct {
double x_bearing;
@@ -194,6 +250,52 @@ but otherwise will remain unchanged.</para>
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-text-extents" role="function" condition="since:1.2"/>cairo_scaled_font_text_extents ()</title>
+<indexterm role="1.2"><primary>cairo_scaled_font_text_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_scaled_font_text_extents (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ const <link linkend="char">char</link> *utf8,
+ <link linkend="cairo-text-extents-t">cairo_text_extents_t</link> *extents);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-glyph-extents" role="function"/>cairo_scaled_font_glyph_extents ()</title>
+<indexterm><primary>cairo_scaled_font_glyph_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_scaled_font_glyph_extents (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-glyph-t">cairo_glyph_t</link> *glyphs,
+ <link linkend="int">int</link> num_glyphs,
+ <link linkend="cairo-text-extents-t">cairo_text_extents_t</link> *extents);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-get-font-face" role="function" condition="since:1.2"/>cairo_scaled_font_get_font_face ()</title>
+<indexterm role="1.2"><primary>cairo_scaled_font_get_font_face</primary></indexterm><programlisting><link linkend="cairo-font-face-t">cairo_font_face_t</link>* cairo_scaled_font_get_font_face
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-get-font-options" role="function" condition="since:1.2"/>cairo_scaled_font_get_font_options ()</title>
+<indexterm role="1.2"><primary>cairo_scaled_font_get_font_options</primary></indexterm><programlisting><link linkend="void">void</link> cairo_scaled_font_get_font_options
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-get-font-matrix" role="function" condition="since:1.2"/>cairo_scaled_font_get_font_matrix ()</title>
+<indexterm role="1.2"><primary>cairo_scaled_font_get_font_matrix</primary></indexterm><programlisting><link linkend="void">void</link> cairo_scaled_font_get_font_matrix
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *font_matrix);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-get-ctm" role="function" condition="since:1.2"/>cairo_scaled_font_get_ctm ()</title>
+<indexterm role="1.2"><primary>cairo_scaled_font_get_ctm</primary></indexterm><programlisting><link linkend="void">void</link> cairo_scaled_font_get_ctm (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *ctm);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-scaled-font-get-type" role="function" condition="since:1.2"/>cairo_scaled_font_get_type ()</title>
+<indexterm role="1.2"><primary>cairo_scaled_font_get_type</primary></indexterm><programlisting><link linkend="cairo-font-type-t">cairo_font_type_t</link> cairo_scaled_font_get_type
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+<para>Since 1.2
+</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-status.xml b/doc/public/xml/cairo-status.xml
index c7e5869..a11f2fe 100644
--- a/doc/public/xml/cairo-status.xml
+++ b/doc/public/xml/cairo-status.xml
@@ -24,6 +24,8 @@
enum <link linkend="cairo-status-t">cairo_status_t</link>;
+const <link linkend="char">char</link>* <link linkend="cairo-status-to-string">cairo_status_to_string</link> (<link linkend="cairo-status-t">cairo_status_t</link> status);
+<link linkend="void">void</link> <link linkend="cairo-debug-reset-static-data">cairo_debug_reset_static_data</link> (void);
</synopsis>
</refsynopsisdiv>
@@ -180,10 +182,18 @@ the context and can be retrieved with <link linkend="cairo-status"><function>cai
</varlistentry>
<varlistentry>
<term><anchor id="CAIRO-STATUS-INVALID-DSC-COMMENT:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_DSC_COMMENT</literal></term>
-<listitem><simpara> invalid value for a DSC comment
+<listitem><simpara> invalid value for a DSC comment (Since 1.2)
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
+<refsect2>
+<title><anchor id="cairo-status-to-string" role="function"/>cairo_status_to_string ()</title>
+<indexterm><primary>cairo_status_to_string</primary></indexterm><programlisting>const <link linkend="char">char</link>* cairo_status_to_string (<link linkend="cairo-status-t">cairo_status_t</link> status);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-debug-reset-static-data" role="function"/>cairo_debug_reset_static_data ()</title>
+<indexterm><primary>cairo_debug_reset_static_data</primary></indexterm><programlisting><link linkend="void">void</link> cairo_debug_reset_static_data (void);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-surface.xml b/doc/public/xml/cairo-surface.xml
index 7eb2982..058dc78 100644
--- a/doc/public/xml/cairo-surface.xml
+++ b/doc/public/xml/cairo-surface.xml
@@ -25,6 +25,44 @@
typedef <link linkend="cairo-surface-t">cairo_surface_t</link>;
enum <link linkend="cairo-content-t">cairo_content_t</link>;
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-surface-create-similar">cairo_surface_create_similar</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *other,
+ <link linkend="cairo-content-t">cairo_content_t</link> content,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
+<link linkend="void">void</link> <link linkend="cairo-surface-destroy">cairo_surface_destroy</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="void">void</link> <link linkend="cairo-surface-finish">cairo_surface_finish</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="void">void</link> <link linkend="cairo-surface-flush">cairo_surface_flush</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="void">void</link> <link linkend="cairo-surface-get-font-options">cairo_surface_get_font_options</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
+<link linkend="cairo-content-t">cairo_content_t</link> <link linkend="cairo-surface-get-content">cairo_surface_get_content</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-set-user-data">cairo_surface_set_user_data</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ const <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link> *key,
+ <link linkend="void">void</link> *user_data,
+ <link linkend="cairo-destroy-func-t">cairo_destroy_func_t</link> destroy);
+<link linkend="void">void</link>* <link linkend="cairo-surface-get-user-data">cairo_surface_get_user_data</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ const <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link> *key);
+<link linkend="void">void</link> <link linkend="cairo-surface-mark-dirty">cairo_surface_mark_dirty</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="void">void</link> <link linkend="cairo-surface-mark-dirty-rectangle">cairo_surface_mark_dirty_rectangle</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="int">int</link> x,
+ <link linkend="int">int</link> y,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-surface-reference">cairo_surface_reference</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="void">void</link> <link linkend="cairo-surface-set-device-offset">cairo_surface_set_device_offset</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> x_offset,
+ <link linkend="double">double</link> y_offset);
+<link linkend="void">void</link> <link linkend="cairo-surface-get-device-offset">cairo_surface_get_device_offset</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> *x_offset,
+ <link linkend="double">double</link> *y_offset);
+<link linkend="void">void</link> <link linkend="cairo-surface-set-fallback-resolution">cairo_surface_set_fallback_resolution</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> x_pixels_per_inch,
+ <link linkend="double">double</link> y_pixels_per_inch);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-status">cairo_surface_status</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+enum <link linkend="cairo-surface-type-t">cairo_surface_type_t</link>;
+<link linkend="cairo-surface-type-t">cairo_surface_type_t</link> <link linkend="cairo-surface-get-type">cairo_surface_get_type</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
</synopsis>
</refsynopsisdiv>
@@ -71,7 +109,7 @@ Memory management of <link linkend="cairo-surface-t"><type>cairo_surface_t</type
} cairo_content_t;
</programlisting>
<para>
-<parameter>cairo_content_t</parameter> is used to describe the content that a surface will
+<link linkend="cairo-content-t"><type>cairo_content_t</type></link> is used to describe the content that a surface will
contain, whether color information, alpha information (translucence
vs. opacity), or both.
</para>
@@ -98,6 +136,113 @@ implementation can detect the error if users confuse the two types.</para>
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-create-similar" role="function"/>cairo_surface_create_similar ()</title>
+<indexterm><primary>cairo_surface_create_similar</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_surface_create_similar
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *other,
+ <link linkend="cairo-content-t">cairo_content_t</link> content,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-destroy" role="function"/>cairo_surface_destroy ()</title>
+<indexterm><primary>cairo_surface_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_destroy (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-finish" role="function"/>cairo_surface_finish ()</title>
+<indexterm><primary>cairo_surface_finish</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_finish (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-flush" role="function"/>cairo_surface_flush ()</title>
+<indexterm><primary>cairo_surface_flush</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_flush (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-get-font-options" role="function"/>cairo_surface_get_font_options ()</title>
+<indexterm><primary>cairo_surface_get_font_options</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_get_font_options (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-get-content" role="function" condition="since:1.2"/>cairo_surface_get_content ()</title>
+<indexterm role="1.2"><primary>cairo_surface_get_content</primary></indexterm><programlisting><link linkend="cairo-content-t">cairo_content_t</link> cairo_surface_get_content (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-set-user-data" role="function"/>cairo_surface_set_user_data ()</title>
+<indexterm><primary>cairo_surface_set_user_data</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_set_user_data (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ const <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link> *key,
+ <link linkend="void">void</link> *user_data,
+ <link linkend="cairo-destroy-func-t">cairo_destroy_func_t</link> destroy);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-get-user-data" role="function"/>cairo_surface_get_user_data ()</title>
+<indexterm><primary>cairo_surface_get_user_data</primary></indexterm><programlisting><link linkend="void">void</link>* cairo_surface_get_user_data (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ const <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link> *key);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-mark-dirty" role="function"/>cairo_surface_mark_dirty ()</title>
+<indexterm><primary>cairo_surface_mark_dirty</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_mark_dirty (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-mark-dirty-rectangle" role="function"/>cairo_surface_mark_dirty_rectangle ()</title>
+<indexterm><primary>cairo_surface_mark_dirty_rectangle</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_mark_dirty_rectangle
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="int">int</link> x,
+ <link linkend="int">int</link> y,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-reference" role="function"/>cairo_surface_reference ()</title>
+<indexterm><primary>cairo_surface_reference</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_surface_reference (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-set-device-offset" role="function"/>cairo_surface_set_device_offset ()</title>
+<indexterm><primary>cairo_surface_set_device_offset</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_set_device_offset (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> x_offset,
+ <link linkend="double">double</link> y_offset);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-get-device-offset" role="function" condition="since:1.2"/>cairo_surface_get_device_offset ()</title>
+<indexterm role="1.2"><primary>cairo_surface_get_device_offset</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_get_device_offset (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> *x_offset,
+ <link linkend="double">double</link> *y_offset);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-set-fallback-resolution" role="function" condition="since:1.2"/>cairo_surface_set_fallback_resolution ()</title>
+<indexterm role="1.2"><primary>cairo_surface_set_fallback_resolution</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_set_fallback_resolution
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> x_pixels_per_inch,
+ <link linkend="double">double</link> y_pixels_per_inch);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-status" role="function"/>cairo_surface_status ()</title>
+<indexterm><primary>cairo_surface_status</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_status (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-type-t" role="enum" condition="since:1.2"/>enum cairo_surface_type_t</title>
+<indexterm role="1.2"><primary>cairo_surface_type_t</primary></indexterm><programlisting>typedef enum _cairo_surface_type {
+ CAIRO_SURFACE_TYPE_IMAGE,
+ CAIRO_SURFACE_TYPE_PDF,
+ CAIRO_SURFACE_TYPE_PS,
+ CAIRO_SURFACE_TYPE_XLIB,
+ CAIRO_SURFACE_TYPE_XCB,
+ CAIRO_SURFACE_TYPE_GLITZ,
+ CAIRO_SURFACE_TYPE_QUARTZ,
+ CAIRO_SURFACE_TYPE_WIN32,
+ CAIRO_SURFACE_TYPE_BEOS,
+ CAIRO_SURFACE_TYPE_DIRECTFB,
+ CAIRO_SURFACE_TYPE_SVG
+} cairo_surface_type_t;
+</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-surface-get-type" role="function" condition="since:1.2"/>cairo_surface_get_type ()</title>
+<indexterm role="1.2"><primary>cairo_surface_get_type</primary></indexterm><programlisting><link linkend="cairo-surface-type-t">cairo_surface_type_t</link> cairo_surface_get_type (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-svg.xml b/doc/public/xml/cairo-svg.xml
index 0764167..3afb476 100644
--- a/doc/public/xml/cairo-svg.xml
+++ b/doc/public/xml/cairo-svg.xml
@@ -23,7 +23,21 @@
-#define <link linkend="cairo-svg-surface-set-dpi">cairo_svg_surface_set_dpi</link>
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-svg-surface-create">cairo_svg_surface_create</link> (const <link linkend="char">char</link> *filename,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream</link>
+ (<link linkend="cairo-write-func-t">cairo_write_func_t</link> write_func,
+ <link linkend="void">void</link> *closure,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);
+<link linkend="void">void</link> <link linkend="cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version</link>
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="cairo-svg-version-t">cairo_svg_version_t</link> version);
+enum <link linkend="cairo-svg-version-t">cairo_svg_version_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-svg-get-versions">cairo_svg_get_versions</link> (<link linkend="cairo-svg-version-t">cairo_svg_version_t</link> const **versions,
+ <link linkend="int">int</link> *num_versions);
+const <link linkend="char">char</link>* <link linkend="cairo-svg-version-to-string">cairo_svg_version_to_string</link> (<link linkend="cairo-svg-version-t">cairo_svg_version_t</link> version);
</synopsis>
</refsynopsisdiv>
@@ -45,11 +59,46 @@
<refsect1 id="details">
<title id="details.title">Details</title>
<refsect2>
-<title><anchor id="cairo-svg-surface-set-dpi" role="macro"/>cairo_svg_surface_set_dpi</title>
-<indexterm><primary>cairo_svg_surface_set_dpi</primary></indexterm><programlisting>#define cairo_svg_surface_set_dpi cairo_svg_surface_set_dpi_REPLACED_BY_cairo_surface_set_fallback_resolution
+<title><anchor id="cairo-svg-surface-create" role="function" condition="since:1.2"/>cairo_svg_surface_create ()</title>
+<indexterm role="1.2"><primary>cairo_svg_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_svg_surface_create (const <link linkend="char">char</link> *filename,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-svg-surface-create-for-stream" role="function" condition="since:1.2"/>cairo_svg_surface_create_for_stream ()</title>
+<indexterm role="1.2"><primary>cairo_svg_surface_create_for_stream</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_svg_surface_create_for_stream
+ (<link linkend="cairo-write-func-t">cairo_write_func_t</link> write_func,
+ <link linkend="void">void</link> *closure,
+ <link linkend="double">double</link> width_in_points,
+ <link linkend="double">double</link> height_in_points);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-svg-surface-restrict-to-version" role="function" condition="since:1.2"/>cairo_svg_surface_restrict_to_version ()</title>
+<indexterm role="1.2"><primary>cairo_svg_surface_restrict_to_version</primary></indexterm><programlisting><link linkend="void">void</link> cairo_svg_surface_restrict_to_version
+ (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="cairo-svg-version-t">cairo_svg_version_t</link> version);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-svg-version-t" role="enum"/>enum cairo_svg_version_t</title>
+<indexterm><primary>cairo_svg_version_t</primary></indexterm><programlisting>typedef enum {
+ CAIRO_SVG_VERSION_1_1,
+ CAIRO_SVG_VERSION_1_2
+} cairo_svg_version_t;
</programlisting>
-<para>
-
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-svg-get-versions" role="function" condition="since:1.2"/>cairo_svg_get_versions ()</title>
+<indexterm role="1.2"><primary>cairo_svg_get_versions</primary></indexterm><programlisting><link linkend="void">void</link> cairo_svg_get_versions (<link linkend="cairo-svg-version-t">cairo_svg_version_t</link> const **versions,
+ <link linkend="int">int</link> *num_versions);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-svg-version-to-string" role="function" condition="since:1.2"/>cairo_svg_version_to_string ()</title>
+<indexterm role="1.2"><primary>cairo_svg_version_to_string</primary></indexterm><programlisting>const <link linkend="char">char</link>* cairo_svg_version_to_string (<link linkend="cairo-svg-version-t">cairo_svg_version_t</link> version);</programlisting>
+<para>Since 1.2
</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-text.xml b/doc/public/xml/cairo-text.xml
index 4fa5272..30bf405 100644
--- a/doc/public/xml/cairo-text.xml
+++ b/doc/public/xml/cairo-text.xml
@@ -26,6 +26,39 @@
<link linkend="cairo-glyph-t">cairo_glyph_t</link>;
enum <link linkend="cairo-font-slant-t">cairo_font_slant_t</link>;
enum <link linkend="cairo-font-weight-t">cairo_font_weight_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-select-font-face">cairo_select_font_face</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="char">char</link> *family,
+ <link linkend="cairo-font-slant-t">cairo_font_slant_t</link> slant,
+ <link linkend="cairo-font-weight-t">cairo_font_weight_t</link> weight);
+<link linkend="void">void</link> <link linkend="cairo-set-font-size">cairo_set_font_size</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> size);
+<link linkend="void">void</link> <link linkend="cairo-set-font-matrix">cairo_set_font_matrix</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+<link linkend="void">void</link> <link linkend="cairo-get-font-matrix">cairo_get_font_matrix</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+<link linkend="void">void</link> <link linkend="cairo-set-font-options">cairo_set_font_options</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
+<link linkend="void">void</link> <link linkend="cairo-get-font-options">cairo_get_font_options</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
+<link linkend="void">void</link> <link linkend="cairo-show-text">cairo_show_text</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="char">char</link> *utf8);
+<link linkend="void">void</link> <link linkend="cairo-show-glyphs">cairo_show_glyphs</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-glyph-t">cairo_glyph_t</link> *glyphs,
+ <link linkend="int">int</link> num_glyphs);
+<link linkend="cairo-font-face-t">cairo_font_face_t</link>* <link linkend="cairo-get-font-face">cairo_get_font_face</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-font-extents">cairo_font_extents</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-font-extents-t">cairo_font_extents_t</link> *extents);
+<link linkend="void">void</link> <link linkend="cairo-set-font-face">cairo_set_font_face</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);
+<link linkend="void">void</link> <link linkend="cairo-set-scaled-font">cairo_set_scaled_font</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
+<link linkend="void">void</link> <link linkend="cairo-text-extents">cairo_text_extents</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="char">char</link> *utf8,
+ <link linkend="cairo-text-extents-t">cairo_text_extents_t</link> *extents);
+<link linkend="void">void</link> <link linkend="cairo-glyph-extents">cairo_glyph_extents</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-glyph-t">cairo_glyph_t</link> *glyphs,
+ <link linkend="int">int</link> num_glyphs,
+ <link linkend="cairo-text-extents-t">cairo_text_extents_t</link> *extents);
</synopsis>
</refsynopsisdiv>
@@ -113,6 +146,82 @@ with respect to the overall origin</para>
<para>
</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-select-font-face" role="function"/>cairo_select_font_face ()</title>
+<indexterm><primary>cairo_select_font_face</primary></indexterm><programlisting><link linkend="void">void</link> cairo_select_font_face (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="char">char</link> *family,
+ <link linkend="cairo-font-slant-t">cairo_font_slant_t</link> slant,
+ <link linkend="cairo-font-weight-t">cairo_font_weight_t</link> weight);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-font-size" role="function"/>cairo_set_font_size ()</title>
+<indexterm><primary>cairo_set_font_size</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_font_size (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> size);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-font-matrix" role="function"/>cairo_set_font_matrix ()</title>
+<indexterm><primary>cairo_set_font_matrix</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_font_matrix (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-font-matrix" role="function"/>cairo_get_font_matrix ()</title>
+<indexterm><primary>cairo_get_font_matrix</primary></indexterm><programlisting><link linkend="void">void</link> cairo_get_font_matrix (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-font-options" role="function"/>cairo_set_font_options ()</title>
+<indexterm><primary>cairo_set_font_options</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_font_options (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-font-options" role="function"/>cairo_get_font_options ()</title>
+<indexterm><primary>cairo_get_font_options</primary></indexterm><programlisting><link linkend="void">void</link> cairo_get_font_options (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-show-text" role="function"/>cairo_show_text ()</title>
+<indexterm><primary>cairo_show_text</primary></indexterm><programlisting><link linkend="void">void</link> cairo_show_text (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="char">char</link> *utf8);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-show-glyphs" role="function"/>cairo_show_glyphs ()</title>
+<indexterm><primary>cairo_show_glyphs</primary></indexterm><programlisting><link linkend="void">void</link> cairo_show_glyphs (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-glyph-t">cairo_glyph_t</link> *glyphs,
+ <link linkend="int">int</link> num_glyphs);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-font-face" role="function"/>cairo_get_font_face ()</title>
+<indexterm><primary>cairo_get_font_face</primary></indexterm><programlisting><link linkend="cairo-font-face-t">cairo_font_face_t</link>* cairo_get_font_face (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-font-extents" role="function"/>cairo_font_extents ()</title>
+<indexterm><primary>cairo_font_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_font_extents (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-font-extents-t">cairo_font_extents_t</link> *extents);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-font-face" role="function"/>cairo_set_font_face ()</title>
+<indexterm><primary>cairo_set_font_face</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_font_face (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-scaled-font" role="function" condition="since:1.2"/>cairo_set_scaled_font ()</title>
+<indexterm role="1.2"><primary>cairo_set_scaled_font</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_scaled_font (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-text-extents" role="function"/>cairo_text_extents ()</title>
+<indexterm><primary>cairo_text_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_text_extents (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="char">char</link> *utf8,
+ <link linkend="cairo-text-extents-t">cairo_text_extents_t</link> *extents);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-glyph-extents" role="function"/>cairo_glyph_extents ()</title>
+<indexterm><primary>cairo_glyph_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_glyph_extents (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-glyph-t">cairo_glyph_t</link> *glyphs,
+ <link linkend="int">int</link> num_glyphs,
+ <link linkend="cairo-text-extents-t">cairo_text_extents_t</link> *extents);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-transforms.xml b/doc/public/xml/cairo-transforms.xml
index 503886d..ae941da 100644
--- a/doc/public/xml/cairo-transforms.xml
+++ b/doc/public/xml/cairo-transforms.xml
@@ -23,6 +23,33 @@
+<link linkend="void">void</link> <link linkend="cairo-translate">cairo_translate</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> tx,
+ <link linkend="double">double</link> ty);
+<link linkend="void">void</link> <link linkend="cairo-scale">cairo_scale</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> sx,
+ <link linkend="double">double</link> sy);
+<link linkend="void">void</link> <link linkend="cairo-rotate">cairo_rotate</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> angle);
+<link linkend="void">void</link> <link linkend="cairo-transform">cairo_transform</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+<link linkend="void">void</link> <link linkend="cairo-set-matrix">cairo_set_matrix</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+<link linkend="void">void</link> <link linkend="cairo-get-matrix">cairo_get_matrix</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
+<link linkend="void">void</link> <link linkend="cairo-identity-matrix">cairo_identity_matrix</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-user-to-device">cairo_user_to_device</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x,
+ <link linkend="double">double</link> *y);
+<link linkend="void">void</link> <link linkend="cairo-user-to-device-distance">cairo_user_to_device_distance</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *dx,
+ <link linkend="double">double</link> *dy);
+<link linkend="void">void</link> <link linkend="cairo-device-to-user">cairo_device_to_user</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x,
+ <link linkend="double">double</link> *y);
+<link linkend="void">void</link> <link linkend="cairo-device-to-user-distance">cairo_device_to_user_distance</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *dx,
+ <link linkend="double">double</link> *dy);
</synopsis>
</refsynopsisdiv>
@@ -43,6 +70,66 @@
<refsect1 id="details">
<title id="details.title">Details</title>
+<refsect2>
+<title><anchor id="cairo-translate" role="function"/>cairo_translate ()</title>
+<indexterm><primary>cairo_translate</primary></indexterm><programlisting><link linkend="void">void</link> cairo_translate (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> tx,
+ <link linkend="double">double</link> ty);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-scale" role="function"/>cairo_scale ()</title>
+<indexterm><primary>cairo_scale</primary></indexterm><programlisting><link linkend="void">void</link> cairo_scale (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> sx,
+ <link linkend="double">double</link> sy);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-rotate" role="function"/>cairo_rotate ()</title>
+<indexterm><primary>cairo_rotate</primary></indexterm><programlisting><link linkend="void">void</link> cairo_rotate (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> angle);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-transform" role="function"/>cairo_transform ()</title>
+<indexterm><primary>cairo_transform</primary></indexterm><programlisting><link linkend="void">void</link> cairo_transform (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-matrix" role="function"/>cairo_set_matrix ()</title>
+<indexterm><primary>cairo_set_matrix</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_matrix (<link linkend="cairo-t">cairo_t</link> *cr,
+ const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-matrix" role="function"/>cairo_get_matrix ()</title>
+<indexterm><primary>cairo_get_matrix</primary></indexterm><programlisting><link linkend="void">void</link> cairo_get_matrix (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-identity-matrix" role="function"/>cairo_identity_matrix ()</title>
+<indexterm><primary>cairo_identity_matrix</primary></indexterm><programlisting><link linkend="void">void</link> cairo_identity_matrix (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-user-to-device" role="function"/>cairo_user_to_device ()</title>
+<indexterm><primary>cairo_user_to_device</primary></indexterm><programlisting><link linkend="void">void</link> cairo_user_to_device (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x,
+ <link linkend="double">double</link> *y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-user-to-device-distance" role="function"/>cairo_user_to_device_distance ()</title>
+<indexterm><primary>cairo_user_to_device_distance</primary></indexterm><programlisting><link linkend="void">void</link> cairo_user_to_device_distance (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *dx,
+ <link linkend="double">double</link> *dy);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-device-to-user" role="function"/>cairo_device_to_user ()</title>
+<indexterm><primary>cairo_device_to_user</primary></indexterm><programlisting><link linkend="void">void</link> cairo_device_to_user (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x,
+ <link linkend="double">double</link> *y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-device-to-user-distance" role="function"/>cairo_device_to_user_distance ()</title>
+<indexterm><primary>cairo_device_to_user_distance</primary></indexterm><programlisting><link linkend="void">void</link> cairo_device_to_user_distance (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *dx,
+ <link linkend="double">double</link> *dy);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-types.xml b/doc/public/xml/cairo-types.xml
index f69a08a..e2d955b 100644
--- a/doc/public/xml/cairo-types.xml
+++ b/doc/public/xml/cairo-types.xml
@@ -23,7 +23,7 @@
-<link linkend="typedef">typedef</link> <link linkend="cairo-bool-t">cairo_bool_t</link> ();
+typedef <link linkend="cairo-bool-t">cairo_bool_t</link>;
<link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link>;
<link linkend="void">void</link> (<link linkend="cairo-destroy-func-t">*cairo_destroy_func_t</link>) (<link linkend="void">void</link> *data);
</synopsis>
@@ -47,8 +47,9 @@
<refsect1 id="details">
<title id="details.title">Details</title>
<refsect2>
-<title><anchor id="cairo-bool-t" role="function"/>cairo_bool_t ()</title>
-<indexterm><primary>cairo_bool_t</primary></indexterm><programlisting><link linkend="typedef">typedef</link> cairo_bool_t ();</programlisting>
+<title><anchor id="cairo-bool-t" role="typedef"/>cairo_bool_t</title>
+<indexterm><primary>cairo_bool_t</primary></indexterm><programlisting>typedef int cairo_bool_t;
+</programlisting>
<para>
<link linkend="cairo-bool-t"><type>cairo_bool_t</type></link> is used for boolean values. Returns of type
<link linkend="cairo-bool-t"><type>cairo_bool_t</type></link> will always be either 0 or 1, but testing against
@@ -63,12 +64,7 @@ value as a boolean condition.
</programlisting></informalexample></para>
<para>
-</para><variablelist role="params">
-<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
-
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
+</para></refsect2>
<refsect2>
<title><anchor id="cairo-user-data-key-t" role="struct"/>cairo_user_data_key_t</title>
<indexterm><primary>cairo_user_data_key_t</primary></indexterm><programlisting>typedef struct {
diff --git a/doc/public/xml/cairo-version.xml b/doc/public/xml/cairo-version.xml
index 5f96127..48b996a 100644
--- a/doc/public/xml/cairo-version.xml
+++ b/doc/public/xml/cairo-version.xml
@@ -24,7 +24,13 @@
#define <link linkend="CAIRO-VERSION:CAPS">CAIRO_VERSION</link>
+#define <link linkend="CAIRO-VERSION-MAJOR:CAPS">CAIRO_VERSION_MAJOR</link>
+#define <link linkend="CAIRO-VERSION-MINOR:CAPS">CAIRO_VERSION_MINOR</link>
+#define <link linkend="CAIRO-VERSION-MICRO:CAPS">CAIRO_VERSION_MICRO</link>
+#define <link linkend="CAIRO-VERSION-STRING:CAPS">CAIRO_VERSION_STRING</link>
#define <link linkend="CAIRO-VERSION-ENCODE:CAPS">CAIRO_VERSION_ENCODE</link> (major, minor, micro)
+<link linkend="int">int</link> <link linkend="cairo-version">cairo_version</link> (void);
+const <link linkend="char">char</link>* <link linkend="cairo-version-string">cairo_version_string</link> (void);
</synopsis>
</refsynopsisdiv>
@@ -152,6 +158,28 @@ if (<link linkend="cairo-version"><function>cairo_version()</function></link> >=
</para></refsect2>
<refsect2>
+<title><anchor id="CAIRO-VERSION-MAJOR:CAPS" role="macro"/>CAIRO_VERSION_MAJOR</title>
+<indexterm><primary>CAIRO_VERSION_MAJOR</primary></indexterm><programlisting>#define CAIRO_VERSION_MAJOR 1
+</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="CAIRO-VERSION-MINOR:CAPS" role="macro"/>CAIRO_VERSION_MINOR</title>
+<indexterm><primary>CAIRO_VERSION_MINOR</primary></indexterm><programlisting>#define CAIRO_VERSION_MINOR 2
+</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="CAIRO-VERSION-MICRO:CAPS" role="macro"/>CAIRO_VERSION_MICRO</title>
+<indexterm><primary>CAIRO_VERSION_MICRO</primary></indexterm><programlisting>#define CAIRO_VERSION_MICRO 0
+</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="CAIRO-VERSION-STRING:CAPS" role="macro"/>CAIRO_VERSION_STRING</title>
+<indexterm><primary>CAIRO_VERSION_STRING</primary></indexterm><programlisting>#define CAIRO_VERSION_STRING "1.2.0"
+</programlisting>
+<para>
+
+</para></refsect2>
+<refsect2>
<title><anchor id="CAIRO-VERSION-ENCODE:CAPS" role="macro"/>CAIRO_VERSION_ENCODE()</title>
<indexterm><primary>CAIRO_VERSION_ENCODE</primary></indexterm><programlisting>#define CAIRO_VERSION_ENCODE(major, minor, micro)</programlisting>
<para>
@@ -169,6 +197,14 @@ if (<link linkend="cairo-version"><function>cairo_version()</function></link> >=
</simpara></listitem></varlistentry>
</variablelist></refsect2>
+<refsect2>
+<title><anchor id="cairo-version" role="function"/>cairo_version ()</title>
+<indexterm><primary>cairo_version</primary></indexterm><programlisting><link linkend="int">int</link> cairo_version (void);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-version-string" role="function"/>cairo_version_string ()</title>
+<indexterm><primary>cairo_version_string</primary></indexterm><programlisting>const <link linkend="char">char</link>* cairo_version_string (void);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-win32-fonts.xml b/doc/public/xml/cairo-win32-fonts.xml
index 8c340c7..32a8323 100644
--- a/doc/public/xml/cairo-win32-fonts.xml
+++ b/doc/public/xml/cairo-win32-fonts.xml
@@ -23,6 +23,17 @@
+<link linkend="cairo-font-face-t">cairo_font_face_t</link>* <link linkend="cairo-win32-font-face-create-for-logfontw">cairo_win32_font_face_create_for_logfontw</link>
+ (<link linkend="LOGFONTW:CAPS">LOGFONTW</link> *logfont);
+<link linkend="cairo-font-face-t">cairo_font_face_t</link>* <link linkend="cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont</link>
+ (<link linkend="HFONT:CAPS">HFONT</link> font);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-win32-scaled-font-select-font">cairo_win32_scaled_font_select_font</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="HDC:CAPS">HDC</link> hdc);
+<link linkend="void">void</link> <link linkend="cairo-win32-scaled-font-done-font">cairo_win32_scaled_font_done_font</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
+<link linkend="double">double</link> <link linkend="cairo-win32-scaled-font-get-metrics-factor">cairo_win32_scaled_font_get_metrics_factor</link>
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);
</synopsis>
</refsynopsisdiv>
@@ -43,6 +54,32 @@
<refsect1 id="details">
<title id="details.title">Details</title>
+<refsect2>
+<title><anchor id="cairo-win32-font-face-create-for-logfontw" role="function"/>cairo_win32_font_face_create_for_logfontw ()</title>
+<indexterm><primary>cairo_win32_font_face_create_for_logfontw</primary></indexterm><programlisting><link linkend="cairo-font-face-t">cairo_font_face_t</link>* cairo_win32_font_face_create_for_logfontw
+ (<link linkend="LOGFONTW:CAPS">LOGFONTW</link> *logfont);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-win32-font-face-create-for-hfont" role="function"/>cairo_win32_font_face_create_for_hfont ()</title>
+<indexterm><primary>cairo_win32_font_face_create_for_hfont</primary></indexterm><programlisting><link linkend="cairo-font-face-t">cairo_font_face_t</link>* cairo_win32_font_face_create_for_hfont
+ (<link linkend="HFONT:CAPS">HFONT</link> font);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-win32-scaled-font-select-font" role="function"/>cairo_win32_scaled_font_select_font ()</title>
+<indexterm><primary>cairo_win32_scaled_font_select_font</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_win32_scaled_font_select_font
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font,
+ <link linkend="HDC:CAPS">HDC</link> hdc);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-win32-scaled-font-done-font" role="function"/>cairo_win32_scaled_font_done_font ()</title>
+<indexterm><primary>cairo_win32_scaled_font_done_font</primary></indexterm><programlisting><link linkend="void">void</link> cairo_win32_scaled_font_done_font
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-win32-scaled-font-get-metrics-factor" role="function"/>cairo_win32_scaled_font_get_metrics_factor ()</title>
+<indexterm><primary>cairo_win32_scaled_font_get_metrics_factor</primary></indexterm><programlisting><link linkend="double">double</link> cairo_win32_scaled_font_get_metrics_factor
+ (<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> *scaled_font);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-win32.xml b/doc/public/xml/cairo-win32.xml
index e679b99..f909226 100644
--- a/doc/public/xml/cairo-win32.xml
+++ b/doc/public/xml/cairo-win32.xml
@@ -23,6 +23,12 @@
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-win32-surface-create">cairo_win32_surface_create</link> (<link linkend="HDC:CAPS">HDC</link> hdc);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib</link>
+ (<link linkend="cairo-format-t">cairo_format_t</link> format,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
+<link linkend="HDC:CAPS">HDC</link> <link linkend="cairo-win32-surface-get-dc">cairo_win32_surface_get_dc</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
</synopsis>
</refsynopsisdiv>
@@ -43,6 +49,23 @@
<refsect1 id="details">
<title id="details.title">Details</title>
+<refsect2>
+<title><anchor id="cairo-win32-surface-create" role="function"/>cairo_win32_surface_create ()</title>
+<indexterm><primary>cairo_win32_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_win32_surface_create (<link linkend="HDC:CAPS">HDC</link> hdc);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-win32-surface-create-with-dib" role="function" condition="since:1.2"/>cairo_win32_surface_create_with_dib ()</title>
+<indexterm role="1.2"><primary>cairo_win32_surface_create_with_dib</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_win32_surface_create_with_dib
+ (<link linkend="cairo-format-t">cairo_format_t</link> format,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-win32-surface-get-dc" role="function" condition="since:1.2"/>cairo_win32_surface_get_dc ()</title>
+<indexterm role="1.2"><primary>cairo_win32_surface_get_dc</primary></indexterm><programlisting><link linkend="HDC:CAPS">HDC</link> cairo_win32_surface_get_dc (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-xcb-xrender.xml b/doc/public/xml/cairo-xcb-xrender.xml
deleted file mode 100644
index 5e92f74..0000000
--- a/doc/public/xml/cairo-xcb-xrender.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<!ENTITY version SYSTEM "version.xml">
-]>
-<refentry id="cairo-XCB-Render-Surfaces">
-<refmeta>
-<refentrytitle id="top_of_page">XCB Surfaces</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>CAIRO Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>XCB Surfaces</refname>
-<refpurpose>X Window System rendering using the XCB library</refpurpose>
-<!--[<xref linkend="desc" endterm="desc.title"/>]-->
-</refnamediv>
-
-<refsynopsisdiv id="synopsis">
-<title id="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-
-
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="desc">
-<title id="desc.title">Description</title>
-<para>
-
-</para>
-</refsect1>
-
-<refsect1 id="details">
-<title id="details.title">Details</title>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/doc/public/xml/cairo-xcb.xml b/doc/public/xml/cairo-xcb.xml
deleted file mode 100644
index ef25265..0000000
--- a/doc/public/xml/cairo-xcb.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<!ENTITY version SYSTEM "version.xml">
-]>
-<refentry id="cairo-XCB-Surfaces">
-<refmeta>
-<refentrytitle id="top_of_page">XCB Surfaces</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>CAIRO Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>XCB Surfaces</refname>
-<refpurpose>X Window System rendering using the XCB library</refpurpose>
-<!--[<xref linkend="desc" endterm="desc.title"/>]-->
-</refnamediv>
-
-<refsynopsisdiv id="synopsis">
-<title id="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-
-
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="desc">
-<title id="desc.title">Description</title>
-<para>
-
-</para>
-</refsect1>
-
-<refsect1 id="details">
-<title id="details.title">Details</title>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/doc/public/xml/cairo-xlib-xrender.xml b/doc/public/xml/cairo-xlib-xrender.xml
index 2774340..100cf99 100644
--- a/doc/public/xml/cairo-xlib-xrender.xml
+++ b/doc/public/xml/cairo-xlib-xrender.xml
@@ -23,6 +23,13 @@
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-xlib-surface-create-with-xrender-format">cairo_xlib_surface_create_with_xrender_format</link>
+ (<link linkend="Display">Display</link> *dpy,
+ <link linkend="Drawable">Drawable</link> drawable,
+ <link linkend="Screen">Screen</link> *screen,
+ <link linkend="XRenderPictFormat">XRenderPictFormat</link> *format,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
</synopsis>
</refsynopsisdiv>
@@ -43,6 +50,16 @@
<refsect1 id="details">
<title id="details.title">Details</title>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-create-with-xrender-format" role="function"/>cairo_xlib_surface_create_with_xrender_format ()</title>
+<indexterm><primary>cairo_xlib_surface_create_with_xrender_format</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_xlib_surface_create_with_xrender_format
+ (<link linkend="Display">Display</link> *dpy,
+ <link linkend="Drawable">Drawable</link> drawable,
+ <link linkend="Screen">Screen</link> *screen,
+ <link linkend="XRenderPictFormat">XRenderPictFormat</link> *format,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+</refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo-xlib.xml b/doc/public/xml/cairo-xlib.xml
index 05a5b3f..62c98bf 100644
--- a/doc/public/xml/cairo-xlib.xml
+++ b/doc/public/xml/cairo-xlib.xml
@@ -23,6 +23,31 @@
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-xlib-surface-create">cairo_xlib_surface_create</link> (<link linkend="Display">Display</link> *dpy,
+ <link linkend="Drawable">Drawable</link> drawable,
+ <link linkend="Visual">Visual</link> *visual,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-xlib-surface-create-for-bitmap">cairo_xlib_surface_create_for_bitmap</link>
+ (<link linkend="Display">Display</link> *dpy,
+ <link linkend="Pixmap">Pixmap</link> bitmap,
+ <link linkend="Screen">Screen</link> *screen,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
+<link linkend="void">void</link> <link linkend="cairo-xlib-surface-set-size">cairo_xlib_surface_set_size</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
+<link linkend="Display">Display</link>* <link linkend="cairo-xlib-surface-get-display">cairo_xlib_surface_get_display</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="Screen">Screen</link>* <link linkend="cairo-xlib-surface-get-screen">cairo_xlib_surface_get_screen</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="void">void</link> <link linkend="cairo-xlib-surface-set-drawable">cairo_xlib_surface_set_drawable</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="Drawable">Drawable</link> drawable,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);
+<link linkend="Drawable">Drawable</link> <link linkend="cairo-xlib-surface-get-drawable">cairo_xlib_surface_get_drawable</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="Visual">Visual</link>* <link linkend="cairo-xlib-surface-get-visual">cairo_xlib_surface_get_visual</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="int">int</link> <link linkend="cairo-xlib-surface-get-width">cairo_xlib_surface_get_width</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="int">int</link> <link linkend="cairo-xlib-surface-get-height">cairo_xlib_surface_get_height</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
+<link linkend="int">int</link> <link linkend="cairo-xlib-surface-get-depth">cairo_xlib_surface_get_depth</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
</synopsis>
</refsynopsisdiv>
@@ -43,6 +68,71 @@
<refsect1 id="details">
<title id="details.title">Details</title>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-create" role="function"/>cairo_xlib_surface_create ()</title>
+<indexterm><primary>cairo_xlib_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_xlib_surface_create (<link linkend="Display">Display</link> *dpy,
+ <link linkend="Drawable">Drawable</link> drawable,
+ <link linkend="Visual">Visual</link> *visual,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-create-for-bitmap" role="function"/>cairo_xlib_surface_create_for_bitmap ()</title>
+<indexterm><primary>cairo_xlib_surface_create_for_bitmap</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_xlib_surface_create_for_bitmap
+ (<link linkend="Display">Display</link> *dpy,
+ <link linkend="Pixmap">Pixmap</link> bitmap,
+ <link linkend="Screen">Screen</link> *screen,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-set-size" role="function"/>cairo_xlib_surface_set_size ()</title>
+<indexterm><primary>cairo_xlib_surface_set_size</primary></indexterm><programlisting><link linkend="void">void</link> cairo_xlib_surface_set_size (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-get-display" role="function" condition="since:1.2"/>cairo_xlib_surface_get_display ()</title>
+<indexterm role="1.2"><primary>cairo_xlib_surface_get_display</primary></indexterm><programlisting><link linkend="Display">Display</link>* cairo_xlib_surface_get_display (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-get-screen" role="function" condition="since:1.2"/>cairo_xlib_surface_get_screen ()</title>
+<indexterm role="1.2"><primary>cairo_xlib_surface_get_screen</primary></indexterm><programlisting><link linkend="Screen">Screen</link>* cairo_xlib_surface_get_screen (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-set-drawable" role="function"/>cairo_xlib_surface_set_drawable ()</title>
+<indexterm><primary>cairo_xlib_surface_set_drawable</primary></indexterm><programlisting><link linkend="void">void</link> cairo_xlib_surface_set_drawable (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="Drawable">Drawable</link> drawable,
+ <link linkend="int">int</link> width,
+ <link linkend="int">int</link> height);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-get-drawable" role="function" condition="since:1.2"/>cairo_xlib_surface_get_drawable ()</title>
+<indexterm role="1.2"><primary>cairo_xlib_surface_get_drawable</primary></indexterm><programlisting><link linkend="Drawable">Drawable</link> cairo_xlib_surface_get_drawable (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-get-visual" role="function" condition="since:1.2"/>cairo_xlib_surface_get_visual ()</title>
+<indexterm role="1.2"><primary>cairo_xlib_surface_get_visual</primary></indexterm><programlisting><link linkend="Visual">Visual</link>* cairo_xlib_surface_get_visual (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-get-width" role="function" condition="since:1.2"/>cairo_xlib_surface_get_width ()</title>
+<indexterm role="1.2"><primary>cairo_xlib_surface_get_width</primary></indexterm><programlisting><link linkend="int">int</link> cairo_xlib_surface_get_width (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-get-height" role="function" condition="since:1.2"/>cairo_xlib_surface_get_height ()</title>
+<indexterm role="1.2"><primary>cairo_xlib_surface_get_height</primary></indexterm><programlisting><link linkend="int">int</link> cairo_xlib_surface_get_height (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-xlib-surface-get-depth" role="function" condition="since:1.2"/>cairo_xlib_surface_get_depth ()</title>
+<indexterm role="1.2"><primary>cairo_xlib_surface_get_depth</primary></indexterm><programlisting><link linkend="int">int</link> cairo_xlib_surface_get_depth (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
+<para>Since 1.2
+</para></refsect2>
</refsect1>
diff --git a/doc/public/xml/cairo.xml b/doc/public/xml/cairo.xml
index 01b9ff1..57a8229 100644
--- a/doc/public/xml/cairo.xml
+++ b/doc/public/xml/cairo.xml
@@ -24,11 +24,102 @@
typedef <link linkend="cairo-t">cairo_t</link>;
+<link linkend="cairo-t">cairo_t</link>* <link linkend="cairo-create">cairo_create</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *target);
+<link linkend="cairo-t">cairo_t</link>* <link linkend="cairo-reference">cairo_reference</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-destroy">cairo_destroy</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-status">cairo_status</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-save">cairo_save</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-restore">cairo_restore</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-get-target">cairo_get_target</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-push-group">cairo_push_group</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-push-group-with-content">cairo_push_group_with_content</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-content-t">cairo_content_t</link> content);
+<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pop-group">cairo_pop_group</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-pop-group-to-source">cairo_pop_group_to_source</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-get-group-target">cairo_get_group_target</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-set-source-rgb">cairo_set_source_rgb</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue);
+<link linkend="void">void</link> <link linkend="cairo-set-source-rgba">cairo_set_source_rgba</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue,
+ <link linkend="double">double</link> alpha);
+<link linkend="void">void</link> <link linkend="cairo-set-source">cairo_set_source</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-pattern-t">cairo_pattern_t</link> *source);
+<link linkend="void">void</link> <link linkend="cairo-set-source-surface">cairo_set_source_surface</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);
+<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-get-source">cairo_get_source</link> (<link linkend="cairo-t">cairo_t</link> *cr);
enum <link linkend="cairo-antialias-t">cairo_antialias_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-set-antialias">cairo_set_antialias</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-antialias-t">cairo_antialias_t</link> antialias);
+<link linkend="cairo-antialias-t">cairo_antialias_t</link> <link linkend="cairo-get-antialias">cairo_get_antialias</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-set-dash">cairo_set_dash</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *dashes,
+ <link linkend="int">int</link> num_dashes,
+ <link linkend="double">double</link> offset);
enum <link linkend="cairo-fill-rule-t">cairo_fill_rule_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-set-fill-rule">cairo_set_fill_rule</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-fill-rule-t">cairo_fill_rule_t</link> fill_rule);
+<link linkend="cairo-fill-rule-t">cairo_fill_rule_t</link> <link linkend="cairo-get-fill-rule">cairo_get_fill_rule</link> (<link linkend="cairo-t">cairo_t</link> *cr);
enum <link linkend="cairo-line-cap-t">cairo_line_cap_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-set-line-cap">cairo_set_line_cap</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-line-cap-t">cairo_line_cap_t</link> line_cap);
+<link linkend="cairo-line-cap-t">cairo_line_cap_t</link> <link linkend="cairo-get-line-cap">cairo_get_line_cap</link> (<link linkend="cairo-t">cairo_t</link> *cr);
enum <link linkend="cairo-line-join-t">cairo_line_join_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-set-line-join">cairo_set_line_join</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-line-join-t">cairo_line_join_t</link> line_join);
+<link linkend="cairo-line-join-t">cairo_line_join_t</link> <link linkend="cairo-get-line-join">cairo_get_line_join</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-set-line-width">cairo_set_line_width</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> width);
+<link linkend="double">double</link> <link linkend="cairo-get-line-width">cairo_get_line_width</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-set-miter-limit">cairo_set_miter_limit</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> limit);
+<link linkend="double">double</link> <link linkend="cairo-get-miter-limit">cairo_get_miter_limit</link> (<link linkend="cairo-t">cairo_t</link> *cr);
enum <link linkend="cairo-operator-t">cairo_operator_t</link>;
+<link linkend="void">void</link> <link linkend="cairo-set-operator">cairo_set_operator</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-operator-t">cairo_operator_t</link> op);
+<link linkend="cairo-operator-t">cairo_operator_t</link> <link linkend="cairo-get-operator">cairo_get_operator</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-set-tolerance">cairo_set_tolerance</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> tolerance);
+<link linkend="double">double</link> <link linkend="cairo-get-tolerance">cairo_get_tolerance</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-clip">cairo_clip</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-clip-preserve">cairo_clip_preserve</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-reset-clip">cairo_reset_clip</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-fill">cairo_fill</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-fill-preserve">cairo_fill_preserve</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-fill-extents">cairo_fill_extents</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x1,
+ <link linkend="double">double</link> *y1,
+ <link linkend="double">double</link> *x2,
+ <link linkend="double">double</link> *y2);
+<link linkend="cairo-bool-t">cairo_bool_t</link> <link linkend="cairo-in-fill">cairo_in_fill</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);
+<link linkend="void">void</link> <link linkend="cairo-mask">cairo_mask</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
+<link linkend="void">void</link> <link linkend="cairo-mask-surface">cairo_mask_surface</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> surface_x,
+ <link linkend="double">double</link> surface_y);
+<link linkend="void">void</link> <link linkend="cairo-paint">cairo_paint</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-paint-with-alpha">cairo_paint_with_alpha</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> alpha);
+<link linkend="void">void</link> <link linkend="cairo-stroke">cairo_stroke</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-stroke-preserve">cairo_stroke_preserve</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-stroke-extents">cairo_stroke_extents</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x1,
+ <link linkend="double">double</link> *y1,
+ <link linkend="double">double</link> *x2,
+ <link linkend="double">double</link> *y2);
+<link linkend="cairo-bool-t">cairo_bool_t</link> <link linkend="cairo-in-stroke">cairo_in_stroke</link> (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);
+<link linkend="void">void</link> <link linkend="cairo-copy-page">cairo_copy_page</link> (<link linkend="cairo-t">cairo_t</link> *cr);
+<link linkend="void">void</link> <link linkend="cairo-show-page">cairo_show_page</link> (<link linkend="cairo-t">cairo_t</link> *cr);
</synopsis>
</refsynopsisdiv>
@@ -71,6 +162,91 @@ including coordinates of yet to be drawn shapes.</para>
</para></refsect2>
<refsect2>
+<title><anchor id="cairo-create" role="function"/>cairo_create ()</title>
+<indexterm><primary>cairo_create</primary></indexterm><programlisting><link linkend="cairo-t">cairo_t</link>* cairo_create (<link linkend="cairo-surface-t">cairo_surface_t</link> *target);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-reference" role="function"/>cairo_reference ()</title>
+<indexterm><primary>cairo_reference</primary></indexterm><programlisting><link linkend="cairo-t">cairo_t</link>* cairo_reference (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-destroy" role="function"/>cairo_destroy ()</title>
+<indexterm><primary>cairo_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_destroy (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-status" role="function"/>cairo_status ()</title>
+<indexterm><primary>cairo_status</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_status (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-save" role="function"/>cairo_save ()</title>
+<indexterm><primary>cairo_save</primary></indexterm><programlisting><link linkend="void">void</link> cairo_save (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-restore" role="function"/>cairo_restore ()</title>
+<indexterm><primary>cairo_restore</primary></indexterm><programlisting><link linkend="void">void</link> cairo_restore (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-target" role="function"/>cairo_get_target ()</title>
+<indexterm><primary>cairo_get_target</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_get_target (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-push-group" role="function" condition="since:1.2"/>cairo_push_group ()</title>
+<indexterm role="1.2"><primary>cairo_push_group</primary></indexterm><programlisting><link linkend="void">void</link> cairo_push_group (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-push-group-with-content" role="function" condition="since:1.2"/>cairo_push_group_with_content ()</title>
+<indexterm role="1.2"><primary>cairo_push_group_with_content</primary></indexterm><programlisting><link linkend="void">void</link> cairo_push_group_with_content (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-content-t">cairo_content_t</link> content);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-pop-group" role="function" condition="since:1.2"/>cairo_pop_group ()</title>
+<indexterm role="1.2"><primary>cairo_pop_group</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pop_group (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-pop-group-to-source" role="function" condition="since:1.2"/>cairo_pop_group_to_source ()</title>
+<indexterm role="1.2"><primary>cairo_pop_group_to_source</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pop_group_to_source (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-get-group-target" role="function" condition="since:1.2"/>cairo_get_group_target ()</title>
+<indexterm role="1.2"><primary>cairo_get_group_target</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_get_group_target (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+<para>Since 1.2
+</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-set-source-rgb" role="function"/>cairo_set_source_rgb ()</title>
+<indexterm><primary>cairo_set_source_rgb</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_source_rgb (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-source-rgba" role="function"/>cairo_set_source_rgba ()</title>
+<indexterm><primary>cairo_set_source_rgba</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_source_rgba (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> red,
+ <link linkend="double">double</link> green,
+ <link linkend="double">double</link> blue,
+ <link linkend="double">double</link> alpha);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-source" role="function"/>cairo_set_source ()</title>
+<indexterm><primary>cairo_set_source</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_source (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-pattern-t">cairo_pattern_t</link> *source);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-source-surface" role="function"/>cairo_set_source_surface ()</title>
+<indexterm><primary>cairo_set_source_surface</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_source_surface (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-source" role="function"/>cairo_get_source ()</title>
+<indexterm><primary>cairo_get_source</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_get_source (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-antialias-t" role="enum"/>enum cairo_antialias_t</title>
<indexterm><primary>cairo_antialias_t</primary></indexterm><programlisting>typedef enum _cairo_antialias {
CAIRO_ANTIALIAS_DEFAULT,
@@ -110,6 +286,22 @@ Specifies the type of antialiasing to do when rendering text or shapes.</para>
</varlistentry>
</variablelist></refsect2>
<refsect2>
+<title><anchor id="cairo-set-antialias" role="function"/>cairo_set_antialias ()</title>
+<indexterm><primary>cairo_set_antialias</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_antialias (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-antialias-t">cairo_antialias_t</link> antialias);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-antialias" role="function"/>cairo_get_antialias ()</title>
+<indexterm><primary>cairo_get_antialias</primary></indexterm><programlisting><link linkend="cairo-antialias-t">cairo_antialias_t</link> cairo_get_antialias (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-dash" role="function"/>cairo_set_dash ()</title>
+<indexterm><primary>cairo_set_dash</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_dash (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *dashes,
+ <link linkend="int">int</link> num_dashes,
+ <link linkend="double">double</link> offset);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-fill-rule-t" role="enum"/>enum cairo_fill_rule_t</title>
<indexterm><primary>cairo_fill_rule_t</primary></indexterm><programlisting>typedef enum _cairo_fill_rule {
CAIRO_FILL_RULE_WINDING,
@@ -147,6 +339,15 @@ filled.
</varlistentry>
</variablelist></refsect2>
<refsect2>
+<title><anchor id="cairo-set-fill-rule" role="function"/>cairo_set_fill_rule ()</title>
+<indexterm><primary>cairo_set_fill_rule</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_fill_rule (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-fill-rule-t">cairo_fill_rule_t</link> fill_rule);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-fill-rule" role="function"/>cairo_get_fill_rule ()</title>
+<indexterm><primary>cairo_get_fill_rule</primary></indexterm><programlisting><link linkend="cairo-fill-rule-t">cairo_fill_rule_t</link> cairo_get_fill_rule (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-line-cap-t" role="enum"/>enum cairo_line_cap_t</title>
<indexterm><primary>cairo_line_cap_t</primary></indexterm><programlisting>typedef enum _cairo_line_cap {
CAIRO_LINE_CAP_BUTT,
@@ -176,6 +377,15 @@ enumeration for style of line-endings</para>
</varlistentry>
</variablelist></refsect2>
<refsect2>
+<title><anchor id="cairo-set-line-cap" role="function"/>cairo_set_line_cap ()</title>
+<indexterm><primary>cairo_set_line_cap</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_line_cap (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-line-cap-t">cairo_line_cap_t</link> line_cap);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-line-cap" role="function"/>cairo_get_line_cap ()</title>
+<indexterm><primary>cairo_get_line_cap</primary></indexterm><programlisting><link linkend="cairo-line-cap-t">cairo_line_cap_t</link> cairo_get_line_cap (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-line-join-t" role="enum"/>enum cairo_line_join_t</title>
<indexterm><primary>cairo_line_join_t</primary></indexterm><programlisting>typedef enum _cairo_line_join {
CAIRO_LINE_JOIN_MITER,
@@ -187,6 +397,33 @@ enumeration for style of line-endings</para>
</para></refsect2>
<refsect2>
+<title><anchor id="cairo-set-line-join" role="function"/>cairo_set_line_join ()</title>
+<indexterm><primary>cairo_set_line_join</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_line_join (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-line-join-t">cairo_line_join_t</link> line_join);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-line-join" role="function"/>cairo_get_line_join ()</title>
+<indexterm><primary>cairo_get_line_join</primary></indexterm><programlisting><link linkend="cairo-line-join-t">cairo_line_join_t</link> cairo_get_line_join (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-line-width" role="function"/>cairo_set_line_width ()</title>
+<indexterm><primary>cairo_set_line_width</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_line_width (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> width);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-line-width" role="function"/>cairo_get_line_width ()</title>
+<indexterm><primary>cairo_get_line_width</primary></indexterm><programlisting><link linkend="double">double</link> cairo_get_line_width (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-miter-limit" role="function"/>cairo_set_miter_limit ()</title>
+<indexterm><primary>cairo_set_miter_limit</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_miter_limit (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> limit);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-miter-limit" role="function"/>cairo_get_miter_limit ()</title>
+<indexterm><primary>cairo_get_miter_limit</primary></indexterm><programlisting><link linkend="double">double</link> cairo_get_miter_limit (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
<title><anchor id="cairo-operator-t" role="enum"/>enum cairo_operator_t</title>
<indexterm><primary>cairo_operator_t</primary></indexterm><programlisting>typedef enum _cairo_operator {
CAIRO_OPERATOR_CLEAR,
@@ -211,6 +448,109 @@ enumeration for style of line-endings</para>
<para>
</para></refsect2>
+<refsect2>
+<title><anchor id="cairo-set-operator" role="function"/>cairo_set_operator ()</title>
+<indexterm><primary>cairo_set_operator</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_operator (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-operator-t">cairo_operator_t</link> op);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-operator" role="function"/>cairo_get_operator ()</title>
+<indexterm><primary>cairo_get_operator</primary></indexterm><programlisting><link linkend="cairo-operator-t">cairo_operator_t</link> cairo_get_operator (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-set-tolerance" role="function"/>cairo_set_tolerance ()</title>
+<indexterm><primary>cairo_set_tolerance</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_tolerance (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> tolerance);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-get-tolerance" role="function"/>cairo_get_tolerance ()</title>
+<indexterm><primary>cairo_get_tolerance</primary></indexterm><programlisting><link linkend="double">double</link> cairo_get_tolerance (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-clip" role="function"/>cairo_clip ()</title>
+<indexterm><primary>cairo_clip</primary></indexterm><programlisting><link linkend="void">void</link> cairo_clip (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-clip-preserve" role="function"/>cairo_clip_preserve ()</title>
+<indexterm><primary>cairo_clip_preserve</primary></indexterm><programlisting><link linkend="void">void</link> cairo_clip_preserve (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-reset-clip" role="function"/>cairo_reset_clip ()</title>
+<indexterm><primary>cairo_reset_clip</primary></indexterm><programlisting><link linkend="void">void</link> cairo_reset_clip (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-fill" role="function"/>cairo_fill ()</title>
+<indexterm><primary>cairo_fill</primary></indexterm><programlisting><link linkend="void">void</link> cairo_fill (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-fill-preserve" role="function"/>cairo_fill_preserve ()</title>
+<indexterm><primary>cairo_fill_preserve</primary></indexterm><programlisting><link linkend="void">void</link> cairo_fill_preserve (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-fill-extents" role="function"/>cairo_fill_extents ()</title>
+<indexterm><primary>cairo_fill_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_fill_extents (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x1,
+ <link linkend="double">double</link> *y1,
+ <link linkend="double">double</link> *x2,
+ <link linkend="double">double</link> *y2);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-in-fill" role="function"/>cairo_in_fill ()</title>
+<indexterm><primary>cairo_in_fill</primary></indexterm><programlisting><link linkend="cairo-bool-t">cairo_bool_t</link> cairo_in_fill (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-mask" role="function"/>cairo_mask ()</title>
+<indexterm><primary>cairo_mask</primary></indexterm><programlisting><link linkend="void">void</link> cairo_mask (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-mask-surface" role="function"/>cairo_mask_surface ()</title>
+<indexterm><primary>cairo_mask_surface</primary></indexterm><programlisting><link linkend="void">void</link> cairo_mask_surface (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
+ <link linkend="double">double</link> surface_x,
+ <link linkend="double">double</link> surface_y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-paint" role="function"/>cairo_paint ()</title>
+<indexterm><primary>cairo_paint</primary></indexterm><programlisting><link linkend="void">void</link> cairo_paint (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-paint-with-alpha" role="function"/>cairo_paint_with_alpha ()</title>
+<indexterm><primary>cairo_paint_with_alpha</primary></indexterm><programlisting><link linkend="void">void</link> cairo_paint_with_alpha (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> alpha);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-stroke" role="function"/>cairo_stroke ()</title>
+<indexterm><primary>cairo_stroke</primary></indexterm><programlisting><link linkend="void">void</link> cairo_stroke (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-stroke-preserve" role="function"/>cairo_stroke_preserve ()</title>
+<indexterm><primary>cairo_stroke_preserve</primary></indexterm><programlisting><link linkend="void">void</link> cairo_stroke_preserve (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-stroke-extents" role="function"/>cairo_stroke_extents ()</title>
+<indexterm><primary>cairo_stroke_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_stroke_extents (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> *x1,
+ <link linkend="double">double</link> *y1,
+ <link linkend="double">double</link> *x2,
+ <link linkend="double">double</link> *y2);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-in-stroke" role="function"/>cairo_in_stroke ()</title>
+<indexterm><primary>cairo_in_stroke</primary></indexterm><programlisting><link linkend="cairo-bool-t">cairo_bool_t</link> cairo_in_stroke (<link linkend="cairo-t">cairo_t</link> *cr,
+ <link linkend="double">double</link> x,
+ <link linkend="double">double</link> y);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-copy-page" role="function"/>cairo_copy_page ()</title>
+<indexterm><primary>cairo_copy_page</primary></indexterm><programlisting><link linkend="void">void</link> cairo_copy_page (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
+<refsect2>
+<title><anchor id="cairo-show-page" role="function"/>cairo_show_page ()</title>
+<indexterm><primary>cairo_show_page</primary></indexterm><programlisting><link linkend="void">void</link> cairo_show_page (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
+</refsect2>
</refsect1>
diff --git a/gtk-doc.make b/gtk-doc.make
index d50629a..a1fbac6 100644
--- a/gtk-doc.make
+++ b/gtk-doc.make
@@ -41,7 +41,7 @@ SCANOBJ_FILES = \
CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS)
if ENABLE_GTK_DOC
-all-local: html-build.stamp
+doc: html-build.stamp
#### scan ####
@@ -88,6 +88,8 @@ sgml.stamp: sgml-build.stamp
#### html ####
+dist-hook install-data-local: html-build.stamp
+
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
@echo 'gtk-doc: Building HTML'
@-chmod -R u+w $(srcdir)
@@ -99,7 +101,9 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
touch html-build.stamp
else
-all-local:
+doc:
+ @echo "*** gtk-doc must be installed and enabled in order to make doc"
+ @false
endif
##############
diff --git a/pixman/Makefile.in b/pixman/Makefile.in
index f163afe..07422e8 100644
--- a/pixman/Makefile.in
+++ b/pixman/Makefile.in
@@ -63,12 +63,10 @@ AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
-ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BEOS_SURFACE_FEATURE = @BEOS_SURFACE_FEATURE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE@
CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE@
@@ -114,11 +112,13 @@ CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_REQUIRES = @CAIRO_REQUIRES@
CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@
CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@
CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@
-CAIRO_VERSION_OTHER = @CAIRO_VERSION_OTHER@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -131,9 +131,6 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
-DIRECTFB_LIBS = @DIRECTFB_LIBS@
-DIRECTFB_SURFACE_FEATURE = @DIRECTFB_SURFACE_FEATURE@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -151,18 +148,12 @@ FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_CONFIG_CFLAGS = @FREETYPE_CONFIG_CFLAGS@
FREETYPE_CONFIG_LIBS = @FREETYPE_CONFIG_LIBS@
FREETYPE_LIBS = @FREETYPE_LIBS@
-FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
-FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_AGL_CFLAGS = @GLITZ_AGL_CFLAGS@
GLITZ_AGL_LIBS = @GLITZ_AGL_LIBS@
-GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_EGL_CFLAGS = @GLITZ_EGL_CFLAGS@
GLITZ_EGL_LIBS = @GLITZ_EGL_LIBS@
GLITZ_GLX_CFLAGS = @GLITZ_GLX_CFLAGS@
GLITZ_GLX_LIBS = @GLITZ_GLX_LIBS@
-GLITZ_LIBS = @GLITZ_LIBS@
-GLITZ_REQUIRES = @GLITZ_REQUIRES@
-GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GLITZ_WGL_CFLAGS = @GLITZ_WGL_CFLAGS@
GLITZ_WGL_LIBS = @GLITZ_WGL_LIBS@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
@@ -198,38 +189,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PDF_LIBS = @PDF_LIBS@
-PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
PKG_CONFIG = @PKG_CONFIG@
-PNG_CFLAGS = @PNG_CFLAGS@
-PNG_FUNCTIONS_FEATURE = @PNG_FUNCTIONS_FEATURE@
-PNG_LIBS = @PNG_LIBS@
-PNG_REQUIRES = @PNG_REQUIRES@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
-PS_LIBS = @PS_LIBS@
-PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
-QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-SVG_SURFACE_FEATURE = @SVG_SURFACE_FEATURE@
USE_MMX_FALSE = @USE_MMX_FALSE@
USE_MMX_TRUE = @USE_MMX_TRUE@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WARN_CFLAGS = @WARN_CFLAGS@
-WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
-WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
-XCB_CFLAGS = @XCB_CFLAGS@
-XCB_LIBS = @XCB_LIBS@
-XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
-XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
-XRENDER_CFLAGS = @XRENDER_CFLAGS@
-XRENDER_LIBS = @XRENDER_LIBS@
-XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
@@ -257,7 +229,11 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+directfb_CFLAGS = @directfb_CFLAGS@
+directfb_LIBS = @directfb_LIBS@
exec_prefix = @exec_prefix@
+glitz_CFLAGS = @glitz_CFLAGS@
+glitz_LIBS = @glitz_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -272,12 +248,18 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+png_CFLAGS = @png_CFLAGS@
+png_LIBS = @png_LIBS@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+xcb_CFLAGS = @xcb_CFLAGS@
+xcb_LIBS = @xcb_LIBS@
+xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@
+xlib_xrender_LIBS = @xlib_xrender_LIBS@
SUBDIRS = src
EXTRA_DIST = \
COPYING \
diff --git a/pixman/src/Makefile.in b/pixman/src/Makefile.in
index bf4b0c4..3028042 100644
--- a/pixman/src/Makefile.in
+++ b/pixman/src/Makefile.in
@@ -81,12 +81,10 @@ AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
-ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BEOS_SURFACE_FEATURE = @BEOS_SURFACE_FEATURE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE@
CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE@
@@ -132,11 +130,13 @@ CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_REQUIRES = @CAIRO_REQUIRES@
CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@
CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@
CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@
-CAIRO_VERSION_OTHER = @CAIRO_VERSION_OTHER@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -149,9 +149,6 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
-DIRECTFB_LIBS = @DIRECTFB_LIBS@
-DIRECTFB_SURFACE_FEATURE = @DIRECTFB_SURFACE_FEATURE@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -169,18 +166,12 @@ FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_CONFIG_CFLAGS = @FREETYPE_CONFIG_CFLAGS@
FREETYPE_CONFIG_LIBS = @FREETYPE_CONFIG_LIBS@
FREETYPE_LIBS = @FREETYPE_LIBS@
-FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
-FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_AGL_CFLAGS = @GLITZ_AGL_CFLAGS@
GLITZ_AGL_LIBS = @GLITZ_AGL_LIBS@
-GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_EGL_CFLAGS = @GLITZ_EGL_CFLAGS@
GLITZ_EGL_LIBS = @GLITZ_EGL_LIBS@
GLITZ_GLX_CFLAGS = @GLITZ_GLX_CFLAGS@
GLITZ_GLX_LIBS = @GLITZ_GLX_LIBS@
-GLITZ_LIBS = @GLITZ_LIBS@
-GLITZ_REQUIRES = @GLITZ_REQUIRES@
-GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GLITZ_WGL_CFLAGS = @GLITZ_WGL_CFLAGS@
GLITZ_WGL_LIBS = @GLITZ_WGL_LIBS@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
@@ -216,38 +207,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PDF_LIBS = @PDF_LIBS@
-PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
PKG_CONFIG = @PKG_CONFIG@
-PNG_CFLAGS = @PNG_CFLAGS@
-PNG_FUNCTIONS_FEATURE = @PNG_FUNCTIONS_FEATURE@
-PNG_LIBS = @PNG_LIBS@
-PNG_REQUIRES = @PNG_REQUIRES@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
-PS_LIBS = @PS_LIBS@
-PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
-QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-SVG_SURFACE_FEATURE = @SVG_SURFACE_FEATURE@
USE_MMX_FALSE = @USE_MMX_FALSE@
USE_MMX_TRUE = @USE_MMX_TRUE@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WARN_CFLAGS = @WARN_CFLAGS@
-WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
-WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
-XCB_CFLAGS = @XCB_CFLAGS@
-XCB_LIBS = @XCB_LIBS@
-XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
-XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
-XRENDER_CFLAGS = @XRENDER_CFLAGS@
-XRENDER_LIBS = @XRENDER_LIBS@
-XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
@@ -275,7 +247,11 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+directfb_CFLAGS = @directfb_CFLAGS@
+directfb_LIBS = @directfb_LIBS@
exec_prefix = @exec_prefix@
+glitz_CFLAGS = @glitz_CFLAGS@
+glitz_LIBS = @glitz_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -290,12 +266,18 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+png_CFLAGS = @png_CFLAGS@
+png_LIBS = @png_LIBS@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+xcb_CFLAGS = @xcb_CFLAGS@
+xcb_LIBS = @xcb_LIBS@
+xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@
+xlib_xrender_LIBS = @xlib_xrender_LIBS@
noinst_LTLIBRARIES = libpixman.la $(am__append_1)
libpixman_la_SOURCES = \
pixman.h \
diff --git a/pixman/src/fbcompose.c b/pixman/src/fbcompose.c
index 46a34ec..03bb5d5 100644
--- a/pixman/src/fbcompose.c
+++ b/pixman/src/fbcompose.c
@@ -3646,9 +3646,9 @@ fbCompositeRect (const FbComposeData *data, CARD32 *scanline_buffer)
scanFetchProc fetchSrc = NULL, fetchMask = NULL, fetchDest = NULL;
unsigned int srcClass = SourcePictClassUnknown;
unsigned int maskClass = SourcePictClassUnknown;
- FbBits *bits;
- FbStride stride;
- int xoff, yoff;
+ FbBits *bits = NULL; /* squelch bogus compiler warning */
+ FbStride stride = 0; /* squelch bogus compiler warning */
+ int xoff = 0, yoff = 0; /* squelch bogus compiler warning */
if (data->op == PIXMAN_OPERATOR_CLEAR)
fetchSrc = NULL;
@@ -3814,7 +3814,8 @@ fbCompositeRect (const FbComposeData *data, CARD32 *scanline_buffer)
}
else
{
- CARD32 *src_mask_buffer, *mask_buffer = 0;
+ CARD32 *src_mask_buffer = 0; /* squelch bogus compiler warning */
+ CARD32 *mask_buffer = 0;
CombineFuncU compose = composeFunctions.combineU[data->op];
if (!compose)
return;
diff --git a/pixman/src/pixman.h b/pixman/src/pixman.h
index e925227..ca24e33 100644
--- a/pixman/src/pixman.h
+++ b/pixman/src/pixman.h
@@ -74,11 +74,17 @@ SOFTWARE.
* PERFORMANCE OF THIS SOFTWARE.
*/
-#if defined (__SVR4) && defined (__sun)
-# include <sys/int_types.h>
-#elif defined (__OpenBSD__) || defined (_AIX) || defined (__osf__) || defined (__hpux__)
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#if HAVE_STDINT_H
+# include <stdint.h>
+#elif HAVE_INTTYPES_H
# include <inttypes.h>
-#elif defined (_MSC_VER)
+#elif HAVE_SYS_INT_TYPES_H
+# include <sys/int_types.h>
+#elif defined(_MSC_VER)
typedef __int8 int8_t;
typedef unsigned __int8 uint8_t;
typedef __int16 int16_t;
@@ -88,7 +94,7 @@ SOFTWARE.
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
-# include <stdint.h>
+#error Cannot find definitions for fixed-width integral types (uint8_t, uint32_t, etc.)
#endif
#include "pixman-remap.h"
diff --git a/src/Makefile.am b/src/Makefile.am
index f86937e..c2ac2d4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -45,6 +45,11 @@ libcairo_xlib_sources = cairo-xlib-surface.c cairo-xlib-screen.c cairo-xlib-priv
backend_pkgconfigs += cairo-xlib.pc
endif
+if CAIRO_HAS_XLIB_XRENDER_SURFACE
+libcairo_xlib_xrender_headers = cairo-xlib-xrender.h
+backend_pkgconfigs += cairo-xlib-xrender.pc
+endif
+
if CAIRO_HAS_QUARTZ_SURFACE
libcairo_quartz_headers = cairo-quartz.h
libcairo_quartz_sources = cairo-quartz-surface.c cairo-quartz-private.h
@@ -130,6 +135,8 @@ endif
FONTCONFIG_LIBS=@FONTCONFIG_LIBS@
XRENDER_LIBS=@XRENDER_LIBS@
+BUILT_SOURCES = cairo-features.h
+
cairoincludedir = $(includedir)/cairo
cairoinclude_HEADERS = \
cairo.h \
@@ -145,6 +152,7 @@ cairoinclude_HEADERS = \
$(libcairo_beos_headers) \
$(libcairo_xcb_headers) \
$(libcairo_xlib_headers) \
+ $(libcairo_xlib_xrender_headers) \
$(libcairo_directfb_headers)
lib_LTLIBRARIES = libcairo.la
@@ -187,6 +195,7 @@ libcairo_la_SOURCES = \
cairo-rectangle.c \
cairo-region.c \
cairo-scaled-font.c \
+ cairo-scaled-font-test.h \
cairo-slope.c \
cairo-spline.c \
cairo-stroke-style.c \
@@ -234,7 +243,14 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = cairo.pc $(backend_pkgconfigs)
DISTCLEANFILES = $(backend_pkgconfigs)
EXTRA_DIST = cairo-backend.pc.in
+$(backend_pkgconfigs): $(top_srcdir)/configure
+ $(top_builddir)/config.status --recheck
+
+$(top_builddir)/config.h: $(top_srcdir)/config.h.in
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) config.h
+cairo-features.h:
+ cd $(top_builddir) && ./config.status src/cairo-features.h
cairo.def: $(cairo_win32_api_headers)
(echo EXPORTS; \
@@ -257,4 +273,4 @@ install-data-local:
false ; \
fi
-CLEANFILES = cairo.def
+CLEANFILES = cairo.def cairo-features.h
diff --git a/src/Makefile.in b/src/Makefile.in
index dd12e9d..e36530b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -43,30 +43,30 @@ host_triplet = @host@
@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_3 = cairo-png.pc
@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_4 = cairo-svg.pc
@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_5 = cairo-xlib.pc
-@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_6 = cairo-quartz.pc
-@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_7 = cairo-xcb.pc
-@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_8 = cairo-win32-surface.c cairo-win32-private.h
-@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_9 = cairo-win32.pc
+@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_6 = cairo-xlib-xrender.pc
+@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_7 = cairo-quartz.pc
+@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_8 = cairo-xcb.pc
+@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_9 = cairo-win32-surface.c cairo-win32-private.h
+@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_10 = cairo-win32.pc
# This is not really a separate conditional. Is TRUE iff the previous one is.
-@CAIRO_HAS_WIN32_FONT_TRUE@am__append_10 = cairo-win32-font.c
-@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_11 = cairo-beos-surface.cpp
-@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_12 = cairo-beos.pc
-@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__append_13 = cairo-glitz.pc
-@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_14 = cairo-directfb.pc
-@CAIRO_HAS_FT_FONT_TRUE@am__append_15 = cairo-ft.pc
-@CAIRO_HAS_ATSUI_FONT_TRUE@am__append_16 = cairo-atsui.pc
-@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__append_17 = \
+@CAIRO_HAS_WIN32_FONT_TRUE@am__append_11 = cairo-win32-font.c
+@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_12 = cairo-beos-surface.cpp
+@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_13 = cairo-beos.pc
+@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__append_14 = cairo-glitz.pc
+@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_15 = cairo-directfb.pc
+@CAIRO_HAS_FT_FONT_TRUE@am__append_16 = cairo-ft.pc
+@CAIRO_HAS_ATSUI_FONT_TRUE@am__append_17 = cairo-atsui.pc
+@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__append_18 = \
@CAIRO_HAS_GLITZ_SURFACE_TRUE@ $(srcdir)/cairo-glitz.h
-@CAIRO_HAS_FT_FONT_TRUE@am__append_18 = \
+@CAIRO_HAS_FT_FONT_TRUE@am__append_19 = \
@CAIRO_HAS_FT_FONT_TRUE@ $(srcdir)/cairo-ft.h \
@CAIRO_HAS_FT_FONT_TRUE@ $(srcdir)/cairo-pdf.h \
@CAIRO_HAS_FT_FONT_TRUE@ $(srcdir)/cairo-ps.h
subdir = src
DIST_COMMON = $(am__cairoinclude_HEADERS_DIST) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/cairo-features.h.in \
- $(srcdir)/cairo.pc.in
+ $(srcdir)/Makefile.in $(srcdir)/cairo.pc.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
@@ -74,7 +74,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = cairo-features.h cairo.pc
+CONFIG_CLEAN_FILES = cairo.pc
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -98,12 +98,12 @@ am__libcairo_la_SOURCES_DIST = cairo.c cairo.h cairo-private.h \
cairo-path-data.c cairo-path-data-private.h cairo-path-fill.c \
cairo-path-fixed-private.h cairo-path-stroke.c cairo-pen.c \
cairo-polygon.c cairo-rectangle.c cairo-region.c \
- cairo-scaled-font.c cairo-slope.c cairo-spline.c \
- cairo-stroke-style.c cairo-surface.c cairo-surface-fallback.c \
- cairo-surface-fallback-private.h cairo-traps.c cairo-pattern.c \
- cairo-unicode.c cairo-output-stream.c \
- cairo-output-stream-private.h cairo-wideint.c \
- cairo-wideint-private.h cairo-meta-surface.c \
+ cairo-scaled-font.c cairo-scaled-font-test.h cairo-slope.c \
+ cairo-spline.c cairo-stroke-style.c cairo-surface.c \
+ cairo-surface-fallback.c cairo-surface-fallback-private.h \
+ cairo-traps.c cairo-pattern.c cairo-unicode.c \
+ cairo-output-stream.c cairo-output-stream-private.h \
+ cairo-wideint.c cairo-wideint-private.h cairo-meta-surface.c \
cairo-meta-surface-private.h cairo-paginated-surface.c \
cairo-paginated-surface-private.h cairo-analysis-surface.c \
cairo-analysis-surface-private.h cairo-atsui-font.c \
@@ -214,12 +214,10 @@ AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
-ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BEOS_SURFACE_FEATURE = @BEOS_SURFACE_FEATURE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE@
CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE@
@@ -265,11 +263,13 @@ CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_REQUIRES = @CAIRO_REQUIRES@
CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@
CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@
CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@
-CAIRO_VERSION_OTHER = @CAIRO_VERSION_OTHER@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -282,9 +282,6 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
-DIRECTFB_LIBS = @DIRECTFB_LIBS@
-DIRECTFB_SURFACE_FEATURE = @DIRECTFB_SURFACE_FEATURE@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -307,18 +304,12 @@ FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_CONFIG_CFLAGS = @FREETYPE_CONFIG_CFLAGS@
FREETYPE_CONFIG_LIBS = @FREETYPE_CONFIG_LIBS@
FREETYPE_LIBS = @FREETYPE_LIBS@
-FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
-FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_AGL_CFLAGS = @GLITZ_AGL_CFLAGS@
GLITZ_AGL_LIBS = @GLITZ_AGL_LIBS@
-GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_EGL_CFLAGS = @GLITZ_EGL_CFLAGS@
GLITZ_EGL_LIBS = @GLITZ_EGL_LIBS@
GLITZ_GLX_CFLAGS = @GLITZ_GLX_CFLAGS@
GLITZ_GLX_LIBS = @GLITZ_GLX_LIBS@
-GLITZ_LIBS = @GLITZ_LIBS@
-GLITZ_REQUIRES = @GLITZ_REQUIRES@
-GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GLITZ_WGL_CFLAGS = @GLITZ_WGL_CFLAGS@
GLITZ_WGL_LIBS = @GLITZ_WGL_LIBS@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
@@ -354,38 +345,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PDF_LIBS = @PDF_LIBS@
-PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
PKG_CONFIG = @PKG_CONFIG@
-PNG_CFLAGS = @PNG_CFLAGS@
-PNG_FUNCTIONS_FEATURE = @PNG_FUNCTIONS_FEATURE@
-PNG_LIBS = @PNG_LIBS@
-PNG_REQUIRES = @PNG_REQUIRES@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
-PS_LIBS = @PS_LIBS@
-PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
-QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-SVG_SURFACE_FEATURE = @SVG_SURFACE_FEATURE@
USE_MMX_FALSE = @USE_MMX_FALSE@
USE_MMX_TRUE = @USE_MMX_TRUE@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WARN_CFLAGS = @WARN_CFLAGS@
-WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
-WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
-XCB_CFLAGS = @XCB_CFLAGS@
-XCB_LIBS = @XCB_LIBS@
-XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
-XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
-XRENDER_CFLAGS = @XRENDER_CFLAGS@
-XRENDER_LIBS = @XRENDER_LIBS@
-XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
@@ -413,7 +385,11 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+directfb_CFLAGS = @directfb_CFLAGS@
+directfb_LIBS = @directfb_LIBS@
exec_prefix = @exec_prefix@
+glitz_CFLAGS = @glitz_CFLAGS@
+glitz_LIBS = @glitz_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -428,12 +404,18 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+png_CFLAGS = @png_CFLAGS@
+png_LIBS = @png_LIBS@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+xcb_CFLAGS = @xcb_CFLAGS@
+xcb_LIBS = @xcb_LIBS@
+xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@
+xlib_xrender_LIBS = @xlib_xrender_LIBS@
font_subset_sources = \
cairo-font-subset.c \
cairo-font-subset-private.h \
@@ -443,9 +425,9 @@ font_subset_sources = \
backend_pkgconfigs = $(am__append_1) $(am__append_2) $(am__append_3) \
$(am__append_4) $(am__append_5) $(am__append_6) \
- $(am__append_7) $(am__append_9) $(am__append_12) \
+ $(am__append_7) $(am__append_8) $(am__append_10) \
$(am__append_13) $(am__append_14) $(am__append_15) \
- $(am__append_16)
+ $(am__append_16) $(am__append_17)
@CAIRO_HAS_PS_SURFACE_TRUE@libcairo_ps_headers = cairo-ps.h
@CAIRO_HAS_PS_SURFACE_TRUE@libcairo_ps_sources = cairo-ps-surface.c cairo-ps-test.h
@CAIRO_HAS_PDF_SURFACE_TRUE@libcairo_font_subset_sources = $(font_subset_sources)
@@ -462,15 +444,16 @@ backend_pkgconfigs = $(am__append_1) $(am__append_2) $(am__append_3) \
@CAIRO_HAS_XLIB_SURFACE_TRUE@libcairo_xlib_headers = cairo-xlib.h cairo-xlib-xrender.h
@CAIRO_HAS_XLIB_SURFACE_TRUE@libcairo_xlib_sources = cairo-xlib-surface.c cairo-xlib-screen.c cairo-xlib-private.h cairo-xlib-test.h
+@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@libcairo_xlib_xrender_headers = cairo-xlib-xrender.h
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@libcairo_quartz_headers = cairo-quartz.h
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@libcairo_quartz_sources = cairo-quartz-surface.c cairo-quartz-private.h
@CAIRO_HAS_XCB_SURFACE_TRUE@libcairo_xcb_headers = cairo-xcb.h cairo-xcb-xrender.h
@CAIRO_HAS_XCB_SURFACE_TRUE@libcairo_xcb_sources = cairo-xcb-surface.c
-libcairo_win32_sources = $(am__append_8) $(am__append_10)
+libcairo_win32_sources = $(am__append_9) $(am__append_11)
@CAIRO_HAS_WIN32_SURFACE_TRUE@libcairo_win32_headers = cairo-win32.h
@CAIRO_HAS_WIN32_SURFACE_TRUE@export_symbols = -export-symbols cairo.def
@CAIRO_HAS_WIN32_SURFACE_TRUE@cairo_def_dependency = cairo.def
-libcairo_beos_sources = $(am__append_11)
+libcairo_beos_sources = $(am__append_12)
@CAIRO_HAS_BEOS_SURFACE_TRUE@libcairo_beos_headers = cairo-beos.h
@CAIRO_HAS_BEOS_SURFACE_TRUE@noinst_LTLIBRARIES = libcairo_beos.la
@CAIRO_HAS_BEOS_SURFACE_TRUE@libcairo_beos_la_SOURCES = $(libcairo_beos_sources)
@@ -487,7 +470,9 @@ libcairo_beos_sources = $(am__append_11)
# Headers that declare the functions in the cairo DLL API on Windows
cairo_win32_api_headers = $(srcdir)/cairo.h $(srcdir)/cairo-win32.h \
- $(am__append_17) $(am__append_18)
+ $(am__append_18) $(am__append_19)
+XRENDER_LIBS = @XRENDER_LIBS@
+BUILT_SOURCES = cairo-features.h
cairoincludedir = $(includedir)/cairo
cairoinclude_HEADERS = \
cairo.h \
@@ -503,6 +488,7 @@ cairoinclude_HEADERS = \
$(libcairo_beos_headers) \
$(libcairo_xcb_headers) \
$(libcairo_xlib_headers) \
+ $(libcairo_xlib_xrender_headers) \
$(libcairo_directfb_headers)
lib_LTLIBRARIES = libcairo.la
@@ -544,6 +530,7 @@ libcairo_la_SOURCES = \
cairo-rectangle.c \
cairo-region.c \
cairo-scaled-font.c \
+ cairo-scaled-font-test.h \
cairo-slope.c \
cairo-spline.c \
cairo-stroke-style.c \
@@ -587,8 +574,9 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = cairo.pc $(backend_pkgconfigs)
DISTCLEANFILES = $(backend_pkgconfigs)
EXTRA_DIST = cairo-backend.pc.in
-CLEANFILES = cairo.def
-all: all-am
+CLEANFILES = cairo.def cairo-features.h
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .cpp .lo .o .obj
@@ -621,8 +609,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-cairo-features.h: $(top_builddir)/config.status $(srcdir)/cairo-features.h.in
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
cairo.pc: $(top_builddir)/config.status $(srcdir)/cairo.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@@ -904,13 +890,15 @@ distdir: $(DISTFILES)
fi; \
done
check-am: all-am
-check: check-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(cairoincludedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
-install: install-am
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
@@ -936,6 +924,7 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
@@ -1005,6 +994,14 @@ uninstall-am: uninstall-cairoincludeHEADERS uninstall-info-am \
uninstall-info-am uninstall-libLTLIBRARIES \
uninstall-pkgconfigDATA
+$(backend_pkgconfigs): $(top_srcdir)/configure
+ $(top_builddir)/config.status --recheck
+
+$(top_builddir)/config.h: $(top_srcdir)/config.h.in
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) config.h
+
+cairo-features.h:
+ cd $(top_builddir) && ./config.status src/cairo-features.h
cairo.def: $(cairo_win32_api_headers)
(echo EXPORTS; \
diff --git a/src/cairo-atsui-font.c b/src/cairo-atsui-font.c
index 7f8d1e4..41a7f89 100644
--- a/src/cairo-atsui-font.c
+++ b/src/cairo-atsui-font.c
@@ -115,7 +115,7 @@ static const cairo_font_face_backend_t _cairo_atsui_font_face_backend = {
_cairo_atsui_font_face_scaled_font_create
};
-cairo_public cairo_font_face_t *
+cairo_font_face_t *
cairo_atsui_font_face_create_for_atsu_font_id (ATSUFontID font_id)
{
cairo_atsui_font_face_t *font_face;
diff --git a/src/cairo-backend.pc.in b/src/cairo-backend.pc.in
index fa724ec..3988ffd 100644
--- a/src/cairo-backend.pc.in
+++ b/src/cairo-backend.pc.in
@@ -8,5 +8,5 @@ Description: @Backend_Name@ backend for cairo graphics library
Version: @VERSION@
Requires: cairo @BACKEND_REQUIRES@
-Libs:
-Cflags: -I${includedir}/cairo
+Libs: @BACKEND_NONPKGCONFIG_LIBS@
+Cflags: -I${includedir}/cairo @BACKEND_NONPKGCONFIG_CFLAGS@
diff --git a/src/cairo-clip.c b/src/cairo-clip.c
index 0a3bd5f..630ec89 100644
--- a/src/cairo-clip.c
+++ b/src/cairo-clip.c
@@ -433,14 +433,6 @@ _cairo_clip_clip (cairo_clip_t *clip,
{
cairo_status_t status;
cairo_traps_t traps;
- cairo_path_fixed_t path_transformed;
-
- if (_cairo_surface_has_device_transform (target)) {
- _cairo_path_fixed_init_copy (&path_transformed, path);
- _cairo_path_fixed_device_transform (&path_transformed,
- &target->device_transform);
- path = &path_transformed;
- }
status = _cairo_clip_intersect_path (clip,
path, fill_rule, tolerance,
@@ -467,8 +459,6 @@ _cairo_clip_clip (cairo_clip_t *clip,
bail:
_cairo_traps_fini (&traps);
- if (path == &path_transformed)
- _cairo_path_fixed_fini (&path_transformed);
return status;
}
diff --git a/src/cairo-directfb-surface.c b/src/cairo-directfb-surface.c
index 5ff117b..cb9a667 100644
--- a/src/cairo-directfb-surface.c
+++ b/src/cairo-directfb-surface.c
@@ -31,767 +31,1638 @@
* California.
*
* Contributor(s):
- * Michael Emmel <mike.emmel@gmail.com>
+ * Michael Emmel <mike.emmel@gmail.com>
+ * Claudio Ciccani <klan@users.sf.net>
*/
+
#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
#include <directfb.h>
+
+#include <direct/types.h>
+#include <direct/debug.h>
+#include <direct/memcpy.h>
+#include <direct/util.h>
+
#include "cairo-directfb.h"
#include "cairoint.h"
-#define DFB_UNSUPPORTED -1
-#define DFB_SUPPORTED 1
/*
-Glyph support not working
-*/
-#define DFB_SHOW_GLYPHS 0
+ * Composite works fine.
+ */
+#define DFB_COMPOSITE 1
+
/*
-Composite support not working
-*/
-#define DFB_COMPOSITE 0
+ * CompositeTrapezoids works (without antialiasing).
+ */
+#define DFB_COMPOSITE_TRAPEZOIDS 1
+
+/*
+ * ShowGlyphs works fine.
+ */
+#define DFB_SHOW_GLYPHS 1
+
+
+D_DEBUG_DOMAIN (Cairo_DirectFB, "Cairo/DirectFB", "Cairo DirectFB backend");
+
+/*****************************************************************************/
-#if DFB_SHOW_GLYPHS
-static cairo_int_status_t
-_cairo_directfb_surface_show_glyphs (cairo_scaled_font_t *scaled_font,
- cairo_operator_t operator,
- cairo_pattern_t *pattern,
- void *abstract_surface,
- int source_x,
- int source_y,
- int dest_x,
- int dest_y,
- unsigned int width,
- unsigned int height,
- const cairo_glyph_t *glyphs,
- int num_glyphs);
-#endif
typedef struct _cairo_directfb_surface {
- cairo_surface_t base;
- cairo_format_t format;
- IDirectFB *dfb;
- IDirectFBSurface *main_surface;
- IDirectFBSurface *buffer;
- pixman_region16_t *clip;
- cairo_surface_t *buffer_image;
- void *buffer_data;
- int width;
- int height;
+ cairo_surface_t base;
+
+ cairo_format_t format;
+
+ IDirectFB *dfb;
+ IDirectFBSurface *surface;
+ IDirectFBSurface *buffer;
+
+ /* color buffer */
+ cairo_surface_t *color;
+
+ DFBRegion *clips;
+ int n_clips;
+
+ cairo_surface_t *buffer_image;
+
+ int width;
+ int height;
+
+ bool local;
} cairo_directfb_surface_t;
-static int
-_dfb_set_operator (cairo_operator_t operator,IDirectFBSurface *dest)
-{
- dest->SetDrawingFlags(dest,DSDRAW_BLEND);
- dest->SetPorterDuff(dest,DSPD_NONE);
- switch (operator) {
- case CAIRO_OPERATOR_CLEAR:
- dest->SetPorterDuff(dest,DSPD_CLEAR);
- break;
- case CAIRO_OPERATOR_SOURCE:
- dest->SetPorterDuff(dest,DSPD_SRC);
- break;
- case CAIRO_OPERATOR_OVER:
- dest->SetPorterDuff(dest,DSPD_SRC_OVER);
- break;
- case CAIRO_OPERATOR_IN:
- dest->SetPorterDuff(dest,DSPD_SRC_IN);
- break;
- case CAIRO_OPERATOR_OUT:
- dest->SetPorterDuff(dest,DSPD_SRC_OUT);
- break;
- case CAIRO_OPERATOR_DEST_OVER:
- dest->SetPorterDuff(dest,DSPD_DST_OVER);
- break;
- case CAIRO_OPERATOR_DEST_IN:
- dest->SetPorterDuff(dest,DSPD_DST_IN);
- break;
- case CAIRO_OPERATOR_DEST_OUT:
- dest->SetPorterDuff(dest,DSPD_DST_OUT);
- break;
-
- /*not sure about these yet */
- case CAIRO_OPERATOR_ATOP:
- return DFB_UNSUPPORTED;
- break;
- case CAIRO_OPERATOR_DEST:
- return DFB_UNSUPPORTED;
- break;
- case CAIRO_OPERATOR_DEST_ATOP:
- return DFB_UNSUPPORTED;
- break;
- case CAIRO_OPERATOR_XOR:
- dest->SetDrawingFlags(dest,DSDRAW_XOR);
- break;
- case CAIRO_OPERATOR_ADD:
- return DFB_UNSUPPORTED;
- break;
- case CAIRO_OPERATOR_SATURATE:
- return DFB_UNSUPPORTED;
- break;
- default:
- return DFB_UNSUPPORTED;
- }
- return DFB_SUPPORTED;
+
+typedef struct _cairo_directfb_font_cache {
+ IDirectFB *dfb;
+ IDirectFBSurface *buffer;
+
+ int width;
+ int height;
+
+ /* coordinates within the surface
+ * of the last loaded glyph */
+ int x;
+ int y;
+} cairo_directfb_font_cache_t;
+
+
+static cairo_surface_backend_t cairo_directfb_surface_backend;
+
+/*****************************************************************************/
+
+
+#define RUN_CLIPPED( surface, clip, func ) {\
+ if ((surface)->clips) {\
+ int k;\
+ for (k = 0; k < (surface)->n_clips; k++) {\
+ if (clip) {\
+ DFBRegion reg = (surface)->clips[k];\
+ DFBRegion *cli = (clip);\
+ if (reg.x2 < cli->x1 || reg.y2 < cli->y1 ||\
+ reg.x1 > cli->x2 || reg.y1 > cli->y2)\
+ continue;\
+ if (reg.x1 < cli->x1)\
+ reg.x1 = cli->x1;\
+ if (reg.y1 < cli->y1)\
+ reg.y1 = cli->y1;\
+ if (reg.x2 > cli->x2)\
+ reg.x2 = cli->x2;\
+ if (reg.y2 > cli->y2)\
+ reg.y2 = cli->y2;\
+ (surface)->buffer->SetClip ((surface)->buffer, &reg);\
+ }\
+ else {\
+ (surface)->buffer->SetClip ((surface)->buffer,\
+ &(surface)->clips[k]);\
+ }\
+ func;\
+ }\
+ }\
+ else {\
+ (surface)->buffer->SetClip ((surface)->buffer, clip);\
+ func;\
+ }\
}
-static inline int cairo_to_directfb_format(cairo_format_t format ) {
- switch( format ) {
- case CAIRO_FORMAT_RGB24:
- return DSPF_RGB24;
- case CAIRO_FORMAT_ARGB32:
- return DSPF_ARGB;
- case CAIRO_FORMAT_A8:
- return DSPF_A8;
- case CAIRO_FORMAT_A1:
- return DSPF_A1;
- default:
- {
- /*assert(0);*/
- return DSPF_UNKNOWN;
- }
- }
+#define TRANSFORM_POINT( m, x, y, ret_x, ret_y ) {\
+ double _x = (x);\
+ double _y = (y);\
+ (ret_x) = (_x * (m)->xx + _y * (m)->xy + (m)->x0);\
+ (ret_y) = (_x * (m)->yx + _y * (m)->yy + (m)->y0);\
}
-static inline int directfb_to_cairo_format(DFBSurfacePixelFormat dfbformat ) {
- switch( dfbformat ) {
- case DSPF_RGB24 :
- case DSPF_RGB32 :
- return CAIRO_FORMAT_RGB24;
- break;
- case DSPF_AiRGB :
- case DSPF_ARGB :
- return CAIRO_FORMAT_ARGB32;
- break;
- case DSPF_A8 :
- return CAIRO_FORMAT_A8;
- break;
- case DSPF_A1 :
- return CAIRO_FORMAT_A1;
- break;
- case DSPF_UNKNOWN :
- case DSPF_ARGB1555 :
- case DSPF_RGB16 :
- case DSPF_YUY2 :
- case DSPF_RGB332 :
- case DSPF_UYVY :
- case DSPF_I420 :
- case DSPF_ALUT44 :
- case DSPF_NV12 :
- case DSPF_NV16 :
- default :
- return DFB_UNSUPPORTED;
- }
+/* XXX: A1 has a different bits ordering in cairo.
+ * Probably we should drop it.
+ */
+
+static cairo_content_t
+_directfb_format_to_content ( DFBSurfacePixelFormat format )
+{
+ switch (format) {
+ case DSPF_ARGB:
+ return CAIRO_CONTENT_COLOR_ALPHA;
+ case DSPF_A8:
+ return CAIRO_CONTENT_ALPHA;
+ case DSPF_RGB32:
+ case DSPF_A1:
+ default:
+ return CAIRO_CONTENT_COLOR;
+ break;
+ }
}
-static IDirectFBSurface *cairo_directfb_buffer_surface_create(IDirectFB *dfb,void *data,int pitch, int format,
- int width, int height) {
-
- DFBResult ret;
- IDirectFBSurface *buffer;
- DFBSurfaceDescription dsc;
-
- dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
- dsc.caps = DSCAPS_NONE;
- dsc.width = width;
- dsc.height = height;
- dsc.pixelformat = format;
- if( data ) {
- dsc.flags |= DSDESC_CAPS;
- dsc.flags |= DSDESC_PREALLOCATED;
- dsc.caps = DSCAPS_NONE;
- dsc.preallocated[0].data = data;
- dsc.preallocated[0].pitch = pitch;
- dsc.preallocated[1].data = NULL;
- dsc.preallocated[1].pitch = 0;
- }
-
- ret =dfb->CreateSurface (dfb, &dsc, &buffer);
- if (ret) {
- DirectFBError ("cairo_directfb_buffer_surface_create failed ", ret);
- assert(0);
- return NULL;
- }
-#if 0
- {
- DFBSurfacePixelFormat dfbformat;
- int nwidth=0;
- int nheight=0;
- int npitch;
- void *ndata;
- buffer->GetSize(buffer,&nwidth,&nheight);
- buffer->GetPixelFormat(buffer,&dfbformat);
- buffer->Lock(buffer,DSLF_READ,&ndata,&npitch);
- buffer->Unlock(buffer);
- assert( ( nwidth == width) && (nheight == height));
- }
-#endif
- return buffer;
+
+static inline DFBSurfacePixelFormat
+cairo_to_directfb_format (cairo_format_t format)
+{
+ switch (format) {
+ case CAIRO_FORMAT_RGB24:
+ return DSPF_RGB32;
+ case CAIRO_FORMAT_ARGB32:
+ return DSPF_ARGB;
+ case CAIRO_FORMAT_A8:
+ return DSPF_A8;
+ case CAIRO_FORMAT_A1:
+ return DSPF_A1;
+ default:
+ break;
+ }
+
+ return -1;
+}
+
+static inline cairo_format_t
+directfb_to_cairo_format (DFBSurfacePixelFormat format)
+{
+ switch (format) {
+ case DSPF_RGB32:
+ return CAIRO_FORMAT_RGB24;
+ case DSPF_ARGB:
+ return CAIRO_FORMAT_ARGB32;
+ case DSPF_A8 :
+ return CAIRO_FORMAT_A8;
+ case DSPF_A1 :
+ return CAIRO_FORMAT_A1;
+ default:
+ break;
+ }
+
+ return -1;
}
+
static cairo_status_t
-_cairo_directfb_surface_get_image (cairo_directfb_surface_t *surface,
- cairo_rectangle_int16_t *interest,
- cairo_image_surface_t **image_out,
- cairo_rectangle_int16_t *rect_out,
- DFBSurfaceLockFlags flags)
+_directfb_get_operator (cairo_operator_t operator,
+ DFBSurfaceDrawingFlags *ret_drawing,
+ DFBSurfaceBlittingFlags *ret_blitting,
+ DFBSurfaceBlendFunction *ret_srcblend,
+ DFBSurfaceBlendFunction *ret_dstblend )
+{
+ DFBSurfaceDrawingFlags drawing = DSDRAW_BLEND;
+ DFBSurfaceBlittingFlags blitting = DSBLIT_BLEND_ALPHACHANNEL;
+ DFBSurfaceBlendFunction srcblend = DSBF_ONE;
+ DFBSurfaceBlendFunction dstblend = DSBF_ZERO;
+
+ switch (operator) {
+ case CAIRO_OPERATOR_CLEAR:
+ srcblend = DSBF_ZERO;
+ dstblend = DSBF_ZERO;
+ break;
+ case CAIRO_OPERATOR_SOURCE:
+ drawing = DSDRAW_NOFX;
+ blitting = DSBLIT_NOFX;
+ break;
+ case CAIRO_OPERATOR_OVER:
+ srcblend = DSBF_ONE;
+ dstblend = DSBF_INVSRCALPHA;
+ break;
+ case CAIRO_OPERATOR_IN:
+ srcblend = DSBF_DESTALPHA;
+ dstblend = DSBF_ZERO;
+ break;
+ case CAIRO_OPERATOR_OUT:
+ srcblend = DSBF_INVDESTALPHA;
+ dstblend = DSBF_ZERO;
+ break;
+ case CAIRO_OPERATOR_ATOP:
+ srcblend = DSBF_DESTALPHA;
+ dstblend = DSBF_INVSRCALPHA;
+ break;
+ case CAIRO_OPERATOR_DEST:
+ srcblend = DSBF_ZERO;
+ dstblend = DSBF_ONE;
+ break;
+ case CAIRO_OPERATOR_DEST_OVER:
+ srcblend = DSBF_INVDESTALPHA;
+ dstblend = DSBF_ONE;
+ break;
+ case CAIRO_OPERATOR_DEST_IN:
+ srcblend = DSBF_ZERO;
+ dstblend = DSBF_SRCALPHA;
+ break;
+ case CAIRO_OPERATOR_DEST_OUT:
+ srcblend = DSBF_ZERO;
+ dstblend = DSBF_INVSRCALPHA;
+ break;
+ case CAIRO_OPERATOR_DEST_ATOP:
+ srcblend = DSBF_INVDESTALPHA;
+ dstblend = DSBF_SRCALPHA;
+ break;
+ case CAIRO_OPERATOR_XOR:
+ srcblend = DSBF_INVDESTALPHA;
+ dstblend = DSBF_INVSRCALPHA;
+ break;
+ case CAIRO_OPERATOR_ADD:
+ srcblend = DSBF_ONE;
+ dstblend = DSBF_ONE;
+ break;
+ case CAIRO_OPERATOR_SATURATE:
+ srcblend = DSBF_SRCALPHASAT;
+ dstblend = DSBF_ONE;
+ break;
+ default:
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+ }
+
+ if (ret_drawing)
+ *ret_drawing = drawing;
+ if (ret_blitting)
+ *ret_blitting = blitting;
+ if (ret_srcblend)
+ *ret_srcblend = srcblend;
+ if (ret_dstblend)
+ *ret_dstblend = dstblend;
+
+ return CAIRO_STATUS_SUCCESS;
+}
+
+static IDirectFBSurface*
+_directfb_buffer_surface_create (IDirectFB *dfb,
+ DFBSurfacePixelFormat format,
+ int width,
+ int height)
{
- int pitch;
- void *data;
-
- (void)interest;
- if( surface->buffer->Lock(surface->buffer,flags,&data,&pitch) != DFB_OK )
- return CAIRO_STATUS_NO_MEMORY;
-
- /*lock the dest agianst other changes*/
- if( surface->buffer_image ) {
- if( surface->buffer_data == data ) {
- cairo_surface_reference(surface->buffer_image);
- }
- }
-
- if( surface->buffer_data != data ){
- /* new off screen buffer */
- int width;
- int height;
- DFBSurfacePixelFormat dfbformat;
- /*surface moved free image if allocated */
- if( surface->buffer_image ) {
- cairo_surface_destroy (surface->buffer_image);
- surface->buffer_image=NULL;
- surface->buffer_data=NULL;
- }
- surface->buffer->Unlock(surface->buffer);
-
- surface->main_surface->GetSize(surface->main_surface,&width,&height);
- surface->main_surface->GetPixelFormat(surface->main_surface,&dfbformat);
- surface->format = directfb_to_cairo_format(dfbformat);
-
- if( surface->format == DFB_UNSUPPORTED ) {
- surface->format = CAIRO_FORMAT_ARGB32;
- surface->buffer = cairo_directfb_buffer_surface_create(surface->dfb,NULL,
- 0,DSPF_ARGB,width,height);
- if( !surface->buffer )
- return CAIRO_STATUS_NO_MEMORY;
- /*Have to flip the main surface if its double buffered to blit the buffer*/
- surface->main_surface->Flip(surface->main_surface,NULL,0);
- surface->buffer->Blit(surface->buffer,surface->main_surface,NULL,0,0);
- }else {
- surface->buffer = surface->main_surface;
- }
-
- surface->width=width;
- surface->height=height;
-
- if( surface->buffer->Lock(surface->buffer,flags,&data,&pitch) != DFB_OK )
- return CAIRO_STATUS_NO_MEMORY;
-
- surface->buffer_data = data;
- surface->buffer_image = cairo_image_surface_create_for_data (
- (unsigned char *)data,surface->format,width, height, pitch);
- if( surface->buffer_image == NULL ) {
- surface->buffer->Release(surface->buffer);
- surface->buffer = NULL;
- surface->buffer_data = NULL;
- return CAIRO_STATUS_NO_MEMORY;
- }
- #if 0
- if( surface->clip)
- _cairo_image_surface_set_clip_region (
- (cairo_image_surface_t *)surface->buffer_image,surface->clip);
- #endif
- }
-
- if (rect_out) {
- rect_out->x = 0;
- rect_out->y = 0;
- rect_out->width = surface->width;
- rect_out->height = surface->height;
- }
- if( image_out )
- *image_out=(cairo_image_surface_t *)surface->buffer_image;
- return CAIRO_STATUS_SUCCESS;
+ IDirectFBSurface *buffer;
+ DFBSurfaceDescription dsc;
+ DFBResult ret;
+
+ dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
+ dsc.width = width;
+ dsc.height = height;
+ dsc.pixelformat = format;
+
+ ret = dfb->CreateSurface (dfb, &dsc, &buffer);
+ if (ret) {
+ DirectFBError ("IDirectFB::CreateSurface()", ret);
+ return NULL;
+ }
+
+ return buffer;
+}
+
+static cairo_status_t
+_directfb_acquire_surface (cairo_directfb_surface_t *surface,
+ DFBSurfaceLockFlags lock_flags)
+{
+ if (!surface->local) {
+ int width, height;
+
+ surface->surface->GetSize (surface->surface, &width, &height);
+
+ if (surface->width != width || surface->height != height) {
+ DFBSurfacePixelFormat format;
+
+ if (surface->buffer_image) {
+ cairo_surface_destroy (surface->buffer_image);
+ surface->buffer_image = NULL;
+ }
+
+ if (surface->buffer)
+ surface->buffer->Release (surface->buffer);
+
+ surface->surface->GetPixelFormat (surface->surface, &format);
+ surface->format = directfb_to_cairo_format (format);
+
+ if (surface->format == -1) {
+ D_DEBUG_AT (Cairo_DirectFB, "%s buffer for surface.\n",
+ surface->buffer ? "Reallocating" : "Allocating");
+
+ surface->buffer = _directfb_buffer_surface_create (surface->dfb,
+ DSPF_ARGB, width, height);
+ if (!surface->buffer)
+ return CAIRO_STATUS_NO_MEMORY;
+
+ surface->buffer->Blit (surface->buffer,
+ surface->surface, NULL, 0, 0);
+
+ surface->format = CAIRO_FORMAT_ARGB32;
+ }
+ else {
+ surface->surface->AddRef (surface->surface);
+ surface->buffer = surface->surface;
+ }
+
+ surface->width = width;
+ surface->height = height;
+ }
+ }
+
+ if (lock_flags) {
+ void *data;
+ int pitch;
+ DFBResult ret;
+
+ ret = surface->buffer->Lock (surface->buffer,
+ lock_flags, &data, &pitch);
+ if (ret) {
+ DirectFBError ("IDirectFBSurface::Lock()", ret);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ if (!surface->buffer_image) {
+ surface->buffer_image = cairo_image_surface_create_for_data (data,
+ surface->format, surface->width,
+ surface->height, pitch);
+ if (!surface->buffer_image) {
+ surface->buffer->Unlock (surface->buffer);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+ }
+ else {
+ cairo_surface_reference (surface->buffer_image);
+ }
+ }
+
+ return CAIRO_STATUS_SUCCESS;
}
+
+
static cairo_surface_t *
-_cairo_directfb_surface_create_similar (void *abstract_src,
- cairo_content_t content,
- int width,
- int height)
+_cairo_directfb_surface_create_similar (void *abstract_src,
+ cairo_content_t content,
+ int width,
+ int height)
{
- cairo_format_t format = _cairo_format_from_content (content);
- int dfbformat;
- switch( content ) {
- case CAIRO_CONTENT_COLOR:
- dfbformat=DSPF_ARGB;
- break;
- case CAIRO_CONTENT_ALPHA:
- dfbformat=DSPF_A8;
- break;
- case CAIRO_CONTENT_COLOR_ALPHA:
- dfbformat= DSPF_ARGB;
- break;
- default:
- {
- return cairo_image_surface_create (format, width, height);
- }
- }
- cairo_directfb_surface_t *src = abstract_src;
- IDirectFBSurface *buffer =cairo_directfb_buffer_surface_create(src->dfb,
- NULL,0,dfbformat,width,height);
- cairo_surface_t *sur =cairo_directfb_surface_create (src->dfb,buffer);
- ((cairo_directfb_surface_t *)sur)->format = format;
- return sur;
+ cairo_directfb_surface_t *source = abstract_src;
+ cairo_directfb_surface_t *surface;
+ cairo_format_t format;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( src=%p, content=0x%x, width=%d, height=%d).\n",
+ __FUNCTION__, source, content, width, height);
+
+ format = _cairo_format_from_content (content);
+
+ surface = calloc (1, sizeof(cairo_directfb_surface_t));
+ if (!surface)
+ return NULL;
+
+ surface->surface = _directfb_buffer_surface_create (source->dfb,
+ cairo_to_directfb_format (format),
+ MAX (width, 8), MAX (height, 8) );
+ if (!surface->surface) {
+ free (surface);
+ return NULL;
+ }
+ _cairo_surface_init (&surface->base, &cairo_directfb_surface_backend,content);
+
+
+ source->dfb->AddRef (source->dfb);
+ surface->dfb = source->dfb;
+
+ surface->surface->AddRef (surface->surface);
+ surface->buffer = surface->surface;
+
+ surface->format = format;
+ surface->width = width;
+ surface->height = height;
+ surface->local = true;
+
+ return &surface->base;
}
static cairo_status_t
-_cairo_directfb_surface_finish (void *data ) {
- cairo_directfb_surface_t *surface=(cairo_directfb_surface_t *)data;
- if( surface->buffer_image )
- cairo_surface_destroy (surface->buffer_image);
- if (surface->clip)
- pixman_region_destroy (surface->clip);
-
- if( surface->main_surface != surface->buffer ) {
- surface->main_surface->SetClip (surface->main_surface,NULL);
- surface->main_surface->Blit(surface->main_surface,surface->buffer,NULL,0,0);
- surface->buffer->Release (surface->buffer);
- surface->buffer=NULL;
- }
-#if 0 /* No don't do this */
- surface->main_surface->Flip(surface->main_surface,NULL,0);
-#endif
- surface->main_surface->Release (surface->main_surface);
- surface->main_surface=NULL;
- surface->dfb->Release(surface->dfb);
- surface->dfb=NULL;
- return CAIRO_STATUS_SUCCESS;
+_cairo_directfb_surface_finish (void *data)
+{
+ cairo_directfb_surface_t *surface = (cairo_directfb_surface_t *)data;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p ).\n", __FUNCTION__, surface);
+
+ if (surface->buffer_image) {
+ cairo_surface_destroy (surface->buffer_image);
+ surface->buffer_image = NULL;
+ }
+
+ if (surface->clips) {
+ free (surface->clips);
+ surface->clips = NULL;
+ surface->n_clips = 0;
+ }
+
+ if (surface->color) {
+ cairo_surface_destroy (surface->color);
+ surface->color = NULL;
+ }
+
+ if (surface->buffer) {
+ surface->buffer->Release (surface->buffer);
+ surface->buffer = NULL;
+ }
+
+ if (surface->surface) {
+ surface->surface->Release (surface->surface);
+ surface->surface = NULL;
+ }
+
+ if (surface->dfb) {
+ surface->dfb->Release (surface->dfb);
+ surface->dfb = NULL;
+ }
+
+ return CAIRO_STATUS_SUCCESS;
}
static cairo_status_t
-_cairo_directfb_surface_acquire_source_image (void *abstract_surface,
- cairo_image_surface_t **image_out,
- void **image_extra)
+_cairo_directfb_surface_acquire_source_image (void *abstract_surface,
+ cairo_image_surface_t **image_out,
+ void **image_extra)
{
- cairo_directfb_surface_t *surface = abstract_surface;
- *image_extra = surface;
- return _cairo_directfb_surface_get_image (surface, NULL,image_out,NULL,DSLF_READ);
+ cairo_directfb_surface_t *surface = abstract_surface;
+ cairo_status_t ret;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p ).\n", __FUNCTION__, surface);
+
+ ret = _directfb_acquire_surface (surface, DSLF_READ);
+ if (ret)
+ return ret;
+
+ if (image_out)
+ *image_out = (cairo_image_surface_t *)surface->buffer_image;
+
+ if (image_extra)
+ *image_extra = surface;
+
+ return CAIRO_STATUS_SUCCESS;
}
- static void
-_cairo_directfb_surface_release_source_image (void *abstract_surface,
- cairo_image_surface_t *image,
- void *image_extra)
+static void
+_cairo_directfb_surface_release_source_image (void *abstract_surface,
+ cairo_image_surface_t *image,
+ void *image_extra)
{
- cairo_directfb_surface_t *surface = abstract_surface;
- surface->buffer->Unlock(surface->buffer);
+ cairo_directfb_surface_t *surface = abstract_surface;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p ).\n", __FUNCTION__, surface);
+
+ surface->buffer->Unlock (surface->buffer);
}
- static cairo_status_t
-_cairo_directfb_surface_acquire_dest_image (void *abstract_surface,
- cairo_rectangle_int16_t *interest_rect,
- cairo_image_surface_t **image_out,
- cairo_rectangle_int16_t *image_rect_out,
- void **image_extra)
+static cairo_status_t
+_cairo_directfb_surface_acquire_dest_image (void *abstract_surface,
+ cairo_rectangle_int16_t *interest_rect,
+ cairo_image_surface_t **image_out,
+ cairo_rectangle_int16_t *image_rect_out,
+ void **image_extra)
{
- cairo_directfb_surface_t *surface = abstract_surface;
- *image_extra = interest_rect;
- return _cairo_directfb_surface_get_image (surface, interest_rect,image_out,
- image_rect_out,DSLF_READ|DSLF_WRITE);
+ cairo_directfb_surface_t *surface = abstract_surface;
+ cairo_status_t ret;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p ).\n", __FUNCTION__, surface);
+
+ ret = _directfb_acquire_surface (surface, DSLF_READ | DSLF_WRITE);
+ if (ret)
+ return ret;
+
+ if (image_out)
+ *image_out = (cairo_image_surface_t *)surface->buffer_image;
+
+ if (image_rect_out) {
+ image_rect_out->x = 0;
+ image_rect_out->y = 0;
+ image_rect_out->width = surface->width;
+ image_rect_out->height = surface->height;
+ }
+
+ if (image_extra)
+ *image_extra = interest_rect;
+
+ return CAIRO_STATUS_SUCCESS;
}
static void
-_cairo_directfb_surface_release_dest_image (void *abstract_surface,
- cairo_rectangle_int16_t *interest_rect,
- cairo_image_surface_t *image,
- cairo_rectangle_int16_t *image_rect,
- void *image_extra)
+_cairo_directfb_surface_release_dest_image (void *abstract_surface,
+ cairo_rectangle_int16_t *interest_rect,
+ cairo_image_surface_t *image,
+ cairo_rectangle_int16_t *image_rect,
+ void *image_extra)
{
- cairo_directfb_surface_t *surface = abstract_surface;
- IDirectFBSurface *buffer=surface->buffer;
- buffer->Unlock(buffer);
+ cairo_directfb_surface_t *surface = abstract_surface;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p ).\n", __FUNCTION__, surface);
+
+ surface->buffer->Unlock (surface->buffer);
}
static cairo_status_t
-_cairo_directfb_surface_clone_similar (void *abstract_surface,
- cairo_surface_t *src,
- cairo_surface_t **clone_out)
+_cairo_directfb_surface_clone_similar (void *abstract_surface,
+ cairo_surface_t *src,
+ cairo_surface_t **clone_out)
{
- cairo_directfb_surface_t *surface = abstract_surface;
- cairo_directfb_surface_t *clone;
-
- if (src->backend == surface->base.backend) {
- *clone_out = src;
- cairo_surface_reference (src);
- return CAIRO_STATUS_SUCCESS;
- } else if (_cairo_surface_is_image (src)) {
- cairo_image_surface_t *image_src = (cairo_image_surface_t *) src;
- clone = (cairo_directfb_surface_t *)
- _cairo_directfb_surface_create_similar (surface, image_src->format,
- image_src->width,
- image_src->height);
- if (!clone)
- return CAIRO_STATUS_NO_MEMORY;
- IDirectFBSurface *tmpbuffer;
- int format = cairo_to_directfb_format(image_src->format);
- tmpbuffer =cairo_directfb_buffer_surface_create(surface->dfb,
- (void *)image_src->data,image_src->stride,format,
- image_src->width,image_src->height);
-
- if (!tmpbuffer){
- cairo_surface_destroy((cairo_surface_t *)surface);
- return CAIRO_STATUS_NO_MEMORY;
- }
- clone->buffer->Blit(clone->buffer,tmpbuffer,NULL,0,0);
- tmpbuffer->Release(tmpbuffer);
- *clone_out = &clone->base;
- return CAIRO_STATUS_SUCCESS;
- }
- return CAIRO_INT_STATUS_UNSUPPORTED;
+ cairo_directfb_surface_t *surface = abstract_surface;
+ cairo_directfb_surface_t *clone;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p, src=%p ).\n", __FUNCTION__, surface, src);
+
+ if (src->backend == surface->base.backend) {
+ cairo_surface_reference (src);
+ *clone_out = src;
+
+ return CAIRO_STATUS_SUCCESS;
+ }
+ else if (_cairo_surface_is_image (src)) {
+ cairo_image_surface_t *image_src = (cairo_image_surface_t *) src;
+ unsigned char *dst, *src = image_src->data;
+ int pitch;
+ int i, j;
+ DFBResult ret;
+
+ clone = (cairo_directfb_surface_t *)
+ _cairo_directfb_surface_create_similar (surface,
+ _cairo_content_from_format (image_src->format),
+ image_src->width, image_src->height);
+ if (!clone)
+ return CAIRO_STATUS_NO_MEMORY;
+
+ ret = clone->buffer->Lock (clone->buffer,
+ DSLF_WRITE, (void *)&dst, &pitch);
+ if (ret) {
+ DirectFBError ("IDirectFBSurface::Lock()", ret);
+ cairo_surface_destroy ((cairo_surface_t *)clone);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ if (image_src->format == CAIRO_FORMAT_A1) {
+ /* A1 -> A8 */
+ for (i = 0; i < image_src->height; i++) {
+ for (j = 0; j < image_src->width; j++)
+ dst[j] = (src[j>>3] & (1 << (j&7))) ? 0xff : 0x00;
+ dst += pitch;
+ src += image_src->stride;
+ }
+ }
+ else {
+ for (i = 0; i < image_src->height; i++) {
+ direct_memcpy( dst, src, image_src->stride );
+ dst += pitch;
+ src += image_src->stride;
+ }
+ }
+
+ clone->buffer->Unlock (clone->buffer);
+
+ *clone_out = &clone->base;
+
+ return CAIRO_STATUS_SUCCESS;
+ }
+
+ return CAIRO_INT_STATUS_UNSUPPORTED;
}
-#if DFB_COMPOSITE
+#if DFB_COMPOSITE || DFB_COMPOSITE_TRAPEZOIDS
static cairo_int_status_t
-_cairo_directfb_surface_composite (cairo_operator_t op,
- cairo_pattern_t *src_pattern,
- cairo_pattern_t *mask_pattern,
- void *abstract_dst,
- int src_x,
- int src_y,
- int mask_x,
- int mask_y,
- int dst_x,
- int dst_y,
- unsigned int width,
- unsigned int height)
+_directfb_prepare_composite (cairo_directfb_surface_t *dst,
+ cairo_pattern_t *src_pattern,
+ cairo_pattern_t *mask_pattern,
+ cairo_operator_t op,
+ int *src_x, int *src_y,
+ int *mask_x, int *mask_y,
+ unsigned int width,
+ unsigned int height,
+ cairo_directfb_surface_t **ret_src,
+ cairo_surface_attributes_t *ret_src_attr)
{
- cairo_directfb_surface_t *dst = abstract_dst;
- cairo_directfb_surface_t *src;
- cairo_surface_pattern_t *src_surface_pattern;
- int alpha;
- int integer_transform;
- int itx, ity;
+ cairo_directfb_surface_t *src;
+ cairo_surface_attributes_t src_attr;
+ cairo_status_t ret;
+ DFBSurfaceBlittingFlags flags;
+ DFBSurfaceBlendFunction sblend;
+ DFBSurfaceBlendFunction dblend;
+ DFBColor color;
+
+ if (_directfb_get_operator (op, NULL, &flags, &sblend, &dblend))
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
+ if (mask_pattern) {
+ cairo_solid_pattern_t *pattern;
+
+ if (mask_pattern->type != CAIRO_PATTERN_TYPE_SOLID) {
+ cairo_pattern_t *tmp;
+ int tmp_x, tmp_y;
+
+ if (src_pattern->type != CAIRO_PATTERN_TYPE_SOLID ||
+ sblend == DSBF_INVDESTALPHA) /* Doesn't work correctly */
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
+ D_DEBUG_AT (Cairo_DirectFB, "Replacing src pattern by mask pattern.\n");
+
+ tmp = src_pattern;
+ tmp_x = *src_x; tmp_y = *src_y;
+
+ src_pattern = mask_pattern;
+ *src_x = *mask_x; *src_y = *mask_y;
+
+ mask_pattern = tmp;
+ *mask_x = tmp_x; *mask_y = tmp_y;
+
+ if (sblend == DSBF_ONE) {
+ flags |= DSBLIT_BLEND_ALPHACHANNEL;
+ sblend = DSBF_SRCALPHA;
+ //dblend = DSBF_INVSRCALPHA;
+ }
+ }
+
+ pattern = (cairo_solid_pattern_t *)mask_pattern;
+ color.a = pattern->color.alpha_short >> 8;
+ color.r = pattern->color.red_short >> 8;
+ color.g = pattern->color.green_short >> 8;
+ color.b = pattern->color.blue_short >> 8;
+ }
+ else {
+ color.a = color.r = color.g = color.b = 0xff;
+ }
+
+ ret = _directfb_acquire_surface (dst, 0);
+ if (ret)
+ return ret;
+
+ if (src_pattern->type == CAIRO_PATTERN_TYPE_SOLID) {
+ cairo_solid_pattern_t *pattern = (cairo_solid_pattern_t *)src_pattern;
+
+ if (!dst->color) {
+ dst->color = _cairo_directfb_surface_create_similar (dst,
+ CAIRO_CONTENT_COLOR_ALPHA, 1, 1);
+ if (!dst->color)
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ src = (cairo_directfb_surface_t *)dst->color;
+ src->buffer->SetColor (src->buffer,
+ pattern->color.red_short >> 8,
+ pattern->color.green_short >> 8,
+ pattern->color.blue_short >> 8,
+ pattern->color.alpha_short >> 8);
+ src->buffer->FillRectangle (src->buffer, 0, 0, 1, 1);
+
+ cairo_matrix_init_identity (&src_attr.matrix);
+ src_attr.matrix = src_pattern->matrix;
+ src_attr.extend = CAIRO_EXTEND_NONE;
+ src_attr.filter = CAIRO_FILTER_NEAREST;
+ src_attr.x_offset =
+ src_attr.y_offset = 0;
+ }
+ else {
+ ret = _cairo_pattern_acquire_surface (src_pattern, &dst->base,
+ *src_x, *src_y, width, height,
+ (cairo_surface_t **)&src, &src_attr);
+ if (ret)
+ return ret;
+
+ ret = _directfb_acquire_surface (src, 0);
+ if (ret) {
+ _cairo_pattern_release_surface (src_pattern, &src->base, &src_attr);
+ return ret;
+ }
+ }
+
+ if (color.a != 0xff)
+ flags |= DSBLIT_BLEND_COLORALPHA;
+ if (color.r != 0xff || color.g != 0xff || color.b != 0xff)
+ flags |= DSBLIT_COLORIZE;
+
+ dst->buffer->SetBlittingFlags (dst->buffer, flags);
+
+ if (flags & (DSBLIT_BLEND_COLORALPHA | DSBLIT_BLEND_ALPHACHANNEL)) {
+ dst->buffer->SetSrcBlendFunction (dst->buffer, sblend);
+ dst->buffer->SetDstBlendFunction (dst->buffer, dblend);
+ }
+
+ if (flags & (DSBLIT_BLEND_COLORALPHA | DSBLIT_COLORIZE))
+ dst->buffer->SetColor (dst->buffer, color.r, color.g, color.b, color.a);
+
+ *ret_src = src;
+ *ret_src_attr = src_attr;
+
+ return CAIRO_STATUS_SUCCESS;
+}
- cairo_directfb_surface_t *surface = abstract_dst;
- if( _dfb_set_operator(op,surface->buffer) == DFB_UNSUPPORTED )
- return CAIRO_INT_STATUS_UNSUPPORTED;
+static void
+_directfb_finish_composite (cairo_directfb_surface_t *dst,
+ cairo_pattern_t *src_pattern,
+ cairo_surface_t *src,
+ cairo_surface_attributes_t *src_attr)
+{
+ if (src != dst->color)
+ _cairo_pattern_release_surface (src_pattern, src, src_attr);
+}
+#endif /* DFB_COMPOSITE || DFB_COMPOSITE_TRAPEZOIDS */
- if (src_pattern->type == CAIRO_PATTERN_TYPE_SOLID ) {
+#if DFB_COMPOSITE
+static cairo_int_status_t
+_cairo_directfb_surface_composite (cairo_operator_t op,
+ cairo_pattern_t *src_pattern,
+ cairo_pattern_t *mask_pattern,
+ void *abstract_dst,
+ int src_x, int src_y,
+ int mask_x, int mask_y,
+ int dst_x, int dst_y,
+ unsigned int width,
+ unsigned int height)
+{
+ cairo_directfb_surface_t *dst = abstract_dst;
+ cairo_directfb_surface_t *src;
+ cairo_surface_attributes_t src_attr;
+ cairo_matrix_t *m;
+ cairo_status_t ret;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( op=%d, src_pattern=%p, mask_pattern=%p, dst=%p,"
+ " src_x=%d, src_y=%d, mask_x=%d, mask_y=%d, dst_x=%d,"
+ " dst_y=%d, width=%u, height=%u ).\n",
+ __FUNCTION__, op, src_pattern, mask_pattern, dst,
+ src_x, src_y, mask_x, mask_y, dst_x, dst_y, width, height);
+
+ ret = _directfb_prepare_composite (dst, src_pattern, mask_pattern, op,
+ &src_x, &src_y, &mask_x, &mask_y,
+ width, height, &src, &src_attr);
+ if (ret)
+ return ret;
+
+ ret = CAIRO_INT_STATUS_UNSUPPORTED;
+
+ m = &src_attr.matrix;
+ if (_cairo_matrix_is_integer_translation (m, NULL, NULL)) {
+ DFBRectangle sr;
+
+ sr.x = src_x + src_attr.x_offset;
+ sr.y = src_y + src_attr.y_offset;
+ sr.w = src->width - sr.x;
+ sr.h = src->height - sr.y;
+
+ if (src_attr.extend == CAIRO_EXTEND_NONE) {
+ D_DEBUG_AT (Cairo_DirectFB, "Running Blit().\n");
+
+ RUN_CLIPPED( dst, NULL,
+ dst->buffer->Blit (dst->buffer,
+ src->buffer, &sr, dst_x, dst_y));
+ ret = CAIRO_STATUS_SUCCESS;
+ }
+ else if (src_attr.extend == CAIRO_EXTEND_REPEAT) {
+ DFBRegion clip;
+
+ clip.x1 = dst_x;
+ clip.y1 = dst_y;
+ clip.x2 = dst_x + width - 1;
+ clip.y2 = dst_y + height - 1;
+
+ D_DEBUG_AT (Cairo_DirectFB, "Running TileBlit().\n");
+
+ RUN_CLIPPED( dst, &clip,
+ dst->buffer->TileBlit (dst->buffer,
+ src->buffer, &sr, dst_x, dst_y));
+ ret = CAIRO_STATUS_SUCCESS;
+ }
+ }
+ else if (src_attr.extend == CAIRO_EXTEND_NONE &&
+ cairo_matrix_invert (m) == CAIRO_STATUS_SUCCESS)
+ {
+ DFBAccelerationMask accel;
+
+ /* Yet I don't fully understand what these src_x/src_y mean.
+ * It seems they are X11 specific, so I ignore them for now.
+ */
+ src_x = src_y = 0;
+
+ dst->buffer->GetAccelerationMask (dst->buffer, src->buffer, &accel);
+
+ if (m->xy != 0.0 || m->yx != 0.0) {
+ if (accel & DFXL_TEXTRIANGLES) {
+ DFBVertex v[4];
+ float w, h;
+ float x1, y1, x2, y2;
+ int i;
+
+ w = MAX (src->width, 8);
+ h = MAX (src->height, 8);
+
+ x1 = src_x + src_attr.x_offset;
+ y1 = src_y + src_attr.y_offset;
+ x2 = src->width - x1;
+ y2 = src->height - y1;
+
+ v[0].x = x1;
+ v[0].y = y1;
+ v[0].s = x1/w;
+ v[0].t = y1/h;
+
+ v[1].x = x2;
+ v[1].y = y1;
+ v[1].s = x2/w;
+ v[1].t = y1/h;
+
+ v[2].x = x2;
+ v[2].y = y2;
+ v[2].s = x2/w;
+ v[2].t = y2/h;
+
+ v[3].x = x1;
+ v[3].y = y2;
+ v[3].s = x1/w;
+ v[3].t = y2/h;
+
+ for (i = 0; i < 4; i++) {
+ TRANSFORM_POINT (m, v[i].x, v[i].y, v[i].x, v[i].y);
+ v[i].z = 0;
+ v[i].w = 1;
+ }
+
+ D_DEBUG_AT (Cairo_DirectFB, "Running TextureTriangles().\n");
+
+ RUN_CLIPPED (dst, NULL,
+ dst->buffer->TextureTriangles (dst->buffer,
+ src->buffer, v, NULL, 4, DTTF_FAN));
+ ret = CAIRO_STATUS_SUCCESS;
+ }
+ }
+ else {
+ if (accel & DFXL_STRETCHBLIT ||
+ src_attr.filter == CAIRO_FILTER_NEAREST)
+ {
+ DFBRectangle sr, dr;
+ double x1, y1, x2, y2;
+
+ sr.x = src_x + src_attr.x_offset;
+ sr.y = src_y + src_attr.y_offset;
+ sr.w = src->width - sr.x;
+ sr.h = src->height - sr.y;
+
+ TRANSFORM_POINT (m, sr.x, sr.y, x1, y1);
+ TRANSFORM_POINT (m, sr.x+sr.w, sr.y+sr.h, x2, y2);
+
+ dr.x = floor (x1+.5);
+ dr.y = floor (y1+.5);
+ dr.w = floor (x2-x1+.5);
+ dr.h = floor (y2-y1+.5);
+
+ D_DEBUG_AT (Cairo_DirectFB, "Running StretchBlit().\n");
- } else if (src_pattern->type != CAIRO_PATTERN_TYPE_SURFACE ||
- src_pattern->extend != CAIRO_EXTEND_NONE) {
- return CAIRO_INT_STATUS_UNSUPPORTED;
- }
+ RUN_CLIPPED (dst, NULL,
+ dst->buffer->StretchBlit (dst->buffer,
+ src->buffer, &sr, &dr));
+ ret = CAIRO_STATUS_SUCCESS;
+ }
+ }
+ }
+
+ _directfb_finish_composite (dst, src_pattern, &src->base, &src_attr);
+
+ return ret;
+}
+#endif /* DFB_COMPOSITE */
- if (mask_pattern) {
- /* FIXME: When we fully support RENDER style 4-channel
- * masks we need to check r/g/b != 1.0.
- */
- if (mask_pattern->type != CAIRO_PATTERN_TYPE_SOLID)
- return CAIRO_INT_STATUS_UNSUPPORTED;
-
- alpha = ((cairo_solid_pattern_t *)mask_pattern)->color.alpha_short >> 8;
- } else {
- alpha = 255;
- }
-
- src_surface_pattern = (cairo_surface_pattern_t *)src_pattern;
- src = (cairo_directfb_surface_t *)src_surface_pattern->surface;
-
- if (src->base.backend != dst->base.backend){
- return CAIRO_INT_STATUS_UNSUPPORTED;
- }
-
- integer_transform = _cairo_matrix_is_integer_translation (&src_pattern->matrix, &itx, &ity);
- if (!integer_transform) {
- return CAIRO_INT_STATUS_UNSUPPORTED;
- }
- surface->buffer->SetPorterDuff(surface->buffer,DSPD_NONE);
- return CAIRO_INT_STATUS_UNSUPPORTED;
+static cairo_int_status_t
+_cairo_directfb_surface_fill_rectangles (void *abstract_surface,
+ cairo_operator_t op,
+ const cairo_color_t *color,
+ cairo_rectangle_int16_t *rects,
+ int n_rects)
+{
+ cairo_directfb_surface_t *dst = abstract_surface;
+ cairo_status_t ret;
+ DFBSurfaceDrawingFlags flags;
+ DFBSurfaceBlendFunction sblend;
+ DFBSurfaceBlendFunction dblend;
+ DFBRectangle r[n_rects];
+ int i;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( dst=%p, op=%d, color=%p, rects=%p, n_rects=%d ).\n",
+ __FUNCTION__, dst, op, color, rects, n_rects);
+
+ if (_directfb_get_operator (op, &flags, NULL, &sblend, &dblend))
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
+ ret = _directfb_acquire_surface (dst, 0);
+ if (ret)
+ return ret;
+
+ dst->buffer->SetDrawingFlags (dst->buffer, flags);
+ if (flags & DSDRAW_BLEND) {
+ dst->buffer->SetSrcBlendFunction (dst->buffer, sblend);
+ dst->buffer->SetDstBlendFunction (dst->buffer, dblend);
+ }
+
+ dst->buffer->SetColor (dst->buffer, color->red_short >> 8,
+ color->green_short >> 8,
+ color->blue_short >> 8,
+ color->alpha_short >> 8 );
+
+ for (i = 0; i < n_rects; i++) {
+ r[i].x = rects[i].x;
+ r[i].y = rects[i].y;
+ r[i].w = rects[i].width;
+ r[i].h = rects[i].height;
+ }
+
+ RUN_CLIPPED (dst, NULL,
+ dst->buffer->FillRectangles (dst->buffer, r, n_rects));
+
+ return CAIRO_STATUS_SUCCESS;
}
-#endif
+#if DFB_COMPOSITE_TRAPEZOIDS
static cairo_int_status_t
-_cairo_directfb_surface_fill_rectangles (void *abstract_surface,
- cairo_operator_t op,
- const cairo_color_t *color,
- cairo_rectangle_int16_t *rects,
- int n_rects)
+_cairo_directfb_surface_composite_trapezoids (cairo_operator_t op,
+ cairo_pattern_t *pattern,
+ void *abstract_dst,
+ cairo_antialias_t antialias,
+ int src_x, int src_y,
+ int dst_x, int dst_y,
+ unsigned int width,
+ unsigned int height,
+ cairo_trapezoid_t *traps,
+ int num_traps )
{
- int i,k;
- cairo_directfb_surface_t *surface = abstract_surface;
- IDirectFBSurface *buffer = surface->buffer;
-
- if( _dfb_set_operator(op,buffer) == DFB_UNSUPPORTED ) {
- return CAIRO_INT_STATUS_UNSUPPORTED;
- }
-
- buffer->SetColor(buffer,color->red_short >> 8,
- color->green_short >> 8,
- color->blue_short >> 8,
- color->alpha_short >> 8 );
- /*Not optimized not sure of the sorting on region*/
- if( surface->clip ) {
- DFBRegion region;
- int n_boxes = pixman_region_num_rects (surface->clip);
- pixman_box16_t *boxes = pixman_region_rects (surface->clip);
- for( k = 0; k < n_boxes; k++ ) {
- region.x1 = boxes[k].x1;
- region.y1 = boxes[k].y1;
- region.x2 = boxes[k].x2;
- region.y2 = boxes[k].y2;
- buffer->SetClip (buffer,&region);
- for (i = 0; i < n_rects; i++) {
- buffer->FillRectangle(buffer,rects[i].x,rects[i].y,
- rects[i].width,rects[i].height);
- }
- }
- buffer->SetClip (buffer, NULL);
- }else {
- buffer->SetClip (buffer, NULL);
- for (i = 0; i < n_rects; i++) {
- buffer->FillRectangle(buffer,rects[i].x,rects[i].y,
- rects[i].width,rects[i].height);
- }
- }
- return CAIRO_STATUS_SUCCESS;
+ cairo_directfb_surface_t *dst = abstract_dst;
+ cairo_directfb_surface_t *src;
+ cairo_surface_attributes_t src_attr;
+ cairo_status_t ret;
+ DFBAccelerationMask accel;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( op=%d, pattern=%p, dst=%p, antialias=%d,"
+ " src_x=%d, src_y=%d, dst_x=%d, dst_y=%d,"
+ " width=%u, height=%u, traps=%p, num_traps=%d ).\n",
+ __FUNCTION__, op, pattern, dst, antialias,
+ src_x, src_y, dst_x, dst_y, width, height, traps, num_traps);
+
+ if (antialias != CAIRO_ANTIALIAS_NONE)
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
+ /* Textures are not supported yet. */
+ if (pattern->type != CAIRO_PATTERN_TYPE_SOLID)
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
+ ret = _directfb_prepare_composite (dst, pattern, NULL, op,
+ &src_x, &src_y, NULL, NULL,
+ width, height, &src, &src_attr);
+ if (ret)
+ return ret;
+
+ dst->buffer->GetAccelerationMask (dst->buffer, src->buffer, &accel);
+
+ ret = CAIRO_INT_STATUS_UNSUPPORTED;
+
+ if (accel & DFXL_TEXTRIANGLES) {
+ DFBVertex vertex[6*num_traps];
+ DFBVertex *v = &vertex[0];
+ int n;
+
+#define ADD_TRI(id, x1, y1, s1, t1, x2, y2, s2, t2, x3, y3, s3, t3) {\
+ const int p = (id)*3;\
+ v[p+0].x=(x1); v[p+0].y=(y1); v[p+0].z=0; v[p+0].w=1; v[p+0].s=(s1); v[p+0].t=(t1);\
+ v[p+1].x=(x2); v[p+1].y=(y2); v[p+1].z=0; v[p+1].w=1; v[p+1].s=(s2); v[p+1].t=(t2);\
+ v[p+2].x=(x3); v[p+2].y=(y3); v[p+2].z=0; v[p+2].w=1; v[p+2].s=(s3); v[p+2].t=(t3);\
+}
+
+ for (n = 0; num_traps; num_traps--) {
+ float lx1, ly1, lx2, ly2;
+ float rx1, ry1, rx2, ry2;
+
+ /* XXX: Do we need to validate the trapezoid? */
+
+ lx1 = traps->left.p1.x/65536.0;
+ ly1 = traps->left.p1.y/65536.0;
+ lx2 = traps->left.p2.x/65536.0;
+ ly2 = traps->left.p2.y/65536.0;
+ rx1 = traps->right.p1.x/65536.0;
+ ry1 = traps->right.p1.y/65536.0;
+ rx2 = traps->right.p2.x/65536.0;
+ ry2 = traps->right.p2.y/65536.0;
+
+ if (traps->left.p1.y < traps->top) {
+ float y = traps->top/65536.0;
+ if (lx2 != lx1)
+ lx1 = (y - ly1) * (lx2 - lx1) / (ly2 - ly1) + lx1;
+ ly1 = y;
+ }
+ if (traps->left.p2.y > traps->bottom) {
+ float y = traps->bottom/65536.0;
+ if (lx2 != lx1)
+ lx2 = (y - ly1) * (lx2 - lx1) / (ly2 - ly1) + lx1;
+ ly2 = y;
+ }
+
+ if (traps->right.p1.y < traps->top) {
+ float y = traps->top/65536.0;
+ if (rx2 != rx1)
+ rx1 = (y - ry1) * (rx2 - rx1) / (ry2 - ry1) + rx1;
+ ry1 = y;
+ }
+ if (traps->right.p2.y > traps->bottom) {
+ float y = traps->bottom/65536.0;
+ if (rx2 != rx1)
+ rx2 = (y - ry1) * (rx2 - rx1) / (ry2 - ry1) + rx1;
+ ry2 = y;
+ }
+
+ if (lx1 == rx1 && ly1 == ry1) {
+ ADD_TRI (0, lx2, ly2, 0, 0,
+ lx1, ly1, 0, 0,
+ rx2, ry2, 0, 0 );
+ v += 3;
+ n += 3;
+ }
+ else if (lx2 == rx2 && ly2 == ry2) {
+ ADD_TRI (0, lx1, ly1, 0, 0,
+ lx2, ly2, 0, 0,
+ rx1, ry1, 0, 0 );
+ v += 3;
+ n += 3;
+ }
+ else {
+ ADD_TRI (0, lx1, ly1, 0, 0,
+ rx1, ry1, 0, 0,
+ lx2, ly2, 0, 0);
+ ADD_TRI (1, lx2, ly2, 0, 0,
+ rx1, ry1, 0, 0,
+ rx2, ry2, 0, 0);
+ v += 6;
+ n += 6;
+ }
+
+ traps++;
+ }
+
+#undef ADD_TRI
+
+ D_DEBUG_AT (Cairo_DirectFB, "Running TextureTriangles().\n");
+
+ RUN_CLIPPED (dst, NULL,
+ dst->buffer->TextureTriangles (dst->buffer, src->buffer,
+ vertex, NULL, n, DTTF_LIST));
+
+ ret = CAIRO_STATUS_SUCCESS;
+ }
+
+ _directfb_finish_composite (dst, pattern, &src->base, &src_attr);
+
+ return ret;
}
+#endif /* DFB_COMPOSITE_TRAPEZOIDS */
static cairo_int_status_t
-_cairo_directfb_surface_set_clip_region (void *abstract_surface,
- pixman_region16_t *region)
+_cairo_directfb_surface_set_clip_region (void *abstract_surface,
+ pixman_region16_t *region)
{
- cairo_directfb_surface_t *surface = abstract_surface;
- if( region == NULL ) {
- pixman_region_destroy (surface->clip);
- surface->clip = NULL;
- }else {
- if (!surface->clip) {
- surface->clip = pixman_region_create ();
- if (!surface->clip)
- return CAIRO_STATUS_NO_MEMORY;
- }
- pixman_region_copy (surface->clip, region);
- }
-#if 0
- if( surface->buffer_image )
- _cairo_image_surface_set_clip_region (
- (cairo_image_surface_t *)surface->buffer_image,region);
-#endif
+ cairo_directfb_surface_t *surface = abstract_surface;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p, region=%p ).\n",
+ __FUNCTION__, surface, region);
+
+ if (region) {
+ pixman_box16_t *boxes = pixman_region_rects (region);
+ int n_boxes = pixman_region_num_rects (region);
+ int i;
+
+ if (surface->n_clips != n_boxes) {
+ free (surface->clips);
+
+ surface->clips = malloc (n_boxes * sizeof(DFBRegion));
+ if (!surface->clips) {
+ surface->n_clips = 0;
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ surface->n_clips = n_boxes;
+ }
+
+ for (i = 0; i < n_boxes; i++) {
+ surface->clips[i].x1 = boxes[i].x1;
+ surface->clips[i].y1 = boxes[i].y1;
+ surface->clips[i].x2 = boxes[i].x2;
+ surface->clips[i].y2 = boxes[i].y2;
+ }
+ }
+ else {
+ if (surface->clips) {
+ free (surface->clips);
+ surface->clips = NULL;
+ surface->n_clips = 0;
+ }
+ }
- return CAIRO_STATUS_SUCCESS;
+ return CAIRO_STATUS_SUCCESS;
}
static cairo_int_status_t
-_cairo_directfb_abstract_surface_get_extents (void *abstract_surface,
- cairo_rectangle_int16_t *rectangle)
+_cairo_directfb_abstract_surface_get_extents (void *abstract_surface,
+ cairo_rectangle_int16_t *rectangle)
{
- if( rectangle ) {
- cairo_directfb_surface_t *surface = abstract_surface;
- rectangle->x = 0;
- rectangle->y = 0;
- rectangle->width = surface->width;
- rectangle->height = surface->height;
- }
- return CAIRO_STATUS_SUCCESS;
+ cairo_directfb_surface_t *surface = abstract_surface;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p, rectangle=%p ).\n",
+ __FUNCTION__, surface, rectangle);
+
+ if (rectangle) {
+ rectangle->x = 0;
+ rectangle->y = 0;
+ rectangle->width = surface->width;
+ rectangle->height = surface->height;
+ }
+
+ return CAIRO_STATUS_SUCCESS;
}
+
static cairo_status_t
-_cairo_directfb_surface_mark_dirty_rectangle (void * abstract_surface,
- int x,
- int y,
- int width,
- int height)
+_cairo_directfb_surface_mark_dirty_rectangle (void *abstract_surface,
+ int x,
+ int y,
+ int width,
+ int height)
{
- cairo_directfb_surface_t *surface = abstract_surface;
- if( surface->main_surface != surface->buffer) {
- DFBRegion region;
- region.x1=x;
- region.y1=y;
- region.x2=x+width;
- region.y2=y+height;
- surface->buffer->SetClip (surface->buffer,&region);
- surface->buffer->Blit(surface->buffer,surface->main_surface,NULL,0,0);
- surface->buffer->SetClip (surface->buffer,NULL);
- }
- return CAIRO_STATUS_SUCCESS;
+ cairo_directfb_surface_t *surface = abstract_surface;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p, x=%d, y=%d, width=%d, height=%d ).\n",
+ __FUNCTION__, surface, x, y, width, height);
+
+ if (surface->surface != surface->buffer) {
+ DFBRegion region = { x1:x, y1:y, x2:x+width-1, y2:y+height-1 };
+ surface->buffer->SetClip (surface->buffer, &region);
+ surface->buffer->SetBlittingFlags (surface->buffer, DSBLIT_NOFX);
+ surface->buffer->Blit (surface->buffer, surface->surface, NULL, 0, 0);
+ }
+
+ return CAIRO_STATUS_SUCCESS;
}
-static cairo_status_t
-_cairo_directfb_surface_flush (void *abstract_surface)
+
+static cairo_status_t
+_cairo_directfb_surface_flush (void *abstract_surface)
{
- cairo_directfb_surface_t *surface = abstract_surface;
- if( surface->main_surface != surface->buffer)
- surface->main_surface->Blit(surface->main_surface,surface->buffer,NULL,0,0);
- return CAIRO_STATUS_SUCCESS;
+ cairo_directfb_surface_t *surface = abstract_surface;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( surface=%p ).\n", __FUNCTION__, surface);
+
+ if (surface->surface != surface->buffer) {
+ surface->surface->SetClip (surface->surface, NULL);
+ surface->surface->SetBlittingFlags (surface->surface, DSBLIT_NOFX);
+ surface->surface->Blit (surface->surface, surface->buffer, NULL, 0, 0);
+ }
+
+ return CAIRO_STATUS_SUCCESS;
}
#if DFB_SHOW_GLYPHS
+static cairo_directfb_font_cache_t*
+_directfb_allocate_font_cache (IDirectFB *dfb, int width, int height)
+{
+ cairo_directfb_font_cache_t *cache;
+
+ cache = calloc (1, sizeof(cairo_directfb_font_cache_t));
+ if (!cache)
+ return NULL;
+
+ cache->buffer = _directfb_buffer_surface_create( dfb, DSPF_A8, width, height);
+ if (!cache->buffer) {
+ free (cache);
+ return NULL;
+ }
+
+ dfb->AddRef (dfb);
+ cache->dfb = dfb;
+
+ cache->width = width;
+ cache->height = height;
+
+ return cache;
+}
+
static void
-_cairo_directfb_surface_scaled_font_fini (cairo_scaled_font_t *scaled_font)
+_directfb_destroy_font_cache (cairo_directfb_font_cache_t *cache)
{
- cairo_directfb_surface_font_private_t *font_private;
+ cache->buffer->Release (cache->buffer);
+ cache->dfb->Release (cache->dfb);
+ free (cache);
+}
- font_private = scaled_font->surface_private;
- if (font_private)
- {
- xxx_destroy (font_private);
+static cairo_status_t
+_directfb_acquire_font_cache (cairo_directfb_surface_t *surface,
+ cairo_scaled_font_t *scaled_font,
+ const cairo_glyph_t *glyphs,
+ int num_glyphs,
+ cairo_directfb_font_cache_t **ret_cache,
+ DFBRectangle *rects,
+ DFBPoint *points,
+ int *ret_num )
+{
+ cairo_status_t ret;
+ cairo_scaled_glyph_t *chars[num_glyphs];
+ int num_chars = 0;
+ cairo_directfb_font_cache_t *cache = NULL;
+ int n = 0;
+ int x = 0;
+ int y = 0;
+ int w = 8;
+ int h = 8;
+ int i;
+
+ if (scaled_font->surface_private) {
+ cache = scaled_font->surface_private;
+ x = cache->x;
+ y = cache->y;
+ }
+
+ for (i = 0; i < num_glyphs; i++) {
+ cairo_scaled_glyph_t *scaled_glyph;
+ cairo_image_surface_t *img;
+
+ ret = _cairo_scaled_glyph_lookup (scaled_font, glyphs[i].index,
+ CAIRO_SCALED_GLYPH_INFO_SURFACE,
+ &scaled_glyph);
+ if (ret)
+ return ret;
+
+ img = scaled_glyph->surface;
+ switch (img->format) {
+ case CAIRO_FORMAT_A1:
+ case CAIRO_FORMAT_A8:
+ break;
+ default:
+ D_DEBUG_AT (Cairo_DirectFB,
+ "Unsupported font format %d!\n", img->format);
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+ }
+
+ points[n].x = floor (glyphs[i].x + img->base.device_transform.x0 + .5);
+ points[n].y = floor (glyphs[i].y + img->base.device_transform.y0 + .5);
+
+ if (points[n].x >= surface->width ||
+ points[n].y >= surface->height ||
+ points[n].x+img->width <= 0 ||
+ points[n].y+img->height <= 0)
+ continue;
+
+ if (!scaled_glyph->surface_private) {
+ DFBRectangle *rect;
+
+ if (x+img->width > 2048) {
+ x = 0;
+ y = h;
+ h = 8;
+ }
+
+ rects[n].x = x;
+ rects[n].y = y;
+ rects[n].w = img->width;
+ rects[n].h = img->height;
+
+ x += img->width;
+ h = MAX (h, img->height);
+ w = MAX (w, x);
+
+ /* Remember glyph location */
+ rect = malloc (sizeof(DFBRectangle));
+ if (!rect)
+ return CAIRO_STATUS_NO_MEMORY;
+ *rect = rects[n];
+
+ scaled_glyph->surface_private = rect;
+ chars[num_chars++] = scaled_glyph;
+
+ /*D_DEBUG_AT (Cairo_DirectFB,
+ "Glyph %lu will be loaded at (%d,%d).\n",
+ glyphs[i].index, rects[n].x, rects[n].y);*/
+ }
+ else {
+ rects[n] = *((DFBRectangle *)scaled_glyph->surface_private);
+
+ /*D_DEBUG_AT (Cairo_DirectFB,
+ "Glyph %lu already loaded at (%d,%d).\n",
+ glyphs[i].index, rects[n].x, rects[n].y);*/
+ }
+
+ n++;
+ }
+
+ if (!n)
+ return CAIRO_INT_STATUS_NOTHING_TO_DO;
+
+ h += y;
+
+ if (cache) {
+ if (cache->width < w || cache->height < h) {
+ cairo_directfb_font_cache_t *new_cache;
+
+ w = MAX (w, cache->width);
+ h = MAX (h, cache->height);
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "Reallocating font cache (%dx%d).\n", w, h);
+
+ new_cache = _directfb_allocate_font_cache (surface->dfb, w, h);
+ if (!new_cache)
+ return CAIRO_STATUS_NO_MEMORY;
+
+ new_cache->buffer->Blit (new_cache->buffer,
+ cache->buffer, NULL, 0, 0);
+
+ _directfb_destroy_font_cache (cache);
+ scaled_font->surface_private = cache = new_cache;
+ }
+ }
+ else {
+ D_DEBUG_AT (Cairo_DirectFB,
+ "Allocating font cache (%dx%d).\n", w, h);
+
+ cache = _directfb_allocate_font_cache (surface->dfb, w, h);
+ if (!cache)
+ return CAIRO_STATUS_NO_MEMORY;
+
+ scaled_font->surface_backend = &cairo_directfb_surface_backend;
+ scaled_font->surface_private = cache;
+ }
+
+ if (num_chars) {
+ unsigned char *data;
+ int pitch;
+
+ if (cache->buffer->Lock (cache->buffer,
+ DSLF_WRITE, (void *)&data, &pitch))
+ return CAIRO_STATUS_NO_MEMORY;
+
+ for (i = 0; i < num_chars; i++) {
+ cairo_image_surface_t *img = chars[i]->surface;
+ DFBRectangle *rect = chars[i]->surface_private;
+ unsigned char *dst = data + rect->y*pitch + rect->x;
+ unsigned char *src = img->data;
+
+ if (img->format == CAIRO_FORMAT_A1) {
+ int j;
+ for (h = rect->h; h; h--) {
+ for (j = 0; j < rect->w; j++)
+ dst[j] = (src[j>>3] & (1 << (j&7))) ? 0xff : 0x00;
+ dst += pitch;
+ src += img->stride;
+ }
+ }
+ else {
+ for (h = rect->h; h; h--) {
+ direct_memcpy (dst, src, rect->w);
+ dst += pitch;
+ src += img->stride;
+ }
+ }
+ }
+
+ cache->buffer->Unlock (cache->buffer);
+ }
+
+ cache->x = x;
+ cache->y = y;
+
+ *ret_cache = cache;
+ *ret_num = n;
+
+ return CAIRO_STATUS_SUCCESS;
+}
+
+static void
+_cairo_directfb_surface_scaled_font_fini (cairo_scaled_font_t *scaled_font)
+{
+ cairo_directfb_font_cache_t *cache = scaled_font->surface_private;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( scaled_font=%p ).\n", __FUNCTION__, scaled_font);
+
+ if (cache) {
+ _directfb_destroy_font_cache (cache);
+ scaled_font->surface_private = NULL;
}
}
-#endif
-#if DFB_SHOW_GLYPHS
static void
_cairo_directfb_surface_scaled_glyph_fini (cairo_scaled_glyph_t *scaled_glyph,
- cairo_scaled_font_t *scaled_font)
+ cairo_scaled_font_t *scaled_font)
{
- cairo_directfb_surface_glyph_private_t *glyph_private;
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( scaled_glyph=%p, scaled_font=%p ).\n",
+ __FUNCTION__, scaled_glyph, scaled_font);
- glyph_private = scaled_glyph->surface_private;
- if (glyph_private)
- {
- xxx_release(glyph_private);
+ if (scaled_glyph->surface_private) {
+ free (scaled_glyph->surface_private);
+ scaled_glyph->surface_private = NULL;
+ }
+}
+
+
+
+static cairo_int_status_t
+_cairo_directfb_surface_show_glyphs ( void *abstract_dst,
+ cairo_operator_t op,
+ cairo_pattern_t *pattern,
+ const cairo_glyph_t *glyphs,
+ int num_glyphs,
+ cairo_scaled_font_t *scaled_font)
+{
+ cairo_directfb_surface_t *dst = abstract_dst;
+ cairo_directfb_font_cache_t *cache;
+ cairo_status_t ret;
+ DFBSurfaceBlittingFlags flags;
+ DFBSurfaceBlendFunction sblend;
+ DFBSurfaceBlendFunction dblend;
+ DFBColor color;
+ DFBRectangle rects[num_glyphs];
+ DFBPoint points[num_glyphs];
+ int num;
+
+ D_DEBUG_AT (Cairo_DirectFB,
+ "%s( dst=%p, op=%d, pattern=%p, glyphs=%p, num_glyphs=%d, scaled_font=%p ).\n",
+ __FUNCTION__, dst, op, pattern, glyphs, num_glyphs, scaled_font);
+
+ if (pattern->type != CAIRO_PATTERN_TYPE_SOLID)
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
+ if (_directfb_get_operator (op, NULL, &flags, &sblend, &dblend) ||
+ sblend == DSBF_DESTALPHA || sblend == DSBF_INVDESTALPHA)
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
+ ret = _directfb_acquire_surface (dst, 0);
+ if (ret)
+ return ret;
+
+ ret = _directfb_acquire_font_cache (dst, scaled_font, glyphs, num_glyphs,
+ &cache, &rects[0], &points[0], &num);
+ if (ret) {
+ if (ret == CAIRO_INT_STATUS_NOTHING_TO_DO)
+ ret = CAIRO_STATUS_SUCCESS;
+ return ret;
}
+
+ color.a = ((cairo_solid_pattern_t *)pattern)->color.alpha_short >> 8;
+ color.r = ((cairo_solid_pattern_t *)pattern)->color.red_short >> 8;
+ color.g = ((cairo_solid_pattern_t *)pattern)->color.green_short >> 8;
+ color.b = ((cairo_solid_pattern_t *)pattern)->color.blue_short >> 8;
+
+ flags |= DSBLIT_BLEND_ALPHACHANNEL | DSBLIT_COLORIZE;
+ if (color.a != 0xff)
+ flags |= DSBLIT_BLEND_COLORALPHA;
+
+ if (sblend == DSBF_ONE) {
+ sblend = DSBF_SRCALPHA;
+ if (dblend == DSBF_ZERO)
+ dblend = DSBF_INVSRCALPHA;
+ }
+
+ dst->buffer->SetBlittingFlags (dst->buffer, flags);
+ dst->buffer->SetSrcBlendFunction (dst->buffer, sblend);
+ dst->buffer->SetDstBlendFunction (dst->buffer, dblend);
+ dst->buffer->SetColor (dst->buffer, color.r, color.g, color.b, color.a);
+
+ D_DEBUG_AT (Cairo_DirectFB, "Running BatchBlit().\n");
+
+ RUN_CLIPPED (dst, NULL,
+ dst->buffer->BatchBlit (dst->buffer,
+ cache->buffer, rects, points, num));
+
+ return CAIRO_STATUS_SUCCESS;
}
-#endif
+#endif /* DFB_SHOW_GLYPHS */
+
-static const cairo_surface_backend_t cairo_directfb_surface_backend = {
- CAIRO_SURFACE_TYPE_DIRECTFB,
- _cairo_directfb_surface_create_similar,
- _cairo_directfb_surface_finish,
- _cairo_directfb_surface_acquire_source_image,
- _cairo_directfb_surface_release_source_image,
- _cairo_directfb_surface_acquire_dest_image,
- _cairo_directfb_surface_release_dest_image,
- _cairo_directfb_surface_clone_similar,
+static cairo_surface_backend_t cairo_directfb_surface_backend = {
+ CAIRO_SURFACE_TYPE_DIRECTFB, /*type*/
+ _cairo_directfb_surface_create_similar,/*create_similar*/
+ _cairo_directfb_surface_finish, /*finish*/
+ _cairo_directfb_surface_acquire_source_image,/*acquire_source_image*/
+ _cairo_directfb_surface_release_source_image,/*release_source_image*/
+ _cairo_directfb_surface_acquire_dest_image,/*acquire_dest_image*/
+ _cairo_directfb_surface_release_dest_image,/*release_dest_image*/
+ _cairo_directfb_surface_clone_similar,/*clone_similar*/
#if DFB_COMPOSITE
- _cairo_directfb_surface_composite,
+ _cairo_directfb_surface_composite,/*composite*/
#else
- NULL,
+ NULL,/*composite*/
#endif
- _cairo_directfb_surface_fill_rectangles,
- NULL,/*composite_trapezoids*/
- NULL, /* copy_page */
- NULL, /* show_page */
- _cairo_directfb_surface_set_clip_region,
- NULL, /* intersect_clip_path */
- _cairo_directfb_abstract_surface_get_extents,
+ _cairo_directfb_surface_fill_rectangles,/*fill_rectangles*/
+#if DFB_COMPOSITE_TRAPEZOIDS
+ _cairo_directfb_surface_composite_trapezoids,/*composite_trapezoids*/
+#else
+ NULL,/*composite_trapezoids*/
+#endif
+ NULL, /* copy_page */
+ NULL, /* show_page */
+ _cairo_directfb_surface_set_clip_region,/*set_clip_region*/
+ NULL, /* intersect_clip_path */
+ _cairo_directfb_abstract_surface_get_extents,/*get_extents*/
+ NULL, /* old_show_glyphs */
+ NULL, /* get_font_options */
+ _cairo_directfb_surface_flush,/*flush*/
+ _cairo_directfb_surface_mark_dirty_rectangle,/*mark_dirty_rectangle*/
#if DFB_SHOW_GLYPHS
- _cairo_directfb_surface_show_glyphs,
+ _cairo_directfb_surface_scaled_font_fini,/*scaled_font_fini*/
+ _cairo_directfb_surface_scaled_glyph_fini,/*scaled_glyph_fini*/
#else
- NULL,
+ NULL,
+ NULL,
#endif
- NULL, /* get_font_options */
- _cairo_directfb_surface_flush,
- _cairo_directfb_surface_mark_dirty_rectangle,
+ NULL, /* paint */
+ NULL, /* mask */
+ NULL, /* stroke */
+ NULL, /* fill */
#if DFB_SHOW_GLYPHS
- _cairo_directfb_surface_scaled_font_fini,
- _cairo_directfb_surface_scaled_glyph_fini
+ _cairo_directfb_surface_show_glyphs,/*show_glyphs*/
#else
- NULL,
- NULL
+ NULL, /* show_glyphs */
#endif
+ NULL /* snapshot */
};
-#if DFB_SHOW_GLYPHS
-static cairo_int_status_t
-_cairo_directfb_surface_show_glyphs (cairo_scaled_font_t *scaled_font,
- cairo_operator_t operator,
- cairo_pattern_t *pattern,
- void *abstract_surface,
- int source_x,
- int source_y,
- int dest_x,
- int dest_y,
- unsigned int width,
- unsigned int height,
- const cairo_glyph_t *glyphs,
- int num_glyphs)
-{
- int i;
- cairo_int_status_t status;
- cairo_directfb_surface_t *surface = abstract_surface;
- cairo_scaled_glyph_t *scaled_glyph;
- if ((scaled_font->surface_backend != NULL &&
- scaled_font->surface_backend != &cairo_directfb_surface_backend) )
- return CAIRO_INT_STATUS_UNSUPPORTED;
+static void
+cairo_directfb_surface_backend_init (IDirectFB *dfb)
+{
+ DFBGraphicsDeviceDescription dsc;
+ static int done = 0;
+
+ if (done)
+ return;
+
+ dfb->GetDeviceDescription (dfb, &dsc);
+
+#if DFB_COMPOSITE
+ if (!(dsc.acceleration_mask & DFXL_BLIT))
+ cairo_directfb_surface_backend.composite = NULL;
+#endif
- if (scaled_font->surface_backend == NULL) {
- scaled_font->surface_backend = &cairo_directfb_surface_backend;
- }
- /* Send all unsent glyphs to the server */
- for (i = 0; i < num_glyphs; i++) {
- IDirectFBSurface *tmpbuffer;
- int x;
- int y;
- cairo_image_surface_t *glyph_img;
- status = _cairo_scaled_glyph_lookup (scaled_font,
- glyphs[i].index,
- CAIRO_SCALED_GLYPH_INFO_SURFACE,
- &scaled_glyph);
- glyph_img = scaled_glyph->surface;
- if (status != CAIRO_STATUS_SUCCESS)
- return status;
- /* its a space or something*/
- if( !glyph_img->data ) {
- continue;
- }
- if (scaled_glyph->surface_private == NULL ) {
- int dfbformat = cairo_to_directfb_format(glyph_img->format);
- if( dfbformat == DSPF_UNKNOWN ) {
- printf(" BAD IMAGE FORMAT[%d] cf=%d dfbf=%d data=%p \n",i,glyph_img->format,dfbformat,glyph_img->data);
- continue;
- }
- tmpbuffer = cairo_directfb_buffer_surface_create(surface->dfb,
- (void *)glyph_img->data,glyph_img->stride,dfbformat,glyph_img->width,glyph_img->height);
- /*scaled_glyph->surface_private = tmpbuffer;*/
- }else {
- tmpbuffer = (IDirectFBSurface *)scaled_glyph->surface_private;
- }
- if( !tmpbuffer ) {
- assert(0); /*something really bad happend*/
- return CAIRO_INT_STATUS_UNSUPPORTED;
- }
- /* round glyph locations to the nearest pixel */
- /* XXX: FRAGILE: We're ignoring device_transform scaling here. A bug? */
- x = (int) floor (glyphs[i].x +
- glyph_img->base.device_transform.x0 +
- 0.5);
- y = (int) floor (glyphs[i].y +
- glyph_img->base.device_transform.y0 +
- 0.5);
- x +=dest_x;
- y +=dest_y;
-
- printf(" IMAGE FORMAT[%d] src_x=%d src_y=%d cf=%d data=%p x=%d y=%d w=%d h=%d\n",i,source_x,source_y,glyph_img->format,glyph_img->data,x,y,glyph_img->width,glyph_img->height);
-#if 0
- surface->buffer->SetColor(surface->buffer,0,0xff,0,0xff);
- surface->buffer->FillRectangle(surface->buffer,x,y,glyph_img->width,glyph_img->height);
- surface->buffer->SetColor(surface->buffer,0,0xff,0xff,0xff);
+#if DFB_COMPOSITE_TRAPEZOIDS
+ if (!(dsc.acceleration_mask & DFXL_TEXTRIANGLES))
+ cairo_directfb_surface_backend.composite_trapezoids = NULL;
#endif
- surface->buffer->Blit(surface->buffer,tmpbuffer,NULL,x,y);
+#if DFB_SHOW_GLYPHS
+ if (!(dsc.acceleration_mask & DFXL_BLIT) ||
+ !(dsc.blitting_flags & DSBLIT_COLORIZE) ||
+ !(dsc.blitting_flags & DSBLIT_BLEND_ALPHACHANNEL))
+ {
+ cairo_directfb_surface_backend.scaled_font_fini = NULL;
+ cairo_directfb_surface_backend.scaled_glyph_fini = NULL;
+ cairo_directfb_surface_backend.show_glyphs = NULL;
}
- return CAIRO_INT_STATUS_UNSUPPORTED;
-}
#endif
+ done = 1;
+}
+
+
cairo_surface_t *
-cairo_directfb_surface_create (IDirectFB *dfb,IDirectFBSurface *dfbsurface)
+cairo_directfb_surface_create (IDirectFB *dfb, IDirectFBSurface *dfbsurface)
{
- cairo_directfb_surface_t *surface = calloc(1,sizeof(cairo_directfb_surface_t));
- if( surface == NULL )
- return NULL;
- /* XXX: The content value here might be totally wrong. */
- _cairo_surface_init (&surface->base, &cairo_directfb_surface_backend,
- CAIRO_CONTENT_COLOR_ALPHA);
- /*Reference the surface */
- dfb->AddRef(dfb);
- dfbsurface->AddRef(dfbsurface);
- surface->dfb=dfb;
- surface->main_surface = dfbsurface;
- dfbsurface->GetSize(dfbsurface,&surface->width,&surface->height);
- surface->buffer = surface->main_surface;
- surface->format = DFB_UNSUPPORTED;
- surface->clip=NULL;
- return ((cairo_surface_t *)surface);
+ DFBSurfacePixelFormat format;
+ cairo_directfb_surface_t *surface;
+
+ cairo_directfb_surface_backend_init (dfb);
+
+ surface = calloc (1, sizeof(cairo_directfb_surface_t));
+ if (!surface)
+ return NULL;
+
+ dfbsurface->GetPixelFormat (dfbsurface, &format);
+ _cairo_surface_init (&surface->base, &cairo_directfb_surface_backend,
+ _directfb_format_to_content(format));
+
+ dfb->AddRef (dfb);
+ surface->dfb = dfb;
+ dfbsurface->AddRef (dfbsurface);
+ surface->surface = dfbsurface;
+
+ if (_directfb_acquire_surface (surface, 0)) {
+ cairo_surface_destroy ((cairo_surface_t *)surface);
+ return NULL;
+ }
+
+ return &surface->base;
}
+
diff --git a/src/cairo-features.h b/src/cairo-features.h
index 5a4f24b..3ce6413 100644
--- a/src/cairo-features.h
+++ b/src/cairo-features.h
@@ -1,39 +1,4 @@
-/* cairo - a vector graphics library with display and print output
- *
- * Copyright © 2003 University of Southern California
- *
- * This library is free software; you can redistribute it and/or
- * modify it either under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation
- * (the "LGPL") or, at your option, under the terms of the Mozilla
- * Public License Version 1.1 (the "MPL"). If you do not alter this
- * notice, a recipient may use your version of this file under either
- * the MPL or the LGPL.
- *
- * You should have received a copy of the LGPL along with this library
- * in the file COPYING-LGPL-2.1; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- * You should have received a copy of the MPL along with this library
- * in the file COPYING-MPL-1.1
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
- * OF ANY KIND, either express or implied. See the LGPL or the MPL for
- * the specific language governing rights and limitations.
- *
- * The Original Code is the cairo graphics library.
- *
- * The Initial Developer of the Original Code is University of Southern
- * California.
- *
- * Contributor(s):
- * Carl D. Worth <cworth@cworth.org>
- */
-
+/* Generated by configure. Do not edit */
#ifndef CAIRO_FEATURES_H
#define CAIRO_FEATURES_H
@@ -50,37 +15,17 @@
#endif
#define CAIRO_VERSION_MAJOR 1
-#define CAIRO_VERSION_MINOR 1
-#define CAIRO_VERSION_MICRO 10
+#define CAIRO_VERSION_MINOR 2
+#define CAIRO_VERSION_MICRO 0
-#define CAIRO_VERSION_STRING "1.1.10"
+#define CAIRO_VERSION_STRING "1.2.0"
+#define CAIRO_HAS_XLIB_SURFACE 1
+#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1
+#define CAIRO_HAS_PNG_FUNCTIONS 1
+#define CAIRO_HAS_FT_FONT 1
#define CAIRO_HAS_PS_SURFACE 1
-
#define CAIRO_HAS_PDF_SURFACE 1
-
#define CAIRO_HAS_SVG_SURFACE 1
-#define CAIRO_HAS_XLIB_SURFACE 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-#define CAIRO_HAS_FT_FONT 1
-
-
-
-
-
-#define CAIRO_HAS_PNG_FUNCTIONS 1
-
#endif
diff --git a/src/cairo-font-subset.c b/src/cairo-font-subset.c
index 9c526ca..dc21d14 100644
--- a/src/cairo-font-subset.c
+++ b/src/cairo-font-subset.c
@@ -132,6 +132,9 @@ _cairo_pdf_ft_font_create (cairo_scaled_font_subset_t *scaled_font_subset,
if (!_cairo_scaled_font_is_ft (scaled_font_subset->scaled_font))
return CAIRO_INT_STATUS_UNSUPPORTED;
+ if (_cairo_ft_scaled_font_is_vertical (scaled_font_subset->scaled_font))
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
unscaled_font = _cairo_ft_scaled_font_get_unscaled_font (scaled_font_subset->scaled_font);
ft_unscaled_font = (cairo_ft_unscaled_font_t *) unscaled_font;
@@ -744,8 +747,8 @@ _cairo_truetype_subset_init (cairo_truetype_subset_t *truetype_subset,
{
cairo_pdf_ft_font_t *font;
cairo_status_t status;
- const char *data;
- unsigned long length, parent_glyph;
+ const char *data = NULL; /* squelch bogus compiler warning */
+ unsigned long parent_glyph, length = 0; /* squelch bogus compiler warning */
int i;
status = _cairo_pdf_ft_font_create (font_subset, &font);
diff --git a/src/cairo-font.c b/src/cairo-font.c
index fb475c3..5ef8b6c 100644
--- a/src/cairo-font.c
+++ b/src/cairo-font.c
@@ -135,6 +135,8 @@ cairo_font_face_destroy (cairo_font_face_t *font_face)
* @font_face: a #cairo_font_face_t
*
* Return value: The type of @font_face. See #cairo_font_type_t.
+ *
+ * Since: 1.2
**/
cairo_font_type_t
cairo_font_face_get_type (cairo_font_face_t *font_face)
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
index c5fb728..18aa68c 100644
--- a/src/cairo-ft-font.c
+++ b/src/cairo-ft-font.c
@@ -116,6 +116,7 @@ typedef enum _cairo_ft_extra_flags {
} cairo_ft_extra_flags_t;
typedef struct _cairo_ft_options {
+ cairo_font_options_t base;
int load_flags; /* flags for FT_Load_Glyph */
cairo_ft_extra_flags_t extra_flags; /* other flags that affect results */
} cairo_ft_options_t;
@@ -697,14 +698,6 @@ static const int filters[3][3] = {
{ 65538*1/13,65538*3/13,65538*9/13 },
};
-static cairo_bool_t
-_native_byte_order_lsb (void)
-{
- int x = 1;
-
- return *((char *) &x) == 1;
-}
-
/* Fills in val->image with an image surface created from @bitmap
*/
static cairo_status_t
@@ -750,19 +743,17 @@ _get_bitmap_surface (FT_Bitmap *bitmap,
}
}
- if (_native_byte_order_lsb())
+#ifndef WORDS_BIGENDIAN
{
- unsigned char *d = data, c;
+ unsigned char *d = data;
int count = stride * height;
while (count--) {
- c = *d;
- c = ((c << 1) & 0xaa) | ((c >> 1) & 0x55);
- c = ((c << 2) & 0xcc) | ((c >> 2) & 0x33);
- c = ((c << 4) & 0xf0) | ((c >> 4) & 0x0f);
- *d++ = c;
+ *d = CAIRO_BITSWAP8 (*d);
+ d++;
}
}
+#endif
format = CAIRO_FORMAT_A1;
break;
@@ -1038,21 +1029,7 @@ _render_glyph_outline (FT_Face face,
return CAIRO_STATUS_SUCCESS;
}
-/* Converts a bitmap (or other) FT_GlyphSlot into an image
- *
- * This could go through _render_glyph_bitmap as well, letting
- * FreeType convert the outline to a bitmap, but doing it ourselves
- * has two minor advantages: first, we save a copy of the bitmap
- * buffer: we can directly use the buffer that FreeType renders
- * into.
- *
- * Second, it may help when we add support for subpixel
- * rendering: the Xft code does it this way. (Keith thinks that
- * it may also be possible to get the subpixel rendering with
- * FT_Render_Glyph: something worth looking into in more detail
- * when we add subpixel support. If so, we may want to eliminate
- * this version of the code path entirely.
- */
+/* Converts a bitmap (or other) FT_GlyphSlot into an image */
static cairo_status_t
_render_glyph_bitmap (FT_Face face,
cairo_font_options_t *font_options,
@@ -1228,15 +1205,15 @@ const cairo_scaled_font_backend_t cairo_ft_scaled_font_backend;
static cairo_ft_options_t
_get_pattern_ft_options (FcPattern *pattern)
{
- FcBool antialias, vertical_layout, hinting, autohint, bitmap;
+ FcBool antialias, vertical_layout, hinting, autohint, bitmap, embolden;
cairo_ft_options_t ft_options;
int rgba;
#ifdef FC_HINT_STYLE
int hintstyle;
#endif
- int target_flags = 0;
- ft_options.load_flags = 0;
+ _cairo_font_options_init_default (&ft_options.base);
+ ft_options.load_flags = FT_LOAD_DEFAULT;
ft_options.extra_flags = 0;
#ifndef FC_EMBEDDED_BITMAP
@@ -1252,65 +1229,74 @@ _get_pattern_ft_options (FcPattern *pattern)
if (FcPatternGetBool (pattern,
FC_ANTIALIAS, 0, &antialias) != FcResultMatch)
antialias = FcTrue;
+
+ if (antialias) {
+ if (!bitmap)
+ ft_options.load_flags |= FT_LOAD_NO_BITMAP;
+
+ /* disable hinting if requested */
+ if (FcPatternGetBool (pattern,
+ FC_HINTING, 0, &hinting) != FcResultMatch)
+ hinting = FcTrue;
- if (!bitmap && antialias)
- ft_options.load_flags |= FT_LOAD_NO_BITMAP;
- else if (!antialias)
- ft_options.load_flags |= FT_LOAD_MONOCHROME;
+ if (FcPatternGetInteger (pattern,
+ FC_RGBA, 0, &rgba) != FcResultMatch)
+ rgba = FC_RGBA_UNKNOWN;
- /* disable hinting if requested */
- if (FcPatternGetBool (pattern,
- FC_HINTING, 0, &hinting) != FcResultMatch)
- hinting = FcTrue;
+ switch (rgba) {
+ case FC_RGBA_RGB:
+ ft_options.base.subpixel_order = CAIRO_SUBPIXEL_ORDER_RGB;
+ break;
+ case FC_RGBA_BGR:
+ ft_options.base.subpixel_order = CAIRO_SUBPIXEL_ORDER_BGR;
+ break;
+ case FC_RGBA_VRGB:
+ ft_options.base.subpixel_order = CAIRO_SUBPIXEL_ORDER_VRGB;
+ break;
+ case FC_RGBA_VBGR:
+ ft_options.base.subpixel_order = CAIRO_SUBPIXEL_ORDER_VBGR;
+ break;
+ case FC_RGBA_UNKNOWN:
+ case FC_RGBA_NONE:
+ default:
+ break;
+ }
-#ifdef FC_HINT_STYLE
- if (FcPatternGetInteger (pattern, FC_HINT_STYLE, 0, &hintstyle) != FcResultMatch)
- hintstyle = FC_HINT_FULL;
+ if (ft_options.base.subpixel_order != CAIRO_SUBPIXEL_ORDER_DEFAULT)
+ ft_options.base.antialias = CAIRO_ANTIALIAS_SUBPIXEL;
- if (!hinting || hintstyle == FC_HINT_NONE)
- ft_options.load_flags |= FT_LOAD_NO_HINTING;
+#ifdef FC_HINT_STYLE
+ if (FcPatternGetInteger (pattern,
+ FC_HINT_STYLE, 0, &hintstyle) != FcResultMatch)
+ hintstyle = FC_HINT_FULL;
+
+ if (!hinting)
+ hintstyle = FC_HINT_NONE;
- if (antialias) {
switch (hintstyle) {
+ case FC_HINT_NONE:
+ ft_options.base.hint_style = CAIRO_HINT_STYLE_NONE;
+ break;
case FC_HINT_SLIGHT:
- case FC_HINT_MEDIUM:
- target_flags = FT_LOAD_TARGET_LIGHT;
+ ft_options.base.hint_style = CAIRO_HINT_STYLE_SLIGHT;
break;
+ case FC_HINT_MEDIUM:
default:
- target_flags = FT_LOAD_TARGET_NORMAL;
+ ft_options.base.hint_style = CAIRO_HINT_STYLE_MEDIUM;
+ break;
+ case FC_HINT_FULL:
+ ft_options.base.hint_style = CAIRO_HINT_STYLE_FULL;
break;
}
- } else {
-#ifdef FT_LOAD_TARGET_MONO
- target_flags = FT_LOAD_TARGET_MONO;
-#endif
- }
#else /* !FC_HINT_STYLE */
- if (!hinting)
- target_flags = FT_LOAD_NO_HINTING;
+ if (!hinting) {
+ ft_options.base.hint_style = CAIRO_HINT_STYLE_NONE;
+ }
#endif /* FC_FHINT_STYLE */
-
- if (FcPatternGetInteger (pattern,
- FC_RGBA, 0, &rgba) != FcResultMatch)
- rgba = FC_RGBA_UNKNOWN;
-
- switch (rgba) {
- case FC_RGBA_UNKNOWN:
- case FC_RGBA_NONE:
- default:
- break;
- case FC_RGBA_RGB:
- case FC_RGBA_BGR:
- target_flags = FT_LOAD_TARGET_LCD;
- break;
- case FC_RGBA_VRGB:
- case FC_RGBA_VBGR:
- target_flags = FT_LOAD_TARGET_LCD_V;
- break;
+ } else {
+ ft_options.base.antialias = CAIRO_ANTIALIAS_NONE;
}
- ft_options.load_flags |= target_flags;
-
/* force autohinting if requested */
if (FcPatternGetBool (pattern,
FC_AUTOHINT, 0, &autohint) != FcResultMatch)
@@ -1325,71 +1311,89 @@ _get_pattern_ft_options (FcPattern *pattern)
if (vertical_layout)
ft_options.load_flags |= FT_LOAD_VERTICAL_LAYOUT;
-
-#ifdef FC_EMBOLDEN
- {
- FcBool embolden;
-
- if (FcPatternGetBool (pattern,
- FC_EMBOLDEN, 0, &embolden) != FcResultMatch)
- embolden = FcFalse;
-
- if (embolden)
- ft_options.extra_flags |= CAIRO_FT_OPTIONS_EMBOLDEN;
- }
+
+#ifndef FC_EMBOLDEN
+#define FC_EMBOLDEN "embolden"
#endif
+ if (FcPatternGetBool (pattern,
+ FC_EMBOLDEN, 0, &embolden) != FcResultMatch)
+ embolden = FcFalse;
+
+ if (embolden)
+ ft_options.extra_flags |= CAIRO_FT_OPTIONS_EMBOLDEN;
return ft_options;
}
-static int
-_get_options_load_flags (const cairo_font_options_t *options)
+static void
+_cairo_ft_options_merge (cairo_ft_options_t *options,
+ cairo_ft_options_t *other)
{
- int load_flags = 0;
+ int load_flags = other->load_flags;
+ int load_target = FT_LOAD_TARGET_NORMAL;
- /* disable antialiasing if requested */
- switch (options->antialias) {
- case CAIRO_ANTIALIAS_NONE:
-#ifdef FT_LOAD_TARGET_MONO
- load_flags |= FT_LOAD_TARGET_MONO;
-#endif
+ /* clear load target mode */
+ load_flags &= ~(FT_LOAD_TARGET_(FT_LOAD_TARGET_MODE(other->load_flags)));
+
+ if (load_flags & FT_LOAD_NO_HINTING)
+ other->base.hint_style = CAIRO_HINT_STYLE_NONE;
+
+ if (other->base.antialias == CAIRO_ANTIALIAS_NONE ||
+ options->base.antialias == CAIRO_ANTIALIAS_NONE) {
+ options->base.antialias = CAIRO_ANTIALIAS_NONE;
+ options->base.subpixel_order = CAIRO_SUBPIXEL_ORDER_DEFAULT;
+ }
+
+ if (other->base.antialias == CAIRO_ANTIALIAS_SUBPIXEL &&
+ (options->base.antialias == CAIRO_ANTIALIAS_DEFAULT ||
+ options->base.antialias == CAIRO_ANTIALIAS_GRAY)) {
+ options->base.antialias = CAIRO_ANTIALIAS_SUBPIXEL;
+ options->base.subpixel_order = other->base.subpixel_order;
+ }
+
+ if (options->base.hint_style == CAIRO_HINT_STYLE_DEFAULT)
+ options->base.hint_style = other->base.hint_style;
+
+ if (other->base.hint_style == CAIRO_HINT_STYLE_NONE)
+ options->base.hint_style = CAIRO_HINT_STYLE_NONE;
+
+ if (options->base.antialias == CAIRO_ANTIALIAS_NONE) {
+ if (options->base.hint_style == CAIRO_HINT_STYLE_NONE)
+ load_flags |= FT_LOAD_NO_HINTING;
+ else
+ load_target = FT_LOAD_TARGET_MONO;
load_flags |= FT_LOAD_MONOCHROME;
- break;
- case CAIRO_ANTIALIAS_SUBPIXEL:
- switch (options->subpixel_order) {
- case CAIRO_SUBPIXEL_ORDER_DEFAULT:
- case CAIRO_SUBPIXEL_ORDER_RGB:
- case CAIRO_SUBPIXEL_ORDER_BGR:
- load_flags |= FT_LOAD_TARGET_LCD;
+ } else {
+ switch (options->base.hint_style) {
+ case CAIRO_HINT_STYLE_NONE:
+ load_flags |= FT_LOAD_NO_HINTING;
+ break;
+ case CAIRO_HINT_STYLE_SLIGHT:
+ load_target = FT_LOAD_TARGET_LIGHT;
break;
- case CAIRO_SUBPIXEL_ORDER_VRGB:
- case CAIRO_SUBPIXEL_ORDER_VBGR:
- load_flags |= FT_LOAD_TARGET_LCD_V;
+ case CAIRO_HINT_STYLE_MEDIUM:
+ break;
+ case CAIRO_HINT_STYLE_FULL:
+ case CAIRO_HINT_STYLE_DEFAULT:
+ if (options->base.antialias == CAIRO_ANTIALIAS_SUBPIXEL) {
+ switch (options->base.subpixel_order) {
+ case CAIRO_SUBPIXEL_ORDER_DEFAULT:
+ case CAIRO_SUBPIXEL_ORDER_RGB:
+ case CAIRO_SUBPIXEL_ORDER_BGR:
+ load_target |= FT_LOAD_TARGET_LCD;
+ break;
+ case CAIRO_SUBPIXEL_ORDER_VRGB:
+ case CAIRO_SUBPIXEL_ORDER_VBGR:
+ load_target |= FT_LOAD_TARGET_LCD_V;
+ break;
+ }
+ }
break;
}
- /* fall through ... */
- case CAIRO_ANTIALIAS_DEFAULT:
- case CAIRO_ANTIALIAS_GRAY:
- load_flags |= FT_LOAD_NO_BITMAP;
- break;
}
- /* disable hinting if requested */
- switch (options->hint_style) {
- case CAIRO_HINT_STYLE_NONE:
- load_flags |= FT_LOAD_NO_HINTING;
- break;
- case CAIRO_HINT_STYLE_SLIGHT:
- case CAIRO_HINT_STYLE_MEDIUM:
- load_flags |= FT_LOAD_TARGET_LIGHT;
- break;
- case CAIRO_HINT_STYLE_FULL:
- default:
- load_flags |= FT_LOAD_TARGET_NORMAL;
- break;
- }
-
- return load_flags;
+ options->load_flags = load_flags | load_target;
+ options->extra_flags = other->extra_flags;
}
static cairo_scaled_font_t *
@@ -1421,7 +1425,8 @@ _cairo_ft_scaled_font_create (cairo_ft_unscaled_font_t *unscaled,
if (options->hint_metrics != CAIRO_HINT_METRICS_OFF)
ft_options.extra_flags |= CAIRO_FT_OPTIONS_HINT_METRICS;
- scaled_font->ft_options = ft_options;
+ _cairo_font_options_init_copy (&scaled_font->ft_options.base, options);
+ _cairo_ft_options_merge (&scaled_font->ft_options, &ft_options);
_cairo_scaled_font_init (&scaled_font->base,
font_face,
@@ -1685,10 +1690,10 @@ _decompose_glyph_outline (FT_Face face,
cairo_path_fixed_t **pathp)
{
static const FT_Outline_Funcs outline_funcs = {
- _move_to,
- _line_to,
- _conic_to,
- _cubic_to,
+ (FT_Outline_MoveToFunc)_move_to,
+ (FT_Outline_LineToFunc)_line_to,
+ (FT_Outline_ConicToFunc)_conic_to,
+ (FT_Outline_CubicToFunc)_cubic_to,
0, /* shift */
0, /* delta */
};
@@ -1749,6 +1754,7 @@ _cairo_ft_scaled_glyph_init (void *abstract_font,
FT_Glyph_Metrics *metrics;
double x_factor, y_factor;
cairo_bool_t vertical_layout = FALSE;
+ cairo_status_t status = CAIRO_STATUS_SUCCESS;
face = cairo_ft_scaled_font_lock_face (abstract_font);
if (!face)
@@ -1775,8 +1781,8 @@ _cairo_ft_scaled_glyph_init (void *abstract_font,
load_flags);
if (error) {
- cairo_ft_scaled_font_unlock_face (abstract_font);
- return CAIRO_STATUS_NO_MEMORY;
+ status = CAIRO_STATUS_NO_MEMORY;
+ goto FAIL;
}
glyph = face->glyph;
@@ -1885,22 +1891,20 @@ _cairo_ft_scaled_glyph_init (void *abstract_font,
if ((info & CAIRO_SCALED_GLYPH_INFO_SURFACE) != 0) {
cairo_image_surface_t *surface;
- cairo_status_t status;
if (glyph->format == FT_GLYPH_FORMAT_OUTLINE) {
- status = _render_glyph_outline (face, &scaled_font->base.options,
+ status = _render_glyph_outline (face, &scaled_font->ft_options.base,
&surface);
} else {
- status = _render_glyph_bitmap (face, &scaled_font->base.options,
+ status = _render_glyph_bitmap (face, &scaled_font->ft_options.base,
&surface);
if (status == CAIRO_STATUS_SUCCESS && unscaled->have_shape)
status = _transform_glyph_bitmap (&unscaled->current_shape,
&surface);
}
- if (status) {
- cairo_ft_scaled_font_unlock_face (abstract_font);
- return status;
- }
+ if (status)
+ goto FAIL;
+
_cairo_scaled_glyph_set_surface (scaled_glyph,
&scaled_font->base,
surface);
@@ -1908,7 +1912,6 @@ _cairo_ft_scaled_glyph_init (void *abstract_font,
if (info & CAIRO_SCALED_GLYPH_INFO_PATH) {
cairo_path_fixed_t *path;
- cairo_status_t status;
/*
* A kludge -- the above code will trash the outline,
@@ -1923,28 +1926,34 @@ _cairo_ft_scaled_glyph_init (void *abstract_font,
cairo_ft_scaled_font_unlock_face (abstract_font);
return CAIRO_STATUS_NO_MEMORY;
}
+#if HAVE_FT_GLYPHSLOT_EMBOLDEN
+ /*
+ * embolden glyphs if requested
+ */
+ if (scaled_font->ft_options.extra_flags & CAIRO_FT_OPTIONS_EMBOLDEN)
+ FT_GlyphSlot_Embolden (glyph);
+#endif
if (vertical_layout)
_cairo_ft_scaled_glyph_vertical_layout_bearing_fix (glyph);
}
if (glyph->format == FT_GLYPH_FORMAT_OUTLINE)
- status = _decompose_glyph_outline (face, &scaled_font->base.options,
+ status = _decompose_glyph_outline (face, &scaled_font->ft_options.base,
&path);
else
status = CAIRO_INT_STATUS_UNSUPPORTED;
- if (status) {
- cairo_ft_scaled_font_unlock_face (abstract_font);
- return status;
- }
+ if (status)
+ goto FAIL;
+
_cairo_scaled_glyph_set_path (scaled_glyph,
&scaled_font->base,
path);
}
-
+ FAIL:
cairo_ft_scaled_font_unlock_face (abstract_font);
- return CAIRO_STATUS_SUCCESS;
+ return status;
}
static unsigned long
@@ -2072,8 +2081,6 @@ _cairo_ft_font_face_scaled_font_create (void *abstract_face,
*/
ft_options = font_face->ft_options;
- if (font_face->unscaled->from_face)
- ft_options.load_flags |= _get_options_load_flags (options);
*scaled_font = _cairo_ft_scaled_font_create (font_face->unscaled,
&font_face->base,
@@ -2103,7 +2110,8 @@ _cairo_ft_font_face_create (cairo_ft_unscaled_font_t *unscaled,
font_face = font_face->next)
{
if (font_face->ft_options.load_flags == ft_options.load_flags &&
- font_face->ft_options.extra_flags == ft_options.extra_flags)
+ font_face->ft_options.extra_flags == ft_options.extra_flags &&
+ cairo_font_options_equal (&font_face->ft_options.base, &ft_options.base))
return cairo_font_face_reference (&font_face->base);
}
@@ -2306,6 +2314,7 @@ cairo_ft_font_face_create_for_ft_face (FT_Face face,
ft_options.load_flags = load_flags;
ft_options.extra_flags = 0;
+ _cairo_font_options_init_default (&ft_options.base);
font_face = _cairo_ft_font_face_create (unscaled, ft_options);
_cairo_unscaled_font_destroy (&unscaled->base);
@@ -2400,6 +2409,20 @@ _cairo_ft_scaled_font_get_unscaled_font (cairo_scaled_font_t *abstract_font)
return &scaled_font->unscaled->base;
}
+cairo_bool_t
+_cairo_ft_scaled_font_is_vertical (cairo_scaled_font_t *scaled_font)
+{
+ cairo_ft_scaled_font_t *ft_scaled_font;
+
+ if (!_cairo_scaled_font_is_ft (scaled_font))
+ return FALSE;
+
+ ft_scaled_font = (cairo_ft_scaled_font_t *) scaled_font;
+ if (ft_scaled_font->ft_options.load_flags & FT_LOAD_VERTICAL_LAYOUT)
+ return TRUE;
+ return FALSE;
+}
+
void
_cairo_ft_font_reset_static_data (void)
{
diff --git a/src/cairo-ft-private.h b/src/cairo-ft-private.h
index b3931be..34c5d9c 100644
--- a/src/cairo-ft-private.h
+++ b/src/cairo-ft-private.h
@@ -64,6 +64,9 @@ _cairo_ft_unscaled_font_lock_face (cairo_ft_unscaled_font_t *unscaled);
cairo_private void
_cairo_ft_unscaled_font_unlock_face (cairo_ft_unscaled_font_t *unscaled);
+cairo_bool_t
+_cairo_ft_scaled_font_is_vertical (cairo_scaled_font_t *scaled_font);
+
CAIRO_END_DECLS
#endif /* CAIRO_HAS_FT_FONT */
diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c
index e262630..f852d50 100644
--- a/src/cairo-gstate.c
+++ b/src/cairo-gstate.c
@@ -696,11 +696,13 @@ void
_cairo_gstate_user_to_backend (cairo_gstate_t *gstate, double *x, double *y)
{
cairo_matrix_transform_point (&gstate->ctm, x, y);
+ cairo_matrix_transform_point (&gstate->target->device_transform, x, y);
}
void
_cairo_gstate_backend_to_user (cairo_gstate_t *gstate, double *x, double *y)
{
+ cairo_matrix_transform_point (&gstate->target->device_transform_inverse, x, y);
cairo_matrix_transform_point (&gstate->ctm_inverse, x, y);
}
@@ -1435,9 +1437,9 @@ _cairo_gstate_show_glyphs (cairo_gstate_t *gstate,
for (i = 0; i < num_glyphs; ++i)
{
transformed_glyphs[i] = glyphs[i];
- _cairo_gstate_user_to_backend (gstate,
- &transformed_glyphs[i].x,
- &transformed_glyphs[i].y);
+ _cairo_gstate_user_to_device (gstate,
+ &transformed_glyphs[i].x,
+ &transformed_glyphs[i].y);
}
_cairo_gstate_copy_transformed_source (gstate, &source_pattern.base);
diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c
index bddf6c1..8957e4c 100644
--- a/src/cairo-image-surface.c
+++ b/src/cairo-image-surface.c
@@ -364,6 +364,8 @@ _cairo_image_surface_create_for_data_with_content (unsigned char *data,
*
* Return value: a pointer to the image data of this surface or NULL
* if @surface is not an image surface.
+ *
+ * Since: 1.2
**/
unsigned char *
cairo_image_surface_get_data (cairo_surface_t *surface)
@@ -385,6 +387,8 @@ cairo_image_surface_get_data (cairo_surface_t *surface)
* Get the format of the surface.
*
* Return value: the format of the surface
+ *
+ * Since: 1.2
**/
cairo_format_t
cairo_image_surface_get_format (cairo_surface_t *surface)
@@ -451,6 +455,8 @@ cairo_image_surface_get_height (cairo_surface_t *surface)
* @surface is not an image surface). The stride is the distance in
* bytes from the beginning of one row of the image data to the
* beginning of the next row.
+ *
+ * Since: 1.2
**/
int
cairo_image_surface_get_stride (cairo_surface_t *surface)
diff --git a/src/cairo-output-stream.c b/src/cairo-output-stream.c
index 833c2a2..96ff8ce 100644
--- a/src/cairo-output-stream.c
+++ b/src/cairo-output-stream.c
@@ -268,9 +268,9 @@ void
_cairo_output_stream_vprintf (cairo_output_stream_t *stream,
const char *fmt, va_list ap)
{
- char buffer[512];
- char *p;
- const char *f;
+ char buffer[512], single_fmt[32];
+ char *p, *end;
+ const char *f, *start;
int length_modifier;
if (stream->status)
@@ -289,10 +289,16 @@ _cairo_output_stream_vprintf (cairo_output_stream_t *stream,
continue;
}
+ start = f;
f++;
- _cairo_output_stream_write (stream, buffer, p - buffer);
- p = buffer;
+ if (*f == '0')
+ f++;
+
+ if (isdigit (*f)) {
+ strtol (f, &end, 10);
+ f = end;
+ }
length_modifier = 0;
if (*f == 'l') {
@@ -300,28 +306,40 @@ _cairo_output_stream_vprintf (cairo_output_stream_t *stream,
f++;
}
+ /* Reuse the format string for this conversion. */
+ memcpy (single_fmt, start, f + 1 - start);
+ single_fmt[f + 1 - start] = '\0';
+
+ /* Flush contents of buffer before snprintf()'ing into it. */
+ _cairo_output_stream_write (stream, buffer, p - buffer);
+ p = buffer;
+
+ /* We group signed and unsigned together in this switch, the
+ * only thing that matters here is the size of the arguments,
+ * since we're just passing the data through to sprintf(). */
switch (*f | length_modifier) {
case '%':
buffer[0] = *f;
buffer[1] = 0;
break;
case 'd':
- snprintf (buffer, sizeof buffer, "%d", va_arg (ap, int));
- break;
- case 'd' | LENGTH_MODIFIER_LONG:
- snprintf (buffer, sizeof buffer, "%ld", va_arg (ap, long int));
- break;
case 'u':
- snprintf (buffer, sizeof buffer, "%u", va_arg (ap, unsigned int));
+ case 'o':
+ case 'x':
+ case 'X':
+ snprintf (buffer, sizeof buffer, single_fmt, va_arg (ap, int));
break;
+ case 'd' | LENGTH_MODIFIER_LONG:
case 'u' | LENGTH_MODIFIER_LONG:
- snprintf (buffer, sizeof buffer, "%lu", va_arg (ap, long unsigned int));
- break;
- case 'o':
- snprintf (buffer, sizeof buffer, "%o", va_arg (ap, int));
+ case 'o' | LENGTH_MODIFIER_LONG:
+ case 'x' | LENGTH_MODIFIER_LONG:
+ case 'X' | LENGTH_MODIFIER_LONG:
+ snprintf (buffer, sizeof buffer,
+ single_fmt, va_arg (ap, long int));
break;
case 's':
- snprintf (buffer, sizeof buffer, "%s", va_arg (ap, const char *));
+ snprintf (buffer, sizeof buffer,
+ single_fmt, va_arg (ap, const char *));
break;
case 'f':
_cairo_dtostr (buffer, sizeof buffer, va_arg (ap, double));
diff --git a/src/cairo-path-stroke.c b/src/cairo-path-stroke.c
index 2f89314..4ba321e 100644
--- a/src/cairo-path-stroke.c
+++ b/src/cairo-path-stroke.c
@@ -50,6 +50,8 @@ typedef struct cairo_stroker {
cairo_point_t current_point;
cairo_point_t first_point;
+ cairo_bool_t has_sub_path;
+
cairo_bool_t has_current_face;
cairo_stroke_face_t current_face;
@@ -164,6 +166,7 @@ _cairo_stroker_init (cairo_stroker_t *stroker,
stroker->has_current_face = FALSE;
stroker->has_first_face = FALSE;
+ stroker->has_sub_path = FALSE;
if (stroker->style->dash)
_cairo_stroker_start_dash (stroker);
@@ -205,7 +208,8 @@ _cairo_stroker_join (cairo_stroker_t *stroker, cairo_stroke_face_t *in, cairo_st
if (in->cw.x == out->cw.x
&& in->cw.y == out->cw.y
&& in->ccw.x == out->ccw.x
- && in->ccw.y == out->ccw.y) {
+ && in->ccw.y == out->ccw.y)
+ {
return CAIRO_STATUS_SUCCESS;
}
@@ -459,10 +463,26 @@ _cairo_stroker_add_trailing_cap (cairo_stroker_t *stroker,
return _cairo_stroker_add_cap (stroker, face);
}
+static void
+_compute_face (cairo_point_t *point, cairo_slope_t *slope, cairo_stroker_t *stroker, cairo_stroke_face_t *face);
+
static cairo_status_t
_cairo_stroker_add_caps (cairo_stroker_t *stroker)
{
cairo_status_t status;
+ /* check for a degenerative sub_path */
+ if (stroker->has_sub_path
+ && !stroker->has_first_face
+ && !stroker->has_current_face
+ && stroker->style->line_cap == CAIRO_LINE_JOIN_ROUND)
+ {
+ /* pick an arbitrary slope to use */
+ cairo_slope_t slope = {1, 0};
+ _compute_face (&stroker->first_point, &slope, stroker, &stroker->first_face);
+
+ stroker->has_first_face = stroker->has_current_face = TRUE;
+ stroker->current_face = stroker->first_face;
+ }
if (stroker->has_first_face) {
status = _cairo_stroker_add_leading_cap (stroker, &stroker->first_face);
@@ -563,12 +583,8 @@ _cairo_stroker_add_sub_edge (cairo_stroker_t *stroker, cairo_point_t *p1, cairo_
fields from start. */
_compute_face (p2, slope, stroker, end);
- if (p1->x == p2->x && p1->y == p2->y) {
- /* XXX: Need to rethink how this case should be handled, (both
- here and in _compute_face). The key behavior is that
- degenerate paths should draw as much as possible. */
+ if (p1->x == p2->x && p1->y == p2->y)
return CAIRO_STATUS_SUCCESS;
- }
/* XXX: I should really check the return value of the
move_to/line_to functions here to catch out of memory
@@ -609,8 +625,9 @@ _cairo_stroker_move_to (void *closure, cairo_point_t *point)
stroker->first_point = *point;
stroker->current_point = *point;
- stroker->has_first_face = 0;
- stroker->has_current_face = 0;
+ stroker->has_first_face = FALSE;
+ stroker->has_current_face = FALSE;
+ stroker->has_sub_path = FALSE;
return CAIRO_STATUS_SUCCESS;
}
@@ -635,13 +652,10 @@ _cairo_stroker_line_to (void *closure, cairo_point_t *point)
cairo_point_t *p2 = point;
cairo_slope_t slope;
- if (p1->x == p2->x && p1->y == p2->y) {
- /* XXX: Need to rethink how this case should be handled, (both
- here and in cairo_stroker_add_sub_edge and in _compute_face). The
- key behavior is that degenerate paths should draw as much
- as possible. */
+ stroker->has_sub_path = TRUE;
+
+ if (p1->x == p2->x && p1->y == p2->y)
return CAIRO_STATUS_SUCCESS;
- }
_cairo_slope_init (&slope, p1, p2);
@@ -656,11 +670,11 @@ _cairo_stroker_line_to (void *closure, cairo_point_t *point)
} else {
if (!stroker->has_first_face) {
stroker->first_face = start;
- stroker->has_first_face = 1;
+ stroker->has_first_face = TRUE;
}
}
stroker->current_face = end;
- stroker->has_current_face = 1;
+ stroker->has_current_face = TRUE;
stroker->current_point = *point;
@@ -679,19 +693,14 @@ _cairo_stroker_line_to_dashed (void *closure, cairo_point_t *point)
double dx, dy;
double dx2, dy2;
cairo_point_t fd1, fd2;
- int first = 1;
+ cairo_bool_t first = TRUE;
cairo_stroke_face_t sub_start, sub_end;
cairo_point_t *p1 = &stroker->current_point;
cairo_point_t *p2 = point;
cairo_slope_t slope;
- if (p1->x == p2->x && p1->y == p2->y) {
- /* XXX: Need to rethink how this case should be handled, (both
- here and in cairo_stroker_add_sub_edge and in _compute_face). The
- key behavior is that degenerate paths should draw as much
- as possible. */
+ if (p1->x == p2->x && p1->y == p2->y)
return CAIRO_STATUS_SUCCESS;
- }
_cairo_slope_init (&slope, p1, p2);
@@ -742,7 +751,7 @@ _cairo_stroker_line_to_dashed (void *closure, cairo_point_t *point)
} else {
if (!stroker->has_first_face) {
stroker->first_face = sub_start;
- stroker->has_first_face = 1;
+ stroker->has_first_face = TRUE;
} else {
status = _cairo_stroker_add_leading_cap (stroker, &sub_start);
if (status)
@@ -763,7 +772,7 @@ _cairo_stroker_line_to_dashed (void *closure, cairo_point_t *point)
* through
*/
stroker->current_face = sub_end;
- stroker->has_current_face = 1;
+ stroker->has_current_face = TRUE;
}
} else {
/*
@@ -778,11 +787,11 @@ _cairo_stroker_line_to_dashed (void *closure, cairo_point_t *point)
}
}
if (!remain)
- stroker->has_current_face = 0;
+ stroker->has_current_face = FALSE;
}
_cairo_stroker_step_dash (stroker, tmp);
fd1 = fd2;
- first = 0;
+ first = FALSE;
}
stroker->current_point = *point;
@@ -822,11 +831,11 @@ _cairo_stroker_curve_to (void *closure,
} else {
if (!stroker->has_first_face) {
stroker->first_face = start;
- stroker->has_first_face = 1;
+ stroker->has_first_face = TRUE;
}
}
stroker->current_face = end;
- stroker->has_current_face = 1;
+ stroker->has_current_face = TRUE;
extra_points[0] = start.cw;
extra_points[0].x -= start.point.x;
@@ -943,10 +952,15 @@ _cairo_stroker_close_path (void *closure)
status = _cairo_stroker_join (stroker, &stroker->current_face, &stroker->first_face);
if (status)
return status;
+ } else {
+ status = _cairo_stroker_add_caps (stroker);
+ if (status)
+ return status;
}
- stroker->has_first_face = 0;
- stroker->has_current_face = 0;
+ stroker->has_sub_path = FALSE;
+ stroker->has_first_face = FALSE;
+ stroker->has_current_face = FALSE;
return CAIRO_STATUS_SUCCESS;
}
diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c
index c8f4353..1a62c66 100644
--- a/src/cairo-pattern.c
+++ b/src/cairo-pattern.c
@@ -529,6 +529,8 @@ cairo_pattern_reference (cairo_pattern_t *pattern)
* @pattern: a #cairo_pattern_t
*
* Return value: The type of @pattern. See #cairo_pattern_type_t.
+ *
+ * Since: 1.2
**/
cairo_pattern_type_t
cairo_pattern_get_type (cairo_pattern_t *pattern)
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c
index d417c55..663097f 100644
--- a/src/cairo-pdf-surface.c
+++ b/src/cairo-pdf-surface.c
@@ -305,13 +305,13 @@ _cairo_pdf_surface_create_for_stream_internal (cairo_output_stream_t *output,
/**
* cairo_pdf_surface_create_for_stream:
- * @write: a #cairo_write_func_t to accept the output data
- * @closure: the closure argument for @write
+ * @write_func: a #cairo_write_func_t to accept the output data
+ * @closure: the closure argument for @write_func
* @width_in_points: width of the surface, in points (1 point == 1/72.0 inch)
* @height_in_points: height of the surface, in points (1 point == 1/72.0 inch)
*
* Creates a PDF surface of the specified size in points to be written
- * incrementally to the stream represented by @write and @closure.
+ * incrementally to the stream represented by @write_func and @closure.
*
* Return value: a pointer to the newly created surface. The caller
* owns the surface and should call cairo_surface_destroy when done
@@ -320,9 +320,11 @@ _cairo_pdf_surface_create_for_stream_internal (cairo_output_stream_t *output,
* This function always returns a valid pointer, but it will return a
* pointer to a "nil" surface if an error such as out of memory
* occurs. You can use cairo_surface_status() to check for this.
+ *
+ * Since: 1.2
*/
cairo_surface_t *
-cairo_pdf_surface_create_for_stream (cairo_write_func_t write,
+cairo_pdf_surface_create_for_stream (cairo_write_func_t write_func,
void *closure,
double width_in_points,
double height_in_points)
@@ -330,7 +332,7 @@ cairo_pdf_surface_create_for_stream (cairo_write_func_t write,
cairo_status_t status;
cairo_output_stream_t *output;
- output = _cairo_output_stream_create (write, NULL, closure);
+ output = _cairo_output_stream_create (write_func, NULL, closure);
status = _cairo_output_stream_get_status (output);
if (status) {
_cairo_error (status);
@@ -358,6 +360,8 @@ cairo_pdf_surface_create_for_stream (cairo_write_func_t write,
* This function always returns a valid pointer, but it will return a
* pointer to a "nil" surface if an error such as out of memory
* occurs. You can use cairo_surface_status() to check for this.
+ *
+ * Since: 1.2
**/
cairo_surface_t *
cairo_pdf_surface_create (const char *filename,
@@ -422,6 +426,8 @@ _extract_pdf_surface (cairo_surface_t *surface,
* this is to call this function immediately after creating the
* surface or immediately after completing a page with either
* cairo_show_page() or cairo_copy_page().
+ *
+ * Since: 1.2
**/
void
cairo_pdf_surface_set_size (cairo_surface_t *surface,
@@ -1792,13 +1798,14 @@ _cairo_pdf_surface_emit_truetype_font_subset (cairo_pdf_surface_t *surface,
}
static cairo_int_status_t
-_cairo_pdf_surface_emit_outline_glyph_data (cairo_pdf_surface_t *surface,
- cairo_scaled_font_t *scaled_font,
- unsigned long glyph_index)
+_cairo_pdf_surface_emit_outline_glyph (cairo_pdf_surface_t *surface,
+ cairo_scaled_font_t *scaled_font,
+ unsigned long glyph_index,
+ cairo_pdf_resource_t *glyph_ret)
{
cairo_scaled_glyph_t *scaled_glyph;
pdf_path_info_t info;
- cairo_status_t status;
+ cairo_status_t status = CAIRO_STATUS_SUCCESS;
status = _cairo_scaled_glyph_lookup (scaled_font,
glyph_index,
@@ -1808,6 +1815,8 @@ _cairo_pdf_surface_emit_outline_glyph_data (cairo_pdf_surface_t *surface,
if (status)
return status;
+ *glyph_ret = _cairo_pdf_surface_open_stream (surface, NULL);
+
_cairo_output_stream_printf (surface->output,
"0 0 %f %f %f %f d1\r\n",
_cairo_fixed_to_double (scaled_glyph->bbox.p1.x),
@@ -1829,16 +1838,22 @@ _cairo_pdf_surface_emit_outline_glyph_data (cairo_pdf_surface_t *surface,
_cairo_output_stream_printf (surface->output,
" f");
+ _cairo_pdf_surface_close_stream (surface);
+
return CAIRO_STATUS_SUCCESS;
}
static cairo_int_status_t
-_cairo_pdf_surface_emit_bitmap_glyph_data (cairo_pdf_surface_t *surface,
- cairo_scaled_font_t *scaled_font,
- unsigned long glyph_index)
+_cairo_pdf_surface_emit_bitmap_glyph (cairo_pdf_surface_t *surface,
+ cairo_scaled_font_t *scaled_font,
+ unsigned long glyph_index,
+ cairo_pdf_resource_t *glyph_ret)
{
cairo_scaled_glyph_t *scaled_glyph;
cairo_status_t status;
+ cairo_image_surface_t *image;
+ unsigned char *row, *byte;
+ int rows, cols, bytes_per_row;
status = _cairo_scaled_glyph_lookup (scaled_font,
glyph_index,
@@ -1848,6 +1863,11 @@ _cairo_pdf_surface_emit_bitmap_glyph_data (cairo_pdf_surface_t *surface,
if (status)
return status;
+ image = scaled_glyph->surface;
+ assert (image->format == CAIRO_FORMAT_A1);
+
+ *glyph_ret = _cairo_pdf_surface_open_stream (surface, NULL);
+
_cairo_output_stream_printf (surface->output,
"0 0 %f %f %f %f d1\r\n",
_cairo_fixed_to_double (scaled_glyph->bbox.p1.x),
@@ -1855,13 +1875,36 @@ _cairo_pdf_surface_emit_bitmap_glyph_data (cairo_pdf_surface_t *surface,
_cairo_fixed_to_double (scaled_glyph->bbox.p2.x),
- _cairo_fixed_to_double (scaled_glyph->bbox.p1.y));
- /* XXX: Should be painting the surface from scaled_glyph here, not just a filled rectangle. */
_cairo_output_stream_printf (surface->output,
- "%f %f %f %f re f\r\n",
- _cairo_fixed_to_double (scaled_glyph->bbox.p1.x),
- - _cairo_fixed_to_double (scaled_glyph->bbox.p2.y),
+ "%f 0.0 0.0 %f %f %f cm\r\n",
_cairo_fixed_to_double (scaled_glyph->bbox.p2.x) - _cairo_fixed_to_double (scaled_glyph->bbox.p1.x),
- _cairo_fixed_to_double (scaled_glyph->bbox.p1.y) - _cairo_fixed_to_double (scaled_glyph->bbox.p2.y));
+ _cairo_fixed_to_double (scaled_glyph->bbox.p1.y) - _cairo_fixed_to_double (scaled_glyph->bbox.p2.y),
+ _cairo_fixed_to_double (scaled_glyph->bbox.p1.x),
+ _cairo_fixed_to_double (scaled_glyph->bbox.p2.y));
+
+ _cairo_output_stream_printf (surface->output,
+ "BI\r\n"
+ "/IM true\r\n"
+ "/W %d\r\n"
+ "/H %d\r\n"
+ "/BPC 1\r\n"
+ "/D [1 0]\r\n",
+ image->width,
+ image->height);
+
+ _cairo_output_stream_printf (surface->output,
+ "ID ");
+ bytes_per_row = (image->width + 7) / 8;
+ for (row = image->data, rows = image->height; rows; row += image->stride, rows--) {
+ for (byte = row, cols = (image->width + 7) / 8; cols; byte++, cols--) {
+ unsigned char output_byte = CAIRO_BITSWAP8_IF_LITTLE_ENDIAN (*byte);
+ _cairo_output_stream_write (surface->output, &output_byte, 1);
+ }
+ }
+ _cairo_output_stream_printf (surface->output,
+ "\r\nEI\r\n");
+
+ _cairo_pdf_surface_close_stream (surface);
return CAIRO_STATUS_SUCCESS;
}
@@ -1874,17 +1917,15 @@ _cairo_pdf_surface_emit_glyph (cairo_pdf_surface_t *surface,
{
cairo_status_t status;
- *glyph_ret = _cairo_pdf_surface_open_stream (surface, NULL);
-
- status = _cairo_pdf_surface_emit_outline_glyph_data (surface,
- scaled_font,
- glyph_index);
+ status = _cairo_pdf_surface_emit_outline_glyph (surface,
+ scaled_font,
+ glyph_index,
+ glyph_ret);
if (status == CAIRO_INT_STATUS_UNSUPPORTED)
- status = _cairo_pdf_surface_emit_bitmap_glyph_data (surface,
- scaled_font,
- glyph_index);
-
- _cairo_pdf_surface_close_stream (surface);
+ status = _cairo_pdf_surface_emit_bitmap_glyph (surface,
+ scaled_font,
+ glyph_index,
+ glyph_ret);
if (status)
_cairo_surface_set_error (&surface->base, status);
@@ -2266,7 +2307,7 @@ _pattern_supported (cairo_pattern_t *pattern)
static cairo_bool_t cairo_pdf_force_fallbacks = FALSE;
/**
- * cairo_pdf_test_force_fallbacks
+ * _cairo_pdf_test_force_fallbacks
*
* Force the PDF surface backend to use image fallbacks for every
* operation.
@@ -2278,7 +2319,7 @@ static cairo_bool_t cairo_pdf_force_fallbacks = FALSE;
* </note>
**/
void
-cairo_pdf_test_force_fallbacks (void)
+_cairo_pdf_test_force_fallbacks (void)
{
cairo_pdf_force_fallbacks = TRUE;
}
@@ -2440,14 +2481,8 @@ _cairo_pdf_surface_stroke (void *abstract_surface,
pdf_path_info_t info;
cairo_status_t status;
- if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) {
- /* XXX: Does PDF provide a way we can preserve this hint? For now,
- * this will trigger a fallback. */
- if (antialias == CAIRO_ANTIALIAS_NONE)
- return CAIRO_INT_STATUS_UNSUPPORTED;
-
+ if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE)
return _analyze_operation (surface, op, source);
- }
assert (_operation_supported (surface, op, source));
@@ -2495,14 +2530,8 @@ _cairo_pdf_surface_fill (void *abstract_surface,
cairo_status_t status;
pdf_path_info_t info;
- if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) {
- /* XXX: Does PDF provide a way we can preserve this hint? For now,
- * this will trigger a fallback. */
- if (antialias == CAIRO_ANTIALIAS_NONE)
- return CAIRO_INT_STATUS_UNSUPPORTED;
-
+ if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE)
return _analyze_operation (surface, op, source);
- }
assert (_operation_supported (surface, op, source));
@@ -2539,14 +2568,6 @@ _cairo_pdf_surface_fill (void *abstract_surface,
return status;
}
-static char
-hex_digit (int i)
-{
- i &= 0xf;
- if (i < 10) return '0' + i;
- return 'a' + (i - 10);
-}
-
static cairo_int_status_t
_cairo_pdf_surface_show_glyphs (void *abstract_surface,
cairo_operator_t op,
@@ -2588,15 +2609,14 @@ _cairo_pdf_surface_show_glyphs (void *abstract_surface,
}
_cairo_output_stream_printf (surface->output,
- "%f %f %f %f %f %f Tm <%c%c> Tj\r\n",
+ "%f %f %f %f %f %f Tm <%02x> Tj\r\n",
scaled_font->scale.xx,
scaled_font->scale.yx,
-scaled_font->scale.xy,
-scaled_font->scale.yy,
glyphs[i].x,
glyphs[i].y,
- hex_digit (subset_glyph_index >> 4),
- hex_digit (subset_glyph_index));
+ subset_glyph_index);
}
_cairo_output_stream_printf (surface->output,
diff --git a/src/cairo-pdf-test.h b/src/cairo-pdf-test.h
index 6d0c93c..3d14c9d 100644
--- a/src/cairo-pdf-test.h
+++ b/src/cairo-pdf-test.h
@@ -45,8 +45,8 @@
CAIRO_BEGIN_DECLS
-void
-cairo_pdf_test_force_fallbacks (void);
+cairo_public void
+_cairo_pdf_test_force_fallbacks (void);
CAIRO_END_DECLS
diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c
index 729639e..3856aa2 100644
--- a/src/cairo-ps-surface.c
+++ b/src/cairo-ps-surface.c
@@ -195,12 +195,23 @@ _word_wrap_stream_create (cairo_output_stream_t *output, int max_column)
return &stream->base;
}
+typedef struct _ps_path_info {
+ cairo_ps_surface_t *surface;
+ cairo_output_stream_t *stream;
+ cairo_line_cap_t line_cap;
+ cairo_point_t last_move_to_point;
+ cairo_bool_t has_sub_path;
+} ps_path_info_t;
+
static cairo_status_t
_cairo_ps_surface_path_move_to (void *closure, cairo_point_t *point)
{
- cairo_output_stream_t *output_stream = closure;
+ ps_path_info_t *path_info = closure;
+
+ path_info->last_move_to_point = *point;
+ path_info->has_sub_path = FALSE;
- _cairo_output_stream_printf (output_stream,
+ _cairo_output_stream_printf (path_info->stream,
"%f %f moveto ",
_cairo_fixed_to_double (point->x),
_cairo_fixed_to_double (point->y));
@@ -211,9 +222,19 @@ _cairo_ps_surface_path_move_to (void *closure, cairo_point_t *point)
static cairo_status_t
_cairo_ps_surface_path_line_to (void *closure, cairo_point_t *point)
{
- cairo_output_stream_t *output_stream = closure;
+ ps_path_info_t *path_info = closure;
- _cairo_output_stream_printf (output_stream,
+ if (path_info->line_cap != CAIRO_LINE_CAP_ROUND &&
+ ! path_info->has_sub_path &&
+ point->x == path_info->last_move_to_point.x &&
+ point->y == path_info->last_move_to_point.y)
+ {
+ return CAIRO_STATUS_SUCCESS;
+ }
+
+ path_info->has_sub_path = TRUE;
+
+ _cairo_output_stream_printf (path_info->stream,
"%f %f lineto ",
_cairo_fixed_to_double (point->x),
_cairo_fixed_to_double (point->y));
@@ -227,9 +248,11 @@ _cairo_ps_surface_path_curve_to (void *closure,
cairo_point_t *c,
cairo_point_t *d)
{
- cairo_output_stream_t *output_stream = closure;
+ ps_path_info_t *path_info = closure;
+
+ path_info->has_sub_path = TRUE;
- _cairo_output_stream_printf (output_stream,
+ _cairo_output_stream_printf (path_info->stream,
"%f %f %f %f %f %f curveto ",
_cairo_fixed_to_double (b->x),
_cairo_fixed_to_double (b->y),
@@ -244,30 +267,51 @@ _cairo_ps_surface_path_curve_to (void *closure,
static cairo_status_t
_cairo_ps_surface_path_close_path (void *closure)
{
- cairo_output_stream_t *output_stream = closure;
+ ps_path_info_t *path_info = closure;
- _cairo_output_stream_printf (output_stream,
+ if (path_info->line_cap != CAIRO_LINE_CAP_ROUND &&
+ ! path_info->has_sub_path)
+ {
+ return CAIRO_STATUS_SUCCESS;
+ }
+
+ _cairo_output_stream_printf (path_info->stream,
"closepath\n");
return CAIRO_STATUS_SUCCESS;
}
+/* The line cap value is needed to workaround the fact that PostScript
+ * semnatics for stroking degenerate sub-paths do not match cairo
+ * semantics. (PostScript draws something for any line cap value,
+ * while cairo draws something only for round caps).
+ *
+ * When using this function to emit a path to be filled, rather than
+ * stroked, simply pass CAIRO_LINE_CAP_ROUND which will guarantee that
+ * the stroke workaround will not modify the path being emitted.
+ */
static cairo_status_t
-_cairo_ps_surface_emit_path (cairo_output_stream_t *stream,
- cairo_path_fixed_t *path)
+_cairo_ps_surface_emit_path (cairo_ps_surface_t *surface,
+ cairo_output_stream_t *stream,
+ cairo_path_fixed_t *path,
+ cairo_line_cap_t line_cap)
{
cairo_output_stream_t *word_wrap;
cairo_status_t status;
+ ps_path_info_t path_info;
word_wrap = _word_wrap_stream_create (stream, 79);
+ path_info.surface = surface;
+ path_info.stream = word_wrap;
+ path_info.line_cap = line_cap;
status = _cairo_path_fixed_interpret (path,
CAIRO_DIRECTION_FORWARD,
_cairo_ps_surface_path_move_to,
_cairo_ps_surface_path_line_to,
_cairo_ps_surface_path_curve_to,
_cairo_ps_surface_path_close_path,
- word_wrap);
+ &path_info);
_cairo_output_stream_destroy (word_wrap);
@@ -461,8 +505,11 @@ _cairo_ps_surface_emit_outline_glyph_data (cairo_ps_surface_t *surface,
_cairo_fixed_to_double (scaled_glyph->bbox.p2.x),
-_cairo_fixed_to_double (scaled_glyph->bbox.p1.y));
- status = _cairo_ps_surface_emit_path (surface->final_stream,
- scaled_glyph->path);
+ /* We're filling not stroking, so we pass CAIRO_LINE_CAP_ROUND. */
+ status = _cairo_ps_surface_emit_path (surface,
+ surface->final_stream,
+ scaled_glyph->path,
+ CAIRO_LINE_CAP_ROUND);
_cairo_output_stream_printf (surface->final_stream,
"F\n");
@@ -477,6 +524,9 @@ _cairo_ps_surface_emit_bitmap_glyph_data (cairo_ps_surface_t *surface,
{
cairo_scaled_glyph_t *scaled_glyph;
cairo_status_t status;
+ cairo_image_surface_t *image;
+ unsigned char *row, *byte;
+ int rows, cols, bytes_per_row;
status = _cairo_scaled_glyph_lookup (scaled_font,
glyph_index,
@@ -484,6 +534,9 @@ _cairo_ps_surface_emit_bitmap_glyph_data (cairo_ps_surface_t *surface,
CAIRO_SCALED_GLYPH_INFO_SURFACE,
&scaled_glyph);
+ image = scaled_glyph->surface;
+ assert (image->format == CAIRO_FORMAT_A1);
+
_cairo_output_stream_printf (surface->final_stream,
"0 0 %f %f %f %f setcachedevice\n",
_cairo_fixed_to_double (scaled_glyph->bbox.p1.x),
@@ -491,13 +544,40 @@ _cairo_ps_surface_emit_bitmap_glyph_data (cairo_ps_surface_t *surface,
_cairo_fixed_to_double (scaled_glyph->bbox.p2.x),
- _cairo_fixed_to_double (scaled_glyph->bbox.p1.y));
- /* XXX: Should be painting the surface from scaled_glyph here, not just a filled rectangle. */
_cairo_output_stream_printf (surface->final_stream,
- "%f %f %f %f rectfill\n",
- _cairo_fixed_to_double (scaled_glyph->bbox.p1.x),
- - _cairo_fixed_to_double (scaled_glyph->bbox.p2.y),
- _cairo_fixed_to_double (scaled_glyph->bbox.p2.x) - _cairo_fixed_to_double (scaled_glyph->bbox.p1.x),
- _cairo_fixed_to_double (scaled_glyph->bbox.p1.y) - _cairo_fixed_to_double (scaled_glyph->bbox.p2.y));
+ "<<\n"
+ " /ImageType 1\n"
+ " /Width %d\n"
+ " /Height %d\n"
+ " /ImageMatrix [%f %f %f %f %f %f]\n"
+ " /Decode [1 0]\n"
+ " /BitsPerComponent 1\n",
+ image->width,
+ image->height,
+ image->base.device_transform.xx,
+ image->base.device_transform.yx,
+ image->base.device_transform.xy,
+ image->base.device_transform.yy,
+ image->base.device_transform.x0,
+ - image->base.device_transform.y0);
+
+ _cairo_output_stream_printf (surface->final_stream,
+ " /DataSource {<");
+ bytes_per_row = (image->width + 7) / 8;
+ for (row = image->data, rows = image->height; rows; row += image->stride, rows--) {
+ for (byte = row, cols = (image->width + 7) / 8; cols; byte++, cols--) {
+ unsigned char output_byte = CAIRO_BITSWAP8_IF_LITTLE_ENDIAN (*byte);
+ _cairo_output_stream_printf (surface->final_stream, "%02x ", output_byte);
+ }
+ _cairo_output_stream_printf (surface->final_stream, "\n ");
+ }
+ _cairo_output_stream_printf (surface->final_stream,
+ " >}\n");
+ _cairo_output_stream_printf (surface->final_stream,
+ ">>\n");
+
+ _cairo_output_stream_printf (surface->final_stream,
+ "imagemask\n");
return CAIRO_STATUS_SUCCESS;
}
@@ -715,6 +795,8 @@ _cairo_ps_surface_create_for_stream_internal (cairo_output_stream_t *stream,
* This function always returns a valid pointer, but it will return a
* pointer to a "nil" surface if an error such as out of memory
* occurs. You can use cairo_surface_status() to check for this.
+ *
+ * Since: 1.2
**/
cairo_surface_t *
cairo_ps_surface_create (const char *filename,
@@ -738,13 +820,13 @@ cairo_ps_surface_create (const char *filename,
/**
* cairo_ps_surface_create_for_stream:
- * @write: a #cairo_write_func_t to accept the output data
- * @closure: the closure argument for @write
+ * @write_func: a #cairo_write_func_t to accept the output data
+ * @closure: the closure argument for @write_func
* @width_in_points: width of the surface, in points (1 point == 1/72.0 inch)
* @height_in_points: height of the surface, in points (1 point == 1/72.0 inch)
*
* Creates a PostScript surface of the specified size in points to be
- * written incrementally to the stream represented by @write and
+ * written incrementally to the stream represented by @write_func and
* @closure. See cairo_ps_surface_create() for a more convenient way
* to simply direct the PostScript output to a named file.
*
@@ -758,6 +840,8 @@ cairo_ps_surface_create (const char *filename,
* This function always returns a valid pointer, but it will return a
* pointer to a "nil" surface if an error such as out of memory
* occurs. You can use cairo_surface_status() to check for this.
+ *
+ * Since: 1.2
*/
cairo_surface_t *
cairo_ps_surface_create_for_stream (cairo_write_func_t write_func,
@@ -823,6 +907,8 @@ _extract_ps_surface (cairo_surface_t *surface,
* this is to call this function immediately after creating the
* surface or immediately after completing a page with either
* cairo_show_page() or cairo_copy_page().
+ *
+ * Since: 1.2
**/
void
cairo_ps_surface_set_size (cairo_surface_t *surface,
@@ -909,26 +995,26 @@ cairo_ps_surface_set_size (cairo_surface_t *surface,
*
* <informalexample><programlisting>
* cairo_surface_t *surface = cairo_ps_surface_create (filename, width, height);
- *
+ * ...
* cairo_ps_surface_dsc_comment (surface, "%%Title: My excellent document");
* cairo_ps_surface_dsc_comment (surface, "%%Copyright: Copyright (C) 2006 Cairo Lover")
- *
+ * ...
* cairo_ps_surface_dsc_begin_setup (surface);
* cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaColor White");
- *
+ * ...
* cairo_ps_surface_dsc_begin_page_setup (surface);
* cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A3");
* cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *InputSlot LargeCapacity");
* cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaType Glossy");
* cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaColor Blue");
- *
* ... draw to first page here ..
- *
* cairo_show_page (cr);
- *
+ * ...
* cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A5");
* ...
* </programlisting></informalexample>
+ *
+ * Since: 1.2
**/
void
cairo_ps_surface_dsc_comment (cairo_surface_t *surface,
@@ -983,6 +1069,8 @@ cairo_ps_surface_dsc_comment (cairo_surface_t *surface,
* and before any drawing is performed to the surface.
*
* See cairo_ps_surface_dsc_comment() for more details.
+ *
+ * Since: 1.2
**/
void
cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface)
@@ -1003,7 +1091,7 @@ cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface)
}
/**
- * cairo_ps_surface_dsc_begin_setup:
+ * cairo_ps_surface_dsc_begin_page_setup:
* @surface: a PostScript cairo_surface_t
*
* This function indicates that subsequent calls to
@@ -1016,6 +1104,8 @@ cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface)
* performed to the surface.
*
* See cairo_ps_surface_dsc_comment() for more details.
+ *
+ * Since: 1.2
**/
void
cairo_ps_surface_dsc_begin_page_setup (cairo_surface_t *surface)
@@ -1209,7 +1299,7 @@ pattern_supported (const cairo_pattern_t *pattern)
static cairo_bool_t cairo_ps_force_fallbacks = FALSE;
/**
- * cairo_ps_test_force_fallbacks
+ * _cairo_ps_test_force_fallbacks
*
* Force the PS surface backend to use image fallbacks for every
* operation.
@@ -1221,7 +1311,7 @@ static cairo_bool_t cairo_ps_force_fallbacks = FALSE;
* </note>
**/
void
-cairo_ps_test_force_fallbacks (void)
+_cairo_ps_test_force_fallbacks (void)
{
cairo_ps_force_fallbacks = TRUE;
}
@@ -1303,6 +1393,14 @@ _string_array_stream_write (cairo_output_stream_t *base,
stream->column++;
stream->string_size++;
break;
+ /* Have to also be careful to never split the final ~> sequence. */
+ case '~':
+ _cairo_output_stream_write (stream->output, &c, 1);
+ stream->column++;
+ stream->string_size++;
+ length--;
+ c = *data++;
+ break;
}
_cairo_output_stream_write (stream->output, &c, 1);
stream->column++;
@@ -1384,7 +1482,6 @@ emit_image (cairo_ps_surface_t *surface,
cairo_surface_t *opaque;
cairo_image_surface_t *opaque_image;
cairo_pattern_union_t pattern;
- cairo_matrix_t d2i;
int x, y, i;
cairo_output_stream_t *base85_stream, *string_array_stream;
@@ -1471,12 +1568,6 @@ emit_image (cairo_ps_surface_t *surface,
_cairo_output_stream_printf (surface->stream,
"/%sDataIndex 0 def\n", name);
- /* matrix transforms from user space to image space. We need to
- * transform from device space to image space to compensate for
- * postscripts coordinate system. */
- cairo_matrix_init (&d2i, 1, 0, 0, 1, 0, 0);
- cairo_matrix_multiply (&d2i, &d2i, matrix);
-
_cairo_output_stream_printf (surface->stream,
"/%s {\n"
" /DeviceRGB setcolorspace\n"
@@ -1499,9 +1590,9 @@ emit_image (cairo_ps_surface_t *surface,
opaque_image->width,
opaque_image->height,
name, name, name, name, name, name, name,
- d2i.xx, d2i.yx,
- d2i.xy, d2i.yy,
- d2i.x0, d2i.y0);
+ matrix->xx, matrix->yx,
+ matrix->xy, matrix->yy,
+ 0.0, 0.0);
status = CAIRO_STATUS_SUCCESS;
@@ -1533,7 +1624,8 @@ emit_solid_pattern (cairo_ps_surface_t *surface,
static void
emit_surface_pattern (cairo_ps_surface_t *surface,
- cairo_surface_pattern_t *pattern)
+ cairo_surface_pattern_t *pattern,
+ double x, double y)
{
cairo_rectangle_int16_t extents;
@@ -1547,17 +1639,25 @@ emit_surface_pattern (cairo_ps_surface_t *surface,
cairo_image_surface_t *image;
void *image_extra;
cairo_status_t status;
+ cairo_matrix_t inverse = pattern->base.matrix;
+
+ cairo_matrix_invert (&inverse);
status = _cairo_surface_acquire_source_image (pattern->surface,
&image,
&image_extra);
- _cairo_surface_get_extents (&image->base, &extents);
assert (status == CAIRO_STATUS_SUCCESS);
+
+ _cairo_pattern_get_extents (&pattern->base, &extents);
+
emit_image (surface, image, &pattern->base.matrix, "MyPattern");
_cairo_surface_release_source_image (pattern->surface, image,
image_extra);
}
_cairo_output_stream_printf (surface->stream,
+ "%f %f translate\n",
+ x, y);
+ _cairo_output_stream_printf (surface->stream,
"<< /PatternType 1\n"
" /PaintType 1\n"
" /TilingType 1\n");
@@ -1570,6 +1670,9 @@ emit_surface_pattern (cairo_ps_surface_t *surface,
_cairo_output_stream_printf (surface->stream,
" /PaintProc { MyPattern } bind\n"
">> matrix makepattern setpattern\n");
+ _cairo_output_stream_printf (surface->stream,
+ "-%f -%f translate\n",
+ x, y);
}
static void
@@ -1587,7 +1690,8 @@ emit_radial_pattern (cairo_ps_surface_t *surface,
}
static void
-emit_pattern (cairo_ps_surface_t *surface, cairo_pattern_t *pattern)
+emit_pattern (cairo_ps_surface_t *surface, cairo_pattern_t *pattern,
+ double x, double y)
{
/* FIXME: We should keep track of what pattern is currently set in
* the postscript file and only emit code if we're setting a
@@ -1599,7 +1703,7 @@ emit_pattern (cairo_ps_surface_t *surface, cairo_pattern_t *pattern)
break;
case CAIRO_PATTERN_TYPE_SURFACE:
- emit_surface_pattern (surface, (cairo_surface_pattern_t *) pattern);
+ emit_surface_pattern (surface, (cairo_surface_pattern_t *) pattern, x, y);
break;
case CAIRO_PATTERN_TYPE_LINEAR:
@@ -1635,7 +1739,9 @@ _cairo_ps_surface_intersect_clip_path (void *abstract_surface,
return CAIRO_STATUS_SUCCESS;
}
- status = _cairo_ps_surface_emit_path (stream, path);
+ /* We're "filling" not stroking, so we pass CAIRO_LINE_CAP_ROUND. */
+ status = _cairo_ps_surface_emit_path (surface, stream, path,
+ CAIRO_LINE_CAP_ROUND);
switch (fill_rule) {
case CAIRO_FILL_RULE_WINDING:
@@ -1691,6 +1797,7 @@ _cairo_ps_surface_paint (void *abstract_surface,
{
cairo_ps_surface_t *surface = abstract_surface;
cairo_output_stream_t *stream = surface->stream;
+ cairo_rectangle_int16_t extents;
if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE)
return _analyze_operation (surface, op, source);
@@ -1708,13 +1815,21 @@ _cairo_ps_surface_paint (void *abstract_surface,
_cairo_output_stream_printf (stream,
"%% _cairo_ps_surface_paint\n");
- emit_pattern (surface, source);
-
- _cairo_output_stream_printf (stream, "0 0 M\n");
- _cairo_output_stream_printf (stream, "%f 0 L\n", surface->width);
- _cairo_output_stream_printf (stream, "%f %f L\n",
- surface->width, surface->height);
- _cairo_output_stream_printf (stream, "0 %f L\n", surface->height);
+ _cairo_pattern_get_extents (source, &extents);
+
+ emit_pattern (surface, source, extents.x, extents.y);
+
+ _cairo_output_stream_printf (stream, "%d %d M\n",
+ extents.x, extents.y);
+ _cairo_output_stream_printf (stream, "%d %d L\n",
+ extents.x + extents.width,
+ extents.y);
+ _cairo_output_stream_printf (stream, "%d %d L\n",
+ extents.x + extents.width,
+ extents.y + extents.height);
+ _cairo_output_stream_printf (stream, "%d %d L\n",
+ extents.x,
+ extents.y + extents.height);
_cairo_output_stream_printf (stream, "P F\n");
return CAIRO_STATUS_SUCCESS;
}
@@ -1765,20 +1880,88 @@ _cairo_ps_surface_stroke (void *abstract_surface,
cairo_ps_surface_t *surface = abstract_surface;
cairo_output_stream_t *stream = surface->stream;
cairo_int_status_t status;
+ double *dash = style->dash;
+ int num_dashes = style->num_dashes;
+ double dash_offset = style->dash_offset;
if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE)
return _analyze_operation (surface, op, source);
assert (operation_supported (surface, op, source));
+
_cairo_output_stream_printf (stream,
"%% _cairo_ps_surface_stroke\n");
- emit_pattern (surface, source);
+ /* PostScript has "special needs" when it comes to zero-length
+ * dash segments with butt caps. It apparently (at least
+ * according to ghostscript) draws hairlines for this
+ * case. That's not what the cairo semantics want, so we first
+ * touch up the array to eliminate any 0.0 values that will
+ * result in "on" segments.
+ */
+ if (num_dashes && style->line_cap == CAIRO_LINE_CAP_BUTT) {
+ int i;
+
+ /* If there's an odd number of dash values they will each get
+ * interpreted as both on and off. So we first explicitly
+ * expand the array to remove the duplicate usage so that we
+ * can modify some of the values.
+ */
+ if (num_dashes % 2) {
+ dash = malloc (2 * num_dashes * sizeof (double));
+ if (dash == NULL)
+ return CAIRO_STATUS_NO_MEMORY;
+
+ memcpy (dash, style->dash, num_dashes * sizeof (double));
+ memcpy (dash + num_dashes, style->dash, num_dashes * sizeof (double));
+
+ num_dashes *= 2;
+ }
+
+ for (i = 0; i < num_dashes; i += 2) {
+ if (dash[i] == 0.0) {
+ /* If we're at the front of the list, we first rotate
+ * two elements from the end of the list to the front
+ * of the list before folding away the 0.0. Or, if
+ * there are only two dash elements, then there is
+ * nothing at all to draw.
+ */
+ if (i == 0) {
+ double last_two[2];
+
+ if (num_dashes == 2) {
+ if (dash != style->dash)
+ free (dash);
+ return CAIRO_STATUS_SUCCESS;
+ }
+ /* The cases of num_dashes == 0, 1, or 3 elements
+ * cannot exist, so the rotation of 2 elements
+ * will always be safe */
+ memcpy (last_two, dash + num_dashes - 2, sizeof (last_two));
+ memmove (dash + 2, dash, (num_dashes - 2) * sizeof (double));
+ memcpy (dash, last_two, sizeof (last_two));
+ dash_offset += dash[0] + dash[1];
+ i = 2;
+ }
+ dash[i-1] += dash[i+1];
+ num_dashes -= 2;
+ memmove (dash + i, dash + i + 2, (num_dashes - i) * sizeof (double));
+ /* If we might have just rotated, it's possible that
+ * we rotated a 0.0 value to the front of the list.
+ * Set i to -2 so it will get incremented to 0. */
+ if (i == 2)
+ i = -2;
+ }
+ }
+ }
+
+ emit_pattern (surface, source, 0, 0);
_cairo_output_stream_printf (stream,
"gsave\n");
- status = _cairo_ps_surface_emit_path (stream, path);
+ status = _cairo_ps_surface_emit_path (surface, stream, path,
+ style->line_cap);
/*
* Switch to user space to set line parameters
@@ -1796,14 +1979,18 @@ _cairo_ps_surface_stroke (void *abstract_surface,
_cairo_output_stream_printf (stream, "%d setlinejoin\n",
_cairo_ps_line_join (style->line_join));
/* dashes */
- if (style->num_dashes) {
+ if (num_dashes) {
int d;
+
_cairo_output_stream_printf (stream, "[");
- for (d = 0; d < style->num_dashes; d++)
- _cairo_output_stream_printf (stream, " %f", style->dash[d]);
+ for (d = 0; d < num_dashes; d++)
+ _cairo_output_stream_printf (stream, " %f", dash[d]);
_cairo_output_stream_printf (stream, "] %f setdash\n",
- style->dash_offset);
+ dash_offset);
}
+ if (dash != style->dash)
+ free (dash);
+
/* miter limit */
_cairo_output_stream_printf (stream, "%f setmiterlimit\n",
style->miter_limit);
@@ -1836,9 +2023,11 @@ _cairo_ps_surface_fill (void *abstract_surface,
_cairo_output_stream_printf (stream,
"%% _cairo_ps_surface_fill\n");
- emit_pattern (surface, source);
+ emit_pattern (surface, source, 0, 0);
- status = _cairo_ps_surface_emit_path (stream, path);
+ /* We're filling not stroking, so we pass CAIRO_LINE_CAP_ROUND. */
+ status = _cairo_ps_surface_emit_path (surface, stream, path,
+ CAIRO_LINE_CAP_ROUND);
switch (fill_rule) {
case CAIRO_FILL_RULE_WINDING:
@@ -1857,14 +2046,6 @@ _cairo_ps_surface_fill (void *abstract_surface,
return status;
}
-static char
-hex_digit (int i)
-{
- i &= 0xf;
- if (i < 10) return '0' + i;
- return 'a' + (i - 10);
-}
-
static cairo_int_status_t
_cairo_ps_surface_show_glyphs (void *abstract_surface,
cairo_operator_t op,
@@ -1889,7 +2070,7 @@ _cairo_ps_surface_show_glyphs (void *abstract_surface,
"%% _cairo_ps_surface_show_glyphs\n");
if (num_glyphs)
- emit_pattern (surface, source);
+ emit_pattern (surface, source, 0, 0);
for (i = 0; i < num_glyphs; i++) {
status = _cairo_scaled_font_subsets_map_glyph (surface->font_subsets,
@@ -1913,10 +2094,9 @@ _cairo_ps_surface_show_glyphs (void *abstract_surface,
}
_cairo_output_stream_printf (surface->stream,
- "%f %f M <%c%c> S\n",
+ "%f %f M <%02x> S\n",
glyphs[i].x, glyphs[i].y,
- hex_digit (subset_glyph_index >> 4),
- hex_digit (subset_glyph_index));
+ subset_glyph_index);
}
return _cairo_output_stream_get_status (surface->stream);
diff --git a/src/cairo-ps-test.h b/src/cairo-ps-test.h
index 724ca46..5d49ece 100644
--- a/src/cairo-ps-test.h
+++ b/src/cairo-ps-test.h
@@ -45,8 +45,8 @@
CAIRO_BEGIN_DECLS
-void
-cairo_ps_test_force_fallbacks (void);
+cairo_public void
+_cairo_ps_test_force_fallbacks (void);
CAIRO_END_DECLS
diff --git a/src/cairo-features.h.in b/src/cairo-scaled-font-test.h
index 4b845bf..0304078 100644
--- a/src/cairo-features.h.in
+++ b/src/cairo-scaled-font-test.h
@@ -1,6 +1,6 @@
/* cairo - a vector graphics library with display and print output
*
- * Copyright © 2003 University of Southern California
+ * Copyright © 2006 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
@@ -34,53 +34,16 @@
* Carl D. Worth <cworth@cworth.org>
*/
-#ifndef CAIRO_FEATURES_H
-#define CAIRO_FEATURES_H
+#ifndef CAIRO_SCALED_FONT_TEST_H
+#define CAIRO_SCALED_FONT_TEST_H
-#ifdef __cplusplus
-# define CAIRO_BEGIN_DECLS extern "C" {
-# define CAIRO_END_DECLS }
-#else
-# define CAIRO_BEGIN_DECLS
-# define CAIRO_END_DECLS
-#endif
+#include <cairo.h>
-#ifndef cairo_public
-# define cairo_public
-#endif
+CAIRO_BEGIN_DECLS
-#define CAIRO_VERSION_MAJOR @CAIRO_VERSION_MAJOR@
-#define CAIRO_VERSION_MINOR @CAIRO_VERSION_MINOR@
-#define CAIRO_VERSION_MICRO @CAIRO_VERSION_MICRO@
+cairo_public void
+_cairo_scaled_font_test_set_max_glyphs_cached_per_font (int max);
-#define CAIRO_VERSION_STRING "@CAIRO_VERSION_MAJOR@.@CAIRO_VERSION_MINOR@.@CAIRO_VERSION_MICRO@"
+CAIRO_END_DECLS
-@PS_SURFACE_FEATURE@
-
-@PDF_SURFACE_FEATURE@
-
-@SVG_SURFACE_FEATURE@
-
-@XLIB_SURFACE_FEATURE@
-
-@QUARTZ_SURFACE_FEATURE@
-
-@XCB_SURFACE_FEATURE@
-
-@WIN32_SURFACE_FEATURE@
-
-@BEOS_SURFACE_FEATURE@
-
-@GLITZ_SURFACE_FEATURE@
-
-@DIRECTFB_SURFACE_FEATURE@
-
-@FT_FONT_FEATURE@
-
-@WIN32_FONT_FEATURE@
-
-@ATSUI_FONT_FEATURE@
-
-@PNG_FUNCTIONS_FEATURE@
-
-#endif
+#endif /* CAIRO_SCALED_FONT_TEST_H */
diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c
index c614d81..491189f 100644
--- a/src/cairo-scaled-font.c
+++ b/src/cairo-scaled-font.c
@@ -37,6 +37,7 @@
*/
#include "cairoint.h"
+#include "cairo-scaled-font-test.h"
static cairo_bool_t
_cairo_scaled_glyph_keys_equal (const void *abstract_key_a, const void *abstract_key_b)
@@ -123,6 +124,8 @@ _cairo_scaled_font_set_error (cairo_scaled_font_t *scaled_font,
* @scaled_font: a #cairo_scaled_font_t
*
* Return value: The type of @scaled_font. See #cairo_font_type_t.
+ *
+ * Since: 1.2
**/
cairo_font_type_t
cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font)
@@ -313,6 +316,20 @@ _cairo_scaled_font_keys_equal (const void *abstract_key_a, const void *abstract_
cairo_font_options_equal (&key_a->options, &key_b->options));
}
+/* XXX: This 256 number is arbitary---we've never done any measurement
+ * of this. In fact, having a per-font glyph caches each managed
+ * separately is probably not waht we want anyway. Would probably be
+ * much better to have a single cache for glyphs with random
+ * replacement across all glyphs of all fonts. */
+static int max_glyphs_cached_per_font = 256;
+
+/* For internal testing purposes only. Not part of the supported API. */
+void
+_cairo_scaled_font_test_set_max_glyphs_cached_per_font (int max)
+{
+ max_glyphs_cached_per_font = max;
+}
+
/*
* Basic cairo_scaled_font_t object management
*/
@@ -338,7 +355,7 @@ _cairo_scaled_font_init (cairo_scaled_font_t *scaled_font,
scaled_font->glyphs = _cairo_cache_create (_cairo_scaled_glyph_keys_equal,
_cairo_scaled_glyph_destroy,
- 256);
+ max_glyphs_cached_per_font);
scaled_font->surface_backend = NULL;
scaled_font->surface_private = NULL;
@@ -349,6 +366,18 @@ _cairo_scaled_font_init (cairo_scaled_font_t *scaled_font,
}
void
+_cairo_scaled_font_freeze_cache (cairo_scaled_font_t *scaled_font)
+{
+ _cairo_cache_freeze (scaled_font->glyphs);
+}
+
+void
+_cairo_scaled_font_thaw_cache (cairo_scaled_font_t *scaled_font)
+{
+ _cairo_cache_thaw (scaled_font->glyphs);
+}
+
+void
_cairo_scaled_font_set_metrics (cairo_scaled_font_t *scaled_font,
cairo_font_extents_t *fs_metrics)
{
@@ -616,6 +645,8 @@ cairo_scaled_font_extents (cairo_scaled_font_t *scaled_font,
* characters. In particular, trailing whitespace characters are
* likely to not affect the size of the rectangle, though they will
* affect the x_advance and y_advance values.
+ *
+ * Since: 1.2
**/
void
cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font,
@@ -1269,6 +1300,8 @@ _cairo_scaled_glyph_lookup (cairo_scaled_font_t *scaled_font,
*
* Return value: The #cairo_font_face_t with which @scaled_font was
* created.
+ *
+ * Since: 1.2
**/
cairo_font_face_t *
cairo_scaled_font_get_font_face (cairo_scaled_font_t *scaled_font)
@@ -1286,6 +1319,8 @@ cairo_scaled_font_get_font_face (cairo_scaled_font_t *scaled_font)
*
* Stores the font matrix with which @scaled_font was created into
* @matrix.
+ *
+ * Since: 1.2
**/
void
cairo_scaled_font_get_font_matrix (cairo_scaled_font_t *scaled_font,
@@ -1305,6 +1340,8 @@ cairo_scaled_font_get_font_matrix (cairo_scaled_font_t *scaled_font,
* @ctm: return value for the CTM
*
* Stores the CTM with which @scaled_font was created into @ctm.
+ *
+ * Since: 1.2
**/
void
cairo_scaled_font_get_ctm (cairo_scaled_font_t *scaled_font,
@@ -1325,6 +1362,8 @@ cairo_scaled_font_get_ctm (cairo_scaled_font_t *scaled_font,
*
* Stores the font options with which @scaled_font was created into
* @ctm.
+ *
+ * Since: 1.2
**/
void
cairo_scaled_font_get_font_options (cairo_scaled_font_t *scaled_font,
diff --git a/src/cairo-surface-fallback.c b/src/cairo-surface-fallback.c
index 5f7607a..090da70 100644
--- a/src/cairo-surface-fallback.c
+++ b/src/cairo-surface-fallback.c
@@ -991,6 +991,7 @@ _cairo_surface_fallback_snapshot (cairo_surface_t *surface)
image, &image_extra);
snapshot->device_transform = surface->device_transform;
+ snapshot->device_transform_inverse = surface->device_transform_inverse;
snapshot->is_snapshot = TRUE;
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index b7d0e75..66f7a46 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -57,6 +57,10 @@ const cairo_surface_t _cairo_surface_nil = {
0.0, 1.0,
0.0, 0.0
}, /* device_transform */
+ { 1.0, 0.0,
+ 0.0, 1.0,
+ 0.0, 0.0
+ }, /* device_transform_inverse */
0.0, /* x_fallback_resolution */
0.0, /* y_fallback_resolution */
0, /* next_clip_serial */
@@ -79,6 +83,10 @@ const cairo_surface_t _cairo_surface_nil_file_not_found = {
0.0, 1.0,
0.0, 0.0
}, /* device_transform */
+ { 1.0, 0.0,
+ 0.0, 1.0,
+ 0.0, 0.0
+ }, /* device_transform_inverse */
0.0, /* x_fallback_resolution */
0.0, /* y_fallback_resolution */
0, /* next_clip_serial */
@@ -101,6 +109,10 @@ const cairo_surface_t _cairo_surface_nil_read_error = {
0.0, 1.0,
0.0, 0.0
}, /* device_transform */
+ { 1.0, 0.0,
+ 0.0, 1.0,
+ 0.0, 0.0
+ }, /* device_transform_inverse */
0.0, /* x_fallback_resolution */
0.0, /* y_fallback_resolution */
0, /* next_clip_serial */
@@ -146,6 +158,8 @@ _cairo_surface_set_error (cairo_surface_t *surface,
* @surface: a #cairo_surface_t
*
* Return value: The type of @surface. See #cairo_surface_type_t.
+ *
+ * Since: 1.2
**/
cairo_surface_type_t
cairo_surface_get_type (cairo_surface_t *surface)
@@ -164,6 +178,8 @@ cairo_surface_get_type (cairo_surface_t *surface)
* Return value: The content type of @surface which indicates whether
* the surface contains color and/or alpha information. See
* #cairo_content_t.
+ *
+ * Since: 1.2
**/
cairo_content_t
cairo_surface_get_content (cairo_surface_t *surface)
@@ -208,6 +224,7 @@ _cairo_surface_init (cairo_surface_t *surface,
_cairo_user_data_array_init (&surface->user_data);
cairo_matrix_init_identity (&surface->device_transform);
+ cairo_matrix_init_identity (&surface->device_transform_inverse);
surface->x_fallback_resolution = CAIRO_SURFACE_FALLBACK_RESOLUTION_DEFAULT;
surface->y_fallback_resolution = CAIRO_SURFACE_FALLBACK_RESOLUTION_DEFAULT;
@@ -247,6 +264,8 @@ _cairo_surface_create_similar_scratch (cairo_surface_t *other,
* existing surface. The new surface will use the same backend as
* @other unless that is not possible for some reason. The type of the
* returned surface may be examined with cairo_surface_get_type().
+ * Initially the surface contents are all 0 (transparent if contents
+ * have transparency, black otherwise.)
*
* Return value: a pointer to the newly allocated surface. The caller
* owns the surface and should call cairo_surface_destroy when done
@@ -649,6 +668,9 @@ _cairo_surface_set_device_scale (cairo_surface_t *surface,
surface->device_transform.xx = sx;
surface->device_transform.yy = sy;
+
+ surface->device_transform_inverse.xx = 1.0 / sx;
+ surface->device_transform_inverse.yy = 1.0 / sy;
}
/**
@@ -686,6 +708,9 @@ cairo_surface_set_device_offset (cairo_surface_t *surface,
surface->device_transform.x0 = x_offset;
surface->device_transform.y0 = y_offset;
+
+ surface->device_transform_inverse.x0 = - x_offset;
+ surface->device_transform_inverse.y0 = - y_offset;
}
/**
@@ -694,9 +719,10 @@ cairo_surface_set_device_offset (cairo_surface_t *surface,
* @x_offset: the offset in the X direction, in device units
* @y_offset: the offset in the Y direction, in device units
*
- * Returns a previous device offset set by
+ * This function returns the previous device offset set by
* cairo_surface_set_device_offset().
*
+ * Since: 1.2
**/
void
cairo_surface_get_device_offset (cairo_surface_t *surface,
@@ -734,6 +760,8 @@ cairo_surface_get_device_offset (cairo_surface_t *surface,
* completing a page (with cairo_show_page() or cairo_copy_page()) so
* there is currently no way to have more than one fallback resolution
* in effect on a single page.
+ *
+ * Since: 1.2
**/
void
cairo_surface_set_fallback_resolution (cairo_surface_t *surface,
@@ -743,13 +771,6 @@ cairo_surface_set_fallback_resolution (cairo_surface_t *surface,
surface->x_fallback_resolution = x_pixels_per_inch;
surface->y_fallback_resolution = y_pixels_per_inch;
}
-/* XXX: Add symbols for old, deprecated names to eas GTK+ migration
- * pain. This is a transition strategy for prior to 1.2. These
- * aliases should be dropped before the major release.
- */
-CAIRO_FUNCTION_ALIAS(cairo_pdf_surface_set_dpi, cairo_surface_set_fallback_resolution);
-CAIRO_FUNCTION_ALIAS(cairo_ps_surface_set_dpi, cairo_surface_set_fallback_resolution);
-CAIRO_FUNCTION_ALIAS(cairo_svg_surface_set_dpi, cairo_surface_set_fallback_resolution);
cairo_bool_t
_cairo_surface_has_device_transform (cairo_surface_t *surface)
@@ -1157,6 +1178,12 @@ _cairo_surface_paint (cairo_surface_t *surface,
assert (! surface->is_snapshot);
+ if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
+ (source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
+ {
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
_cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
if (surface->backend->paint) {
@@ -1185,6 +1212,12 @@ _cairo_surface_mask (cairo_surface_t *surface,
assert (! surface->is_snapshot);
+ if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
+ (source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
+ {
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
_cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
_cairo_surface_copy_pattern_for_destination (mask, surface, &dev_mask.base);
@@ -1223,26 +1256,17 @@ _cairo_surface_stroke (cairo_surface_t *surface,
assert (! surface->is_snapshot);
- _cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
-
- if (_cairo_surface_has_device_transform (surface))
+ if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
+ (source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
{
- cairo_matrix_t tmp;
- _cairo_path_fixed_init_copy (&real_dev_path, path);
- _cairo_path_fixed_device_transform (&real_dev_path,
- &surface->device_transform);
- dev_path = &real_dev_path;
-
- cairo_matrix_multiply (&dev_ctm, &dev_ctm, &surface->device_transform);
- tmp = surface->device_transform;
- status = cairo_matrix_invert (&tmp);
- assert (status == CAIRO_STATUS_SUCCESS);
- cairo_matrix_multiply (&dev_ctm_inverse, &tmp, &dev_ctm_inverse);
+ return CAIRO_STATUS_NO_MEMORY;
}
+ _cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
+
if (surface->backend->stroke) {
status = surface->backend->stroke (surface, op, &dev_source.base,
- dev_path, stroke_style,
+ path, stroke_style,
&dev_ctm, &dev_ctm_inverse,
tolerance, antialias);
@@ -1251,7 +1275,7 @@ _cairo_surface_stroke (cairo_surface_t *surface,
}
status = _cairo_surface_fallback_stroke (surface, op, &dev_source.base,
- dev_path, stroke_style,
+ path, stroke_style,
&dev_ctm, &dev_ctm_inverse,
tolerance, antialias);
@@ -1274,24 +1298,20 @@ _cairo_surface_fill (cairo_surface_t *surface,
{
cairo_status_t status;
cairo_pattern_union_t dev_source;
- cairo_path_fixed_t *dev_path = path;
- cairo_path_fixed_t real_dev_path;
assert (! surface->is_snapshot);
- _cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
-
- if (_cairo_surface_has_device_transform (surface))
+ if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
+ (source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
{
- _cairo_path_fixed_init_copy (&real_dev_path, path);
- _cairo_path_fixed_device_transform (&real_dev_path,
- &surface->device_transform);
- dev_path = &real_dev_path;
+ return CAIRO_STATUS_NO_MEMORY;
}
+ _cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
+
if (surface->backend->fill) {
status = surface->backend->fill (surface, op, &dev_source.base,
- dev_path, fill_rule,
+ path, fill_rule,
tolerance, antialias);
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
@@ -1299,12 +1319,10 @@ _cairo_surface_fill (cairo_surface_t *surface,
}
status = _cairo_surface_fallback_fill (surface, op, &dev_source.base,
- dev_path, fill_rule,
+ path, fill_rule,
tolerance, antialias);
FINISH:
- if (dev_path == &real_dev_path)
- _cairo_path_fixed_fini (&real_dev_path);
_cairo_pattern_fini (&dev_source.base);
return status;
@@ -1647,37 +1665,32 @@ _cairo_surface_set_clip (cairo_surface_t *surface, cairo_clip_t *clip)
* possibly be recorded, in otherwords, it is the maximum extent of
* potentially usable coordinates.
*
- * For simple pixel-based surfaces, it can be a close bound on the
- * retained pixel region.
- *
* For vector surfaces, (PDF, PS, SVG and meta-surfaces), the surface
* might be conceived as unbounded, but we force the user to provide a
- * maximum size at the time of surface_create.
+ * maximum size at the time of surface_create. So get_extents uses
+ * that size.
+ *
+ * NOTE: The coordinates returned are in "backend" space rather than
+ * "surface" space. That is, they are relative to the true (0,0)
+ * origin rather than the device_transform origin. This might seem a
+ * bit inconsistent with other cairo_surface interfaces, but all
+ * current callers are within the surface layer where backend space is
+ * desired.
+ *
+ * This behavior would have to be changed is we ever exported a public
+ * variant of this function.
*/
-
cairo_status_t
_cairo_surface_get_extents (cairo_surface_t *surface,
cairo_rectangle_int16_t *rectangle)
{
- cairo_status_t status;
-
if (surface->status)
return surface->status;
if (surface->finished)
return CAIRO_STATUS_SURFACE_FINISHED;
- status = surface->backend->get_extents (surface, rectangle);
-
- /* XXX: FRAGILE: This code is currently ignoring any scaling in
- * the device_transform. This will almost certainly need to be
- * changed for device_transform scaling will work. */
- rectangle->x = rectangle->x + surface->device_transform.x0;
- rectangle->y = rectangle->y + surface->device_transform.y0;
- rectangle->width = rectangle->width - surface->device_transform.x0;
- rectangle->height = rectangle->height - surface->device_transform.y0;
-
- return status;
+ return surface->backend->get_extents (surface, rectangle);
}
cairo_status_t
@@ -1695,6 +1708,12 @@ _cairo_surface_show_glyphs (cairo_surface_t *surface,
assert (! surface->is_snapshot);
+ if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
+ (source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
+ {
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
_cairo_surface_copy_pattern_for_destination (source,
surface,
&dev_source.base);
diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c
index 9a3bda4..b391506 100644
--- a/src/cairo-svg-surface.c
+++ b/src/cairo-svg-surface.c
@@ -53,12 +53,14 @@ typedef struct cairo_svg_surface cairo_svg_surface_t;
static const int invalid_pattern_id = -1;
-static const cairo_svg_version_t _cairo_svg_versions[CAIRO_SVG_VERSION_LAST] =
+static const cairo_svg_version_t _cairo_svg_versions[] =
{
CAIRO_SVG_VERSION_1_1,
CAIRO_SVG_VERSION_1_2
};
+#define CAIRO_SVG_VERSION_LAST ((int)(sizeof (_cairo_svg_versions) / sizeof (_cairo_svg_versions[0])))
+
static const char * _cairo_svg_version_strings[CAIRO_SVG_VERSION_LAST] =
{
"SVG 1.1",
@@ -156,13 +158,13 @@ static const cairo_paginated_surface_backend_t cairo_svg_surface_paginated_backe
/**
* cairo_svg_surface_create_for_stream:
- * @write: a #cairo_write_func_t to accept the output data
- * @closure: the closure argument for @write
+ * @write_func: a #cairo_write_func_t to accept the output data
+ * @closure: the closure argument for @write_func
* @width_in_points: width of the surface, in points (1 point == 1/72.0 inch)
* @height_in_points: height of the surface, in points (1 point == 1/72.0 inch)
*
* Creates a SVG surface of the specified size in points to be written
- * incrementally to the stream represented by @write and @closure.
+ * incrementally to the stream represented by @write_func and @closure.
*
* Return value: a pointer to the newly created surface. The caller
* owns the surface and should call cairo_surface_destroy when done
@@ -171,9 +173,11 @@ static const cairo_paginated_surface_backend_t cairo_svg_surface_paginated_backe
* This function always returns a valid pointer, but it will return a
* pointer to a "nil" surface if an error such as out of memory
* occurs. You can use cairo_surface_status() to check for this.
+ *
+ * Since: 1.2
*/
cairo_surface_t *
-cairo_svg_surface_create_for_stream (cairo_write_func_t write,
+cairo_svg_surface_create_for_stream (cairo_write_func_t write_func,
void *closure,
double width,
double height)
@@ -181,7 +185,7 @@ cairo_svg_surface_create_for_stream (cairo_write_func_t write,
cairo_status_t status;
cairo_output_stream_t *stream;
- stream = _cairo_output_stream_create (write, NULL, closure);
+ stream = _cairo_output_stream_create (write_func, NULL, closure);
status = _cairo_output_stream_get_status (stream);
if (status) {
_cairo_error (status);
@@ -207,8 +211,9 @@ cairo_svg_surface_create_for_stream (cairo_write_func_t write,
* This function always returns a valid pointer, but it will return a
* pointer to a "nil" surface if an error such as out of memory
* occurs. You can use cairo_surface_status() to check for this.
+ *
+ * Since: 1.2
**/
-
cairo_surface_t *
cairo_svg_surface_create (const char *filename,
double width,
@@ -268,9 +273,10 @@ _extract_svg_surface (cairo_surface_t *surface,
* have been performed on the given surface. The simplest way to do
* this is to call this function immediately after creating the
* surface.
+ *
+ * Since: 1.2
**/
-
-cairo_public void
+void
cairo_svg_surface_restrict_to_version (cairo_surface_t *abstract_surface,
cairo_svg_version_t version)
{
@@ -290,14 +296,15 @@ cairo_svg_surface_restrict_to_version (cairo_surface_t *abstract_surface,
/**
* cairo_svg_get_versions:
- * @version: supported version list
+ * @versions: supported version list
* @num_versions: list length
*
- * Returns the list of supported versions. See
+ * Used to retrieve the list of supported versions. See
* cairo_svg_surface_restrict_to_version().
+ *
+ * Since: 1.2
**/
-
-cairo_public void
+void
cairo_svg_get_versions (cairo_svg_version_t const **versions,
int *num_versions)
{
@@ -312,12 +319,15 @@ cairo_svg_get_versions (cairo_svg_version_t const **versions,
* cairo_svg_version_to_string:
* @version: a version id
*
- * Returns the string associated to given @version. This function
+ * Get the string representation of the given @version id. This function
* will return NULL if @version isn't valid. See cairo_svg_get_versions()
* for a way to get the list of valid version ids.
+ *
+ * Return value: the string associated to given version.
+ *
+ * Since: 1.2
**/
-
-cairo_public const char *
+const char *
cairo_svg_version_to_string (cairo_svg_version_t version)
{
if (version < 0 || version >= CAIRO_SVG_VERSION_LAST)
@@ -403,6 +413,21 @@ _cairo_svg_surface_create_for_stream_internal (cairo_output_stream_t *stream,
return surface;
}
+static void
+emit_transform (cairo_output_stream_t *output,
+ char const *attribute_str,
+ char const *trailer,
+ cairo_matrix_t *matrix)
+{
+ _cairo_output_stream_printf (output,
+ "%s=\"matrix(%f,%f,%f,%f,%f,%f)\"%s",
+ attribute_str,
+ matrix->xx, matrix->yx,
+ matrix->xy, matrix->yy,
+ matrix->x0, matrix->y0,
+ trailer);
+}
+
typedef struct
{
cairo_output_stream_t *output;
@@ -501,44 +526,99 @@ emit_path (cairo_output_stream_t *output,
return status;
}
-static void
-_cairo_svg_document_emit_glyph (cairo_svg_document_t *document,
- cairo_scaled_font_t *scaled_font,
- unsigned long scaled_font_glyph_index,
- unsigned int font_id,
- unsigned int subset_glyph_index)
+static cairo_int_status_t
+_cairo_svg_document_emit_outline_glyph_data (cairo_svg_document_t *document,
+ cairo_scaled_font_t *scaled_font,
+ unsigned long glyph_index)
{
- cairo_scaled_glyph_t *scaled_glyph;
- cairo_status_t status;
+ cairo_scaled_glyph_t *scaled_glyph;
+ cairo_int_status_t status;
status = _cairo_scaled_glyph_lookup (scaled_font,
- scaled_font_glyph_index,
+ glyph_index,
CAIRO_SCALED_GLYPH_INFO_METRICS|
CAIRO_SCALED_GLYPH_INFO_PATH,
&scaled_glyph);
- /*
- * If that fails, try again but ask for an image instead
- */
if (status)
- status = _cairo_scaled_glyph_lookup (scaled_font,
- scaled_font_glyph_index,
- CAIRO_SCALED_GLYPH_INFO_METRICS|
- CAIRO_SCALED_GLYPH_INFO_SURFACE,
- &scaled_glyph);
- if (status) {
- _cairo_surface_set_error (document->owner, status);
- return;
+ return status;
+
+ _cairo_output_stream_printf (document->xml_node_glyphs,
+ "<path style=\"stroke: none;\" ");
+
+ status = emit_path (document->xml_node_glyphs, scaled_glyph->path, NULL);
+
+ _cairo_output_stream_printf (document->xml_node_glyphs,
+ "/>\n");
+
+ return status;
+}
+
+static cairo_int_status_t
+_cairo_svg_document_emit_bitmap_glyph_data (cairo_svg_document_t *document,
+ cairo_scaled_font_t *scaled_font,
+ unsigned long glyph_index)
+{
+ cairo_image_surface_t *image;
+ cairo_scaled_glyph_t *scaled_glyph;
+ cairo_status_t status;
+ unsigned char *row, *byte;
+ int rows, cols, bytes_per_row;
+ int x, y, bit;
+
+ status = _cairo_scaled_glyph_lookup (scaled_font,
+ glyph_index,
+ CAIRO_SCALED_GLYPH_INFO_METRICS|
+ CAIRO_SCALED_GLYPH_INFO_SURFACE,
+ &scaled_glyph);
+ if (status)
+ return status;
+
+ image = scaled_glyph->surface;
+ assert (image->format == CAIRO_FORMAT_A1);
+
+ _cairo_output_stream_printf (document->xml_node_glyphs, "<g");
+ emit_transform (document->xml_node_glyphs, " transform", ">/n", &image->base.device_transform);
+
+ bytes_per_row = (image->width + 7) / 8;
+ for (y = 0, row = image->data, rows = image->height; rows; row += image->stride, rows--, y++) {
+ for (x = 0, byte = row, cols = (image->width + 7) / 8; cols; byte++, cols--) {
+ unsigned char output_byte = CAIRO_BITSWAP8_IF_LITTLE_ENDIAN (*byte);
+ for (bit = 7; bit >= 0 && x < image->width; bit--, x++) {
+ if (output_byte & (1 << bit)) {
+ _cairo_output_stream_printf (document->xml_node_glyphs,
+ "<rect x=\"%d\" y=\"%d\" width=\"1\" height=\"1\"/>\n",
+ x, y);
+ }
+ }
+ }
}
+ _cairo_output_stream_printf (document->xml_node_glyphs, "</g>\n");
+ return CAIRO_STATUS_SUCCESS;
+}
+
+static void
+_cairo_svg_document_emit_glyph (cairo_svg_document_t *document,
+ cairo_scaled_font_t *scaled_font,
+ unsigned long scaled_font_glyph_index,
+ unsigned int font_id,
+ unsigned int subset_glyph_index)
+{
+ cairo_status_t status;
_cairo_output_stream_printf (document->xml_node_glyphs,
- "<symbol id=\"glyph%d-%d\">\n"
- "<path style=\"stroke: none;\" ",
+ "<symbol id=\"glyph%d-%d\">\n",
font_id,
subset_glyph_index);
- status = emit_path (document->xml_node_glyphs, scaled_glyph->path, NULL);
+ status = _cairo_svg_document_emit_outline_glyph_data (document,
+ scaled_font,
+ scaled_font_glyph_index);
+ if (status == CAIRO_INT_STATUS_UNSUPPORTED)
+ status = _cairo_svg_document_emit_bitmap_glyph_data (document,
+ scaled_font,
+ scaled_font_glyph_index);
- _cairo_output_stream_printf (document->xml_node_glyphs, "/>\n</symbol>\n");
+ _cairo_output_stream_printf (document->xml_node_glyphs, "</symbol>\n");
}
static void
@@ -569,7 +649,7 @@ _cairo_svg_document_emit_font_subsets (cairo_svg_document_t *document)
static cairo_bool_t cairo_svg_force_fallbacks = FALSE;
/**
- * cairo_svg_test_force_fallbacks
+ * _cairo_svg_test_force_fallbacks
*
* Force the SVG surface backend to use image fallbacks for every
* operation.
@@ -581,7 +661,7 @@ static cairo_bool_t cairo_svg_force_fallbacks = FALSE;
* </note>
**/
void
-cairo_svg_test_force_fallbacks (void)
+_cairo_svg_test_force_fallbacks (void)
{
cairo_svg_force_fallbacks = TRUE;
}
@@ -661,21 +741,6 @@ emit_alpha_filter (cairo_svg_document_t *document)
document->alpha_filter = TRUE;
}
-static void
-emit_transform (cairo_output_stream_t *output,
- char const *attribute_str,
- char const *trailer,
- cairo_matrix_t *matrix)
-{
- _cairo_output_stream_printf (output,
- "%s=\"matrix(%f,%f,%f,%f,%f,%f)\"%s",
- attribute_str,
- matrix->xx, matrix->yx,
- matrix->xy, matrix->yy,
- matrix->x0, matrix->y0,
- trailer);
-}
-
typedef struct {
cairo_output_stream_t *output;
unsigned int in_mem;
@@ -1356,6 +1421,7 @@ _cairo_svg_surface_mask (void *abstract_surface,
" </g>\n"
"</mask>\n");
_cairo_memory_stream_copy (mask_stream, document->xml_node_defs);
+ _cairo_output_stream_destroy (mask_stream);
snprintf (buffer, sizeof buffer, "mask=\"url(#mask%d);\"",
document->mask_id);
diff --git a/src/cairo-svg-test.h b/src/cairo-svg-test.h
index c8ed063..396d459 100644
--- a/src/cairo-svg-test.h
+++ b/src/cairo-svg-test.h
@@ -45,8 +45,8 @@
CAIRO_BEGIN_DECLS
-void
-cairo_svg_test_force_fallbacks (void);
+cairo_public void
+_cairo_svg_test_force_fallbacks (void);
CAIRO_END_DECLS
diff --git a/src/cairo-svg.h b/src/cairo-svg.h
index d289936..cb16fe0 100644
--- a/src/cairo-svg.h
+++ b/src/cairo-svg.h
@@ -38,10 +38,17 @@
CAIRO_BEGIN_DECLS
+/**
+ * cairo_svg_version_t
+ * @CAIRO_SVG_VERSION_1_1: The version 1.1 of the SVG specification.
+ * @CAIRO_SVG_VERSION_1_2: The version 1.2 of the SVG specification.
+ *
+ * #cairo_svg_version_t is used to describe the version number of the SVG
+ * specification that a generated SVG file will conform to.
+ */
typedef enum {
- CAIRO_SVG_VERSION_1_1 = 0,
- CAIRO_SVG_VERSION_1_2,
- CAIRO_SVG_VERSION_LAST
+ CAIRO_SVG_VERSION_1_1,
+ CAIRO_SVG_VERSION_1_2
} cairo_svg_version_t;
cairo_public cairo_surface_t *
diff --git a/src/cairo-win32-font.c b/src/cairo-win32-font.c
index 144c3e1..39c9522 100644
--- a/src/cairo-win32-font.c
+++ b/src/cairo-win32-font.c
@@ -1415,8 +1415,9 @@ static const cairo_font_face_backend_t _cairo_win32_font_face_backend = {
*
* Creates a new font for the Win32 font backend based on a
* #LOGFONT. This font can then be used with
- * cairo_set_font_face() or cairo_font_create(). The #cairo_scaled_font_t
- * returned from cairo_font_create() is also for the Win32 backend
+ * cairo_set_font_face() or cairo_scaled_font_create().
+ * The #cairo_scaled_font_t
+ * returned from cairo_scaled_font_create() is also for the Win32 backend
* and can be used with functions such as cairo_win32_scaled_font_select_font().
*
* Return value: a newly created #cairo_font_face_t. Free with
@@ -1441,6 +1442,20 @@ cairo_win32_font_face_create_for_logfontw (LOGFONTW *logfont)
return &font_face->base;
}
+/**
+ * cairo_win32_font_face_create_for_hfont:
+ * @font: An #HFONT structure specifying the font to use.
+ *
+ * Creates a new font for the Win32 font backend based on a
+ * #HFONT. This font can then be used with
+ * cairo_set_font_face() or cairo_scaled_font_create().
+ * The #cairo_scaled_font_t
+ * returned from cairo_scaled_font_create() is also for the Win32 backend
+ * and can be used with functions such as cairo_win32_scaled_font_select_font().
+ *
+ * Return value: a newly created #cairo_font_face_t. Free with
+ * cairo_font_face_destroy() when you are done using it.
+ **/
cairo_font_face_t *
cairo_win32_font_face_create_for_hfont (HFONT font)
{
diff --git a/src/cairo-win32-surface.c b/src/cairo-win32-surface.c
index 404dd4c..0554e43 100644
--- a/src/cairo-win32-surface.c
+++ b/src/cairo-win32-surface.c
@@ -1184,6 +1184,7 @@ cairo_win32_surface_create (HDC hdc)
*
* Return value: the newly created surface
*
+ * Since: 1.2
**/
cairo_surface_t *
cairo_win32_surface_create_with_dib (cairo_format_t format,
@@ -1215,6 +1216,8 @@ _cairo_surface_is_win32 (cairo_surface_t *surface)
* Also returns NULL if the surface is not a win32 surface.
*
* Return value: HDC or NULL if no HDC available.
+ *
+ * Since: 1.2
**/
HDC
cairo_win32_surface_get_dc (cairo_surface_t *surface)
diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c
index 7cbee54..15e45e8 100644
--- a/src/cairo-xcb-surface.c
+++ b/src/cairo-xcb-surface.c
@@ -193,6 +193,8 @@ typedef struct cairo_xcb_surface {
cairo_surface_t base;
XCBConnection *dpy;
+ XCBSCREEN *screen;
+
XCBGCONTEXT gc;
XCBDRAWABLE drawable;
int owns_pixmap;
@@ -279,7 +281,7 @@ _cairo_xcb_surface_create_similar (void *abstract_src,
height <= 0 ? 1 : height);
surface = (cairo_xcb_surface_t *)
- cairo_xcb_surface_create_with_xrender_format (dpy, d,
+ cairo_xcb_surface_create_with_xrender_format (dpy, d, src->screen,
&xrender_format,
width, height);
if (surface->base.status) {
@@ -657,6 +659,18 @@ _cairo_xcb_surface_release_dest_image (void *abstract_surface,
cairo_surface_destroy (&image->base);
}
+/*
+ * Return whether two xcb surfaces share the same
+ * screen. Both core and Render drawing require this
+ * when using multiple drawables in an operation.
+ */
+static cairo_bool_t
+_cairo_xcb_surface_same_screen (cairo_xcb_surface_t *dst,
+ cairo_xcb_surface_t *src)
+{
+ return dst->dpy == src->dpy && dst->screen == src->screen;
+}
+
static cairo_status_t
_cairo_xcb_surface_clone_similar (void *abstract_surface,
cairo_surface_t *src,
@@ -668,7 +682,7 @@ _cairo_xcb_surface_clone_similar (void *abstract_surface,
if (src->backend == surface->base.backend ) {
cairo_xcb_surface_t *xcb_src = (cairo_xcb_surface_t *)src;
- if (xcb_src->dpy == surface->dpy) {
+ if (_cairo_xcb_surface_same_screen(surface, xcb_src)) {
*clone_out = cairo_surface_reference (src);
return CAIRO_STATUS_SUCCESS;
@@ -1112,6 +1126,7 @@ query_render_version (XCBConnection *c, cairo_xcb_surface_t *surface)
static cairo_surface_t *
_cairo_xcb_surface_create_internal (XCBConnection *dpy,
XCBDRAWABLE drawable,
+ XCBSCREEN *screen,
XCBVISUALTYPE *visual,
XCBRenderPICTFORMINFO *format,
int width,
@@ -1130,6 +1145,7 @@ _cairo_xcb_surface_create_internal (XCBConnection *dpy,
_xcb_render_format_to_content (format));
surface->dpy = dpy;
+ surface->screen = screen;
surface->gc.xid = 0;
surface->drawable = drawable;
@@ -1150,30 +1166,25 @@ _cairo_xcb_surface_create_internal (XCBConnection *dpy,
if (format) {
surface->depth = format->depth;
} else if (visual) {
- XCBSCREENIter roots;
XCBDEPTHIter depths;
XCBVISUALTYPEIter visuals;
/* This is ugly, but we have to walk over all visuals
- * for the display to find the depth.
+ * for the screen to find the depth.
*/
- roots = XCBSetupRootsIter(XCBGetSetup(surface->dpy));
- for(; roots.rem; XCBSCREENNext(&roots))
- {
- depths = XCBSCREENAllowedDepthsIter(roots.data);
- for(; depths.rem; XCBDEPTHNext(&depths))
+ depths = XCBSCREENAllowedDepthsIter(screen);
+ for(; depths.rem; XCBDEPTHNext(&depths))
+ {
+ visuals = XCBDEPTHVisualsIter(depths.data);
+ for(; visuals.rem; XCBVISUALTYPENext(&visuals))
{
- visuals = XCBDEPTHVisualsIter(depths.data);
- for(; visuals.rem; XCBVISUALTYPENext(&visuals))
+ if(visuals.data->visual_id.id == visual->visual_id.id)
{
- if(visuals.data->visual_id.id == visual->visual_id.id)
- {
- surface->depth = depths.data->depth;
- goto found;
- }
+ surface->depth = depths.data->depth;
+ goto found;
}
}
- }
+ }
found:
;
}
@@ -1207,6 +1218,29 @@ _cairo_xcb_surface_create_internal (XCBConnection *dpy,
return (cairo_surface_t *) surface;
}
+static XCBSCREEN *
+_cairo_xcb_screen_from_visual (XCBConnection *c, XCBVISUALTYPE *visual)
+{
+ XCBSCREENIter s = XCBSetupRootsIter(XCBGetSetup(c));
+ for (; s.rem; XCBSCREENNext(&s))
+ {
+ if (s.data->root_visual.id == visual->visual_id.id)
+ return s.data;
+
+ XCBDEPTHIter d = XCBSCREENAllowedDepthsIter(s.data);
+ for (; d.rem; XCBDEPTHNext(&d))
+ {
+ XCBVISUALTYPEIter v = XCBDEPTHVisualsIter(d.data);
+ for (; v.rem; XCBVISUALTYPENext(&v))
+ {
+ if (v.data->visual_id.id == visual->visual_id.id)
+ return s.data;
+ }
+ }
+ }
+ return NULL;
+}
+
/**
* cairo_xcb_surface_create:
* @c: an XCB connection
@@ -1234,7 +1268,14 @@ cairo_xcb_surface_create (XCBConnection *c,
int width,
int height)
{
- return _cairo_xcb_surface_create_internal (c, drawable,
+ XCBSCREEN *screen = _cairo_xcb_screen_from_visual (c, visual);
+
+ if (screen == NULL) {
+ _cairo_error (CAIRO_STATUS_INVALID_VISUAL);
+ return (cairo_surface_t*) &_cairo_surface_nil;
+ }
+
+ return _cairo_xcb_surface_create_internal (c, drawable, screen,
visual, NULL,
width, height, 0);
}
@@ -1243,6 +1284,7 @@ cairo_xcb_surface_create (XCBConnection *c,
* cairo_xcb_surface_create_for_bitmap:
* @c: an XCB connection
* @bitmap: an XCB Pixmap (a depth-1 pixmap)
+ * @screen: an XCB Screen
* @width: the current width of @bitmap
* @height: the current height of @bitmap
*
@@ -1254,12 +1296,13 @@ cairo_xcb_surface_create (XCBConnection *c,
cairo_surface_t *
cairo_xcb_surface_create_for_bitmap (XCBConnection *c,
XCBPIXMAP bitmap,
+ XCBSCREEN *screen,
int width,
int height)
{
XCBDRAWABLE drawable;
drawable.pixmap = bitmap;
- return _cairo_xcb_surface_create_internal (c, drawable,
+ return _cairo_xcb_surface_create_internal (c, drawable, screen,
NULL, NULL,
width, height, 1);
}
@@ -1268,6 +1311,7 @@ cairo_xcb_surface_create_for_bitmap (XCBConnection *c,
* cairo_xcb_surface_create_with_xrender_format:
* @c: an XCB connection
* @drawable: an XCB drawable
+ * @screen: the XCB screen associated with @drawable
* @format: the picture format to use for drawing to @drawable. The
* depth of @format mush match the depth of the drawable.
* @width: the current width of @drawable
@@ -1278,7 +1322,7 @@ cairo_xcb_surface_create_for_bitmap (XCBConnection *c,
* by the provided picture format.
*
* NOTE: If @drawable is a Window, then the function
- * cairo_xlib_surface_set_size must be called whenever the size of the
+ * cairo_xcb_surface_set_size must be called whenever the size of the
* window changes.
*
* Return value: the newly created surface.
@@ -1286,11 +1330,12 @@ cairo_xcb_surface_create_for_bitmap (XCBConnection *c,
cairo_surface_t *
cairo_xcb_surface_create_with_xrender_format (XCBConnection *c,
XCBDRAWABLE drawable,
+ XCBSCREEN *screen,
XCBRenderPICTFORMINFO *format,
int width,
int height)
{
- return _cairo_xcb_surface_create_internal (c, drawable,
+ return _cairo_xcb_surface_create_internal (c, drawable, screen,
NULL, format,
width, height, 0);
}
diff --git a/src/cairo-xcb-xrender.h b/src/cairo-xcb-xrender.h
index bb2a79a..a584953 100644
--- a/src/cairo-xcb-xrender.h
+++ b/src/cairo-xcb-xrender.h
@@ -49,6 +49,7 @@ CAIRO_BEGIN_DECLS
cairo_public cairo_surface_t *
cairo_xcb_surface_create_with_xrender_format (XCBConnection *c,
XCBDRAWABLE drawable,
+ XCBSCREEN *screen,
XCBRenderPICTFORMINFO *format,
int width,
int height);
diff --git a/src/cairo-xcb.h b/src/cairo-xcb.h
index a39d7b6..54fd325 100644
--- a/src/cairo-xcb.h
+++ b/src/cairo-xcb.h
@@ -55,6 +55,7 @@ cairo_xcb_surface_create (XCBConnection *c,
cairo_public cairo_surface_t *
cairo_xcb_surface_create_for_bitmap (XCBConnection *c,
XCBPIXMAP bitmap,
+ XCBSCREEN *screen,
int width,
int height);
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index f10d2f4..b55eca0 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -153,7 +153,7 @@ struct _cairo_xlib_surface {
static cairo_bool_t cairo_xlib_render_disabled = FALSE;
/**
- * cairo_xlib_test_disable_render:
+ * _cairo_xlib_test_disable_render:
*
* Disables the use of the RENDER extension.
*
@@ -164,7 +164,7 @@ static cairo_bool_t cairo_xlib_render_disabled = FALSE;
* </note>
**/
void
-cairo_xlib_test_disable_render (void)
+_cairo_xlib_test_disable_render (void)
{
cairo_xlib_render_disabled = TRUE;
}
@@ -1297,12 +1297,12 @@ _cairo_xlib_surface_composite (cairo_operator_t op,
mask_pattern != NULL);
if (operation == DO_UNSUPPORTED) {
status = CAIRO_INT_STATUS_UNSUPPORTED;
- goto FAIL;
+ goto BAIL;
}
status = _cairo_xlib_surface_set_attributes (src, &src_attr);
if (status)
- goto FAIL;
+ goto BAIL;
switch (operation)
{
@@ -1311,7 +1311,7 @@ _cairo_xlib_surface_composite (cairo_operator_t op,
if (mask) {
status = _cairo_xlib_surface_set_attributes (mask, &mask_attr);
if (status)
- goto FAIL;
+ goto BAIL;
XRenderComposite (dst->dpy,
_render_operator (op),
@@ -1386,8 +1386,7 @@ _cairo_xlib_surface_composite (cairo_operator_t op,
mask_x, mask_y,
dst_x, dst_y, width, height);
- FAIL:
-
+ BAIL:
if (mask)
_cairo_pattern_release_surface (mask_pattern, &mask->base, &mask_attr);
@@ -1555,7 +1554,7 @@ _cairo_xlib_surface_composite_trapezoids (cairo_operator_t op,
operation = _recategorize_composite_operation (dst, op, src, &attributes, TRUE);
if (operation == DO_UNSUPPORTED) {
status = CAIRO_INT_STATUS_UNSUPPORTED;
- goto FAIL;
+ goto BAIL;
}
switch (antialias) {
@@ -1581,7 +1580,7 @@ _cairo_xlib_surface_composite_trapezoids (cairo_operator_t op,
_cairo_xlib_surface_ensure_dst_picture (dst);
status = _cairo_xlib_surface_set_attributes (src, &attributes);
if (status)
- goto FAIL;
+ goto BAIL;
if (!_cairo_operator_bounded_by_mask (op)) {
/* XRenderCompositeTrapezoids() creates a mask only large enough for the
@@ -1598,7 +1597,7 @@ _cairo_xlib_surface_composite_trapezoids (cairo_operator_t op,
pict_format);
if (!mask_picture) {
status = CAIRO_STATUS_NO_MEMORY;
- goto FAIL;
+ goto BAIL;
}
XRenderComposite (dst->dpy,
@@ -1632,7 +1631,7 @@ _cairo_xlib_surface_composite_trapezoids (cairo_operator_t op,
(XTrapezoid *) traps, num_traps);
}
- FAIL:
+ BAIL:
_cairo_pattern_release_surface (pattern, &src->base, &attributes);
return status;
@@ -2083,6 +2082,16 @@ cairo_xlib_surface_set_drawable (cairo_surface_t *abstract_surface,
surface->height = height;
}
+/**
+ * cairo_xlib_surface_get_display:
+ * @surface: a #cairo_xlib_surface_t
+ *
+ * Get the X Display for the underlying X Drawable.
+ *
+ * Return value: the display.
+ *
+ * Since: 1.2
+ **/
Display *
cairo_xlib_surface_get_display (cairo_surface_t *abstract_surface)
{
@@ -2096,6 +2105,16 @@ cairo_xlib_surface_get_display (cairo_surface_t *abstract_surface)
return surface->dpy;
}
+/**
+ * cairo_xlib_surface_get_drawable:
+ * @surface: a #cairo_xlib_surface_t
+ *
+ * Get the underlying X Drawable used for the surface.
+ *
+ * Return value: the drawable.
+ *
+ * Since: 1.2
+ **/
Drawable
cairo_xlib_surface_get_drawable (cairo_surface_t *abstract_surface)
{
@@ -2109,6 +2128,16 @@ cairo_xlib_surface_get_drawable (cairo_surface_t *abstract_surface)
return surface->drawable;
}
+/**
+ * cairo_xlib_surface_get_screen:
+ * @surface: a #cairo_xlib_surface_t
+ *
+ * Get the X Screen for the underlying X Drawable.
+ *
+ * Return value: the screen.
+ *
+ * Since: 1.2
+ **/
Screen *
cairo_xlib_surface_get_screen (cairo_surface_t *abstract_surface)
{
@@ -2122,6 +2151,16 @@ cairo_xlib_surface_get_screen (cairo_surface_t *abstract_surface)
return surface->screen;
}
+/**
+ * cairo_xlib_surface_get_visual:
+ * @surface: a #cairo_xlib_surface_t
+ *
+ * Get the X Visual used for underlying X Drawable.
+ *
+ * Return value: the visual.
+ *
+ * Since: 1.2
+ **/
Visual *
cairo_xlib_surface_get_visual (cairo_surface_t *abstract_surface)
{
@@ -2135,6 +2174,16 @@ cairo_xlib_surface_get_visual (cairo_surface_t *abstract_surface)
return surface->visual;
}
+/**
+ * cairo_xlib_surface_get_depth:
+ * @surface: a #cairo_xlib_surface_t
+ *
+ * Get the number of bits used to represent each pixel value.
+ *
+ * Return value: the depth of the surface in bits.
+ *
+ * Since: 1.2
+ **/
int
cairo_xlib_surface_get_depth (cairo_surface_t *abstract_surface)
{
@@ -2148,6 +2197,52 @@ cairo_xlib_surface_get_depth (cairo_surface_t *abstract_surface)
return surface->depth;
}
+/**
+ * cairo_xlib_surface_get_width:
+ * @surface: a #cairo_xlib_surface_t
+ *
+ * Get the width of the X Drawable underlying the surface in pixels.
+ *
+ * Return value: the width of the surface in pixels.
+ *
+ * Since: 1.2
+ **/
+int
+cairo_xlib_surface_get_width (cairo_surface_t *abstract_surface)
+{
+ cairo_xlib_surface_t *surface = (cairo_xlib_surface_t *) abstract_surface;
+
+ if (! _cairo_surface_is_xlib (abstract_surface)) {
+ _cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH);
+ return -1;
+ }
+
+ return surface->width;
+}
+
+/**
+ * cairo_xlib_surface_get_height:
+ * @surface: a #cairo_xlib_surface_t
+ *
+ * Get the height of the X Drawable underlying the surface in pixels.
+ *
+ * Return value: the height of the surface in pixels.
+ *
+ * Since: 1.2
+ **/
+int
+cairo_xlib_surface_get_height (cairo_surface_t *abstract_surface)
+{
+ cairo_xlib_surface_t *surface = (cairo_xlib_surface_t *) abstract_surface;
+
+ if (! _cairo_surface_is_xlib (abstract_surface)) {
+ _cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH);
+ return -1;
+ }
+
+ return surface->height;
+}
+
typedef struct _cairo_xlib_surface_font_private {
Display *dpy;
GlyphSet glyphset;
@@ -2251,6 +2346,7 @@ _cairo_xlib_surface_add_glyph (Display *dpy,
cairo_destroy (cr);
tmp_surface->device_transform = glyph_surface->base.device_transform;
+ tmp_surface->device_transform_inverse = glyph_surface->base.device_transform_inverse;
glyph_surface = (cairo_image_surface_t *) tmp_surface;
@@ -2579,7 +2675,7 @@ _cairo_xlib_surface_show_glyphs (void *abstract_dst,
int num_glyphs,
cairo_scaled_font_t *scaled_font)
{
- cairo_int_status_t status;
+ cairo_int_status_t status = CAIRO_STATUS_SUCCESS;
cairo_xlib_surface_t *dst = (cairo_xlib_surface_t*) abstract_dst;
composite_operation_t operation;
@@ -2635,6 +2731,17 @@ _cairo_xlib_surface_show_glyphs (void *abstract_dst,
(font_private != NULL && font_private->dpy != dst->dpy))
return CAIRO_INT_STATUS_UNSUPPORTED;
+ /* After passing all those tests, we're now committed to rendering
+ * these glyphs or to fail trying. We first upload any glyphs to
+ * the X server that it doesn't have already, then we draw
+ * them. We tie into the scaled_font's glyph cache and remove
+ * glyphs from the X server when they are ejected from the
+ * scaled_font cache. Because of this we first freeze the
+ * scaled_font's cache so that we don't cause any of our glyphs to
+ * be ejected and removed from the X server before we have a
+ * chance to render them. */
+ _cairo_scaled_font_freeze_cache (scaled_font);
+
/* PictOpClear doesn't seem to work with CompositeText; it seems to ignore
* the mask (the glyphs). This code below was executed as a side effect
* of going through the _clip_and_composite fallback code for old_show_glyphs,
@@ -2659,7 +2766,7 @@ _cairo_xlib_surface_show_glyphs (void *abstract_dst,
num_glyphs,
&glyph_extents);
if (status)
- return status;
+ goto BAIL;
status = _cairo_pattern_acquire_surface (src_pattern, &dst->base,
glyph_extents.x, glyph_extents.y,
@@ -2669,17 +2776,17 @@ _cairo_xlib_surface_show_glyphs (void *abstract_dst,
}
if (status)
- goto FAIL;
+ goto BAIL;
operation = _recategorize_composite_operation (dst, op, src, &attributes, TRUE);
if (operation == DO_UNSUPPORTED) {
status = CAIRO_INT_STATUS_UNSUPPORTED;
- goto FAIL;
+ goto BAIL;
}
status = _cairo_xlib_surface_set_attributes (src, &attributes);
if (status)
- goto FAIL;
+ goto BAIL;
/* Send all unsent glyphs to the server, and count the max of the glyph indices */
for (i = 0; i < num_glyphs; i++) {
@@ -2690,7 +2797,7 @@ _cairo_xlib_surface_show_glyphs (void *abstract_dst,
CAIRO_SCALED_GLYPH_INFO_SURFACE,
&scaled_glyph);
if (status != CAIRO_STATUS_SUCCESS)
- goto FAIL;
+ goto BAIL;
if (scaled_glyph->surface_private == NULL) {
_cairo_xlib_surface_add_glyph (dst->dpy, scaled_font, scaled_glyph);
scaled_glyph->surface_private = (void *) 1;
@@ -2725,10 +2832,13 @@ _cairo_xlib_surface_show_glyphs (void *abstract_dst,
break;
}
- FAIL:
+ BAIL:
+ _cairo_scaled_font_thaw_cache (scaled_font);
+
if (src)
_cairo_pattern_release_surface (src_pattern, &src->base, &attributes);
if (src_pattern == &solid_pattern.base)
_cairo_pattern_fini (&solid_pattern.base);
+
return status;
}
diff --git a/src/cairo-xlib-test.h b/src/cairo-xlib-test.h
index 7ecb3ce..ec167c1 100644
--- a/src/cairo-xlib-test.h
+++ b/src/cairo-xlib-test.h
@@ -45,8 +45,8 @@
CAIRO_BEGIN_DECLS
-void
-cairo_xlib_test_disable_render (void);
+cairo_public void
+_cairo_xlib_test_disable_render (void);
CAIRO_END_DECLS
diff --git a/src/cairo-xlib.h b/src/cairo-xlib.h
index f7802fd..ad92b39 100644
--- a/src/cairo-xlib.h
+++ b/src/cairo-xlib.h
@@ -85,6 +85,12 @@ cairo_xlib_surface_get_visual (cairo_surface_t *surface);
cairo_public int
cairo_xlib_surface_get_depth (cairo_surface_t *surface);
+cairo_public int
+cairo_xlib_surface_get_width (cairo_surface_t *surface);
+
+cairo_public int
+cairo_xlib_surface_get_height (cairo_surface_t *surface);
+
CAIRO_END_DECLS
#else /* CAIRO_HAS_XLIB_SURFACE */
diff --git a/src/cairo.c b/src/cairo.c
index e4fa741..4d005ba 100644
--- a/src/cairo.c
+++ b/src/cairo.c
@@ -371,6 +371,8 @@ slim_hidden_def(cairo_restore);
* cairo_pop_group_to_source (cr);
* cairo_paint_with_alpha (cr, alpha);
* </programlisting></informalexample>
+ *
+ * Since: 1.2
*/
void
cairo_push_group (cairo_t *cr)
@@ -395,6 +397,8 @@ slim_hidden_def(cairo_push_group);
* control this content type is the only distinction between this
* function and cairo_push_group() which you should see for a more
* detailed description of group rendering.
+ *
+ * Since: 1.2
*/
void
cairo_push_group_with_content (cairo_t *cr, cairo_content_t content)
@@ -458,6 +462,8 @@ slim_hidden_def(cairo_push_group_with_content);
* results of all drawing operations performed to the group. The
* caller owns the returned object and should call
* cairo_pattern_destroy() when finished with it.
+ *
+ * Since: 1.2
**/
cairo_pattern_t *
cairo_pop_group (cairo_t *cr)
@@ -502,7 +508,7 @@ done:
slim_hidden_def(cairo_pop_group);
/**
- * cairo_pop_group_t_source:
+ * cairo_pop_group_to_source:
* @cr: a cairo context
*
* Terminates the redirection begun by a call to cairo_push_group() or
@@ -525,6 +531,8 @@ slim_hidden_def(cairo_pop_group);
* call to cairo_save() by the push_group function), so that any
* changes to the graphics state will not be visible outside the
* group.
+ *
+ * Since: 1.2
**/
void
cairo_pop_group_to_source (cairo_t *cr)
@@ -900,6 +908,11 @@ cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join)
* stroke. The @offset specifies an offset into the pattern at which
* the stroke begins.
*
+ * Each "on" segment will have caps applied as if the segment were a
+ * separate sub-path. In particular, it is valid to use an "on" length
+ * of 0.0 with CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE in order
+ * to distributed dots or squares along a path.
+ *
* Note: The length values are in user-space units as evaluated at the
* time of stroking. This is not necessarily the same as the user
* space at the time of cairo_set_dash().
@@ -1178,7 +1191,7 @@ slim_hidden_def(cairo_new_path);
* @x: the X coordinate of the new position
* @y: the Y coordinate of the new position
*
- * Begin a new subpath. After this call the current point will be (@x,
+ * Begin a new sub-path. After this call the current point will be (@x,
* @y).
**/
void
@@ -1203,17 +1216,19 @@ slim_hidden_def(cairo_move_to);
* cairo_new_sub_path:
* @cr: a cairo context
*
- * Begin a new subpath. Note that the existing path is not
+ * Begin a new sub-path. Note that the existing path is not
* affected. After this call there will be no current point.
*
- * In many cases, this call is not needed since new subpaths are
+ * In many cases, this call is not needed since new sub-paths are
* frequently started with cairo_move_to().
*
* A call to cairo_new_sub_path() is particularly useful when
- * beginning a new subpath with one of the cairo_arc() calls. This
+ * beginning a new sub-path with one of the cairo_arc() calls. This
* makes things easier as it is no longer necessary to manually
* compute the arc's initial coordinates for a call to
* cairo_move_to().
+ *
+ * Since: 1.2
**/
void
cairo_new_sub_path (cairo_t *cr)
@@ -1442,7 +1457,7 @@ cairo_arc_to (cairo_t *cr,
* @dx: the X offset
* @dy: the Y offset
*
- * Begin a new subpath. After this call the current point will offset
+ * Begin a new sub-path. After this call the current point will offset
* by (@x, @y).
*
* Given a current point of (x, y), cairo_rel_move_to(@cr, @dx, @dy)
@@ -1573,7 +1588,7 @@ cairo_rel_curve_to (cairo_t *cr,
* @width: the width of the rectangle
* @height: the height of the rectangle
*
- * Adds a closed-subpath rectangle of the given size to the current
+ * Adds a closed sub-path rectangle of the given size to the current
* path at position (@x, @y) in user-space coordinates.
*
* This function is logically equivalent to:
@@ -1618,15 +1633,15 @@ cairo_stroke_to_path (cairo_t *cr)
* @cr: a cairo context
*
* Adds a line segment to the path from the current point to the
- * beginning of the current subpath, (the most recent point passed to
- * cairo_move_to()), and closes this subpath. After this call the
- * current point will be at the joined endpoint of the subpath.
+ * beginning of the current sub-path, (the most recent point passed to
+ * cairo_move_to()), and closes this sub-path. After this call the
+ * current point will be at the joined endpoint of the sub-path.
*
* The behavior of cairo_close_path() is distinct from simply calling
* cairo_line_to() with the equivalent coordinate in the case of
- * stroking. When a closed subpath is stroked, there are no caps on
- * the ends of the subpath. Instead, there is a line join connecting
- * the final and initial segments of the subpath.
+ * stroking. When a closed sub-path is stroked, there are no caps on
+ * the ends of the sub-path. Instead, there is a line join connecting
+ * the final and initial segments of the sub-path.
*
* If there is no current point before the call to cairo_close_path,
* this function will have no effect.
@@ -1776,6 +1791,27 @@ cairo_mask_surface (cairo_t *cr,
* context. See cairo_set_line_width(), cairo_set_line_join(),
* cairo_set_line_cap(), cairo_set_dash(), and
* cairo_stroke_preserve().
+ *
+ * Note: Degenerate segments and sub-paths are treated specially and
+ * provide a useful result. These can result in two different
+ * situations:
+ *
+ * 1. Zero-length "on" segments set in cairo_set_dash(). If the cap
+ * style is CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE then these
+ * segments will be drawn as circular dots or squares respectively. In
+ * the case of CAIRO_LINE_CAP_SQUARE, the orientation of the squares
+ * is determined by the direction of the underlying path.
+ *
+ * 2. A sub-path created by cairo_move_to() followed by either a
+ * cairo_close_path() or one or more calls to cairo_line_to() to the
+ * same coordinate as the cairo_move_to(). If the cap style is
+ * CAIRO_LINE_CAP_ROUND then these sub-paths will be drawn as circular
+ * dots. Note that in the case of CAIRO_LINE_CAP_SQUARE a degenerate
+ * sub-path will not be drawn at all, (since the correct orientation
+ * is indeterminate).
+ *
+ * In no case will a cap style of CAIRO_LINE_CAP_BUTT cause anything
+ * to be drawn in the case of either degenerate segments or sub-paths.
**/
void
cairo_stroke (cairo_t *cr)
@@ -2238,6 +2274,8 @@ cairo_get_font_options (cairo_t *cr,
* some translation, the current CTM of the #cairo_t should be the
* same as that of the #cairo_scaled_font_t, which can be accessed
* using cairo_scaled_font_get_ctm().
+ *
+ * Since: 1.2
**/
void
cairo_set_scaled_font (cairo_t *cr,
@@ -2710,6 +2748,8 @@ cairo_get_target (cairo_t *cr)
* Return value: the target group surface, or NULL if none. This
* object is owned by cairo. To keep a reference to it, you must call
* cairo_surface_reference().
+ *
+ * Since: 1.2
**/
cairo_surface_t *
cairo_get_group_target (cairo_t *cr)
diff --git a/src/cairo.h b/src/cairo.h
index bf49069..ab860e8 100644
--- a/src/cairo.h
+++ b/src/cairo.h
@@ -167,7 +167,7 @@ typedef struct _cairo_user_data_key {
* @CAIRO_STATUS_INVALID_VISUAL: invalid value for an input Visual*
* @CAIRO_STATUS_FILE_NOT_FOUND: file not found
* @CAIRO_STATUS_INVALID_DASH: invalid value for a dash setting
- * @CAIRO_STATUS_INVALID_DSC_COMMENT: invalid value for a DSC comment
+ * @CAIRO_STATUS_INVALID_DSC_COMMENT: invalid value for a DSC comment (Since 1.2)
*
* #cairo_status_t is used to indicate errors that can occur when
* using Cairo. In some cases it is returned directly by functions.
@@ -204,7 +204,7 @@ typedef enum _cairo_status {
* @CAIRO_CONTENT_ALPHA: The surface will hold alpha content only.
* @CAIRO_CONTENT_COLOR_ALPHA: The surface will hold color and alpha content.
*
- * @cairo_content_t is used to describe the content that a surface will
+ * #cairo_content_t is used to describe the content that a surface will
* contain, whether color information, alpha information (translucence
* vs. opacity), or both.
*
@@ -929,17 +929,18 @@ cairo_font_face_status (cairo_font_face_t *font_face);
/**
* cairo_font_type_t
- * @CAIRO_FONT_TYPE_FT: The font is of type ft
- * @CAIRO_FONT_TYPE_WIN32: The font is of type win32
- * @CAIRO_FONT_TYPE_ATSUI: The font is of type atsui
+ * @CAIRO_FONT_TYPE_TOY: The font was created using cairo's toy font api
+ * @CAIRO_FONT_TYPE_FT: The font is of type FreeType
+ * @CAIRO_FONT_TYPE_WIN32: The font is of type Win32
+ * @CAIRO_FONT_TYPE_ATSUI: The font is of type ATSUI
*
- * @cairo_font_type_t is used to describe the type of a given font
+ * #cairo_font_type_t is used to describe the type of a given font
* face or scaled font. The font types are also known as "font
* backends" within cairo.
*
* The type of a font face is determined by the function used to
* create it, which will generally be of the form
- * cairo_<type>_font_face_create. The font face type can be queried
+ * cairo_<emphasis>type</emphasis>_font_face_create. The font face type can be queried
* with cairo_font_face_get_type()
*
* The various cairo_font_face functions can be used with a font face
@@ -953,10 +954,12 @@ cairo_font_face_status (cairo_font_face_t *font_face);
* fonts of any type, but some font backends also provide
* type-specific functions that must only be called with a scaled font
* of the appropriate type. These functions have names that begin with
- * cairo_<type>_scaled_font such as cairo_ft_scaled_font_lock_face.
+ * cairo_<emphasis>type</emphasis>_scaled_font such as cairo_ft_scaled_font_lock_face.
*
* The behavior of calling a type-specific function with a scaled font
* of the wrong type is undefined.
+ *
+ * Since: 1.2
*/
typedef enum _cairo_font_type {
CAIRO_FONT_TYPE_TOY,
@@ -1228,12 +1231,12 @@ cairo_surface_status (cairo_surface_t *surface);
* @CAIRO_SURFACE_TYPE_DIRECTFB: The surface is of type directfb
* @CAIRO_SURFACE_TYPE_SVG: The surface is of type svg
*
- * @cairo_surface_type_t is used to describe the type of a given
+ * #cairo_surface_type_t is used to describe the type of a given
* surface. The surface types are also known as "backends" or "surface
* backends" within cairo.
*
* The type of a surface is determined by the function used to create
- * it, which will generally be of the form cairo_<type>_surface_create,
+ * it, which will generally be of the form cairo_<emphasis>type</emphasis>_surface_create,
* (though see cairo_surface_create_similar as well).
*
* The surface type can be queried with cairo_surface_get_type()
@@ -1242,10 +1245,12 @@ cairo_surface_status (cairo_surface_t *surface);
* any type, but some backends also provide type-specific functions
* that must only be called with a surface of the appropriate
* type. These functions have names that begin with
- * cairo_<type>_surface such as cairo_image_surface_get_width().
+ * cairo_<emphasis>type</emphasis>_surface such as cairo_image_surface_get_width().
*
* The behavior of calling a type-specific function with a surface of
* the wrong type is undefined.
+ *
+ * Since: 1.2
*/
typedef enum _cairo_surface_type {
CAIRO_SURFACE_TYPE_IMAGE,
@@ -1344,7 +1349,7 @@ cairo_surface_set_fallback_resolution (cairo_surface_t *surface,
* machine the first pixel is in the least-significant bit.
* @CAIRO_FORMAT_RGB16_565: each pixel is a 16-bit quantity,
* with red in the upper 5 bits, then green in the next 6,
- * then blue in the lowest 5 bits.
+ * then blue in the lowest 5 bits. (Since 1.2)
*
* #cairo_format_t is used to identify the memory format of
* image data.
@@ -1426,14 +1431,13 @@ cairo_pattern_status (cairo_pattern_t *pattern);
/**
* cairo_pattern_type_t
-
* @CAIRO_PATTERN_TYPE_SOLID: The pattern is a solid (uniform)
* color. It may be opaque or translucent.
* @CAIRO_PATTERN_TYPE_SURFACE: The pattern is a based on a surface (an image).
* @CAIRO_PATTERN_TYPE_LINEAR: The pattern is a linear gradient.
* @CAIRO_PATTERN_TYPE_RADIAL: The pattern is a radial gradient.
*
- * @cairo_pattern_type_t us used to describe the type of a given pattern.
+ * #cairo_pattern_type_t is used to describe the type of a given pattern.
*
* The type of a pattern is determined by the function used to create
* it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba()
@@ -1450,6 +1454,8 @@ cairo_pattern_status (cairo_pattern_t *pattern);
* cairo_pattern_add_color_stop_rgba() which must only be called with
* gradient patterns (either LINEAR or RADIAL). Otherwise the pattern
* will be shutdown and put into an error state.
+ *
+ * Since: 1.2
*/
typedef enum _cairo_pattern_type {
CAIRO_PATTERN_TYPE_SOLID,
@@ -1486,9 +1492,10 @@ cairo_pattern_get_matrix (cairo_pattern_t *pattern,
* are fully transparent
* @CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating
* @CAIRO_EXTEND_REFLECT: the pattern is tiled by reflecting
- * at the edges
+ * at the edges (not implemented for surface patterns currently)
* @CAIRO_EXTEND_PAD: pixels outside of the pattern copy
- * the closest pixel from the source (since cairo 1.2)
+ * the closest pixel from the source (Since 1.2; not implemented
+ * for surface patterns currently)
*
* #cairo_extend_t is used to describe how the area outside
* of a pattern will be drawn.
@@ -1561,12 +1568,10 @@ cairo_matrix_multiply (cairo_matrix_t *result,
const cairo_matrix_t *a,
const cairo_matrix_t *b);
-/* XXX: Need a new name here perhaps. */
cairo_public void
cairo_matrix_transform_distance (const cairo_matrix_t *matrix,
double *dx, double *dy);
-/* XXX: Need a new name here perhaps. */
cairo_public void
cairo_matrix_transform_point (const cairo_matrix_t *matrix,
double *x, double *y);
diff --git a/src/cairo.pc.in b/src/cairo.pc.in
index 7003191..c41c41f 100644
--- a/src/cairo.pc.in
+++ b/src/cairo.pc.in
@@ -7,6 +7,6 @@ Name: cairo
Description: Multi-platform 2D graphics library
Version: @VERSION@
-@PKGCONFIG_REQUIRES@: @FREETYPE_REQUIRES@ @XRENDER_REQUIRES@ @PNG_REQUIRES@ @GLITZ_REQUIRES@
+@PKGCONFIG_REQUIRES@: @CAIRO_REQUIRES@
Libs: @FREETYPE_CONFIG_LIBS@ -L${libdir} -lcairo
Cflags: @FREETYPE_CONFIG_CFLAGS@ -I${includedir}/cairo
diff --git a/src/cairoint.h b/src/cairoint.h
index e4bf6fc..9ecb072 100644
--- a/src/cairoint.h
+++ b/src/cairoint.h
@@ -206,6 +206,18 @@ typedef cairo_fixed_16_16_t cairo_fixed_t;
#define CAIRO_ALPHA_IS_OPAQUE(alpha) ((alpha) >= ((double)0xff00 / (double)0xffff))
#define CAIRO_ALPHA_IS_ZERO(alpha) ((alpha) <= 0.0)
+/* Reverse the bits in a byte with 7 operations (no 64-bit):
+ * Devised by Sean Anderson, July 13, 2001.
+ * Source: http://graphics.stanford.edu/~seander/bithacks.html#ReverseByteWith32Bits
+ */
+#define CAIRO_BITSWAP8(c) ((((c) * 0x0802LU & 0x22110LU) | ((c) * 0x8020LU & 0x88440LU)) * 0x10101LU >> 16)
+
+#ifdef WORDS_BIGENDIAN
+#define CAIRO_BITSWAP8_IF_LITTLE_ENDIAN(c) (c)
+#else
+#define CAIRO_BITSWAP8_IF_LITTLE_ENDIAN(c) CAIRO_BITSWAP8(c)
+#endif
+
#include "cairo-hash-private.h"
#include "cairo-cache-private.h"
@@ -856,6 +868,7 @@ struct _cairo_surface {
cairo_user_data_array_t user_data;
cairo_matrix_t device_transform;
+ cairo_matrix_t device_transform_inverse;
double x_fallback_resolution;
double y_fallback_resolution;
@@ -1367,6 +1380,12 @@ _cairo_color_get_rgba_premultiplied (cairo_color_t *color,
/* cairo-font.c */
cairo_private void
+_cairo_scaled_font_freeze_cache (cairo_scaled_font_t *scaled_font);
+
+cairo_private void
+_cairo_scaled_font_thaw_cache (cairo_scaled_font_t *scaled_font);
+
+cairo_private void
_cairo_scaled_font_set_error (cairo_scaled_font_t *scaled_font,
cairo_status_t status);
@@ -1404,6 +1423,10 @@ _cairo_font_options_init_copy (cairo_font_options_t *options,
cairo_private cairo_status_t
_cairo_hull_compute (cairo_pen_vertex_t *vertices, int *num_vertices);
+/* cairo-lzw.c */
+cairo_private unsigned char *
+_cairo_lzw_compress (unsigned char *data, unsigned long *size_in_out);
+
/* cairo_operator.c */
cairo_private cairo_bool_t
_cairo_operator_always_opaque (cairo_operator_t op);
diff --git a/test/6x13.pcf b/test/6x13.pcf
new file mode 100644
index 0000000..1325ae6
--- /dev/null
+++ b/test/6x13.pcf
Binary files differ
diff --git a/test/Makefile.am b/test/Makefile.am
index 477604b..ed18d56 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -20,7 +20,9 @@ dash-caps-joins \
dash-scale \
dash-offset-negative \
dash-zero-length \
+degenerate-path \
device-offset \
+device-offset-positive \
extend-reflect \
fill-and-stroke \
fill-and-stroke-alpha \
@@ -28,6 +30,7 @@ fill-and-stroke-alpha-add \
fill-rule \
filter-nearest-offset \
font-face-get-type \
+glyph-cache-pressure \
get-and-set \
get-group-target \
gradient-alpha \
@@ -85,8 +88,10 @@ TESTS += pthread-show-text
endif
if CAIRO_HAS_FT_FONT
+TESTS += bitmap-font
TESTS += ft-font-create-for-ft-face
TESTS += ft-text-vertical-layout
+TESTS += ft-text-antialias-none
endif
if CAIRO_HAS_SVG_SURFACE
@@ -138,11 +143,16 @@ endif
# I really don't like having to repeat this list. Anyone know a good
# way to avoid it? Can I use a wildcard here?
EXTRA_DIST = \
+6x13.pcf \
make-html.pl \
a8-mask-ref.png \
+bitmap-font-ref.png \
+bitmap-font-rgb24-ref.png \
caps-joins-ref.png \
-caps-joins-alpha-ref.png \
caps-joins-ps-argb32-ref.png \
+caps-joins-alpha-ref.png \
+caps-joins-alpha-svg-argb32-ref.png \
+caps-joins-alpha-svg-rgb24-ref.png \
caps-sub-paths-ref.png \
caps-sub-paths-ps-argb32-ref.png \
clip-all-ref.png \
@@ -160,6 +170,9 @@ clip-twice-ref.png \
clip-twice-rgb24-ref.png \
clip-twice-ps-argb32-ref.png \
composite-integer-translate-over-ref.png \
+composite-integer-translate-over-pdf-argb32-ref.png \
+composite-integer-translate-over-svg-argb32-ref.png \
+composite-integer-translate-over-svg-rgb24-ref.png \
composite-integer-translate-over-repeat-ref.png \
composite-integer-translate-source-ref.png \
create-from-png-ref.png \
@@ -167,38 +180,70 @@ create-from-png-stream-ref.png \
dash-caps-joins-ref.png \
dash-caps-joins-ps-argb32-ref.png \
dash-scale-ref.png \
+dash-scale-ps-argb32-ref.png \
dash-offset-negative-ref.png \
dash-offset-negative-ps-argb32-ref.png \
dash-zero-length-ref.png \
dash-zero-length-rgb24-ref.png \
dash-zero-length-ps-argb32-ref.png \
+degenerate-path-ref.png \
+degenerate-path-rgb24-ref.png \
+degenerate-path-ps-argb32-ref.png \
device-offset-ref.png \
+device-offset-rgb24-ref.png \
+device-offset-positive-ref.png \
+device-offset-positive-rgb24-ref.png \
fill-and-stroke-ref.png \
fill-and-stroke-rgb24-ref.png \
fill-and-stroke-ps-argb32-ref.png \
fill-and-stroke-alpha-ref.png \
+fill-and-stroke-alpha-svg-argb32-ref.png \
+fill-and-stroke-alpha-svg-rgb24-ref.png \
fill-and-stroke-alpha-add-ref.png \
fill-rule-ref.png \
fill-rule-rgb24-ref.png \
fill-rule-ps-argb32-ref.png \
filter-nearest-offset-ref.png \
+ft-text-antialias-none-ref.png \
+ft-text-antialias-none-ps-argb32-ref.png \
+ft-text-vertical-layout-ref.png \
+ft-text-vertical-layout-pdf-argb32-ref.png \
+ft-text-vertical-layout-ps-argb32-ref.png \
+ft-text-vertical-layout-svg-argb32-ref.png \
+ft-text-vertical-layout-svg-rgb24-ref.png \
get-group-target-ref.png \
+glyph-cache-pressure-ref.png \
+glyph-cache-pressure-pdf-argb32-ref.png \
+glyph-cache-pressure-ps-argb32-ref.png \
+glyph-cache-pressure-svg-argb32-ref.png \
+glyph-cache-pressure-svg-rgb24-ref.png \
gradient-alpha-ref.png \
gradient-alpha-rgb24-ref.png \
leaky-dash-ref.png \
leaky-polygon-ref.png \
leaky-polygon-ps-argb32-ref.png \
linear-gradient-ref.png \
+linear-gradient-svg-argb32-ref.png \
+linear-gradient-svg-rgb24-ref.png \
line-width-ref.png \
line-width-ps-argb32-ref.png \
line-width-scale-ref.png \
line-width-scale-ps-argb32-ref.png \
-mask-ctm-ref.png \
-mask-ctm-rgb24-ref.png \
mask-ref.png \
mask-rgb24-ref.png \
+mask-beos_bitmap-argb32-ref.png \
+mask-beos_bitmap-rgb24-ref.png \
+mask-beos-rgb24-ref.png \
+mask-svg-argb32-ref.png \
+mask-svg-rgb24-ref.png \
+mask-ctm-ref.png \
+mask-ctm-rgb24-ref.png \
+mask-ctm-svg-argb32-ref.png \
+mask-ctm-svg-rgb24-ref.png \
mask-surface-ctm-ref.png \
mask-surface-ctm-rgb24-ref.png \
+mask-surface-ctm-svg-argb32-ref.png \
+mask-surface-ctm-svg-rgb24-ref.png \
move-to-show-surface-ref.png \
new-sub-path-ref.png \
new-sub-path-rgb24-ref.png \
@@ -211,12 +256,22 @@ operator-source-ref.png \
operator-source-rgb24-ref.png \
paint-ref.png \
paint-source-alpha-ref.png \
+paint-source-alpha-pdf-argb32-ref.png \
+paint-source-alpha-svg-argb32-ref.png \
+paint-source-alpha-svg-rgb24-ref.png \
paint-with-alpha-ref.png \
+paint-with-alpha-svg-argb32-ref.png \
+paint-with-alpha-svg-rgb24-ref.png \
path-data-ref.png \
path-data-ps-argb32-ref.png \
pixman-rotate-ref.png \
pixman-rotate-rgb24-ref.png \
+pixman-rotate-svg-argb32-ref.png \
+pixman-rotate-svg-rgb24-ref.png \
push-group-ref.png \
+push-group-rgb24-ref.png \
+push-group-svg-argb32-ref.png \
+push-group-svg-rgb24-ref.png \
rectangle-rounding-error-ref.png \
rectangle-rounding-error-ps-argb32-ref.png \
rel-path-ref.png \
@@ -225,16 +280,28 @@ romedalen.png \
scale-source-surface-paint-ref.png \
scale-source-surface-paint-rgb24-ref.png \
scale-source-surface-paint-pdf-argb32-ref.png \
+scale-source-surface-paint-svg-argb32-ref.png \
+scale-source-surface-paint-svg-rgb24-ref.png \
select-font-face-ref.png \
+select-font-face-pdf-argb32-ref.png \
+select-font-face-ps-argb32-ref.png \
+select-font-face-svg-argb32-ref.png \
+select-font-face-svg-rgb24-ref.png \
self-copy-ref.png \
self-intersecting-ref.png \
self-intersecting-rgb24-ref.png \
set-source-ref.png \
set-source-rgb24-ref.png \
+set-source-beos_bitmap-rgb24-ref.png \
+set-source-beos-rgb24-ref.png \
+set-source-svg-argb32-ref.png \
+set-source-svg-rgb24-ref.png \
show-glyphs-many-ref.png \
show-text-current-point-ref.png \
show-text-current-point-pdf-argb32-ref.png \
show-text-current-point-ps-argb32-ref.png \
+show-text-current-point-svg-argb32-ref.png \
+show-text-current-point-svg-rgb24-ref.png \
source-clip-ref.png \
source-surface-scale-paint-ref.png \
source-surface-scale-paint-rgb24-ref.png \
@@ -242,14 +309,24 @@ surface-pattern-ref.png \
text-antialias-gray-ref.png \
text-antialias-gray-pdf-argb32-ref.png \
text-antialias-gray-ps-argb32-ref.png \
+text-antialias-gray-svg-argb32-ref.png \
+text-antialias-gray-svg-rgb24-ref.png \
text-antialias-none-ref.png \
text-antialias-none-pdf-argb32-ref.png \
text-antialias-none-ps-argb32-ref.png \
+text-antialias-none-svg-argb32-ref.png \
+text-antialias-none-svg-rgb24-ref.png \
text-antialias-subpixel-ref.png \
text-antialias-subpixel-pdf-argb32-ref.png \
text-antialias-subpixel-ps-argb32-ref.png \
+text-antialias-subpixel-svg-argb32-ref.png \
+text-antialias-subpixel-svg-rgb24-ref.png \
text-pattern-ref.png \
text-pattern-rgb24-ref.png \
+text-pattern-pdf-argb32-ref.png \
+text-pattern-ps-argb32-ref.png \
+text-pattern-svg-argb32-ref.png \
+text-pattern-svg-rgb24-ref.png \
text-rotate-ref.png \
text-rotate-rgb24-ref.png \
transforms-ref.png \
@@ -257,8 +334,14 @@ transforms-ps-argb32-ref.png \
translate-show-surface-ref.png \
trap-clip-ref.png \
trap-clip-rgb24-ref.png \
+trap-clip-beos_bitmap-rgb24-ref.png \
+trap-clip-beos-rgb24-ref.png \
+trap-clip-svg-argb32-ref.png \
+trap-clip-svg-rgb24-ref.png \
unantialiased-shapes-ref.png \
unantialiased-shapes-ps-argb32-ref.png \
+unantialiased-shapes-svg-argb32-ref.png \
+unantialiased-shapes-svg-rgb24-ref.png \
unbounded-operator-ref.png \
unbounded-operator-rgb24-ref.png \
zero-alpha-ref.png
@@ -280,6 +363,7 @@ XFAIL_TESTS = \
a8-mask \
extend-reflect \
filter-nearest-offset \
+leaky-dash \
pixman-rotate \
self-intersecting \
text-rotate
@@ -298,7 +382,7 @@ INCLUDES = \
-I$(top_srcdir)/src \
$(CAIRO_CFLAGS)
-noinst_LTLIBRARIES = libcairotest.la
+check_LTLIBRARIES = libcairotest.la
libcairotest_la_SOURCES =\
buffer-diff.c \
@@ -341,22 +425,23 @@ if HAVE_PTHREAD
LDADD += -lpthread
endif
-noinst_PROGRAMS = imagediff png-flatten
+check_PROGRAMS += imagediff png-flatten
if CAIRO_CAN_TEST_PDF_SURFACE
-noinst_PROGRAMS += pdf2png
+check_PROGRAMS += pdf2png
pdf2png_CFLAGS = $(POPPLER_CFLAGS)
pdf2png_LDADD = $(LDADD) $(POPPLER_LIBS)
endif
if CAIRO_CAN_TEST_SVG_SURFACE
-noinst_PROGRAMS += svg2png
+check_PROGRAMS += svg2png
svg2png_CFLAGS = $(LIBRSVG_CFLAGS)
svg2png_LDADD = $(LIBRSVG_LIBS)
endif
CLEANFILES = \
*.ps \
+ *.pdf \
*.svg \
*-out.png \
*-diff.png \
@@ -366,7 +451,8 @@ CLEANFILES = \
pdf-features.pdf \
ps-features.ps \
svg-surface.svg \
- svg-clip.svg
+ svg-clip.svg \
+ index.html
check-valgrind:
TESTS_ENVIRONMENT="libtool --mode=execute valgrind --tool=memcheck --suppressions=./.valgrind-suppressions --leak-check=yes --show-reachable=yes" $(MAKE) check 2>&1 | tee valgrind.log
diff --git a/test/Makefile.in b/test/Makefile.in
index 14f9c89..a88d9fc 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -13,8 +13,6 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
-
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -41,15 +39,18 @@ host_triplet = @host@
# Then we have a collection of tests that are only run if certain
# features are compiled into cairo
@HAVE_PTHREAD_TRUE@am__append_1 = pthread-show-text
-@CAIRO_HAS_FT_FONT_TRUE@am__append_2 = ft-font-create-for-ft-face \
-@CAIRO_HAS_FT_FONT_TRUE@ ft-text-vertical-layout
+@CAIRO_HAS_FT_FONT_TRUE@am__append_2 = bitmap-font \
+@CAIRO_HAS_FT_FONT_TRUE@ ft-font-create-for-ft-face \
+@CAIRO_HAS_FT_FONT_TRUE@ ft-text-vertical-layout \
+@CAIRO_HAS_FT_FONT_TRUE@ ft-text-antialias-none
@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_3 = svg-surface svg-clip
@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_4 = pdf-features
@CAIRO_HAS_PS_SURFACE_TRUE@am__append_5 = ps-features
@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_6 = xlib-surface
@CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@am__append_7 = multi-page
@CAIRO_HAS_PDF_SURFACE_TRUE@@CAIRO_HAS_PS_SURFACE_TRUE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_8 = fallback-resolution
-check_PROGRAMS = $(am__EXEEXT_9)
+check_PROGRAMS = $(am__EXEEXT_9) imagediff$(EXEEXT) \
+ png-flatten$(EXEEXT) $(am__EXEEXT_10) $(am__EXEEXT_11)
@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_9 = cairo-test-beos.cpp cairo-test-beos.h
@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_10 = cairo-test-directfb.c cairo-test-directfb.h
@CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE@am__append_11 = $(GLITZ_AGL_LIBS)
@@ -57,8 +58,6 @@ check_PROGRAMS = $(am__EXEEXT_9)
@CAIRO_CAN_TEST_GLITZ_GLX_SURFACE_TRUE@am__append_13 = $(GLITZ_GLX_LIBS)
@CAIRO_CAN_TEST_GLITZ_WGL_SURFACE_TRUE@am__append_14 = $(GLITZ_WGL_LIBS)
@HAVE_PTHREAD_TRUE@am__append_15 = -lpthread
-noinst_PROGRAMS = imagediff$(EXEEXT) png-flatten$(EXEEXT) \
- $(am__EXEEXT_10) $(am__EXEEXT_11)
@CAIRO_CAN_TEST_PDF_SURFACE_TRUE@am__append_16 = pdf2png
@CAIRO_CAN_TEST_SVG_SURFACE_TRUE@am__append_17 = svg2png
subdir = test
@@ -71,7 +70,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
libcairotest_la_LIBADD =
am__libcairotest_la_SOURCES_DIST = buffer-diff.c buffer-diff.h \
cairo-test.c cairo-test.h read-png.c read-png.h write-png.c \
@@ -84,9 +82,10 @@ am_libcairotest_la_OBJECTS = buffer-diff.lo cairo-test.lo read-png.lo \
write-png.lo xmalloc.lo $(am__objects_1) $(am__objects_2)
libcairotest_la_OBJECTS = $(am_libcairotest_la_OBJECTS)
@HAVE_PTHREAD_TRUE@am__EXEEXT_1 = pthread-show-text$(EXEEXT)
-@CAIRO_HAS_FT_FONT_TRUE@am__EXEEXT_2 = \
+@CAIRO_HAS_FT_FONT_TRUE@am__EXEEXT_2 = bitmap-font$(EXEEXT) \
@CAIRO_HAS_FT_FONT_TRUE@ ft-font-create-for-ft-face$(EXEEXT) \
-@CAIRO_HAS_FT_FONT_TRUE@ ft-text-vertical-layout$(EXEEXT)
+@CAIRO_HAS_FT_FONT_TRUE@ ft-text-vertical-layout$(EXEEXT) \
+@CAIRO_HAS_FT_FONT_TRUE@ ft-text-antialias-none$(EXEEXT)
@CAIRO_HAS_SVG_SURFACE_TRUE@am__EXEEXT_3 = svg-surface$(EXEEXT) \
@CAIRO_HAS_SVG_SURFACE_TRUE@ svg-clip$(EXEEXT)
@CAIRO_HAS_PDF_SURFACE_TRUE@am__EXEEXT_4 = pdf-features$(EXEEXT)
@@ -106,14 +105,15 @@ am__EXEEXT_9 = a8-mask$(EXEEXT) caps-joins$(EXEEXT) \
create-for-stream$(EXEEXT) create-from-png$(EXEEXT) \
create-from-png-stream$(EXEEXT) dash-caps-joins$(EXEEXT) \
dash-scale$(EXEEXT) dash-offset-negative$(EXEEXT) \
- dash-zero-length$(EXEEXT) device-offset$(EXEEXT) \
+ dash-zero-length$(EXEEXT) degenerate-path$(EXEEXT) \
+ device-offset$(EXEEXT) device-offset-positive$(EXEEXT) \
extend-reflect$(EXEEXT) fill-and-stroke$(EXEEXT) \
fill-and-stroke-alpha$(EXEEXT) \
fill-and-stroke-alpha-add$(EXEEXT) fill-rule$(EXEEXT) \
filter-nearest-offset$(EXEEXT) font-face-get-type$(EXEEXT) \
- get-and-set$(EXEEXT) get-group-target$(EXEEXT) \
- gradient-alpha$(EXEEXT) leaky-dash$(EXEEXT) \
- leaky-polygon$(EXEEXT) line-width$(EXEEXT) \
+ glyph-cache-pressure$(EXEEXT) get-and-set$(EXEEXT) \
+ get-group-target$(EXEEXT) gradient-alpha$(EXEEXT) \
+ leaky-dash$(EXEEXT) leaky-polygon$(EXEEXT) line-width$(EXEEXT) \
line-width-scale$(EXEEXT) linear-gradient$(EXEEXT) \
mask$(EXEEXT) mask-ctm$(EXEEXT) mask-surface-ctm$(EXEEXT) \
move-to-show-surface$(EXEEXT) new-sub-path$(EXEEXT) \
@@ -139,7 +139,6 @@ am__EXEEXT_9 = a8-mask$(EXEEXT) caps-joins$(EXEEXT) \
$(am__EXEEXT_6) $(am__EXEEXT_7) $(am__EXEEXT_8)
@CAIRO_CAN_TEST_PDF_SURFACE_TRUE@am__EXEEXT_10 = pdf2png$(EXEEXT)
@CAIRO_CAN_TEST_SVG_SURFACE_TRUE@am__EXEEXT_11 = svg2png$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
a8_mask_SOURCES = a8-mask.c
a8_mask_OBJECTS = a8-mask.$(OBJEXT)
a8_mask_LDADD = $(LDADD)
@@ -156,6 +155,13 @@ a8_mask_DEPENDENCIES = libcairotest.la $(top_builddir)/src/libcairo.la \
$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
$(am__DEPENDENCIES_4) $(am__DEPENDENCIES_5) \
$(am__DEPENDENCIES_1)
+bitmap_font_SOURCES = bitmap-font.c
+bitmap_font_OBJECTS = bitmap-font.$(OBJEXT)
+bitmap_font_LDADD = $(LDADD)
+bitmap_font_DEPENDENCIES = libcairotest.la \
+ $(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
+ $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
caps_joins_SOURCES = caps-joins.c
caps_joins_OBJECTS = caps-joins.$(OBJEXT)
caps_joins_LDADD = $(LDADD)
@@ -297,6 +303,13 @@ dash_zero_length_DEPENDENCIES = libcairotest.la \
$(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
$(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
+degenerate_path_SOURCES = degenerate-path.c
+degenerate_path_OBJECTS = degenerate-path.$(OBJEXT)
+degenerate_path_LDADD = $(LDADD)
+degenerate_path_DEPENDENCIES = libcairotest.la \
+ $(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
+ $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
device_offset_SOURCES = device-offset.c
device_offset_OBJECTS = device-offset.$(OBJEXT)
device_offset_LDADD = $(LDADD)
@@ -304,6 +317,13 @@ device_offset_DEPENDENCIES = libcairotest.la \
$(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
$(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
+device_offset_positive_SOURCES = device-offset-positive.c
+device_offset_positive_OBJECTS = device-offset-positive.$(OBJEXT)
+device_offset_positive_LDADD = $(LDADD)
+device_offset_positive_DEPENDENCIES = libcairotest.la \
+ $(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
+ $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
extend_reflect_SOURCES = extend-reflect.c
extend_reflect_OBJECTS = extend-reflect.$(OBJEXT)
extend_reflect_LDADD = $(LDADD)
@@ -369,6 +389,13 @@ ft_font_create_for_ft_face_DEPENDENCIES = libcairotest.la \
$(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
$(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
+ft_text_antialias_none_SOURCES = ft-text-antialias-none.c
+ft_text_antialias_none_OBJECTS = ft-text-antialias-none.$(OBJEXT)
+ft_text_antialias_none_LDADD = $(LDADD)
+ft_text_antialias_none_DEPENDENCIES = libcairotest.la \
+ $(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
+ $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
ft_text_vertical_layout_SOURCES = ft-text-vertical-layout.c
ft_text_vertical_layout_OBJECTS = ft-text-vertical-layout.$(OBJEXT)
ft_text_vertical_layout_LDADD = $(LDADD)
@@ -390,6 +417,13 @@ get_group_target_DEPENDENCIES = libcairotest.la \
$(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
$(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
+glyph_cache_pressure_SOURCES = glyph-cache-pressure.c
+glyph_cache_pressure_OBJECTS = glyph-cache-pressure.$(OBJEXT)
+glyph_cache_pressure_LDADD = $(LDADD)
+glyph_cache_pressure_DEPENDENCIES = libcairotest.la \
+ $(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
+ $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1)
gradient_alpha_SOURCES = gradient-alpha.c
gradient_alpha_OBJECTS = gradient-alpha.$(OBJEXT)
gradient_alpha_LDADD = $(LDADD)
@@ -816,8 +850,8 @@ LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libcairotest_la_SOURCES) a8-mask.c caps-joins.c \
- caps-joins-alpha.c caps-sub-paths.c clip-all.c \
+SOURCES = $(libcairotest_la_SOURCES) a8-mask.c bitmap-font.c \
+ caps-joins.c caps-joins-alpha.c caps-sub-paths.c clip-all.c \
clip-fill-rule.c clip-fill-rule-pixel-aligned.c clip-nesting.c \
clip-operator.c clip-twice.c \
composite-integer-translate-over.c \
@@ -825,12 +859,13 @@ SOURCES = $(libcairotest_la_SOURCES) a8-mask.c caps-joins.c \
composite-integer-translate-source.c create-for-stream.c \
create-from-png.c create-from-png-stream.c dash-caps-joins.c \
dash-offset-negative.c dash-scale.c dash-zero-length.c \
- device-offset.c extend-reflect.c fallback-resolution.c \
- fill-and-stroke.c fill-and-stroke-alpha.c \
- fill-and-stroke-alpha-add.c fill-rule.c \
- filter-nearest-offset.c font-face-get-type.c \
- ft-font-create-for-ft-face.c ft-text-vertical-layout.c \
- get-and-set.c get-group-target.c gradient-alpha.c imagediff.c \
+ degenerate-path.c device-offset.c device-offset-positive.c \
+ extend-reflect.c fallback-resolution.c fill-and-stroke.c \
+ fill-and-stroke-alpha.c fill-and-stroke-alpha-add.c \
+ fill-rule.c filter-nearest-offset.c font-face-get-type.c \
+ ft-font-create-for-ft-face.c ft-text-antialias-none.c \
+ ft-text-vertical-layout.c get-and-set.c get-group-target.c \
+ glyph-cache-pressure.c gradient-alpha.c imagediff.c \
leaky-dash.c leaky-polygon.c line-width.c line-width-scale.c \
linear-gradient.c mask.c mask-ctm.c mask-surface-ctm.c \
move-to-show-surface.c multi-page.c new-sub-path.c \
@@ -850,20 +885,21 @@ SOURCES = $(libcairotest_la_SOURCES) a8-mask.c caps-joins.c \
trap-clip.c unantialiased-shapes.c unbounded-operator.c \
user-data.c xlib-surface.c zero-alpha.c
DIST_SOURCES = $(am__libcairotest_la_SOURCES_DIST) a8-mask.c \
- caps-joins.c caps-joins-alpha.c caps-sub-paths.c clip-all.c \
- clip-fill-rule.c clip-fill-rule-pixel-aligned.c clip-nesting.c \
- clip-operator.c clip-twice.c \
+ bitmap-font.c caps-joins.c caps-joins-alpha.c caps-sub-paths.c \
+ clip-all.c clip-fill-rule.c clip-fill-rule-pixel-aligned.c \
+ clip-nesting.c clip-operator.c clip-twice.c \
composite-integer-translate-over.c \
composite-integer-translate-over-repeat.c \
composite-integer-translate-source.c create-for-stream.c \
create-from-png.c create-from-png-stream.c dash-caps-joins.c \
dash-offset-negative.c dash-scale.c dash-zero-length.c \
- device-offset.c extend-reflect.c fallback-resolution.c \
- fill-and-stroke.c fill-and-stroke-alpha.c \
- fill-and-stroke-alpha-add.c fill-rule.c \
- filter-nearest-offset.c font-face-get-type.c \
- ft-font-create-for-ft-face.c ft-text-vertical-layout.c \
- get-and-set.c get-group-target.c gradient-alpha.c imagediff.c \
+ degenerate-path.c device-offset.c device-offset-positive.c \
+ extend-reflect.c fallback-resolution.c fill-and-stroke.c \
+ fill-and-stroke-alpha.c fill-and-stroke-alpha-add.c \
+ fill-rule.c filter-nearest-offset.c font-face-get-type.c \
+ ft-font-create-for-ft-face.c ft-text-antialias-none.c \
+ ft-text-vertical-layout.c get-and-set.c get-group-target.c \
+ glyph-cache-pressure.c gradient-alpha.c imagediff.c \
leaky-dash.c leaky-polygon.c line-width.c line-width-scale.c \
linear-gradient.c mask.c mask-ctm.c mask-surface-ctm.c \
move-to-show-surface.c multi-page.c new-sub-path.c \
@@ -890,12 +926,10 @@ AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
-ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BEOS_SURFACE_FEATURE = @BEOS_SURFACE_FEATURE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_FALSE@
CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE = @CAIRO_CAN_TEST_GLITZ_AGL_SURFACE_TRUE@
CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE = @CAIRO_CAN_TEST_GLITZ_EGL_SURFACE_FALSE@
@@ -941,11 +975,13 @@ CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE@
+CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE = @CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_REQUIRES = @CAIRO_REQUIRES@
CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@
CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@
CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@
-CAIRO_VERSION_OTHER = @CAIRO_VERSION_OTHER@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -958,9 +994,6 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
-DIRECTFB_LIBS = @DIRECTFB_LIBS@
-DIRECTFB_SURFACE_FEATURE = @DIRECTFB_SURFACE_FEATURE@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -978,18 +1011,12 @@ FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_CONFIG_CFLAGS = @FREETYPE_CONFIG_CFLAGS@
FREETYPE_CONFIG_LIBS = @FREETYPE_CONFIG_LIBS@
FREETYPE_LIBS = @FREETYPE_LIBS@
-FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
-FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_AGL_CFLAGS = @GLITZ_AGL_CFLAGS@
GLITZ_AGL_LIBS = @GLITZ_AGL_LIBS@
-GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_EGL_CFLAGS = @GLITZ_EGL_CFLAGS@
GLITZ_EGL_LIBS = @GLITZ_EGL_LIBS@
GLITZ_GLX_CFLAGS = @GLITZ_GLX_CFLAGS@
GLITZ_GLX_LIBS = @GLITZ_GLX_LIBS@
-GLITZ_LIBS = @GLITZ_LIBS@
-GLITZ_REQUIRES = @GLITZ_REQUIRES@
-GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GLITZ_WGL_CFLAGS = @GLITZ_WGL_CFLAGS@
GLITZ_WGL_LIBS = @GLITZ_WGL_LIBS@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
@@ -1025,38 +1052,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PDF_LIBS = @PDF_LIBS@
-PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
PKG_CONFIG = @PKG_CONFIG@
-PNG_CFLAGS = @PNG_CFLAGS@
-PNG_FUNCTIONS_FEATURE = @PNG_FUNCTIONS_FEATURE@
-PNG_LIBS = @PNG_LIBS@
-PNG_REQUIRES = @PNG_REQUIRES@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
-PS_LIBS = @PS_LIBS@
-PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
-QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-SVG_SURFACE_FEATURE = @SVG_SURFACE_FEATURE@
USE_MMX_FALSE = @USE_MMX_FALSE@
USE_MMX_TRUE = @USE_MMX_TRUE@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WARN_CFLAGS = @WARN_CFLAGS@
-WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
-WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
-XCB_CFLAGS = @XCB_CFLAGS@
-XCB_LIBS = @XCB_LIBS@
-XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
-XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
-XRENDER_CFLAGS = @XRENDER_CFLAGS@
-XRENDER_LIBS = @XRENDER_LIBS@
-XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
@@ -1084,7 +1092,11 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+directfb_CFLAGS = @directfb_CFLAGS@
+directfb_LIBS = @directfb_LIBS@
exec_prefix = @exec_prefix@
+glitz_CFLAGS = @glitz_CFLAGS@
+glitz_LIBS = @glitz_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -1099,12 +1111,18 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+png_CFLAGS = @png_CFLAGS@
+png_LIBS = @png_LIBS@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+xcb_CFLAGS = @xcb_CFLAGS@
+xcb_LIBS = @xcb_LIBS@
+xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@
+xlib_xrender_LIBS = @xlib_xrender_LIBS@
# Here are all the tests that are run unconditionally
TESTS = a8-mask caps-joins caps-joins-alpha caps-sub-paths clip-all \
@@ -1113,15 +1131,16 @@ TESTS = a8-mask caps-joins caps-joins-alpha caps-sub-paths clip-all \
composite-integer-translate-over \
composite-integer-translate-over-repeat create-for-stream \
create-from-png create-from-png-stream dash-caps-joins \
- dash-scale dash-offset-negative dash-zero-length device-offset \
+ dash-scale dash-offset-negative dash-zero-length \
+ degenerate-path device-offset device-offset-positive \
extend-reflect fill-and-stroke fill-and-stroke-alpha \
fill-and-stroke-alpha-add fill-rule filter-nearest-offset \
- font-face-get-type get-and-set get-group-target gradient-alpha \
- leaky-dash leaky-polygon line-width line-width-scale \
- linear-gradient mask mask-ctm mask-surface-ctm \
- move-to-show-surface new-sub-path nil-surface operator-clear \
- operator-source paint paint-source-alpha paint-with-alpha \
- path-data pattern-get-type pixman-rotate \
+ font-face-get-type glyph-cache-pressure get-and-set \
+ get-group-target gradient-alpha leaky-dash leaky-polygon \
+ line-width line-width-scale linear-gradient mask mask-ctm \
+ mask-surface-ctm move-to-show-surface new-sub-path nil-surface \
+ operator-clear operator-source paint paint-source-alpha \
+ paint-with-alpha path-data pattern-get-type pixman-rotate \
rectangle-rounding-error scale-source-surface-paint \
select-font-face select-font-no-show-text self-copy \
self-intersecting set-source show-text-current-point \
@@ -1155,11 +1174,16 @@ TESTS = a8-mask caps-joins caps-joins-alpha caps-sub-paths clip-all \
# I really don't like having to repeat this list. Anyone know a good
# way to avoid it? Can I use a wildcard here?
EXTRA_DIST = \
+6x13.pcf \
make-html.pl \
a8-mask-ref.png \
+bitmap-font-ref.png \
+bitmap-font-rgb24-ref.png \
caps-joins-ref.png \
-caps-joins-alpha-ref.png \
caps-joins-ps-argb32-ref.png \
+caps-joins-alpha-ref.png \
+caps-joins-alpha-svg-argb32-ref.png \
+caps-joins-alpha-svg-rgb24-ref.png \
caps-sub-paths-ref.png \
caps-sub-paths-ps-argb32-ref.png \
clip-all-ref.png \
@@ -1177,6 +1201,9 @@ clip-twice-ref.png \
clip-twice-rgb24-ref.png \
clip-twice-ps-argb32-ref.png \
composite-integer-translate-over-ref.png \
+composite-integer-translate-over-pdf-argb32-ref.png \
+composite-integer-translate-over-svg-argb32-ref.png \
+composite-integer-translate-over-svg-rgb24-ref.png \
composite-integer-translate-over-repeat-ref.png \
composite-integer-translate-source-ref.png \
create-from-png-ref.png \
@@ -1184,38 +1211,70 @@ create-from-png-stream-ref.png \
dash-caps-joins-ref.png \
dash-caps-joins-ps-argb32-ref.png \
dash-scale-ref.png \
+dash-scale-ps-argb32-ref.png \
dash-offset-negative-ref.png \
dash-offset-negative-ps-argb32-ref.png \
dash-zero-length-ref.png \
dash-zero-length-rgb24-ref.png \
dash-zero-length-ps-argb32-ref.png \
+degenerate-path-ref.png \
+degenerate-path-rgb24-ref.png \
+degenerate-path-ps-argb32-ref.png \
device-offset-ref.png \
+device-offset-rgb24-ref.png \
+device-offset-positive-ref.png \
+device-offset-positive-rgb24-ref.png \
fill-and-stroke-ref.png \
fill-and-stroke-rgb24-ref.png \
fill-and-stroke-ps-argb32-ref.png \
fill-and-stroke-alpha-ref.png \
+fill-and-stroke-alpha-svg-argb32-ref.png \
+fill-and-stroke-alpha-svg-rgb24-ref.png \
fill-and-stroke-alpha-add-ref.png \
fill-rule-ref.png \
fill-rule-rgb24-ref.png \
fill-rule-ps-argb32-ref.png \
filter-nearest-offset-ref.png \
+ft-text-antialias-none-ref.png \
+ft-text-antialias-none-ps-argb32-ref.png \
+ft-text-vertical-layout-ref.png \
+ft-text-vertical-layout-pdf-argb32-ref.png \
+ft-text-vertical-layout-ps-argb32-ref.png \
+ft-text-vertical-layout-svg-argb32-ref.png \
+ft-text-vertical-layout-svg-rgb24-ref.png \
get-group-target-ref.png \
+glyph-cache-pressure-ref.png \
+glyph-cache-pressure-pdf-argb32-ref.png \
+glyph-cache-pressure-ps-argb32-ref.png \
+glyph-cache-pressure-svg-argb32-ref.png \
+glyph-cache-pressure-svg-rgb24-ref.png \
gradient-alpha-ref.png \
gradient-alpha-rgb24-ref.png \
leaky-dash-ref.png \
leaky-polygon-ref.png \
leaky-polygon-ps-argb32-ref.png \
linear-gradient-ref.png \
+linear-gradient-svg-argb32-ref.png \
+linear-gradient-svg-rgb24-ref.png \
line-width-ref.png \
line-width-ps-argb32-ref.png \
line-width-scale-ref.png \
line-width-scale-ps-argb32-ref.png \
-mask-ctm-ref.png \
-mask-ctm-rgb24-ref.png \
mask-ref.png \
mask-rgb24-ref.png \
+mask-beos_bitmap-argb32-ref.png \
+mask-beos_bitmap-rgb24-ref.png \
+mask-beos-rgb24-ref.png \
+mask-svg-argb32-ref.png \
+mask-svg-rgb24-ref.png \
+mask-ctm-ref.png \
+mask-ctm-rgb24-ref.png \
+mask-ctm-svg-argb32-ref.png \
+mask-ctm-svg-rgb24-ref.png \
mask-surface-ctm-ref.png \
mask-surface-ctm-rgb24-ref.png \
+mask-surface-ctm-svg-argb32-ref.png \
+mask-surface-ctm-svg-rgb24-ref.png \
move-to-show-surface-ref.png \
new-sub-path-ref.png \
new-sub-path-rgb24-ref.png \
@@ -1228,12 +1287,22 @@ operator-source-ref.png \
operator-source-rgb24-ref.png \
paint-ref.png \
paint-source-alpha-ref.png \
+paint-source-alpha-pdf-argb32-ref.png \
+paint-source-alpha-svg-argb32-ref.png \
+paint-source-alpha-svg-rgb24-ref.png \
paint-with-alpha-ref.png \
+paint-with-alpha-svg-argb32-ref.png \
+paint-with-alpha-svg-rgb24-ref.png \
path-data-ref.png \
path-data-ps-argb32-ref.png \
pixman-rotate-ref.png \
pixman-rotate-rgb24-ref.png \
+pixman-rotate-svg-argb32-ref.png \
+pixman-rotate-svg-rgb24-ref.png \
push-group-ref.png \
+push-group-rgb24-ref.png \
+push-group-svg-argb32-ref.png \
+push-group-svg-rgb24-ref.png \
rectangle-rounding-error-ref.png \
rectangle-rounding-error-ps-argb32-ref.png \
rel-path-ref.png \
@@ -1242,16 +1311,28 @@ romedalen.png \
scale-source-surface-paint-ref.png \
scale-source-surface-paint-rgb24-ref.png \
scale-source-surface-paint-pdf-argb32-ref.png \
+scale-source-surface-paint-svg-argb32-ref.png \
+scale-source-surface-paint-svg-rgb24-ref.png \
select-font-face-ref.png \
+select-font-face-pdf-argb32-ref.png \
+select-font-face-ps-argb32-ref.png \
+select-font-face-svg-argb32-ref.png \
+select-font-face-svg-rgb24-ref.png \
self-copy-ref.png \
self-intersecting-ref.png \
self-intersecting-rgb24-ref.png \
set-source-ref.png \
set-source-rgb24-ref.png \
+set-source-beos_bitmap-rgb24-ref.png \
+set-source-beos-rgb24-ref.png \
+set-source-svg-argb32-ref.png \
+set-source-svg-rgb24-ref.png \
show-glyphs-many-ref.png \
show-text-current-point-ref.png \
show-text-current-point-pdf-argb32-ref.png \
show-text-current-point-ps-argb32-ref.png \
+show-text-current-point-svg-argb32-ref.png \
+show-text-current-point-svg-rgb24-ref.png \
source-clip-ref.png \
source-surface-scale-paint-ref.png \
source-surface-scale-paint-rgb24-ref.png \
@@ -1259,14 +1340,24 @@ surface-pattern-ref.png \
text-antialias-gray-ref.png \
text-antialias-gray-pdf-argb32-ref.png \
text-antialias-gray-ps-argb32-ref.png \
+text-antialias-gray-svg-argb32-ref.png \
+text-antialias-gray-svg-rgb24-ref.png \
text-antialias-none-ref.png \
text-antialias-none-pdf-argb32-ref.png \
text-antialias-none-ps-argb32-ref.png \
+text-antialias-none-svg-argb32-ref.png \
+text-antialias-none-svg-rgb24-ref.png \
text-antialias-subpixel-ref.png \
text-antialias-subpixel-pdf-argb32-ref.png \
text-antialias-subpixel-ps-argb32-ref.png \
+text-antialias-subpixel-svg-argb32-ref.png \
+text-antialias-subpixel-svg-rgb24-ref.png \
text-pattern-ref.png \
text-pattern-rgb24-ref.png \
+text-pattern-pdf-argb32-ref.png \
+text-pattern-ps-argb32-ref.png \
+text-pattern-svg-argb32-ref.png \
+text-pattern-svg-rgb24-ref.png \
text-rotate-ref.png \
text-rotate-rgb24-ref.png \
transforms-ref.png \
@@ -1274,8 +1365,14 @@ transforms-ps-argb32-ref.png \
translate-show-surface-ref.png \
trap-clip-ref.png \
trap-clip-rgb24-ref.png \
+trap-clip-beos_bitmap-rgb24-ref.png \
+trap-clip-beos-rgb24-ref.png \
+trap-clip-svg-argb32-ref.png \
+trap-clip-svg-rgb24-ref.png \
unantialiased-shapes-ref.png \
unantialiased-shapes-ps-argb32-ref.png \
+unantialiased-shapes-svg-argb32-ref.png \
+unantialiased-shapes-svg-rgb24-ref.png \
unbounded-operator-ref.png \
unbounded-operator-rgb24-ref.png \
zero-alpha-ref.png
@@ -1298,6 +1395,7 @@ XFAIL_TESTS = \
a8-mask \
extend-reflect \
filter-nearest-offset \
+leaky-dash \
pixman-rotate \
self-intersecting \
text-rotate
@@ -1315,7 +1413,7 @@ INCLUDES = \
-I$(top_srcdir)/src \
$(CAIRO_CFLAGS)
-noinst_LTLIBRARIES = libcairotest.la
+check_LTLIBRARIES = libcairotest.la
libcairotest_la_SOURCES = buffer-diff.c buffer-diff.h cairo-test.c \
cairo-test.h read-png.c read-png.h write-png.c write-png.h \
xmalloc.c xmalloc.h $(am__append_9) $(am__append_10)
@@ -1330,6 +1428,7 @@ LDADD = libcairotest.la $(top_builddir)/src/libcairo.la \
@CAIRO_CAN_TEST_SVG_SURFACE_TRUE@svg2png_LDADD = $(LIBRSVG_LIBS)
CLEANFILES = \
*.ps \
+ *.pdf \
*.svg \
*-out.png \
*-diff.png \
@@ -1339,7 +1438,8 @@ CLEANFILES = \
pdf-features.pdf \
ps-features.ps \
svg-surface.svg \
- svg-clip.svg
+ svg-clip.svg \
+ index.html
all: all-am
@@ -1375,9 +1475,9 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+clean-checkLTLIBRARIES:
+ -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES)
+ @list='$(check_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
@@ -1392,16 +1492,12 @@ clean-checkPROGRAMS:
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
-
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
a8-mask$(EXEEXT): $(a8_mask_OBJECTS) $(a8_mask_DEPENDENCIES)
@rm -f a8-mask$(EXEEXT)
$(LINK) $(a8_mask_LDFLAGS) $(a8_mask_OBJECTS) $(a8_mask_LDADD) $(LIBS)
+bitmap-font$(EXEEXT): $(bitmap_font_OBJECTS) $(bitmap_font_DEPENDENCIES)
+ @rm -f bitmap-font$(EXEEXT)
+ $(LINK) $(bitmap_font_LDFLAGS) $(bitmap_font_OBJECTS) $(bitmap_font_LDADD) $(LIBS)
caps-joins$(EXEEXT): $(caps_joins_OBJECTS) $(caps_joins_DEPENDENCIES)
@rm -f caps-joins$(EXEEXT)
$(LINK) $(caps_joins_LDFLAGS) $(caps_joins_OBJECTS) $(caps_joins_LDADD) $(LIBS)
@@ -1459,9 +1555,15 @@ dash-scale$(EXEEXT): $(dash_scale_OBJECTS) $(dash_scale_DEPENDENCIES)
dash-zero-length$(EXEEXT): $(dash_zero_length_OBJECTS) $(dash_zero_length_DEPENDENCIES)
@rm -f dash-zero-length$(EXEEXT)
$(LINK) $(dash_zero_length_LDFLAGS) $(dash_zero_length_OBJECTS) $(dash_zero_length_LDADD) $(LIBS)
+degenerate-path$(EXEEXT): $(degenerate_path_OBJECTS) $(degenerate_path_DEPENDENCIES)
+ @rm -f degenerate-path$(EXEEXT)
+ $(LINK) $(degenerate_path_LDFLAGS) $(degenerate_path_OBJECTS) $(degenerate_path_LDADD) $(LIBS)
device-offset$(EXEEXT): $(device_offset_OBJECTS) $(device_offset_DEPENDENCIES)
@rm -f device-offset$(EXEEXT)
$(LINK) $(device_offset_LDFLAGS) $(device_offset_OBJECTS) $(device_offset_LDADD) $(LIBS)
+device-offset-positive$(EXEEXT): $(device_offset_positive_OBJECTS) $(device_offset_positive_DEPENDENCIES)
+ @rm -f device-offset-positive$(EXEEXT)
+ $(LINK) $(device_offset_positive_LDFLAGS) $(device_offset_positive_OBJECTS) $(device_offset_positive_LDADD) $(LIBS)
extend-reflect$(EXEEXT): $(extend_reflect_OBJECTS) $(extend_reflect_DEPENDENCIES)
@rm -f extend-reflect$(EXEEXT)
$(LINK) $(extend_reflect_LDFLAGS) $(extend_reflect_OBJECTS) $(extend_reflect_LDADD) $(LIBS)
@@ -1489,6 +1591,9 @@ font-face-get-type$(EXEEXT): $(font_face_get_type_OBJECTS) $(font_face_get_type_
ft-font-create-for-ft-face$(EXEEXT): $(ft_font_create_for_ft_face_OBJECTS) $(ft_font_create_for_ft_face_DEPENDENCIES)
@rm -f ft-font-create-for-ft-face$(EXEEXT)
$(LINK) $(ft_font_create_for_ft_face_LDFLAGS) $(ft_font_create_for_ft_face_OBJECTS) $(ft_font_create_for_ft_face_LDADD) $(LIBS)
+ft-text-antialias-none$(EXEEXT): $(ft_text_antialias_none_OBJECTS) $(ft_text_antialias_none_DEPENDENCIES)
+ @rm -f ft-text-antialias-none$(EXEEXT)
+ $(LINK) $(ft_text_antialias_none_LDFLAGS) $(ft_text_antialias_none_OBJECTS) $(ft_text_antialias_none_LDADD) $(LIBS)
ft-text-vertical-layout$(EXEEXT): $(ft_text_vertical_layout_OBJECTS) $(ft_text_vertical_layout_DEPENDENCIES)
@rm -f ft-text-vertical-layout$(EXEEXT)
$(LINK) $(ft_text_vertical_layout_LDFLAGS) $(ft_text_vertical_layout_OBJECTS) $(ft_text_vertical_layout_LDADD) $(LIBS)
@@ -1498,6 +1603,9 @@ get-and-set$(EXEEXT): $(get_and_set_OBJECTS) $(get_and_set_DEPENDENCIES)
get-group-target$(EXEEXT): $(get_group_target_OBJECTS) $(get_group_target_DEPENDENCIES)
@rm -f get-group-target$(EXEEXT)
$(LINK) $(get_group_target_LDFLAGS) $(get_group_target_OBJECTS) $(get_group_target_LDADD) $(LIBS)
+glyph-cache-pressure$(EXEEXT): $(glyph_cache_pressure_OBJECTS) $(glyph_cache_pressure_DEPENDENCIES)
+ @rm -f glyph-cache-pressure$(EXEEXT)
+ $(LINK) $(glyph_cache_pressure_LDFLAGS) $(glyph_cache_pressure_OBJECTS) $(glyph_cache_pressure_LDADD) $(LIBS)
gradient-alpha$(EXEEXT): $(gradient_alpha_OBJECTS) $(gradient_alpha_DEPENDENCIES)
@rm -f gradient-alpha$(EXEEXT)
$(LINK) $(gradient_alpha_LDFLAGS) $(gradient_alpha_OBJECTS) $(gradient_alpha_LDADD) $(LIBS)
@@ -1680,6 +1788,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/a8-mask.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitmap-font.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer-diff.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-test-directfb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-test.Plo@am__quote@
@@ -1702,6 +1811,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dash-offset-negative.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dash-scale.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dash-zero-length.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/degenerate-path.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/device-offset-positive.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/device-offset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extend-reflect.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallback-resolution.Po@am__quote@
@@ -1712,9 +1823,11 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-nearest-offset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-face-get-type.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ft-font-create-for-ft-face.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ft-text-antialias-none.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ft-text-vertical-layout.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-and-set.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-group-target.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glyph-cache-pressure.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gradient-alpha.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagediff.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/leaky-dash.Po@am__quote@
@@ -2014,10 +2127,10 @@ distdir: $(DISTFILES)
fi; \
done
check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS)
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS)
+all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
@@ -2046,8 +2159,8 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
- clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am
+clean-am: clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \
+ clean-libtool mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@@ -2094,17 +2207,16 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
- clean-checkPROGRAMS clean-generic clean-libtool \
- clean-noinstLTLIBRARIES clean-noinstPROGRAMS ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-info-am
+ clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \
+ clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-exec install-exec-am \
+ install-info install-info-am install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am
check-valgrind:
diff --git a/test/bitmap-font-ref.png b/test/bitmap-font-ref.png
new file mode 100644
index 0000000..886c62f
--- /dev/null
+++ b/test/bitmap-font-ref.png
Binary files differ
diff --git a/test/bitmap-font-rgb24-ref.png b/test/bitmap-font-rgb24-ref.png
new file mode 100644
index 0000000..abea9b1
--- /dev/null
+++ b/test/bitmap-font-rgb24-ref.png
Binary files differ
diff --git a/test/bitmap-font.c b/test/bitmap-font.c
new file mode 100644
index 0000000..6351a3f
--- /dev/null
+++ b/test/bitmap-font.c
@@ -0,0 +1,106 @@
+/*
+ * Copyright © 2005 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Red Hat, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. Red Hat, Inc. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Carl D. Worth <cworth@cworth.org>
+ */
+
+#include "cairo-test.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <cairo-ft.h>
+#include <fontconfig/fontconfig.h>
+
+#define FONT "6x13.pcf"
+#define TEXT_SIZE 13
+
+cairo_test_t test = {
+ "bitmap-font",
+ "Test drawing with a font consisting only of bitmaps",
+ 246 + 1, TEXT_SIZE
+};
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+ FcPattern *pattern;
+ cairo_font_face_t *font_face;
+ cairo_status_t status;
+ char *srcdir = getenv ("srcdir");
+ char *filename;
+ struct stat stat_buf;
+
+ if (! srcdir)
+ srcdir = ".";
+
+ xasprintf (&filename, "%s/%s", srcdir, FONT);
+
+ if (stat (filename, &stat_buf) || ! S_ISREG (stat_buf.st_mode)) {
+ cairo_test_log ("Error finding font: %s: file not found?\n", filename);
+ return CAIRO_TEST_FAILURE;
+ }
+
+ pattern = FcPatternCreate ();
+ if (! pattern) {
+ cairo_test_log ("FcPatternCreate failed.\n");
+ return CAIRO_TEST_FAILURE;
+ }
+
+ FcPatternAddString (pattern, FC_FILE, (unsigned char *) filename);
+ free (filename);
+ FcPatternAddInteger (pattern, FC_INDEX, 0);
+ font_face = cairo_ft_font_face_create_for_pattern (pattern);
+
+ status = cairo_font_face_status (font_face);
+ if (status) {
+ cairo_test_log ("Error creating font face for %s: %s\n",
+ filename,
+ cairo_status_to_string (status));
+ return CAIRO_TEST_FAILURE;
+ }
+
+ if (cairo_font_face_get_type (font_face) != CAIRO_FONT_TYPE_FT) {
+ cairo_test_log ("Unexpected value from cairo_font_face_get_type: %d (expected %d)\n",
+ cairo_font_face_get_type (font_face), CAIRO_FONT_TYPE_FT);
+ cairo_font_face_destroy (font_face);
+ return CAIRO_TEST_FAILURE;
+ }
+
+ cairo_set_font_face (cr, font_face);
+
+ FcPatternDestroy (pattern);
+ cairo_font_face_destroy (font_face);
+
+ cairo_move_to (cr, 1, TEXT_SIZE - 3);
+ cairo_set_source_rgb (cr, 0.0, 0.0, 1.0); /* blue */
+ cairo_show_text (cr, "the quick brown fox jumps over a lazy dog");
+
+ return CAIRO_TEST_SUCCESS;
+}
+
+int
+main (void)
+{
+ return cairo_test (&test, draw);
+}
diff --git a/test/cairo-test.c b/test/cairo-test.c
index 0103e46..38acd0d 100644
--- a/test/cairo-test.c
+++ b/test/cairo-test.c
@@ -30,6 +30,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
+#include <ctype.h>
+#include <setjmp.h>
+#include <signal.h>
#include <assert.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@@ -67,6 +70,12 @@ typedef enum cairo_internal_surface_type {
#define access _access
#define F_OK 0
#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+#ifndef TRUE
+#define TRUE !FALSE
+#endif
static void
xunlink (const char *pathname);
@@ -88,6 +97,12 @@ static const char *fail_face = "", *normal_face = "";
* general-purpose library, and it keeps the tests cleaner to avoid a
* context object there, (though not a whole lot). */
FILE *cairo_test_log_file = NULL;
+char *srcdir;
+
+/* Used to catch crashes in a test, such that we report it as such and
+ * continue testing, although one crasher may already have corrupted memory in
+ * an nonrecoverable fashion. */
+jmp_buf jmpbuf;
void
cairo_test_init (const char *test_name)
@@ -1010,7 +1025,7 @@ create_xcb_surface (cairo_test_t *test,
render_format = _format_from_cairo (c, format);
if (render_format.id.xid == 0)
return NULL;
- surface = cairo_xcb_surface_create_with_xrender_format (c, xtc->drawable,
+ surface = cairo_xcb_surface_create_with_xrender_format (c, xtc->drawable, root,
&render_format,
width, height);
@@ -1213,6 +1228,8 @@ static void
cleanup_ps (void *closure)
{
ps_target_closure_t *ptc = closure;
+ if (ptc->target)
+ cairo_surface_destroy (ptc->target);
free (ptc->filename);
free (ptc);
}
@@ -1221,6 +1238,15 @@ cleanup_ps (void *closure)
#if CAIRO_HAS_PDF_SURFACE && CAIRO_CAN_TEST_PDF_SURFACE
#include "cairo-pdf.h"
+static const char *pdf_ignored_tests[] = {
+ /* We can't match the results of tests that depend on
+ * CAIRO_ANTIALIAS_NONE, (nor do we care). */
+ "ft-text-antialias-none",
+ "rectangle-rounding-error",
+ "unantialiased-shapes",
+ NULL
+};
+
cairo_user_data_key_t pdf_closure_key;
typedef struct _pdf_target_closure
@@ -1240,8 +1266,13 @@ create_pdf_surface (cairo_test_t *test,
int height = test->height;
pdf_target_closure_t *ptc;
cairo_surface_t *surface;
+ int i;
+
+ for (i = 0; pdf_ignored_tests[i] != NULL; i++)
+ if (strcmp (test->name, pdf_ignored_tests[i]) == 0)
+ return NULL;
- /* Sanitizie back to a real cairo_content_t value. */
+ /* Sanitize back to a real cairo_content_t value. */
if (content == CAIRO_TEST_CONTENT_COLOR_ALPHA_FLATTENED)
content = CAIRO_CONTENT_COLOR_ALPHA;
@@ -1316,6 +1347,8 @@ static void
cleanup_pdf (void *closure)
{
pdf_target_closure_t *ptc = closure;
+ if (ptc->target)
+ cairo_surface_destroy (ptc->target);
free (ptc->filename);
free (ptc);
}
@@ -1327,6 +1360,7 @@ cleanup_pdf (void *closure)
static const char *svg_ignored_tests[] = {
/* rectangle-rounding-error uses CAIRO_ANTIALIAS_NONE,
* which is not supported */
+ "ft-text-antialias-none",
"rectangle-rounding-error",
NULL
};
@@ -1426,6 +1460,8 @@ static void
cleanup_svg (void *closure)
{
svg_target_closure_t *ptc = closure;
+ if (ptc->target)
+ cairo_surface_destroy (ptc->target);
free (ptc->filename);
free (ptc);
}
@@ -1441,15 +1477,11 @@ cairo_test_for_target (cairo_test_t *test,
cairo_surface_t *surface;
cairo_t *cr;
char *png_name, *ref_name, *diff_name, *offset_str;
- char *srcdir;
char *format;
cairo_test_status_t ret;
cairo_content_t expected_content;
/* Get the strings ready that we'll need. */
- srcdir = getenv ("srcdir");
- if (!srcdir)
- srcdir = ".";
format = _cairo_test_content_name (target->content);
if (dev_offset)
@@ -1457,11 +1489,6 @@ cairo_test_for_target (cairo_test_t *test,
else
offset_str = strdup("");
- if (dev_offset)
- xasprintf (&offset_str, "-%d", dev_offset);
- else
- offset_str = strdup("");
-
xasprintf (&png_name, "%s-%s-%s%s%s", test->name,
target->name, format, offset_str, CAIRO_TEST_PNG_SUFFIX);
@@ -1596,12 +1623,19 @@ UNWIND_STRINGS:
return ret;
}
+static void
+segfault_handler (int signal)
+{
+ longjmp (jmpbuf, signal);
+}
+
static cairo_test_status_t
cairo_test_expecting (cairo_test_t *test, cairo_test_draw_function_t draw,
cairo_test_status_t expectation)
{
- int i, j, num_targets;
+ volatile int i, j, num_targets;
const char *tname;
+ sighandler_t old_segfault_handler;
cairo_test_status_t status, ret;
cairo_test_target_t **targets_to_test;
cairo_test_target_t targets[] =
@@ -1734,21 +1768,46 @@ cairo_test_expecting (cairo_test_t *test, cairo_test_draw_function_t draw,
#endif
};
+#ifdef HAVE_UNISTD_H
+ if (isatty (1)) {
+ fail_face = "\033[41m\033[37m\033[1m";
+ normal_face = "\033[m";
+ }
+#endif
+
+ srcdir = getenv ("srcdir");
+ if (!srcdir)
+ srcdir = ".";
+
if ((tname = getenv ("CAIRO_TEST_TARGET")) != NULL) {
const char *tname = getenv ("CAIRO_TEST_TARGET");
num_targets = 0;
targets_to_test = NULL;
- /* realloc isn't exactly the best thing here, but meh. */
- for (i = 0; i < sizeof(targets)/sizeof(targets[0]); i++) {
- if (strcmp (targets[i].name, tname) == 0) {
- targets_to_test = realloc (targets_to_test, sizeof(cairo_test_target_t *) * (num_targets+1));
- targets_to_test[num_targets++] = &targets[i];
+
+ while (*tname) {
+ int found = 0;
+ const char *end = strpbrk (tname, " \t;:,");
+ if (!end)
+ end = tname + strlen (tname);
+
+ for (i = 0; i < sizeof(targets)/sizeof(targets[0]); i++) {
+ if (strncmp (targets[i].name, tname, end - tname) == 0 &&
+ !isalnum (targets[i].name[end - tname])) {
+ /* realloc isn't exactly the best thing here, but meh. */
+ targets_to_test = realloc (targets_to_test, sizeof(cairo_test_target_t *) * (num_targets+1));
+ targets_to_test[num_targets++] = &targets[i];
+ found = 1;
+ }
+ }
+
+ if (!found) {
+ fprintf (stderr, "CAIRO_TEST_TARGET '%s' not found in targets list!\n", tname);
+ exit(-1);
}
- }
- if (num_targets == 0) {
- fprintf (stderr, "CAIRO_TEST_TARGET '%s' not found in targets list!\n", tname);
- exit(-1);
+ if (*end)
+ end++;
+ tname = end;
}
} else {
num_targets = sizeof(targets)/sizeof(targets[0]);
@@ -1763,7 +1822,7 @@ cairo_test_expecting (cairo_test_t *test, cairo_test_draw_function_t draw,
* iff. there is at least one tested backend and that all tested
* backends return SUCCESS. In other words:
*
- * if any backend FAILURE
+ * if any backend not SUCCESS
* -> FAILURE
* else if all backends UNTESTED
* -> FAILURE
@@ -1781,7 +1840,13 @@ cairo_test_expecting (cairo_test_t *test, cairo_test_draw_function_t draw,
_cairo_test_content_name (target->content),
dev_offset);
- status = cairo_test_for_target (test, draw, target, dev_offset);
+ /* Set up a checkpoint to get back to in case of segfaults. */
+ old_segfault_handler = signal (SIGSEGV, (sighandler_t) segfault_handler);
+ if (0 == setjmp (jmpbuf))
+ status = cairo_test_for_target (test, draw, target, dev_offset);
+ else
+ status = CAIRO_TEST_CRASHED;
+ signal (SIGSEGV, (sighandler_t) old_segfault_handler);
cairo_test_log ("TEST: %s TARGET: %s FORMAT: %s OFFSET: %d RESULT: ",
test->name, target->name,
@@ -1799,6 +1864,11 @@ cairo_test_expecting (cairo_test_t *test, cairo_test_draw_function_t draw,
printf ("UNTESTED\n");
cairo_test_log ("UNTESTED\n");
break;
+ case CAIRO_TEST_CRASHED:
+ printf ("%s!!!CRASHED!!!%s\n", fail_face, normal_face);
+ cairo_test_log ("CRASHED\n");
+ ret = CAIRO_TEST_FAILURE;
+ break;
default:
case CAIRO_TEST_FAILURE:
if (expectation == CAIRO_TEST_FAILURE) {
@@ -1839,12 +1909,6 @@ cairo_test_expect_failure (cairo_test_t *test,
cairo_test_status_t
cairo_test (cairo_test_t *test, cairo_test_draw_function_t draw)
{
-#ifdef HAVE_UNISTD_H
- if (isatty (1)) {
- fail_face = "\033[41m\033[37m\033[1m";
- normal_face = "\033[m";
- }
-#endif
printf ("\n");
return cairo_test_expecting (test, draw, CAIRO_TEST_SUCCESS);
}
diff --git a/test/cairo-test.h b/test/cairo-test.h
index d47c47f..f33ea1e 100644
--- a/test/cairo-test.h
+++ b/test/cairo-test.h
@@ -67,7 +67,8 @@ typedef unsigned __int64 uint64_t;
typedef enum cairo_test_status {
CAIRO_TEST_SUCCESS = 0,
CAIRO_TEST_FAILURE,
- CAIRO_TEST_UNTESTED
+ CAIRO_TEST_UNTESTED,
+ CAIRO_TEST_CRASHED
} cairo_test_status_t;
typedef struct cairo_test {
diff --git a/test/caps-joins-alpha-svg-argb32-ref.png b/test/caps-joins-alpha-svg-argb32-ref.png
new file mode 100644
index 0000000..2468936
--- /dev/null
+++ b/test/caps-joins-alpha-svg-argb32-ref.png
Binary files differ
diff --git a/test/caps-joins-alpha-svg-rgb24-ref.png b/test/caps-joins-alpha-svg-rgb24-ref.png
new file mode 100644
index 0000000..2468936
--- /dev/null
+++ b/test/caps-joins-alpha-svg-rgb24-ref.png
Binary files differ
diff --git a/test/composite-integer-translate-over-pdf-argb32-ref.png b/test/composite-integer-translate-over-pdf-argb32-ref.png
new file mode 100644
index 0000000..821e38b
--- /dev/null
+++ b/test/composite-integer-translate-over-pdf-argb32-ref.png
Binary files differ
diff --git a/test/composite-integer-translate-over-svg-argb32-ref.png b/test/composite-integer-translate-over-svg-argb32-ref.png
new file mode 100644
index 0000000..2a0212e
--- /dev/null
+++ b/test/composite-integer-translate-over-svg-argb32-ref.png
Binary files differ
diff --git a/test/composite-integer-translate-over-svg-rgb24-ref.png b/test/composite-integer-translate-over-svg-rgb24-ref.png
new file mode 100644
index 0000000..2a0212e
--- /dev/null
+++ b/test/composite-integer-translate-over-svg-rgb24-ref.png
Binary files differ
diff --git a/test/dash-scale-ps-argb32-ref.png b/test/dash-scale-ps-argb32-ref.png
new file mode 100644
index 0000000..0320a8b
--- /dev/null
+++ b/test/dash-scale-ps-argb32-ref.png
Binary files differ
diff --git a/test/dash-zero-length-ps-argb32-ref.png b/test/dash-zero-length-ps-argb32-ref.png
index 5c7fab5..897f25f 100644
--- a/test/dash-zero-length-ps-argb32-ref.png
+++ b/test/dash-zero-length-ps-argb32-ref.png
Binary files differ
diff --git a/test/dash-zero-length-ref.png b/test/dash-zero-length-ref.png
index aca856f..16024f4 100644
--- a/test/dash-zero-length-ref.png
+++ b/test/dash-zero-length-ref.png
Binary files differ
diff --git a/test/dash-zero-length-rgb24-ref.png b/test/dash-zero-length-rgb24-ref.png
index f5e40e8..41b595c 100644
--- a/test/dash-zero-length-rgb24-ref.png
+++ b/test/dash-zero-length-rgb24-ref.png
Binary files differ
diff --git a/test/dash-zero-length.c b/test/dash-zero-length.c
index a5d0047..2014c07 100644
--- a/test/dash-zero-length.c
+++ b/test/dash-zero-length.c
@@ -26,7 +26,7 @@
#include "cairo-test.h"
#define IMAGE_WIDTH 19
-#define IMAGE_HEIGHT 25
+#define IMAGE_HEIGHT 61
/* A test of the two extremes of dashing: a solid line
* and an invisible one. Also test that capping works
@@ -39,44 +39,71 @@ cairo_test_t test = {
IMAGE_WIDTH, IMAGE_HEIGHT
};
+static void
+draw_dash (cairo_t *cr, double *dash, int num_dashes)
+{
+ cairo_set_dash (cr, dash, num_dashes, 0.0);
+ cairo_move_to (cr, 1, 2);
+ cairo_line_to (cr, 18, 2);
+ cairo_stroke (cr);
+ cairo_translate (cr, 0, 3);
+}
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
- double solid_line[] = { 4, 0 };
- double invisible_line[] = { 0, 4 };
- double dotted_line[] = { 0, 6 };
- double rounded_line[] = { 2, 6 };
+ static double solid_line[] = { 4, 0 };
+ static double invisible_line[] = { 0, 4 };
+ static double dotted_line[] = { 0, 6 };
+ static double zero_1_of_3[] = { 0, 2, 3 };
+ static double zero_2_of_3[] = { 1, 0, 3 };
+ static double zero_3_of_3[] = { 1, 2, 0 };
+ static double zero_1_of_4[] = { 0, 2, 3, 4 };
+ static double zero_2_of_4[] = { 1, 0, 3, 4 };
+ static double zero_3_of_4[] = { 1, 2, 0, 4 };
+ static double zero_4_of_4[] = { 1, 2, 3, 0 };
+ static double zero_1_2_of_4[] = { 0, 0, 3, 4 };
+ static double zero_1_3_of_4[] = { 0, 2, 0, 4 };
+/* Clearly it would be nice to draw this one as well, but it seems to trigger a bug in ghostscript. */
+#if BUG_FIXED_IN_GHOSTSCRIPT
+ static double zero_1_4_of_4[] = { 0, 2, 3, 0 };
+#endif
+ static double zero_2_3_of_4[] = { 1, 0, 0, 4 };
+ static double zero_2_4_of_4[] = { 1, 0, 3, 0 };
+ static double zero_3_4_of_4[] = { 1, 2, 0, 0 };
+ static double zero_1_2_3_of_4[] = { 0, 0, 0, 4 };
+ static double zero_1_2_4_of_4[] = { 0, 0, 3, 0 };
+ static double zero_1_3_4_of_4[] = { 0, 2, 0, 0 };
+ static double zero_2_3_4_of_4[] = { 1, 0, 0, 0 };
cairo_set_source_rgb (cr, 1, 0, 0);
cairo_set_line_width (cr, 2);
- /* draw a solid line */
- cairo_set_dash (cr, solid_line, 2, 0);
- cairo_move_to (cr, 1, 2);
- cairo_line_to (cr, 18, 2);
- cairo_stroke (cr);
-
- /* draw an invisible line */
- cairo_set_dash (cr, invisible_line, 2, 0);
- cairo_move_to (cr, 1, 8);
- cairo_line_to (cr, 18, 8);
- cairo_stroke (cr);
+ draw_dash (cr, solid_line, 2);
+ draw_dash (cr, invisible_line, 2);
- /* draw a dotted line */
- cairo_set_line_width (cr, 5);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
- cairo_set_dash (cr, dotted_line, 2, 0);
- cairo_move_to (cr, 5, 13);
- cairo_line_to (cr, 18, 13);
- cairo_stroke (cr);
+ draw_dash (cr, dotted_line, 2);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
- /* draw a rounded line */
- cairo_set_line_width (cr, 5);
- cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
- cairo_set_dash (cr, rounded_line, 2, 2);
- cairo_move_to (cr, 5, 20);
- cairo_line_to (cr, 18, 20);
- cairo_stroke (cr);
+ draw_dash (cr, zero_1_of_3, 3);
+ draw_dash (cr, zero_2_of_3, 3);
+ draw_dash (cr, zero_3_of_3, 3);
+ draw_dash (cr, zero_1_of_4, 4);
+ draw_dash (cr, zero_2_of_4, 4);
+ draw_dash (cr, zero_3_of_4, 4);
+ draw_dash (cr, zero_4_of_4, 4);
+ draw_dash (cr, zero_1_2_of_4, 4);
+ draw_dash (cr, zero_1_3_of_4, 4);
+#if BUG_FIXED_IN_GHOSTSCRIPT
+ draw_dash (cr, zero_1_4_of_4, 4);
+#endif
+ draw_dash (cr, zero_2_3_of_4, 4);
+ draw_dash (cr, zero_2_4_of_4, 4);
+ draw_dash (cr, zero_3_4_of_4, 4);
+ draw_dash (cr, zero_1_2_3_of_4, 4);
+ draw_dash (cr, zero_1_2_4_of_4, 4);
+ draw_dash (cr, zero_1_3_4_of_4, 4);
+ draw_dash (cr, zero_2_3_4_of_4, 4);
return CAIRO_TEST_SUCCESS;
}
diff --git a/test/degenerate-path-ps-argb32-ref.png b/test/degenerate-path-ps-argb32-ref.png
new file mode 100644
index 0000000..f16f0f6
--- /dev/null
+++ b/test/degenerate-path-ps-argb32-ref.png
Binary files differ
diff --git a/test/degenerate-path-ref.png b/test/degenerate-path-ref.png
new file mode 100644
index 0000000..1b07de4
--- /dev/null
+++ b/test/degenerate-path-ref.png
Binary files differ
diff --git a/test/degenerate-path-rgb24-ref.png b/test/degenerate-path-rgb24-ref.png
new file mode 100644
index 0000000..29f4089
--- /dev/null
+++ b/test/degenerate-path-rgb24-ref.png
Binary files differ
diff --git a/test/degenerate-path.c b/test/degenerate-path.c
new file mode 100644
index 0000000..1329bdf
--- /dev/null
+++ b/test/degenerate-path.c
@@ -0,0 +1,68 @@
+/*
+ * Copyright © 2006 Jeff Muizelaar
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Jeff Muizelaar not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. Jeff Muizelaar makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * JEFF MUIZELAAR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL JEFF MUIZELAAR BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Jeff Muizelaar <jeff@infidigm.net>
+ */
+
+#include "cairo-test.h"
+
+#define IMAGE_WIDTH 40
+#define IMAGE_HEIGHT 22
+
+cairo_test_t test = {
+ "degenerate-path",
+ "Tests the behaviour of degenerate paths with different cap types",
+ IMAGE_WIDTH, IMAGE_HEIGHT
+};
+
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+ const cairo_line_cap_t cap[] = { CAIRO_LINE_CAP_ROUND, CAIRO_LINE_CAP_SQUARE, CAIRO_LINE_CAP_BUTT };
+ int i;
+
+ cairo_set_source_rgb (cr, 1, 0, 0);
+
+ for (i=0; i<ARRAY_SIZE(cap); i++) {
+ cairo_set_line_cap (cr, cap[i]);
+
+ cairo_set_line_width (cr, 6);
+ cairo_move_to (cr, 6, 6);
+ cairo_line_to (cr, 6, 6);
+ cairo_stroke (cr);
+
+ cairo_move_to (cr, 6, 15);
+ cairo_close_path (cr);
+ cairo_stroke (cr);
+
+ cairo_translate (cr, 12, 0);
+ }
+ return CAIRO_TEST_SUCCESS;
+}
+
+int
+main (void)
+{
+ return cairo_test (&test, draw);
+}
diff --git a/test/device-offset-positive-ref.png b/test/device-offset-positive-ref.png
new file mode 100644
index 0000000..bdf63af
--- /dev/null
+++ b/test/device-offset-positive-ref.png
Binary files differ
diff --git a/test/device-offset-positive-rgb24-ref.png b/test/device-offset-positive-rgb24-ref.png
new file mode 100644
index 0000000..3281f49
--- /dev/null
+++ b/test/device-offset-positive-rgb24-ref.png
Binary files differ
diff --git a/test/device-offset-positive.c b/test/device-offset-positive.c
new file mode 100644
index 0000000..e4a6ae8
--- /dev/null
+++ b/test/device-offset-positive.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright © 2006 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Red Hat, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. Red Hat, Inc. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Carl D. Worth <cworth@cworth.org>
+ */
+
+#include "cairo-test.h"
+#include <stddef.h>
+
+#define SIZE 10
+#define PAD 2
+
+cairo_test_t test = {
+ "device-offset-positive",
+ "Simple test using a surface with a positive device-offset as a source.",
+ SIZE, SIZE
+};
+
+static void
+draw_square (cairo_t *cr)
+{
+ cairo_rectangle (cr,
+ PAD, PAD,
+ SIZE - 2 * PAD,
+ SIZE - 2 * PAD);
+ cairo_fill (cr);
+}
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+ cairo_surface_t *surface, *target;
+ cairo_t *cr2;
+
+ /* First draw a shape in blue on the original destination. */
+ cairo_set_source_rgb (cr, 0, 0, 1); /* blue */
+ draw_square (cr);
+
+ /* Then, create an offset surface and repeat the drawing in red. */
+ target = cairo_get_target (cr);
+ surface = cairo_surface_create_similar (target,
+ cairo_surface_get_content (target),
+ SIZE / 2, SIZE / 2);
+ cr2 = cairo_create (surface);
+
+ cairo_set_source_rgb (cr2, 1, 0, 0); /* red */
+ draw_square (cr2);
+
+ cairo_destroy (cr2);
+
+ cairo_surface_set_device_offset (surface, + SIZE / 2, + SIZE / 2);
+
+ /* Finally, copy the offset surface to the original destination.
+ * The final result should be a blue square with the upper-left
+ * quarter red. */
+ cairo_set_source_surface (cr, surface, SIZE / 2, SIZE / 2);
+
+ cairo_paint (cr);
+
+ cairo_surface_destroy (surface);
+
+ return CAIRO_TEST_SUCCESS;
+}
+
+int
+main (void)
+{
+ return cairo_test (&test, draw);
+}
diff --git a/test/device-offset-rgb24-ref.png b/test/device-offset-rgb24-ref.png
new file mode 100644
index 0000000..634388f
--- /dev/null
+++ b/test/device-offset-rgb24-ref.png
Binary files differ
diff --git a/test/device-offset.c b/test/device-offset.c
index 6a23226..b796ba6 100644
--- a/test/device-offset.c
+++ b/test/device-offset.c
@@ -31,7 +31,7 @@
cairo_test_t test = {
"device-offset",
- "Simple test using a surface with a device-offset as a source.",
+ "Simple test using a surface with a negative device-offset as a source.",
SIZE, SIZE
};
diff --git a/test/fallback-resolution.c b/test/fallback-resolution.c
index d1e7a63..37c37f5 100644
--- a/test/fallback-resolution.c
+++ b/test/fallback-resolution.c
@@ -103,17 +103,17 @@ main (void)
case PDF:
surface = cairo_pdf_surface_create (backend_filename[backend],
SIZE, SIZE);
- cairo_pdf_test_force_fallbacks ();
+ _cairo_pdf_test_force_fallbacks ();
break;
case PS:
surface = cairo_ps_surface_create (backend_filename[backend],
SIZE, SIZE);
- cairo_ps_test_force_fallbacks ();
+ _cairo_ps_test_force_fallbacks ();
break;
case SVG:
surface = cairo_svg_surface_create (backend_filename[backend],
SIZE, SIZE * num_pages);
- cairo_svg_test_force_fallbacks ();
+ _cairo_svg_test_force_fallbacks ();
break;
}
@@ -125,8 +125,6 @@ main (void)
draw (cr, SIZE, SIZE, ppi[page]);
- cairo_show_page (cr);
-
/* Backend-specific means of "advancing a page" */
switch (backend) {
case PDF:
diff --git a/test/fill-and-stroke-alpha-svg-argb32-ref.png b/test/fill-and-stroke-alpha-svg-argb32-ref.png
new file mode 100644
index 0000000..812c897
--- /dev/null
+++ b/test/fill-and-stroke-alpha-svg-argb32-ref.png
Binary files differ
diff --git a/test/fill-and-stroke-alpha-svg-rgb24-ref.png b/test/fill-and-stroke-alpha-svg-rgb24-ref.png
new file mode 100644
index 0000000..812c897
--- /dev/null
+++ b/test/fill-and-stroke-alpha-svg-rgb24-ref.png
Binary files differ
diff --git a/test/ft-text-antialias-none-ps-argb32-ref.png b/test/ft-text-antialias-none-ps-argb32-ref.png
new file mode 100644
index 0000000..ea33b0e
--- /dev/null
+++ b/test/ft-text-antialias-none-ps-argb32-ref.png
Binary files differ
diff --git a/test/ft-text-antialias-none-ref.png b/test/ft-text-antialias-none-ref.png
new file mode 100644
index 0000000..cb0c132
--- /dev/null
+++ b/test/ft-text-antialias-none-ref.png
Binary files differ
diff --git a/test/ft-text-antialias-none.c b/test/ft-text-antialias-none.c
new file mode 100644
index 0000000..8aaaf05
--- /dev/null
+++ b/test/ft-text-antialias-none.c
@@ -0,0 +1,131 @@
+/*
+ * Copyright © 2006 Jinghua Luo
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Red Hat, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. Red Hat, Inc. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * JINGHUA LUO DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Jinghua Luo <sunmoon1997@gmail.com>
+ * Derived from:
+ * text-antialias-none.c,
+ * ft-font-create-for-ft-face.c.
+ * Original Author: Carl D. Worth <cworth@cworth.org>
+ */
+#include "cairo-test.h"
+#include <cairo-ft.h>
+
+#define WIDTH 40
+#define HEIGHT 30
+#define TEXT_SIZE 12
+
+cairo_test_t test = {
+ "ft-text-antialias-none",
+ "Tests text rendering with no antialiasing",
+ WIDTH, HEIGHT
+};
+
+static cairo_scaled_font_t *
+create_scaled_font (cairo_t * cr)
+{
+ FcPattern *pattern, *resolved;
+ FcResult result;
+ cairo_font_face_t *font_face;
+ cairo_scaled_font_t *scaled_font;
+ cairo_font_options_t *font_options;
+ cairo_matrix_t font_matrix, ctm;
+ double pixel_size;
+
+ font_options = cairo_font_options_create ();
+
+ /* disable hinting */
+ cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_NONE);
+
+ pattern = FcPatternCreate ();
+
+ FcPatternAddString (pattern, FC_FAMILY, (FcChar8 *)"Bitstream vera sans");
+ FcPatternAddDouble (pattern, FC_SIZE, TEXT_SIZE);
+ FcConfigSubstitute (NULL, pattern, FcMatchPattern);
+
+ cairo_ft_font_options_substitute (font_options, pattern);
+
+ FcDefaultSubstitute (pattern);
+ resolved = FcFontMatch (NULL, pattern, &result);
+
+ /* turn antialiasing off */
+ FcPatternDel (resolved, FC_ANTIALIAS);
+ FcPatternAddBool (resolved, FC_ANTIALIAS, FcFalse);
+
+ FcPatternGetDouble (resolved, FC_PIXEL_SIZE, 0, &pixel_size);
+
+ font_face = cairo_ft_font_face_create_for_pattern (resolved);
+
+ cairo_matrix_init_identity (&font_matrix);
+ cairo_matrix_scale (&font_matrix, pixel_size, pixel_size);
+
+ cairo_get_matrix (cr, &ctm);
+
+ scaled_font = cairo_scaled_font_create (font_face,
+ &font_matrix,
+ &ctm,
+ font_options);
+
+ cairo_font_options_destroy (font_options);
+ cairo_font_face_destroy (font_face);
+ FcPatternDestroy (pattern);
+ FcPatternDestroy (resolved);
+
+ return scaled_font;
+}
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+ cairo_text_extents_t extents;
+ cairo_scaled_font_t * scaled_font;
+ static char black[] = "black", blue[] = "blue";
+
+ /* We draw in the default black, so paint white first. */
+ cairo_save (cr);
+ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */
+ cairo_paint (cr);
+ cairo_restore (cr);
+
+ scaled_font = create_scaled_font (cr);
+ cairo_set_scaled_font (cr, scaled_font);
+
+ cairo_set_source_rgb (cr, 0, 0, 0); /* black */
+ cairo_text_extents (cr, black, &extents);
+ cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
+ cairo_show_text (cr, black);
+ cairo_translate (cr, 0, -extents.y_bearing + 1);
+
+ cairo_set_source_rgb (cr, 0, 0, 1); /* blue */
+ cairo_text_extents (cr, blue, &extents);
+ cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
+ cairo_show_text (cr, blue);
+
+ cairo_scaled_font_destroy (scaled_font);
+
+ return CAIRO_TEST_SUCCESS;
+}
+
+int
+main (void)
+{
+ return cairo_test (&test, draw);
+}
diff --git a/test/ft-text-vertical-layout-pdf-argb32-ref.png b/test/ft-text-vertical-layout-pdf-argb32-ref.png
new file mode 100644
index 0000000..80fbcab
--- /dev/null
+++ b/test/ft-text-vertical-layout-pdf-argb32-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-ps-argb32-ref.png b/test/ft-text-vertical-layout-ps-argb32-ref.png
new file mode 100644
index 0000000..ba51c30
--- /dev/null
+++ b/test/ft-text-vertical-layout-ps-argb32-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-ref.png b/test/ft-text-vertical-layout-ref.png
new file mode 100644
index 0000000..2aa82e4
--- /dev/null
+++ b/test/ft-text-vertical-layout-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-svg-argb32-ref.png b/test/ft-text-vertical-layout-svg-argb32-ref.png
new file mode 100644
index 0000000..7b82d9a
--- /dev/null
+++ b/test/ft-text-vertical-layout-svg-argb32-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-svg-rgb24-ref.png b/test/ft-text-vertical-layout-svg-rgb24-ref.png
new file mode 100644
index 0000000..a1c8a83
--- /dev/null
+++ b/test/ft-text-vertical-layout-svg-rgb24-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout.c b/test/ft-text-vertical-layout.c
index 1c15a20..9aa776d 100644
--- a/test/ft-text-vertical-layout.c
+++ b/test/ft-text-vertical-layout.c
@@ -52,6 +52,11 @@ create_scaled_font (cairo_t * cr)
font_options = cairo_font_options_create ();
+ /* disable hinting */
+ cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_NONE);
+ /* enable antialias and override screen settings */
+ cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_GRAY);
+
pattern = FcPatternCreate ();
FcPatternAddString (pattern, FC_FAMILY, (FcChar8 *)"AR PL KaitiM GB");
diff --git a/test/glyph-cache-pressure-pdf-argb32-ref.png b/test/glyph-cache-pressure-pdf-argb32-ref.png
new file mode 100644
index 0000000..8b9031c
--- /dev/null
+++ b/test/glyph-cache-pressure-pdf-argb32-ref.png
Binary files differ
diff --git a/test/glyph-cache-pressure-ps-argb32-ref.png b/test/glyph-cache-pressure-ps-argb32-ref.png
new file mode 100644
index 0000000..cc02ff6
--- /dev/null
+++ b/test/glyph-cache-pressure-ps-argb32-ref.png
Binary files differ
diff --git a/test/glyph-cache-pressure-ref.png b/test/glyph-cache-pressure-ref.png
new file mode 100644
index 0000000..0947a67
--- /dev/null
+++ b/test/glyph-cache-pressure-ref.png
Binary files differ
diff --git a/test/glyph-cache-pressure-svg-argb32-ref.png b/test/glyph-cache-pressure-svg-argb32-ref.png
new file mode 100644
index 0000000..0a49bc4
--- /dev/null
+++ b/test/glyph-cache-pressure-svg-argb32-ref.png
Binary files differ
diff --git a/test/glyph-cache-pressure-svg-rgb24-ref.png b/test/glyph-cache-pressure-svg-rgb24-ref.png
new file mode 100644
index 0000000..6f40d60
--- /dev/null
+++ b/test/glyph-cache-pressure-svg-rgb24-ref.png
Binary files differ
diff --git a/test/glyph-cache-pressure.c b/test/glyph-cache-pressure.c
new file mode 100644
index 0000000..bcc5250
--- /dev/null
+++ b/test/glyph-cache-pressure.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright © 2005 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Red Hat, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. Red Hat, Inc. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Carl D. Worth <cworth@cworth.org>
+ */
+
+#include "cairo-test.h"
+#include "cairo-scaled-font-test.h"
+
+#define TEXT_SIZE 12
+
+/* Bug history
+ *
+ * 2006-06-22 Carl Worth <cworth@cworth.org>
+ *
+ * This is a test case to demonstrate the following bug in the xlib backend:
+ *
+ * Some characters aren't displayed when using xlib (cache usage missing freeze/thaw)
+ * https://bugs.freedesktop.org/show_bug.cgi?id=6955
+ *
+ * We replicate this bug by using the cairo_scaled_font_set_max_glyphs_per_font
+ * function to artifically induce cache pressure. (This function was added
+ * for this very purpose.)
+ *
+ * 2006-06-22 Carl Worth <cworth@cworth.org>
+ *
+ * Bug was simple enough to solve by just adding a freeze/thaw pair
+ * around the scaled_font's glyph cache in
+ * _cairo_xlib_surface_show_glyphs, (I went ahead and added
+ * _cairo_sacled_font_freeze/thaw_cache functions for this).
+ */
+
+cairo_test_t test = {
+ "glyph-cache-pressure",
+ "Ensure that all backends behave well under artificial glyph cache pressure",
+ 223, TEXT_SIZE + 4
+};
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+ cairo_font_options_t *font_options;
+
+ /* We draw in the default black, so paint white first. */
+ cairo_save (cr);
+ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */
+ cairo_paint (cr);
+ cairo_restore (cr);
+
+ _cairo_scaled_font_test_set_max_glyphs_cached_per_font (1);
+
+ cairo_select_font_face (cr, "Bitstream Vera Sans",
+ CAIRO_FONT_SLANT_NORMAL,
+ CAIRO_FONT_WEIGHT_NORMAL);
+ cairo_set_font_size (cr, TEXT_SIZE);
+
+ font_options = cairo_font_options_create ();
+
+ cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_NONE);
+ cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_GRAY);
+
+ cairo_set_font_options (cr, font_options);
+ cairo_font_options_destroy (font_options);
+
+ cairo_set_source_rgb (cr, 0, 0, 0); /* black */
+
+ cairo_move_to (cr, 1, TEXT_SIZE);
+ cairo_show_text (cr, "the five boxing wizards jump quickly");
+
+ return CAIRO_TEST_SUCCESS;
+}
+
+int
+main (void)
+{
+ return cairo_test (&test, draw);
+}
diff --git a/test/leaky-dash.c b/test/leaky-dash.c
index 95c5ca7..44f04f0 100644
--- a/test/leaky-dash.c
+++ b/test/leaky-dash.c
@@ -64,5 +64,6 @@ draw (cairo_t *cr, int width, int height)
int
main (void)
{
- return cairo_test (&test, draw);
+ return cairo_test_expect_failure (&test, draw,
+ "known bug (#4863) which has existed since the 1.0 release");
}
diff --git a/test/linear-gradient-svg-argb32-ref.png b/test/linear-gradient-svg-argb32-ref.png
new file mode 100644
index 0000000..4ed4bfa
--- /dev/null
+++ b/test/linear-gradient-svg-argb32-ref.png
Binary files differ
diff --git a/test/linear-gradient-svg-rgb24-ref.png b/test/linear-gradient-svg-rgb24-ref.png
new file mode 100644
index 0000000..4ed4bfa
--- /dev/null
+++ b/test/linear-gradient-svg-rgb24-ref.png
Binary files differ
diff --git a/test/mask-beos-rgb24-ref.png b/test/mask-beos-rgb24-ref.png
new file mode 100644
index 0000000..fce4263
--- /dev/null
+++ b/test/mask-beos-rgb24-ref.png
Binary files differ
diff --git a/test/mask-beos_bitmap-argb32-ref.png b/test/mask-beos_bitmap-argb32-ref.png
new file mode 100644
index 0000000..6ddb8e1
--- /dev/null
+++ b/test/mask-beos_bitmap-argb32-ref.png
Binary files differ
diff --git a/test/mask-beos_bitmap-rgb24-ref.png b/test/mask-beos_bitmap-rgb24-ref.png
new file mode 100644
index 0000000..fce4263
--- /dev/null
+++ b/test/mask-beos_bitmap-rgb24-ref.png
Binary files differ
diff --git a/test/mask-ctm-svg-argb32-ref.png b/test/mask-ctm-svg-argb32-ref.png
new file mode 100644
index 0000000..049d5f0
--- /dev/null
+++ b/test/mask-ctm-svg-argb32-ref.png
Binary files differ
diff --git a/test/mask-ctm-svg-rgb24-ref.png b/test/mask-ctm-svg-rgb24-ref.png
new file mode 100644
index 0000000..90628a6
--- /dev/null
+++ b/test/mask-ctm-svg-rgb24-ref.png
Binary files differ
diff --git a/test/mask-surface-ctm-svg-argb32-ref.png b/test/mask-surface-ctm-svg-argb32-ref.png
new file mode 100644
index 0000000..049d5f0
--- /dev/null
+++ b/test/mask-surface-ctm-svg-argb32-ref.png
Binary files differ
diff --git a/test/mask-surface-ctm-svg-rgb24-ref.png b/test/mask-surface-ctm-svg-rgb24-ref.png
new file mode 100644
index 0000000..90628a6
--- /dev/null
+++ b/test/mask-surface-ctm-svg-rgb24-ref.png
Binary files differ
diff --git a/test/mask-svg-argb32-ref.png b/test/mask-svg-argb32-ref.png
new file mode 100644
index 0000000..5ac50a7
--- /dev/null
+++ b/test/mask-svg-argb32-ref.png
Binary files differ
diff --git a/test/mask-svg-rgb24-ref.png b/test/mask-svg-rgb24-ref.png
new file mode 100644
index 0000000..0bf98d9
--- /dev/null
+++ b/test/mask-svg-rgb24-ref.png
Binary files differ
diff --git a/test/paint-source-alpha-pdf-argb32-ref.png b/test/paint-source-alpha-pdf-argb32-ref.png
new file mode 100644
index 0000000..98004a3
--- /dev/null
+++ b/test/paint-source-alpha-pdf-argb32-ref.png
Binary files differ
diff --git a/test/paint-source-alpha-svg-argb32-ref.png b/test/paint-source-alpha-svg-argb32-ref.png
new file mode 100644
index 0000000..3b3a990
--- /dev/null
+++ b/test/paint-source-alpha-svg-argb32-ref.png
Binary files differ
diff --git a/test/paint-source-alpha-svg-rgb24-ref.png b/test/paint-source-alpha-svg-rgb24-ref.png
new file mode 100644
index 0000000..3b3a990
--- /dev/null
+++ b/test/paint-source-alpha-svg-rgb24-ref.png
Binary files differ
diff --git a/test/paint-with-alpha-svg-argb32-ref.png b/test/paint-with-alpha-svg-argb32-ref.png
new file mode 100644
index 0000000..97a2100
--- /dev/null
+++ b/test/paint-with-alpha-svg-argb32-ref.png
Binary files differ
diff --git a/test/paint-with-alpha-svg-rgb24-ref.png b/test/paint-with-alpha-svg-rgb24-ref.png
new file mode 100644
index 0000000..97a2100
--- /dev/null
+++ b/test/paint-with-alpha-svg-rgb24-ref.png
Binary files differ
diff --git a/test/pixman-rotate-svg-argb32-ref.png b/test/pixman-rotate-svg-argb32-ref.png
new file mode 100644
index 0000000..08d750b
--- /dev/null
+++ b/test/pixman-rotate-svg-argb32-ref.png
Binary files differ
diff --git a/test/pixman-rotate-svg-rgb24-ref.png b/test/pixman-rotate-svg-rgb24-ref.png
new file mode 100644
index 0000000..349fd5c
--- /dev/null
+++ b/test/pixman-rotate-svg-rgb24-ref.png
Binary files differ
diff --git a/test/push-group-rgb24-ref.png b/test/push-group-rgb24-ref.png
new file mode 100644
index 0000000..d658851
--- /dev/null
+++ b/test/push-group-rgb24-ref.png
Binary files differ
diff --git a/test/push-group-svg-argb32-ref.png b/test/push-group-svg-argb32-ref.png
new file mode 100644
index 0000000..34f06bf
--- /dev/null
+++ b/test/push-group-svg-argb32-ref.png
Binary files differ
diff --git a/test/push-group-svg-rgb24-ref.png b/test/push-group-svg-rgb24-ref.png
new file mode 100644
index 0000000..5a0a59c
--- /dev/null
+++ b/test/push-group-svg-rgb24-ref.png
Binary files differ
diff --git a/test/scale-source-surface-paint-pdf-argb32-ref.png b/test/scale-source-surface-paint-pdf-argb32-ref.png
index bb940f8..de274f9 100644
--- a/test/scale-source-surface-paint-pdf-argb32-ref.png
+++ b/test/scale-source-surface-paint-pdf-argb32-ref.png
Binary files differ
diff --git a/test/scale-source-surface-paint-svg-argb32-ref.png b/test/scale-source-surface-paint-svg-argb32-ref.png
new file mode 100644
index 0000000..de274f9
--- /dev/null
+++ b/test/scale-source-surface-paint-svg-argb32-ref.png
Binary files differ
diff --git a/test/scale-source-surface-paint-svg-rgb24-ref.png b/test/scale-source-surface-paint-svg-rgb24-ref.png
new file mode 100644
index 0000000..099b8a0
--- /dev/null
+++ b/test/scale-source-surface-paint-svg-rgb24-ref.png
Binary files differ
diff --git a/test/select-font-face-pdf-argb32-ref.png b/test/select-font-face-pdf-argb32-ref.png
new file mode 100644
index 0000000..540b994
--- /dev/null
+++ b/test/select-font-face-pdf-argb32-ref.png
Binary files differ
diff --git a/test/select-font-face-ps-argb32-ref.png b/test/select-font-face-ps-argb32-ref.png
new file mode 100644
index 0000000..fdb3ad2
--- /dev/null
+++ b/test/select-font-face-ps-argb32-ref.png
Binary files differ
diff --git a/test/select-font-face-svg-argb32-ref.png b/test/select-font-face-svg-argb32-ref.png
new file mode 100644
index 0000000..50b8f49
--- /dev/null
+++ b/test/select-font-face-svg-argb32-ref.png
Binary files differ
diff --git a/test/select-font-face-svg-rgb24-ref.png b/test/select-font-face-svg-rgb24-ref.png
new file mode 100644
index 0000000..50b8f49
--- /dev/null
+++ b/test/select-font-face-svg-rgb24-ref.png
Binary files differ
diff --git a/test/set-source-beos-rgb24-ref.png b/test/set-source-beos-rgb24-ref.png
new file mode 100644
index 0000000..627a00d
--- /dev/null
+++ b/test/set-source-beos-rgb24-ref.png
Binary files differ
diff --git a/test/set-source-beos_bitmap-rgb24-ref.png b/test/set-source-beos_bitmap-rgb24-ref.png
new file mode 100644
index 0000000..627a00d
--- /dev/null
+++ b/test/set-source-beos_bitmap-rgb24-ref.png
Binary files differ
diff --git a/test/set-source-svg-argb32-ref.png b/test/set-source-svg-argb32-ref.png
new file mode 100644
index 0000000..754f1c4
--- /dev/null
+++ b/test/set-source-svg-argb32-ref.png
Binary files differ
diff --git a/test/set-source-svg-rgb24-ref.png b/test/set-source-svg-rgb24-ref.png
new file mode 100644
index 0000000..802147f
--- /dev/null
+++ b/test/set-source-svg-rgb24-ref.png
Binary files differ
diff --git a/test/show-text-current-point-svg-argb32-ref.png b/test/show-text-current-point-svg-argb32-ref.png
new file mode 100644
index 0000000..717ad7e
--- /dev/null
+++ b/test/show-text-current-point-svg-argb32-ref.png
Binary files differ
diff --git a/test/show-text-current-point-svg-rgb24-ref.png b/test/show-text-current-point-svg-rgb24-ref.png
new file mode 100644
index 0000000..2c4bcd7
--- /dev/null
+++ b/test/show-text-current-point-svg-rgb24-ref.png
Binary files differ
diff --git a/test/text-antialias-gray-svg-argb32-ref.png b/test/text-antialias-gray-svg-argb32-ref.png
new file mode 100644
index 0000000..aa64fbb
--- /dev/null
+++ b/test/text-antialias-gray-svg-argb32-ref.png
Binary files differ
diff --git a/test/text-antialias-gray-svg-rgb24-ref.png b/test/text-antialias-gray-svg-rgb24-ref.png
new file mode 100644
index 0000000..20f0d58
--- /dev/null
+++ b/test/text-antialias-gray-svg-rgb24-ref.png
Binary files differ
diff --git a/test/text-antialias-none-svg-argb32-ref.png b/test/text-antialias-none-svg-argb32-ref.png
new file mode 100644
index 0000000..aa64fbb
--- /dev/null
+++ b/test/text-antialias-none-svg-argb32-ref.png
Binary files differ
diff --git a/test/text-antialias-none-svg-rgb24-ref.png b/test/text-antialias-none-svg-rgb24-ref.png
new file mode 100644
index 0000000..20f0d58
--- /dev/null
+++ b/test/text-antialias-none-svg-rgb24-ref.png
Binary files differ
diff --git a/test/text-antialias-subpixel-svg-argb32-ref.png b/test/text-antialias-subpixel-svg-argb32-ref.png
new file mode 100644
index 0000000..aa64fbb
--- /dev/null
+++ b/test/text-antialias-subpixel-svg-argb32-ref.png
Binary files differ
diff --git a/test/text-antialias-subpixel-svg-rgb24-ref.png b/test/text-antialias-subpixel-svg-rgb24-ref.png
new file mode 100644
index 0000000..20f0d58
--- /dev/null
+++ b/test/text-antialias-subpixel-svg-rgb24-ref.png
Binary files differ
diff --git a/test/text-pattern-pdf-argb32-ref.png b/test/text-pattern-pdf-argb32-ref.png
new file mode 100644
index 0000000..17afd64
--- /dev/null
+++ b/test/text-pattern-pdf-argb32-ref.png
Binary files differ
diff --git a/test/text-pattern-ps-argb32-ref.png b/test/text-pattern-ps-argb32-ref.png
new file mode 100644
index 0000000..1bc8dd4
--- /dev/null
+++ b/test/text-pattern-ps-argb32-ref.png
Binary files differ
diff --git a/test/text-pattern-svg-argb32-ref.png b/test/text-pattern-svg-argb32-ref.png
new file mode 100644
index 0000000..79dc52d
--- /dev/null
+++ b/test/text-pattern-svg-argb32-ref.png
Binary files differ
diff --git a/test/text-pattern-svg-rgb24-ref.png b/test/text-pattern-svg-rgb24-ref.png
new file mode 100644
index 0000000..c1f76c2
--- /dev/null
+++ b/test/text-pattern-svg-rgb24-ref.png
Binary files differ
diff --git a/test/trap-clip-beos-rgb24-ref.png b/test/trap-clip-beos-rgb24-ref.png
new file mode 100644
index 0000000..779d215
--- /dev/null
+++ b/test/trap-clip-beos-rgb24-ref.png
Binary files differ
diff --git a/test/trap-clip-beos_bitmap-rgb24-ref.png b/test/trap-clip-beos_bitmap-rgb24-ref.png
new file mode 100644
index 0000000..779d215
--- /dev/null
+++ b/test/trap-clip-beos_bitmap-rgb24-ref.png
Binary files differ
diff --git a/test/trap-clip-svg-argb32-ref.png b/test/trap-clip-svg-argb32-ref.png
new file mode 100644
index 0000000..30dfa4f
--- /dev/null
+++ b/test/trap-clip-svg-argb32-ref.png
Binary files differ
diff --git a/test/trap-clip-svg-rgb24-ref.png b/test/trap-clip-svg-rgb24-ref.png
new file mode 100644
index 0000000..46a9200
--- /dev/null
+++ b/test/trap-clip-svg-rgb24-ref.png
Binary files differ
diff --git a/test/unantialiased-shapes-svg-argb32-ref.png b/test/unantialiased-shapes-svg-argb32-ref.png
new file mode 100644
index 0000000..da29773
--- /dev/null
+++ b/test/unantialiased-shapes-svg-argb32-ref.png
Binary files differ
diff --git a/test/unantialiased-shapes-svg-rgb24-ref.png b/test/unantialiased-shapes-svg-rgb24-ref.png
new file mode 100644
index 0000000..da29773
--- /dev/null
+++ b/test/unantialiased-shapes-svg-rgb24-ref.png
Binary files differ
diff --git a/test/xlib-surface.c b/test/xlib-surface.c
index 7179781..559c19a 100644
--- a/test/xlib-surface.c
+++ b/test/xlib-surface.c
@@ -124,9 +124,14 @@ do_test (Display *dpy,
DefaultVisual (dpy, screen),
SIZE, SIZE);
- if (set_size)
+ if (set_size) {
cairo_xlib_surface_set_size (surface, SIZE, SIZE);
+ if (cairo_xlib_surface_get_width (surface) != SIZE ||
+ cairo_xlib_surface_get_height (surface) != SIZE)
+ return 0;
+ }
+
draw_pattern (surface);
test_surface = cairo_image_surface_create_for_data (test_data,
@@ -255,7 +260,7 @@ main (void)
1, use_pixmap, set_size, offscreen))
result = 1;
- cairo_xlib_test_disable_render ();
+ _cairo_xlib_test_disable_render ();
for (set_size = 0; set_size <= 1; set_size++)
for (use_pixmap = 0; use_pixmap <= 1; use_pixmap++)