diff options
author | Loïc Minier <lool@dooz.org> | 2009-04-14 23:42:13 +0200 |
---|---|---|
committer | Loïc Minier <lool@dooz.org> | 2009-04-14 23:42:13 +0200 |
commit | 9fd00578a0fc03b64e31b4dfdd2e3683af78e716 (patch) | |
tree | 41ecd998e0b1d80f2779b4e49f9a07e3bf9c0bb5 | |
parent | d3ca287af35987fec9f1bef044d67660200716b4 (diff) |
Imported Upstream version 1.2.0
224 files changed, 13657 insertions, 6582 deletions
@@ -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 @@ -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 @@ -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]) @@ -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"><xi:include></xi:include></font><font color="red"><xi:include></xi:include></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 I. Tutorial"> -<link rel="part" href="pt02.html" title="Part II. 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 A. 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> -  |  - <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 — 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 I. Tutorial"> -<link rel="part" href="pt02.html" title="Part II. 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 A. 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> -  |  - <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 — 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 I. 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>  |  @@ -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> :</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> >= <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> >= <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> >= <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> >= <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 I. 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>  |  @@ -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> :</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> :</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, ®);\ + }\ + 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,®ion); - 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,®ion); - 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, ®ion); + 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 Binary files differnew file mode 100644 index 0000000..1325ae6 --- /dev/null +++ b/test/6x13.pcf 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 Binary files differnew file mode 100644 index 0000000..886c62f --- /dev/null +++ b/test/bitmap-font-ref.png diff --git a/test/bitmap-font-rgb24-ref.png b/test/bitmap-font-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..abea9b1 --- /dev/null +++ b/test/bitmap-font-rgb24-ref.png 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 Binary files differnew file mode 100644 index 0000000..2468936 --- /dev/null +++ b/test/caps-joins-alpha-svg-argb32-ref.png diff --git a/test/caps-joins-alpha-svg-rgb24-ref.png b/test/caps-joins-alpha-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..2468936 --- /dev/null +++ b/test/caps-joins-alpha-svg-rgb24-ref.png diff --git a/test/composite-integer-translate-over-pdf-argb32-ref.png b/test/composite-integer-translate-over-pdf-argb32-ref.png Binary files differnew file mode 100644 index 0000000..821e38b --- /dev/null +++ b/test/composite-integer-translate-over-pdf-argb32-ref.png diff --git a/test/composite-integer-translate-over-svg-argb32-ref.png b/test/composite-integer-translate-over-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..2a0212e --- /dev/null +++ b/test/composite-integer-translate-over-svg-argb32-ref.png diff --git a/test/composite-integer-translate-over-svg-rgb24-ref.png b/test/composite-integer-translate-over-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..2a0212e --- /dev/null +++ b/test/composite-integer-translate-over-svg-rgb24-ref.png diff --git a/test/dash-scale-ps-argb32-ref.png b/test/dash-scale-ps-argb32-ref.png Binary files differnew file mode 100644 index 0000000..0320a8b --- /dev/null +++ b/test/dash-scale-ps-argb32-ref.png diff --git a/test/dash-zero-length-ps-argb32-ref.png b/test/dash-zero-length-ps-argb32-ref.png Binary files differindex 5c7fab5..897f25f 100644 --- a/test/dash-zero-length-ps-argb32-ref.png +++ b/test/dash-zero-length-ps-argb32-ref.png diff --git a/test/dash-zero-length-ref.png b/test/dash-zero-length-ref.png Binary files differindex aca856f..16024f4 100644 --- a/test/dash-zero-length-ref.png +++ b/test/dash-zero-length-ref.png diff --git a/test/dash-zero-length-rgb24-ref.png b/test/dash-zero-length-rgb24-ref.png Binary files differindex f5e40e8..41b595c 100644 --- a/test/dash-zero-length-rgb24-ref.png +++ b/test/dash-zero-length-rgb24-ref.png 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 Binary files differnew file mode 100644 index 0000000..f16f0f6 --- /dev/null +++ b/test/degenerate-path-ps-argb32-ref.png diff --git a/test/degenerate-path-ref.png b/test/degenerate-path-ref.png Binary files differnew file mode 100644 index 0000000..1b07de4 --- /dev/null +++ b/test/degenerate-path-ref.png diff --git a/test/degenerate-path-rgb24-ref.png b/test/degenerate-path-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..29f4089 --- /dev/null +++ b/test/degenerate-path-rgb24-ref.png 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 Binary files differnew file mode 100644 index 0000000..bdf63af --- /dev/null +++ b/test/device-offset-positive-ref.png diff --git a/test/device-offset-positive-rgb24-ref.png b/test/device-offset-positive-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..3281f49 --- /dev/null +++ b/test/device-offset-positive-rgb24-ref.png 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 Binary files differnew file mode 100644 index 0000000..634388f --- /dev/null +++ b/test/device-offset-rgb24-ref.png 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 Binary files differnew file mode 100644 index 0000000..812c897 --- /dev/null +++ b/test/fill-and-stroke-alpha-svg-argb32-ref.png diff --git a/test/fill-and-stroke-alpha-svg-rgb24-ref.png b/test/fill-and-stroke-alpha-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..812c897 --- /dev/null +++ b/test/fill-and-stroke-alpha-svg-rgb24-ref.png diff --git a/test/ft-text-antialias-none-ps-argb32-ref.png b/test/ft-text-antialias-none-ps-argb32-ref.png Binary files differnew file mode 100644 index 0000000..ea33b0e --- /dev/null +++ b/test/ft-text-antialias-none-ps-argb32-ref.png diff --git a/test/ft-text-antialias-none-ref.png b/test/ft-text-antialias-none-ref.png Binary files differnew file mode 100644 index 0000000..cb0c132 --- /dev/null +++ b/test/ft-text-antialias-none-ref.png 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 Binary files differnew file mode 100644 index 0000000..80fbcab --- /dev/null +++ b/test/ft-text-vertical-layout-pdf-argb32-ref.png diff --git a/test/ft-text-vertical-layout-ps-argb32-ref.png b/test/ft-text-vertical-layout-ps-argb32-ref.png Binary files differnew file mode 100644 index 0000000..ba51c30 --- /dev/null +++ b/test/ft-text-vertical-layout-ps-argb32-ref.png diff --git a/test/ft-text-vertical-layout-ref.png b/test/ft-text-vertical-layout-ref.png Binary files differnew file mode 100644 index 0000000..2aa82e4 --- /dev/null +++ b/test/ft-text-vertical-layout-ref.png diff --git a/test/ft-text-vertical-layout-svg-argb32-ref.png b/test/ft-text-vertical-layout-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..7b82d9a --- /dev/null +++ b/test/ft-text-vertical-layout-svg-argb32-ref.png diff --git a/test/ft-text-vertical-layout-svg-rgb24-ref.png b/test/ft-text-vertical-layout-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..a1c8a83 --- /dev/null +++ b/test/ft-text-vertical-layout-svg-rgb24-ref.png 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 Binary files differnew file mode 100644 index 0000000..8b9031c --- /dev/null +++ b/test/glyph-cache-pressure-pdf-argb32-ref.png diff --git a/test/glyph-cache-pressure-ps-argb32-ref.png b/test/glyph-cache-pressure-ps-argb32-ref.png Binary files differnew file mode 100644 index 0000000..cc02ff6 --- /dev/null +++ b/test/glyph-cache-pressure-ps-argb32-ref.png diff --git a/test/glyph-cache-pressure-ref.png b/test/glyph-cache-pressure-ref.png Binary files differnew file mode 100644 index 0000000..0947a67 --- /dev/null +++ b/test/glyph-cache-pressure-ref.png diff --git a/test/glyph-cache-pressure-svg-argb32-ref.png b/test/glyph-cache-pressure-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..0a49bc4 --- /dev/null +++ b/test/glyph-cache-pressure-svg-argb32-ref.png diff --git a/test/glyph-cache-pressure-svg-rgb24-ref.png b/test/glyph-cache-pressure-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..6f40d60 --- /dev/null +++ b/test/glyph-cache-pressure-svg-rgb24-ref.png 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 Binary files differnew file mode 100644 index 0000000..4ed4bfa --- /dev/null +++ b/test/linear-gradient-svg-argb32-ref.png diff --git a/test/linear-gradient-svg-rgb24-ref.png b/test/linear-gradient-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..4ed4bfa --- /dev/null +++ b/test/linear-gradient-svg-rgb24-ref.png diff --git a/test/mask-beos-rgb24-ref.png b/test/mask-beos-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..fce4263 --- /dev/null +++ b/test/mask-beos-rgb24-ref.png diff --git a/test/mask-beos_bitmap-argb32-ref.png b/test/mask-beos_bitmap-argb32-ref.png Binary files differnew file mode 100644 index 0000000..6ddb8e1 --- /dev/null +++ b/test/mask-beos_bitmap-argb32-ref.png diff --git a/test/mask-beos_bitmap-rgb24-ref.png b/test/mask-beos_bitmap-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..fce4263 --- /dev/null +++ b/test/mask-beos_bitmap-rgb24-ref.png diff --git a/test/mask-ctm-svg-argb32-ref.png b/test/mask-ctm-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..049d5f0 --- /dev/null +++ b/test/mask-ctm-svg-argb32-ref.png diff --git a/test/mask-ctm-svg-rgb24-ref.png b/test/mask-ctm-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..90628a6 --- /dev/null +++ b/test/mask-ctm-svg-rgb24-ref.png diff --git a/test/mask-surface-ctm-svg-argb32-ref.png b/test/mask-surface-ctm-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..049d5f0 --- /dev/null +++ b/test/mask-surface-ctm-svg-argb32-ref.png diff --git a/test/mask-surface-ctm-svg-rgb24-ref.png b/test/mask-surface-ctm-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..90628a6 --- /dev/null +++ b/test/mask-surface-ctm-svg-rgb24-ref.png diff --git a/test/mask-svg-argb32-ref.png b/test/mask-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..5ac50a7 --- /dev/null +++ b/test/mask-svg-argb32-ref.png diff --git a/test/mask-svg-rgb24-ref.png b/test/mask-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..0bf98d9 --- /dev/null +++ b/test/mask-svg-rgb24-ref.png diff --git a/test/paint-source-alpha-pdf-argb32-ref.png b/test/paint-source-alpha-pdf-argb32-ref.png Binary files differnew file mode 100644 index 0000000..98004a3 --- /dev/null +++ b/test/paint-source-alpha-pdf-argb32-ref.png diff --git a/test/paint-source-alpha-svg-argb32-ref.png b/test/paint-source-alpha-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..3b3a990 --- /dev/null +++ b/test/paint-source-alpha-svg-argb32-ref.png diff --git a/test/paint-source-alpha-svg-rgb24-ref.png b/test/paint-source-alpha-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..3b3a990 --- /dev/null +++ b/test/paint-source-alpha-svg-rgb24-ref.png diff --git a/test/paint-with-alpha-svg-argb32-ref.png b/test/paint-with-alpha-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..97a2100 --- /dev/null +++ b/test/paint-with-alpha-svg-argb32-ref.png diff --git a/test/paint-with-alpha-svg-rgb24-ref.png b/test/paint-with-alpha-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..97a2100 --- /dev/null +++ b/test/paint-with-alpha-svg-rgb24-ref.png diff --git a/test/pixman-rotate-svg-argb32-ref.png b/test/pixman-rotate-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..08d750b --- /dev/null +++ b/test/pixman-rotate-svg-argb32-ref.png diff --git a/test/pixman-rotate-svg-rgb24-ref.png b/test/pixman-rotate-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..349fd5c --- /dev/null +++ b/test/pixman-rotate-svg-rgb24-ref.png diff --git a/test/push-group-rgb24-ref.png b/test/push-group-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..d658851 --- /dev/null +++ b/test/push-group-rgb24-ref.png diff --git a/test/push-group-svg-argb32-ref.png b/test/push-group-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..34f06bf --- /dev/null +++ b/test/push-group-svg-argb32-ref.png diff --git a/test/push-group-svg-rgb24-ref.png b/test/push-group-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..5a0a59c --- /dev/null +++ b/test/push-group-svg-rgb24-ref.png diff --git a/test/scale-source-surface-paint-pdf-argb32-ref.png b/test/scale-source-surface-paint-pdf-argb32-ref.png Binary files differindex bb940f8..de274f9 100644 --- a/test/scale-source-surface-paint-pdf-argb32-ref.png +++ b/test/scale-source-surface-paint-pdf-argb32-ref.png diff --git a/test/scale-source-surface-paint-svg-argb32-ref.png b/test/scale-source-surface-paint-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..de274f9 --- /dev/null +++ b/test/scale-source-surface-paint-svg-argb32-ref.png diff --git a/test/scale-source-surface-paint-svg-rgb24-ref.png b/test/scale-source-surface-paint-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..099b8a0 --- /dev/null +++ b/test/scale-source-surface-paint-svg-rgb24-ref.png diff --git a/test/select-font-face-pdf-argb32-ref.png b/test/select-font-face-pdf-argb32-ref.png Binary files differnew file mode 100644 index 0000000..540b994 --- /dev/null +++ b/test/select-font-face-pdf-argb32-ref.png diff --git a/test/select-font-face-ps-argb32-ref.png b/test/select-font-face-ps-argb32-ref.png Binary files differnew file mode 100644 index 0000000..fdb3ad2 --- /dev/null +++ b/test/select-font-face-ps-argb32-ref.png diff --git a/test/select-font-face-svg-argb32-ref.png b/test/select-font-face-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..50b8f49 --- /dev/null +++ b/test/select-font-face-svg-argb32-ref.png diff --git a/test/select-font-face-svg-rgb24-ref.png b/test/select-font-face-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..50b8f49 --- /dev/null +++ b/test/select-font-face-svg-rgb24-ref.png diff --git a/test/set-source-beos-rgb24-ref.png b/test/set-source-beos-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..627a00d --- /dev/null +++ b/test/set-source-beos-rgb24-ref.png diff --git a/test/set-source-beos_bitmap-rgb24-ref.png b/test/set-source-beos_bitmap-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..627a00d --- /dev/null +++ b/test/set-source-beos_bitmap-rgb24-ref.png diff --git a/test/set-source-svg-argb32-ref.png b/test/set-source-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..754f1c4 --- /dev/null +++ b/test/set-source-svg-argb32-ref.png diff --git a/test/set-source-svg-rgb24-ref.png b/test/set-source-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..802147f --- /dev/null +++ b/test/set-source-svg-rgb24-ref.png diff --git a/test/show-text-current-point-svg-argb32-ref.png b/test/show-text-current-point-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..717ad7e --- /dev/null +++ b/test/show-text-current-point-svg-argb32-ref.png diff --git a/test/show-text-current-point-svg-rgb24-ref.png b/test/show-text-current-point-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..2c4bcd7 --- /dev/null +++ b/test/show-text-current-point-svg-rgb24-ref.png diff --git a/test/text-antialias-gray-svg-argb32-ref.png b/test/text-antialias-gray-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..aa64fbb --- /dev/null +++ b/test/text-antialias-gray-svg-argb32-ref.png diff --git a/test/text-antialias-gray-svg-rgb24-ref.png b/test/text-antialias-gray-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..20f0d58 --- /dev/null +++ b/test/text-antialias-gray-svg-rgb24-ref.png diff --git a/test/text-antialias-none-svg-argb32-ref.png b/test/text-antialias-none-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..aa64fbb --- /dev/null +++ b/test/text-antialias-none-svg-argb32-ref.png diff --git a/test/text-antialias-none-svg-rgb24-ref.png b/test/text-antialias-none-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..20f0d58 --- /dev/null +++ b/test/text-antialias-none-svg-rgb24-ref.png diff --git a/test/text-antialias-subpixel-svg-argb32-ref.png b/test/text-antialias-subpixel-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..aa64fbb --- /dev/null +++ b/test/text-antialias-subpixel-svg-argb32-ref.png diff --git a/test/text-antialias-subpixel-svg-rgb24-ref.png b/test/text-antialias-subpixel-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..20f0d58 --- /dev/null +++ b/test/text-antialias-subpixel-svg-rgb24-ref.png diff --git a/test/text-pattern-pdf-argb32-ref.png b/test/text-pattern-pdf-argb32-ref.png Binary files differnew file mode 100644 index 0000000..17afd64 --- /dev/null +++ b/test/text-pattern-pdf-argb32-ref.png diff --git a/test/text-pattern-ps-argb32-ref.png b/test/text-pattern-ps-argb32-ref.png Binary files differnew file mode 100644 index 0000000..1bc8dd4 --- /dev/null +++ b/test/text-pattern-ps-argb32-ref.png diff --git a/test/text-pattern-svg-argb32-ref.png b/test/text-pattern-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..79dc52d --- /dev/null +++ b/test/text-pattern-svg-argb32-ref.png diff --git a/test/text-pattern-svg-rgb24-ref.png b/test/text-pattern-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..c1f76c2 --- /dev/null +++ b/test/text-pattern-svg-rgb24-ref.png diff --git a/test/trap-clip-beos-rgb24-ref.png b/test/trap-clip-beos-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..779d215 --- /dev/null +++ b/test/trap-clip-beos-rgb24-ref.png diff --git a/test/trap-clip-beos_bitmap-rgb24-ref.png b/test/trap-clip-beos_bitmap-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..779d215 --- /dev/null +++ b/test/trap-clip-beos_bitmap-rgb24-ref.png diff --git a/test/trap-clip-svg-argb32-ref.png b/test/trap-clip-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..30dfa4f --- /dev/null +++ b/test/trap-clip-svg-argb32-ref.png diff --git a/test/trap-clip-svg-rgb24-ref.png b/test/trap-clip-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..46a9200 --- /dev/null +++ b/test/trap-clip-svg-rgb24-ref.png diff --git a/test/unantialiased-shapes-svg-argb32-ref.png b/test/unantialiased-shapes-svg-argb32-ref.png Binary files differnew file mode 100644 index 0000000..da29773 --- /dev/null +++ b/test/unantialiased-shapes-svg-argb32-ref.png diff --git a/test/unantialiased-shapes-svg-rgb24-ref.png b/test/unantialiased-shapes-svg-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..da29773 --- /dev/null +++ b/test/unantialiased-shapes-svg-rgb24-ref.png 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++) |